0 前言
本文介绍在 Windows 上搭建 PHP 开发环境的过程,使用的 Web 服务器为 Apache + fcgi 。(亲测可用)
1.安装准备
下载 Apache 与 mod_fcgid : http://httpd.apache.org/
本人下载的是: httpd-2.4.46-win64-VS16.zip 与 mod_fcgid-2.3.10-win64-VS16.zip
下载 PHP: http://www.php.net/
本人下载的是:php-8.0.2-Win32-vs16-x64.zip
2.安装Apache
解压 httpd-2.4.46-win64-VS16.zip 到 D:\httpd-2.4.46-win64-VS16;
将 D:\httpd-2.4.46-win64-VS16\Apache24\bin 添加到系统环境变量Path中。
2.1 配置 Apache
修改 D:\httpd-2.4.46-win64-VS16\Apache24\conf\httpd.conf 文件
将
Define SRVROOT "C:/Apache24"
改为
Define SRVROOT "D:/httpd-2.4.46-win64-VS16/Apache24"
添加监听端口号
Listen *:8080
2.2 检查Apache 是否安装成功
以管理员方式启动cmd.exe程序,并执行如下语句
执行如下命令,安装 apache:
httpd -k install
执行如下命令,启动 apache:
httpd -k start
若无错误,则在浏览器中输入 localhost:8080/index.html ,若出现下面的页面,则表示 apache 配置成功。
3.安装PHP
解压 php-8.0.2-Win32-vs16-x64.zip 到 D:\php-8.0.2-Win32-vs16-x64;
将 D:\php-8.0.2-Win32-vs16-x64\php.ini-development 文件复制一份并重命名为 php.ini 。
用记事本打开 php.ini 文件, 文件中";"为注释。
3.1 取消如下行的注释并修改
extension_dir = "ext" 改为 extension_dir = "D:/php-8.0.2-Win32-vs16-x64/ext"
extension=php_curl.dll
extension=php_gd2.dll
extension=php_mbstring.dll ;这是php多字节字符串扩展
extension=php_mysql.dll
extension=php_pdo_mysql.dll
extension=php_pdo_odbc.dll
extension=php_xmlrpc.dll
3.2 配置Session功能
在使用session功能时,必须配置session文件在服务器上的保存目录,否则无法使用session,新建一个可读写的目录文件夹,此目录最好独立于WEB主程序目录之外,在D盘根目录上建立了phpsessiontmp目录,然后在php.ini配置文件中找到 ;session.save_path = "/tmp" 改成 session.save_path = "D:/phpsessiontmp"
3.3 配置PHP的文件上传功能
同session一样,在使用PHP文件上传功能时,我们必须要指定一个临时文件夹以完成文件上传功能,否则文件上传功能会失败,新建一个可读写的目录文件夹,此处我在D盘根目录上建立了phpfileuploadtmp目录,然后在php.ini配置文件中找到 ;upload_tmp_dir = 改成 upload_tmp_dir = "D:/phpfileuploadtmp"
3.4 修改date.timezone
将 ;date.timezone = 改成 date.timezone = Asia/Shanghai
4.在Apache中搭建 PHP 运行环境
4.1 配置 fcgi 模块
解压 mod_fcgid-2.3.10-win64-VS16.zip 将里边的 mod_fcgid.so 文件拷贝到 D:\httpd-2.4.46-win64-VS16\Apache24\modules 目录;
修改 D:\httpd-2.4.46-win64-VS16\Apache24\conf\httpd.conf 文件
取消如下语句前的注释‘#’(该模块用于加载虚拟主机,用于部署多个项目)
LoadModule vhost_alias_module modules/mod_vhost_alias.so
在 httpd.conf 文件的末尾添加如下语句:
LoadModule php_module "d:/php-8.0.2-Win32-vs16-x64/php8apache2_4.dll" #AddType application/x-httpd-php .html .htm .php
# 可以用下边的FilesMatch语句代替上一行 <FilesMatch "\.php$"> setHandler application/x-httpd-php </FilesMatch> PHPIniDir "d:/php-8.0.2-Win32-vs16-x64" # 配置fcgi LoadModule fcgid_module modules/mod_fcgid.so AddHandler fcgid-script .fcgi .php FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1000 FcgidMaxRequestsPerProcess 1000 FcgidMaxProcesses 15 FcgidIOTimeout 300 FcgidIdleTimeout 300 # 上传文件的最大尺寸100MB FcgidMaxRequestLen 104857600 # 全局默认使用的PHP版本配置 FcgidInitialEnv PHPRC "d:/php-8.0.2-Win32-vs16-x64" FcgidWrapper "d:/php-8.0.2-Win32-vs16-x64/php-cgi.exe" .php
4.2 添加 php 项目
修改虚拟主机配置 D:\httpd-2.4.46-win64-VS16\Apache24\conf\extra\httpd-vhosts.conf
# 这里的端口需要与监听端口一致
<VirtualHost *:8080> Include "E:/workspace/php/www/apache_php_fcgi.conf" </VirtualHost>
其中 apache_php_fcgi.conf 为php项目www的apache配置
Define PROJECTROOT "E:/workspace/php/www" DocumentRoot "${PROJECTROOT}" <Directory ${PROJECTROOT}> Options FollowSymLinks ExecCGI Options Indexes FollowSymLinks AllowOverride None </Directory> ErrorLog "${PROJECTROOT}/logs/php-error.log" CustomLog "${PROJECTROOT}/logs/php-access.log" common #DirectoryIndex index.htm index.html index.php # 不同版本的PHP需要修改下面两行 #FcgidInitialEnv PHPRC "d:/php-8.0.2-Win32-vs16-x64" #FcgidWrapper "d:/php-8.0.2-Win32-vs16-x64/php-cgi.exe" .php
4.3 查看PHP运行环境
在 E:/workspace/php/www 下新建 phpinfo.php 文件, 输入如下内容:
<?php phpinfo(); ?>
重启Apache服务:
httpd -k stop
httpd -k start
若无错误,则在浏览器中输入 http://localhost:8080/phpinfo.php, 若无错误则会显示出下面的页面
参考文献:
[1] http://www.cnblogs.com/emanlee/p/4440250.html
[2] http://jingyan.baidu.com/article/154b46315242b328ca8f4101.html
[3] https://blog.csdn.net/yiminghd2861/article/details/105078263