博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[PHP] - Apache + PHP 环境搭建
阅读量:7087 次
发布时间:2019-06-28

本文共 23172 字,大约阅读时间需要 77 分钟。

Apache和PHP的版本分别为:

  • httpd-2.4.9-win64-VC11.zip
  • php-5.6.9-Win32-VC11-x64.zip

下载地址:

php-5.6.9-Win32-VC11-x64

httpd-2.4.9-win64-VC11.zip

 

本机使用提win7 64位(基本上现在的操作系统都是64位的了),同时,apache和php的编译器必需是一致

比如我上面的版本均是VC11。如果一个使用VC9一个是VC11,运行会出错。这点要注意。

  • 将Apache解压到:D:\Program Files\php5.6.9
  • 将php解压到:D:\Program Files\php5.6.9

 


 

Apache配置:

打开conf\httpd.conf文件,修改如下:

将所有:c:/apache24替换为:D:/Program Files/Apache24

 

在<IfModule unixd_module>前面加入:

LoadModule php5_module "D:/Program Files/php5.6.9/php5apache2_4.dll"PHPIniDir "D:/Program Files/php5.6.9"AddType application/x-httpd-php .php .html .htm

修改ServerName:

ServerName 127.0.0.1:80

修改Directory:

Options FollowSymLinks AllowOverride None Order deny,allow Deny from all

注释掉这个Directory:

#
# # Possible values for the Options directive are "None", "All", # or any combination of: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # Note that "MultiViews" must be named *explicitly* --- "Options All" # doesn't give it to you. # # The Options directive is both complicated and important. Please see # http://httpd.apache.org/docs/2.4/mod/core.html#options # for more information. # #Options Indexes FollowSymLinks # # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # AllowOverride FileInfo AuthConfig Limit # #AllowOverride None # # Controls who can get stuff from this server. # #Require all granted#

加入默认页文件命名:

DirectoryIndex index.html index.htm index.php

开启虚拟主机:

Include conf/extra/httpd-vhosts.conf

 

httpd.conf文件所有配置:

## This is the main Apache HTTP server configuration file.  It contains the# configuration directives that give the server its instructions.# See 
for detailed information.# In particular, see #
# for a discussion of each configuration directive.## Do NOT simply read the instructions in here without understanding# what they do. They're here only as hints or reminders. If you are unsure# consult the online docs. You have been warned. ## Configuration and logfile names: If the filenames you specify for many# of the server's control files begin with "/" (or "drive:/" for Win32), the# server will use that explicit path. If the filenames do *not* begin# with "/", the value of ServerRoot is prepended -- so "logs/access_log"# with ServerRoot set to "/usr/local/apache2" will be interpreted by the# server as "/usr/local/apache2/logs/access_log", whereas "/logs/access_log" # will be interpreted as '/logs/access_log'.## NOTE: Where filenames are specified, you must use forward slashes# instead of backslashes (e.g., "c:/apache" instead of "c:\apache").# If a drive letter is omitted, the drive on which httpd.exe is located# will be used by default. It is recommended that you always supply# an explicit drive letter in absolute paths to avoid confusion.## ServerRoot: The top of the directory tree under which the server's# configuration, error, and log files are kept.## Do not add a slash at the end of the directory path. If you point# ServerRoot at a non-local disk, be sure to specify a local disk on the# Mutex directive, if file-based mutexes are used. If you wish to share the# same ServerRoot for multiple httpd daemons, you will need to change at# least PidFile.#ServerRoot "D:/Program Files/Apache24"## Mutex: Allows you to set the mutex mechanism and mutex file directory# for individual mutexes, or change the global defaults## Uncomment and change the directory if mutexes are file-based and the default# mutex file directory is not on a local disk or is not appropriate for some# other reason.## Mutex default:logs## Listen: Allows you to bind Apache to specific IP addresses and/or# ports, instead of the default. See also the
# directive.## Change this to Listen on specific IP addresses as shown below to # prevent Apache from glomming onto all bound IP addresses.##Listen 12.34.56.78:80Listen 80## Dynamic Shared Object (DSO) Support## To be able to use the functionality of a module which was built as a DSO you# have to place corresponding `LoadModule' lines at this location so the# directives contained in it are actually available _before_ they are used.# Statically compiled modules (those listed by `httpd -l') do not need# to be loaded here.## Example:# LoadModule foo_module modules/mod_foo.so#LoadModule access_compat_module modules/mod_access_compat.soLoadModule actions_module modules/mod_actions.soLoadModule alias_module modules/mod_alias.soLoadModule allowmethods_module modules/mod_allowmethods.soLoadModule asis_module modules/mod_asis.soLoadModule auth_basic_module modules/mod_auth_basic.so#LoadModule auth_digest_module modules/mod_auth_digest.so#LoadModule auth_form_module modules/mod_auth_form.so#LoadModule authn_anon_module modules/mod_authn_anon.soLoadModule authn_core_module modules/mod_authn_core.so#LoadModule authn_dbd_module modules/mod_authn_dbd.so#LoadModule authn_dbm_module modules/mod_authn_dbm.soLoadModule authn_file_module modules/mod_authn_file.so#LoadModule authn_socache_module modules/mod_authn_socache.so#LoadModule authnz_ldap_module modules/mod_authnz_ldap.soLoadModule authz_core_module modules/mod_authz_core.so#LoadModule authz_dbd_module modules/mod_authz_dbd.so#LoadModule authz_dbm_module modules/mod_authz_dbm.soLoadModule authz_groupfile_module modules/mod_authz_groupfile.soLoadModule authz_host_module modules/mod_authz_host.so#LoadModule authz_owner_module modules/mod_authz_owner.soLoadModule authz_user_module modules/mod_authz_user.soLoadModule autoindex_module modules/mod_autoindex.so#LoadModule buffer_module modules/mod_buffer.so#LoadModule cache_module modules/mod_cache.so#LoadModule cache_disk_module modules/mod_cache_disk.so#LoadModule cache_socache_module modules/mod_cache_socache.so#LoadModule cern_meta_module modules/mod_cern_meta.soLoadModule cgi_module modules/mod_cgi.so#LoadModule charset_lite_module modules/mod_charset_lite.so#LoadModule data_module modules/mod_data.so#LoadModule dav_module modules/mod_dav.so#LoadModule dav_fs_module modules/mod_dav_fs.so#LoadModule dav_lock_module modules/mod_dav_lock.so#LoadModule dbd_module modules/mod_dbd.so#LoadModule deflate_module modules/mod_deflate.soLoadModule dir_module modules/mod_dir.so#LoadModule dumpio_module modules/mod_dumpio.soLoadModule env_module modules/mod_env.so#LoadModule expires_module modules/mod_expires.so#LoadModule ext_filter_module modules/mod_ext_filter.so#LoadModule file_cache_module modules/mod_file_cache.so#LoadModule filter_module modules/mod_filter.so#LoadModule headers_module modules/mod_headers.so#LoadModule heartbeat_module modules/mod_heartbeat.so#LoadModule heartmonitor_module modules/mod_heartmonitor.so#LoadModule ident_module modules/mod_ident.so#LoadModule imagemap_module modules/mod_imagemap.soLoadModule include_module modules/mod_include.so#LoadModule info_module modules/mod_info.soLoadModule isapi_module modules/mod_isapi.so#LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so#LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so#LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so#LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so#LoadModule ldap_module modules/mod_ldap.so#LoadModule logio_module modules/mod_logio.soLoadModule log_config_module modules/mod_log_config.so#LoadModule log_debug_module modules/mod_log_debug.so#LoadModule log_forensic_module modules/mod_log_forensic.so#LoadModule lua_module modules/mod_lua.so#LoadModule macro_module modules/mod_macro.soLoadModule mime_module modules/mod_mime.so#LoadModule mime_magic_module modules/mod_mime_magic.soLoadModule negotiation_module modules/mod_negotiation.so#LoadModule proxy_module modules/mod_proxy.so#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so#LoadModule proxy_connect_module modules/mod_proxy_connect.so#LoadModule proxy_express_module modules/mod_proxy_express.so#LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so#LoadModule proxy_html_module modules/mod_proxy_html.so#LoadModule proxy_http_module modules/mod_proxy_http.so#LoadModule proxy_scgi_module modules/mod_proxy_scgi.so#LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so#LoadModule ratelimit_module modules/mod_ratelimit.so#LoadModule reflector_module modules/mod_reflector.so#LoadModule remoteip_module modules/mod_remoteip.so#LoadModule request_module modules/mod_request.so#LoadModule reqtimeout_module modules/mod_reqtimeout.so#LoadModule rewrite_module modules/mod_rewrite.so#LoadModule sed_module modules/mod_sed.so#LoadModule session_module modules/mod_session.so#LoadModule session_cookie_module modules/mod_session_cookie.so#LoadModule session_crypto_module modules/mod_session_crypto.so#LoadModule session_dbd_module modules/mod_session_dbd.soLoadModule setenvif_module modules/mod_setenvif.so#LoadModule slotmem_plain_module modules/mod_slotmem_plain.so#LoadModule slotmem_shm_module modules/mod_slotmem_shm.so#LoadModule socache_dbm_module modules/mod_socache_dbm.so#LoadModule socache_memcache_module modules/mod_socache_memcache.so#LoadModule socache_shmcb_module modules/mod_socache_shmcb.so#LoadModule speling_module modules/mod_speling.so#LoadModule ssl_module modules/mod_ssl.so#LoadModule status_module modules/mod_status.so#LoadModule substitute_module modules/mod_substitute.so#LoadModule unique_id_module modules/mod_unique_id.so#LoadModule userdir_module modules/mod_userdir.so#LoadModule usertrack_module modules/mod_usertrack.so#LoadModule version_module modules/mod_version.so#LoadModule vhost_alias_module modules/mod_vhost_alias.so#LoadModule watchdog_module modules/mod_watchdog.so#LoadModule xml2enc_module modules/mod_xml2enc.soLoadModule php5_module "D:/Program Files/php5.6.9/php5apache2_4.dll"PHPIniDir "D:/Program Files/php5.6.9"AddType application/x-httpd-php .php .html .htm
## If you wish httpd to run as a different user or group, you must run# httpd as root initially and it will switch. ## User/Group: The name (or #number) of the user/group to run httpd as.# It is usually good practice to create a dedicated user and group for# running httpd, as with most system services.#User daemonGroup daemon
# 'Main' server configuration## The directives in this section set up the values used by the 'main'# server, which responds to any requests that aren't handled by a#
definition. These values also provide defaults for# any
containers you may define later in the file.## All of these directives may appear inside
containers,# in which case these default settings will be overridden for the# virtual host being defined.### ServerAdmin: Your address, where problems with the server should be# e-mailed. This address appears on some server-generated pages, such# as error documents. e.g. admin@your-domain.com#ServerAdmin admin@example.com## ServerName gives the name and port that the server uses to identify itself.# This can often be determined automatically, but we recommend you specify# it explicitly to prevent problems during startup.## If your host doesn't have a registered DNS name, enter its IP address here.#ServerName 127.0.0.1:80## Deny access to the entirety of your server's filesystem. You must# explicitly permit access to web content directories in other #
blocks below.#
Options FollowSymLinks AllowOverride None Order deny,allow Deny from all
## Note that from this point forward you must specifically allow# particular features to be enabled - so if something's not working as# you might expect, make sure that you have specifically enabled it# below.### DocumentRoot: The directory out of which you will serve your# documents. By default, all requests are taken from this directory, but# symbolic links and aliases may be used to point to other locations.##DocumentRoot "D:/Program Files/Apache24/htdocs"#
# # Possible values for the Options directive are "None", "All", # or any combination of: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # Note that "MultiViews" must be named *explicitly* --- "Options All" # doesn't give it to you. # # The Options directive is both complicated and important. Please see # http://httpd.apache.org/docs/2.4/mod/core.html#options # for more information. # #Options Indexes FollowSymLinks # # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # AllowOverride FileInfo AuthConfig Limit # #AllowOverride None # # Controls who can get stuff from this server. # #Require all granted#
## DirectoryIndex: sets the file that Apache will serve if a directory# is requested.#
DirectoryIndex index.html index.htm index.php
## The following lines prevent .htaccess and .htpasswd files from being # viewed by Web clients. #
Require all denied
## ErrorLog: The location of the error log file.# If you do not specify an ErrorLog directive within a
# container, error messages relating to that virtual host will be# logged here. If you *do* define an error logfile for a
# container, that host's errors will be logged there and not here.#ErrorLog "logs/error.log"## LogLevel: Control the number of messages logged to the error_log.# Possible values include: debug, info, notice, warn, error, crit,# alert, emerg.#LogLevel warn
# # The following directives define some format nicknames for use with # a CustomLog directive (see below). # LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common
# You need to enable mod_logio.c to use %I and %O LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
# # The location and format of the access logfile (Common Logfile Format). # If you do not define any access logfiles within a
# container, they will be logged here. Contrariwise, if you *do* # define per-
access logfiles, transactions will be # logged therein and *not* in this file. # CustomLog "logs/access.log" common # # If you prefer a logfile with access, agent, and referer information # (Combined Logfile Format) you can use the following directive. # #CustomLog "logs/access.log" combined
# # Redirect: Allows you to tell clients about documents that used to # exist in your server's namespace, but do not anymore. The client # will make a new request for the document at its new location. # Example: # Redirect permanent /foo http://www.example.com/bar # # Alias: Maps web paths into filesystem paths and is used to # access content that does not live under the DocumentRoot. # Example: # Alias /webpath /full/filesystem/path # # If you include a trailing / on /webpath then the server will # require it to be present in the URL. You will also likely # need to provide a
section to allow access to # the filesystem path. # # ScriptAlias: This controls which directories contain server scripts. # ScriptAliases are essentially the same as Aliases, except that # documents in the target directory are treated as applications and # run by the server when requested rather than as documents sent to the # client. The same rules about trailing "/" apply to ScriptAlias # directives as to Alias. # ScriptAlias /cgi-bin/ "D:/Program Files/Apache24/cgi-bin/"
# # ScriptSock: On threaded servers, designate the path to the UNIX # socket used to communicate with the CGI daemon of mod_cgid. # #Scriptsock cgisock
## "D:/Program Files/Apache24/cgi-bin" should be changed to whatever your ScriptAliased# CGI directory exists, if you have that configured.#
AllowOverride None Options None Require all granted
# # TypesConfig points to the file containing the list of mappings from # filename extension to MIME-type. # TypesConfig conf/mime.types # # AddType allows you to add to or override the MIME configuration # file specified in TypesConfig for specific file types. # #AddType application/x-gzip .tgz # # AddEncoding allows you to have certain browsers uncompress # information on the fly. Note: Not all browsers support this. # #AddEncoding x-compress .Z #AddEncoding x-gzip .gz .tgz # # If the AddEncoding directives above are commented-out, then you # probably should define those extensions to indicate media types: # AddType application/x-compress .Z AddType application/x-gzip .gz .tgz # # AddHandler allows you to map certain file extensions to "handlers": # actions unrelated to filetype. These can be either built into the server # or added with the Action directive (see below) # # To use CGI scripts outside of ScriptAliased directories: # (You will also need to add "ExecCGI" to the "Options" directive.) # #AddHandler cgi-script .cgi # For type maps (negotiated resources): #AddHandler type-map var # # Filters allow you to process content before it is sent to the client. # # To parse .shtml files for server-side includes (SSI): # (You will also need to add "Includes" to the "Options" directive.) # #AddType text/html .shtml #AddOutputFilter INCLUDES .shtml
## The mod_mime_magic module allows the server to use various hints from the# contents of the file itself to determine its type. The MIMEMagicFile# directive tells the module where the hint definitions are located.##MIMEMagicFile conf/magic## Customizable error responses come in three flavors:# 1) plain text 2) local redirects 3) external redirects## Some examples:#ErrorDocument 500 "The server made a boo boo."#ErrorDocument 404 /missing.html#ErrorDocument 404 "/cgi-bin/missing_handler.pl"#ErrorDocument 402 http://www.example.com/subscription_info.html### MaxRanges: Maximum number of Ranges in a request before# returning the entire resource, or one of the special# values 'default', 'none' or 'unlimited'.# Default setting is to accept 200 Ranges.#MaxRanges unlimited## EnableMMAP and EnableSendfile: On systems that support it, # memory-mapping or the sendfile syscall may be used to deliver# files. This usually improves server performance, but must# be turned off when serving from networked-mounted # filesystems or if support for these functions is otherwise# broken on your system.# Defaults: EnableMMAP On, EnableSendfile Off##EnableMMAP off#EnableSendfile on# Supplemental configuration## The configuration files in the conf/extra/ directory can be # included to add extra features or to modify the default configuration of # the server, or you may simply copy their contents here and change as # necessary.# Server-pool management (MPM specific)#Include conf/extra/httpd-mpm.conf# Multi-language error messages#Include conf/extra/httpd-multilang-errordoc.conf# Fancy directory listings#Include conf/extra/httpd-autoindex.conf# Language settings#Include conf/extra/httpd-languages.conf# User home directories#Include conf/extra/httpd-userdir.conf# Real-time info on requests and configuration#Include conf/extra/httpd-info.conf# Virtual hostsInclude conf/extra/httpd-vhosts.conf# Local access to the Apache HTTP Server Manual#Include conf/extra/httpd-manual.conf# Distributed authoring and versioning (WebDAV)#Include conf/extra/httpd-dav.conf# Various default settings#Include conf/extra/httpd-default.conf# Configure mod_proxy_html to understand HTML4/XHTML1
Include conf/extra/proxy-html.conf
# Secure (SSL/TLS) connections#Include conf/extra/httpd-ssl.conf## Note: The following must must be present to support# starting without SSL on platforms with no /dev/random equivalent# but a statically compiled-in mod_ssl.#
SSLRandomSeed startup builtinSSLRandomSeed connect builtin
## uncomment out the below to deal with user agents that deliberately# violate open standards by misusing DNT (DNT *must* be a specific# end-user choice)##
#BrowserMatch "MSIE 10.0;" bad_DNT#
#
#RequestHeader unset DNT env=bad_DNT#

 

打开conf\extra\httpd-vhosts.conf文件:

修改为:

 

# Virtual Hosts## Required modules: mod_log_config# If you want to maintain multiple domains/hostnames on your# machine you can setup VirtualHost containers for them. Most configurations# use only name-based virtual hosts so the server doesn't need to worry about# IP addresses. This is indicated by the asterisks in the directives below.## Please see the documentation at # 
# for further details before you try to setup virtual hosts.## You may use the command line option '-S' to verify your virtual host# configuration.
ServerAdmin admin@example.com # 虚拟主机路径 DocumentRoot "F:/PhpProject" # 虚拟主机域名或IP ServerName 127.0.0.1 # 虚拟主机域名或IP(别名或第二个域名) ServerAlias localhost # 错误日志 ErrorLog "logs/dummy-host.localhost-error.log" CustomLog "logs/dummy-host.localhost-access.log" combined #------------------------------------------------------------------ # 主目录配置权限 #------------------------------------------------------------------
# 列出目录资源 Options Indexes FollowSymLinks # 禁止列出目录资源 #Options FollowSymLinks AllowOverride All Order allow,deny Allow from all #------------------------------------------------------------------ # 虚拟目录配置 # 以下别名配置意思是配置一个:http://localhost/p 的虚拟目录 #------------------------------------------------------------------ Alias /p "F:/PhpProject/ZendHello"
# 列出目录资源 Options Indexes FollowSymLinks # 禁止列出目录资源 #Options FollowSymLinks AllowOverride All Order allow,deny Allow from all

其中,DocumentRoot是php源码的目录。


 

 

PHP配置:

打开php的解压目录,将php.ini-Deployment重命名为:php.ini

修改extension_dir为:

extension_dir = "D:/Program Files/php5.6.9/ext"

修改extension:

extension=php_bz2.dllextension=php_curl.dllextension=php_fileinfo.dllextension=php_gd2.dllextension=php_gettext.dllextension=php_gmp.dllextension=php_intl.dllextension=php_imap.dll;extension=php_interbase.dllextension=php_ldap.dllextension=php_mbstring.dllextension=php_exif.dll      ; Must be after mbstring as it depends on itextension=php_mysql.dllextension=php_mysqli.dll;extension=php_oci8_12c.dll  ; Use with Oracle Database 12c Instant Clientextension=php_openssl.dll;extension=php_pdo_firebird.dllextension=php_pdo_mysql.dll;extension=php_pdo_oci.dllextension=php_pdo_odbc.dllextension=php_pdo_pgsql.dll;extension=php_pdo_sqlite.dllextension=php_pgsql.dll;extension=php_pspell.dllextension=php_shmop.dll; The MIBS data available in the PHP distribution must be installed. ; See http://www.php.net/manual/en/snmp.installation.php ;extension=php_snmp.dll;extension=php_soap.dll;extension=php_sockets.dllextension=php_sqlite3.dll;extension=php_sybase_ct.dll;extension=php_tidy.dll;extension=php_xmlrpc.dll;extension=php_xsl.dll

 

修改date.timezone:

date.timezone = Asia/Shanghai

 

将apache设置为windows service方法:

到apache的bin目录(使用管理员身份运行cmd),运行命令:

httpd.exe -k install

然后双击运行ApacheMonitor.exe即可。

卸载服务方法是:

httpd.exe -k uninstall

 


 

 测试

在F:\PhpProject目录下面新建一个文件:index.php

将看到如下:

 


 

文章参考:

Windows下搭建PHP开发环境

 

手动将Apache注册为系统服务

 

转载地址:http://bhyql.baihongyu.com/

你可能感兴趣的文章
微软为何钟情开源技术?
查看>>
DevOps 发展 10 年:成熟度和应用趋势调查报告
查看>>
JEPF 软件快速开发平台今日入住 oschina
查看>>
开发者调查: HTML5 增长 Windows 下降
查看>>
《数据库技术原理与应用教程》一第1章 数据、数据管理与数据处理
查看>>
String被设计成不可变和不能被继承的原因
查看>>
《数据科学:R语言实现》——1.7 执行延迟计算
查看>>
《Adobe Illustrator大师班:经典作品与完美技巧赏析》—Helen Huang
查看>>
微软正式开源 DirectX 着色器
查看>>
阿里感悟(一)如何有效解决问题?
查看>>
《精通Spring MVC 4》——第1章 快速搭建Spring Web应用 1.1Spring Tool Suite简介
查看>>
《网站情感化设计与内容策略》一1.3 你好,马斯洛
查看>>
Logic Programming With Prolog学习笔记(一)
查看>>
Java核心技术卷I基础知识3.8.6 中断控制流程语句
查看>>
《Vim实用技巧(第2版)》——2.3 构造可重复的修改
查看>>
恢复高考这些年,关于高考的老照片
查看>>
首届开放科学奖|6个创造性案例示范如何玩转医学大数据
查看>>
《软件功能测试自动化实战教程》—第6章6.4节Action测试输入的参数化
查看>>
如何通过简单的3步恢复Windows 7同时删除Ubuntu
查看>>
网站建设设计前端开发需要学习html和div+css
查看>>