当前位置: 首页 > 工具软件 > WNMP+ > 使用案例 >

wnmp mysql_WNMP(Window系统+Nginx服务器+Mysql数据库+PHP)

柴翰藻
2023-12-01

PHP环境安装配置:

从官网下载PHP压缩包后,解压到指定目录,在PHP文件目录下将php.ini-development改名为php.ini

然后修改php.ini中的配置如下:

指定扩展路径,根据自己实际目录配置

extension_dir = "C:\Program Files\PHP\php\php-7.3.10-Win32-VC15-x64\ext"

配合nginx相关的CGI配置

enable_dl =On

cgi.force_redirect = 0cgi.fix_pathinfo=1fastcgi.impersonate = 1cgi.rfc2616_headers = 1

其他相关扩展,根据自己需求开启

extension=bz2

extension=curl

extension=fileinfo

extension=gd2

extension=gettext

extension=mbstring

extension=exif

extension=mysqli

extension=odbc

extension=openssl

extension=pdo_mysql

extension=pdo_odbc

extension=pdo_pgsql

extension=pdo_sqlite

extension=pgsql

extension=soap

extension=sockets

extension=sqlite3

extension=tidy

extension=xmlrpc

extension=xsl

设置时区

date.timezone = Asia/Shanghai

注意:需要用到的配置,如果前面有分号(;)一定要去掉。

Nginx相关配置:

从官网下载Nginx压缩包后,解压到指定目录,在Nginx文件目录下找到conf文件,然后里面有个nginx.conf

然后修改nginx.conf中的配置如下:

#端口号,没有被占用的端口号即可

listen 8080;

server_name localhost;location/{

#root是你项目的入口路径,如果不是用框架的话直接PHP项目目录即可

root C:/Users/Dolts/phpProjects/mall/public;

index index.html index.htm index.if (!-e $request_filename) {

rewrite^/index.php(.*)$ /index.php?s=$1last;

rewrite^/(.*)$ /index.php?s=$1last;

}

}

location ~ \.php$ {

root C:/Users/Dolts/phpProjects/mall/public;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

这里的“$document_root”就是指前面“root”所指的站点路径

日志相关配置(根据自己需求配置,不需要可以不管)

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.logmain;

access_log logs/host.access.log main;

在开启Nginx服务之前,必须要开启php-cgi

端口与nginx.conf配置下的fastcgi_pass保持一致

php-cgi -b 127.0.0.1:9000    不要关掉该窗口

然后开启另一个cmd窗口

start nginx     (然后任务管理器中,详细信息下就会出现php-cgi.exe、nginx.exe)

或者nginx -s reload

常见错误:

1.nginx -s reopen/nginx -s reload后 nginx: [error] invalid PID number "" in "/run/nginx.pid"

原因:nginx.pid文件内没有指定PID(Windows系统每一个进程都有一个PID)

解决方案:start nginx   该命令会自动给出PID

2.页面请求PHP文件后 An error occurred,HTML文件正常

解决方案:查看php.ini中相关cgi的配置是否正确配置了,是否开启php-cgi服务 php-cgi -b 127.0.0.1:9000

3.页面请求PHP文件后 No input file specified,HTML文件正常

解决方案:修改nginx.conf配置

fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; 修改如下

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

4.执行开启nginx服务后 nginx: [error] CreateFile()

原因:它无法创建相关文件,windows家庭版有很多目录需要管理员身份权限才能进行操作

解决方案:在指定目录下,自己手动创建相关文件。(如果该目录无法创建文件,可在桌面创建后copy过去)

扩展:

如果你有多个项目,nginx.conf可以进行拆分

在nginx.conf中加入include config_web/*.conf;  (include 文件名称/*.conf;)

然后在nginx.conf目录下创建config_web文件夹,在该文件下可以创建多个conf文件

在新建的conf文件中,只需要copy nginx.conf文件中的server部分,根据自己的需求进行相关配置,我的配置如下

server {

listen8081;

server_name localhost;#charset koi8-r;

access_log logs/mall.access.log main;

error_log logs/mall.error.log;

location/{

root C:/Users/Dolts/phpProjects/mall/public;

index index.html index.htm index.php;if (!-e $request_filename) {

rewrite^/index.php(.*)$ /index.php?s=$1last;

rewrite^/(.*)$ /index.php?s=$1last;

}

}#error_page 404 /404.html;

#redirect server error pages to the static page /50x.html

# error_page 500 502 503 504 /50x.html;

location= /50x.html {

root html;

}#proxy the PHP scripts to Apache listening on 127.0.0.1:80

# #location ~ \.php$ {

#proxy_pass http://127.0.0.1;

#}

#pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

# location ~ \.php$ {

root C:/Users/Dolts/phpProjects/mall/public;

fastcgi_pass127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME$document_root$fastcgi_script_name;includefastcgi_params;

}#deny access to .htaccess files, if Apache's document root

#concurs with nginx's one

# #location ~ /\.ht {

#deny all;

#}

}

nginx.conf文件可以换成初始状态,如果要用到日志的话,日志相关配置要开启,日志文件无法自动创建的话,手动创建

参考链接:https://blog.csdn.net/hl648777580/article/details/79565494

 类似资料: