参考文章: https://www.cnblogs.com/anlia/p/5916758.html
系统: Windows 7 64 位系统
安装之前, 首先下载软件:
- Nginx: http://nginx.org/en/download.html
- PHP 7.3.3: http://php.net/downloads.php
MySQL: 已提前安装
1: 在 D 盘建立文件夹 Nginx+PHP+MySQL, 路径为: D:\Nginx+PHP+MySQL
2: 安装 Nginx, 安装目录为: D:\Nginx+PHP+MySQL\nginx-1.12.2
1. 打开 D:\Nginx+PHP+MySQL\nginx-1.12.2 目录, 运行该文件夹下的 nginx.exe
2. 测试是否启动 nginx. 打开浏览器访问 http://localhost/ 或 http://127.0.0.1, 看看是否出现 "Welcome to nginx!", 出现的证明已经启动成功了.
若启动不成功, 查看是否端口被占用.
3: 安装 PHP, 安装目录为: D:\Nginx+PHP+MySQL\PHP-7.3.3
4, 安装 MySQL, 安装目录为: 略
5: 修改 Nginx 的 conf 文件:
目录为 D:\Nginx+PHP+MySQL\nginx\conf
文件名为: nginx.conf
1. 去掉 worker_processes 前的 #号, 开启一个进程
2. 添加 events
3. 设置 http-> 设置 server-> 支持 PHP
- #user nobody;
- worker_processes 1;
- #error_log logs/error.log;
- #error_log logs/error.log notice;
- #error_log logs/error.log info;
- #pid logs/nginx.pid;
- events {
- worker_connections 1024;
- }
- http {
- include mime.types;
- default_type application/octet-stream;
- #log_format main '$remote_addr - $remote_user [$time_local]"$request"' #'$status $body_bytes_sent "$http_referer" '#'"$http_user_agent""$http_x_forwarded_for"';
- #access_log logs/access.log main;
- sendfile on;
- #tcp_nopush on;
- #keepalive_timeout 0;
- keepalive_timeout 65;
- #gzip on;
- server {
- listen 80;
- server_name localhost;
- #charset koi8-r;
- #access_log logs/host.access.log main;
- location / {
- root d:/Nginx+PHP+MySQL/nginx/HTML;
- index index.HTML index.htm;
- } error_page 500 502 503 504 /50x.HTML;
- location = /50x.HTML {
- root HTML;
- } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 #
- location ~ \.PHP$ {
- root HTML;
- fastcgi_pass 127.0.0.1:9000;
- fastcgi_index index.PHP;
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
- include fastcgi_params;
- } }
- }
4. 测试 nginx 是否安装成功
6: 修改 PHP 下 PHP.INI-development 文件, 将文件名修改为 PHP.INI, 找开 PHP.INI:
搜索 "extension_dir", 找到 extension_dir = "ext" 先去前面的分号再改为 extension_dir = "./ext"
搜索 "php_mysql", 找到:"extension=php_mysql.dll 和 extension=php_mysqli.dll 去掉前面的";"extension=php_mysql.dll 和 extension=php_mysqli.dll (支持 MySQL 数据库)
以下摘至: https://www.cnblogs.com/ghjbk/p/6740501.html
相对与 PHP5,php7 的最大变化之一是移除了 MySQL 扩展, 推荐使用 mysqli 或者 pdo_mysql,
实际上在 PHP5.5 开始, PHP 就着手开始准备弃用 MySQL 扩展, 如果你使用 MySQL 扩展,
可能看到过这样的提示 "Deprecated: mysql_connect():
The MySQL extension is deprecated and will be removed in the future: use mysqli or PDO instead in".
所以在以后的程序中, 为了保持兼容性, 要尽量减少使用 MySQL 扩展用于数据库连接.
查看 PHP 是否安装成功:
7: 在 PHP 目录下新建文件 PHP-CGI.vbs, 用 PHP-CGI.vbs 文件启动 PHP-CGI:
打开 PHP-CGI.vbs, 写入启动编码:
- set wscriptObj = CreateObject("Wscript.Shell")
- wscriptObj.run "php-cgi -b 127.0.0.1:9000",0
8: 在 D:\Nginx+PHP+MySQL 目录下新建启动项: runServer.bat 和停止项 stopServer.bat
在启动项 runServer.bat 中输入:
- @echo off
- echo Starting nginx...
- cd %~dp0nginx
- start """./nginx.exe" echo Starting mysql...
- net start mysql
- echo Starting PHP FastCGI...
- cd %~dp0PHP
- start """PHP-CGI.vbs" pause
- Exit
在停止项中输入:
- @echo off
- echo Stopping nginx...
- taskkill /F /IM nginx.exe> nul
- echo Stopping PHP FastCGI...
- taskkill /F /IM PHP-CGI.exe> nul
- echo Stopping MySQL...
- net stop MySQL
- pause
- exit
9: 最后, 查看是否启动成功:
在 nginx 的 HTML 目录下 D:\Nginx+PHP+MySQL\nginx\HTML, 新建 phpinfo.PHP
写入:
- <?PHP
- phpinfo();
- ?>
在浏览器中输入 phpinfo.PHP 的路径, 查看是否配置成功:( http://localhost/phpinfo.PHP )
查找原因发现是配置问题, 参考文章: https://zhidao.baidu.com/question/325668800.html
1. 更改 PHP.INI
首先 PHP.INI 的配置中把
;CGI.fix_pathinfo=0 改为
CGI.fix_pathinfo=1
※这里默认都是注释掉的, 默认值就是 1
2. 在 nginx/conf/nginx.conf 找到:
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; 改为:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
※其实这在标题 5 中有修改, 是我没注意
修改配置之后搞定:
来源: http://www.jianshu.com/p/d905884fbe0f