WNMP(windows+nginx+mysql+php)环境搭建
我们就把开发环境都放到我C盘里面的wnmp目录下,其中nginx就安装在wnmp目录里面的nginx目录里面,mysql就安装在wnmp目录里面的mysql目录里面,php就安装在wnmp目录里面的php目录里面,方便统一管理,下面我们就开始安装它们。先从官网下载nginx+mysql+php源码包,最好下载当时最新的稳定版本,我们先下载nginx的,如下先把我们的nginx解压,如下解压到wnm
我们就把开发环境都放到我C盘里面的wnmp目录下,其中nginx就安装在wnmp目录里面的nginx目录里面,mysql就安装在wnmp目录里面的mysql目录里面,php就安装在wnmp目录里面的php目录里面,方便统一管理,下面我们就开始安装它们。
先从官网下载nginx+mysql+php源码包,最好下载当时最新的稳定版本,我们先下载nginx的,如下
先把我们的nginx解压,如下
解压到wnmp目录里面的nginx目录里面,如上。
双击红色圈住的exe文件就可以开启了我们的nginx环境,在地址栏上输入localhost,效果出现下面的界面说明安装成功,如下
安装好nginx之后,我们把它和php关联起来,首先我们的php版本我用php 7的,用非线程的,nginx下php是以FastCGI的方式运行,所以我们下载非线程安全也就是nts的php包如下
把它解压到我们的php目录下面就行了,如下
安装php7的时候,首先安装需要的库文件,如下
上面的库文件在php官网有提供,它有提示的,看你安装的什么版本的php,它会有安装说明,需要安装什么库文件啥的,它有说明。然后双击上面红色圈住的文件安装就行了。
然后先在php.ini里面打开cgi模式,如下
把它前面的分号去掉,即
然后我们启动php,如下
先进入php-cgi.exe文件所在的目录,如下
然后我们就可以启动php了,执行如下命令,如下
php-cgi.exe -b 127.0.0.1:9000 -c php.ini
效果如下
如果报错,如下
我们就在前面加.\,如下
.\php-cgi.exe -b 127.0.0.1:9000 -c php.ini
效果如下
这样就行了
不能关了这个窗口,因为它是在前台打开的,不是在后台运行,你要是关了它的话,就访问不了我们的php文件了,会出现下面的情况,如下
启动了php了,然后我们在nginx配置一下域名,如下
先打开下面的配置文件,如下
找到server配置选项,1设置我们的域名,2设置我们网站的目录,3设置网站的索引文件
然后在nginx里面解析php文件,即访问php文件的时候,处理如下,即配置如下
location ~ \.php$ {
root C:/wnmp/www/erp;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
这样我们的php和nginx就联系在一起了
然后在我们的hosts文件里面加上我们的域名就行了,即
127.0.0.1 www.erp.com
然后我们重启nginx,先进入nginx.exe 文件所在目录,如下
然后执行下面的命令就可以重启我们的nginx了,如下
nginx.exe -s reload
然后在我们的地址上来输入www.erp.com就可以访问我们的网站了
如果我们要配置多个网站呢?简单,复制多一份server就行了,如下
然后我们配置多一个www.data.com域名,访问数据库的,即访问phpmyadmin的,如下
server {
listen 80;
server_name www.data.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root C:/wnmp/www/phpmyadmin;
index index.php index.html index.htm ;
}
#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:/wnmp/www/phpmyadmin;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
然后在hosts文件里面添加多这个域名就行了,如下
在我们的猎豹浏览器访问phpmyadmin的时候,总是登录不了,因为它提示可疑重定向了,如下
重定向之后,就不能使用cookie了,因为phpmyadmin登录是要用到cookie的,如下
不能用cookie的话,也就登录不了我们的phpmyadmin了,所以我们要想登录这个phpmyadmin的话,我们就换个浏览器吧,不要用猎豹浏览器了,用谷歌或者火狐浏览器,它不会提示重定向,不会禁用cookie的,所以可以登录
然后配置一下nginx默认的上传文件大小,默认是1m,我们设置大一点,比如20M,如下
然后配置php的上传文件大小也是这么大,如下
怎么设置?如下
打开php.ini,首先找到
file_uploads = on ;是否允许通过HTTP上传文件的开关。默认为ON即是开
upload_tmp_dir ;文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹
upload_max_filesize = 8m ;即允许上传文件大小的最大值。默认为2M
post_max_size = 8m ;指通过表单POST给PHP的所能接收的最大值,包括表单里的所有值。默认为8M
一般地,设置好上述四个参数后,上传<=8M的文件是不成问题,在网络正常的情况下。
但如果要上传>8M的大体积文件,只设置上述四项还一定能行的通。
进一步配置以下的参数
max_execution_time = 600 ;每个PHP页面运行的最大时间值(秒),默认30秒
max_input_time = 600 ;每个PHP页面接收数据所需的最大时间,默认60秒
memory_limit = 8m ;每个PHP页面所吃掉的最大内存,默认8M
把上述参数修改后,在网络所允许的正常情况下,就可以上传大体积文件了
max_execution_time = 600
max_input_time = 600
memory_limit = 32m
file_uploads = on
upload_tmp_dir = /tmp
upload_max_filesize = 32m
post_max_size = 32m
其实我们一般只要设置两个地方就行,一个是upload_max_filesize,一个是post_max_size,一般够用,upload_max_filesize设置为20M,post_max_size设置为25M,设置大一点就行
如果我们部署的是thinkphp项目,需要支持phpinfo这样的路径,需要如下配置路由,如下
把之前的location ~ \.php$改为location ~ \.php,去掉$是为了不匹配行末,即可以匹配.php/,以实现pathinfo,然后在下面添加如下配置,如下
#定义变量 $path_info ,用于存放pathinfo信息
set $path_info "";
#定义变量 $real_script_name,用于存放真实地址
set $real_script_name $fastcgi_script_name;
#如果地址与引号内的正则表达式匹配
if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
#将文件地址赋值给变量 $real_script_name
set $real_script_name $1;
#将文件地址后的参数赋值给变量 $path_info
set $path_info $2;
}
#配置fastcgi的一些参数
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
然后还要配置重写呢?添加上下面的配置就行,如下
注意:如果配置好重启nginx没有效果的话,重启电脑看看,因为在windows中,用命令重启nginx有点问题,有时候要重启电脑才有效果
如果出现下面的错误,如下
查看error.log日志,是下面的错误,如下
我们设置时间长一点,如下
添加上面两个红色划住的配置,设置长一点就行了。
安装mysql就不赘述了,安装到wnmp目录里面的mysql目录下面。
更多推荐
所有评论(0)