八个比特

WNMP搭建笔记

字数统计: 896阅读时长: 3 min
2019/04/07 Share

请输入图片描述

本来想抢腾讯云的云+计划的主机,奈何十二点开抢十二点零一分两百台主机就被抢购一空,后来实在没办法就购置了阿里云云翼计划的学生主机。相较于腾讯云的免费域名+Linux 20G硬盘,阿里云实在不算良心。9.9的优惠主机不能选择Linux,也不能加钱升级带宽,不过有总比没有好。

请输入图片描述
以往建站都是使用LNMP安装包,这次在Windows下没有办法只有自己搭建,顺便也熟悉熟悉WNMP的套路,希望我的这篇文章能帮助到跟我一样想建站的小白。

首先下载三大套以及一个防止进程被关闭的小软件RunHiddenConsole

我使用的版本是:

nginx-1.11.5,php-7.0.12,MariaDB 10.1.18

在事例里我们统一把他们解压到C:\wnmp里,

首先是php:首先添加环境变量,方法再次不过多阐述

其次网上教程里的php.ini-recommended在php7里面已经没有了,取而代之的是php.ini-production和php.ini-development

请输入图片描述

我们将php.ini-production(相当于旧版的php.ini-recommended)后缀改为ini,用记事本编辑,找到

extension_dir = "./ext"

这一行,改为

extension_dir = "C:/wnmp/php/ext"

然后把后面的

;extension=php_mysql.dll
;extension=php_pdo_mysql.dll

以及

;cgi.fix_pathinfo=1

前的分号删除掉

网上教程上的

;extension=php_mysql.dll

在php7中也没有了,其实在之前的Mariadb中,sqli已经强制性了,使用sql会warning(不确定是不是真的),mysqli中的i意为improvement

另外php_pdo_mysql.dll的扩展一定要打开,否则会出现:

请输入图片描述

接下来是nginx的nginx.conf,找到

location / {
     root  html;      
     index index.html index.htm;
}

改为

location / {
     root C:\wnmp\www;      #网站的根目录
     index index.html index.htm;
}

记住改动的只有红色的部分,千万不要把前面的root删除

然后找到

# 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 /scripts$fastcgi_script_name;
#   include       fastcgi_params;
#}

改为

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
   root          C:\wnmp\www;
   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 html的路径

然后我们将RunHiddenConsole.exe复制到wnmp文件夹,再新建两个bat批处理文件:

@echo off
REM Windows 下无效
REM set PHP_FCGI_CHILDREN=5

REM 每个进程处理的最大请求数,或设置为 Windows 环境变量
set PHP_FCGI_MAX_REQUESTS=1000

echo Starting PHP FastCGI...
RunHiddenConsole C:/wnmp/php/php-cgi.exe -b 127.0.0.1:9000 
-c C:/wnmp/php/php.ini

echo Starting nginx...
RunHiddenConsole C:/wnmp/nginx/nginx.exe -p C:/wnmp/nginx

echo starting mysql...  
"C:\Program Files\MariaDB 10.1\bin\mysqld"
exit

我们将其命名为start.bat,另外一个当然就是stop.bat:

@echo off  
echo stopping nginx...  
taskkill /F /IM nginx.exe > nul  
echo stopping php-cgi...  
taskkill /F /IM php-cgi.exe > nul  
echo stopping mysql...  
taskkill /F /IM mysqld.exe > nul  

双击后你的任务管理器里应该有php-cgi.exe、mysqld.exe和两个nginx.exe的进程,若是没有你可以考虑在cmd下切换至nginx的目录,重载nginx.conf文件

nginx -s reload

但你可能会发现出现这样的情况,nginx.pid文件丢失了

请输入图片描述

这时你可以考虑这样

nginx -c reload C:\wnmp\nginx\conf\nginx.conf

搭建工作就完成的差不多了,现在到www目录下,新建一个phpinfo.php的探针,内容如下:

<?php
   phpinfo();
?>

打开浏览器访问http://localhost/phpinfo.php,如果看到php探针信息,就说明搭建成功了。

请输入图片描述

搭建wnmp的时候参考了CSDN t2337025的博客

CATALOG