2023年7月3日发(作者:)
windows平台中配置nginx+php环境刚看到nginx这个词,我很好奇它的读法(engine x),我的直译是"引擎x",⼀般引"擎代"表了性能,⽽"x"⼤多出现是表⽰"xtras(额外的效果)",那么整个词的意思就是类似"极致效果","额外性能"。当然这⾥不是要来唠嗑,以上是题外话。 nginx相较于我们熟悉的apache,IIS的优势,就我浅⼊浅出的了解,在于"反向代理"和"负载均衡"。因此考虑到能够为Web服务器节省资源,它可以代替apache来提供Web服务。那么上正题了,nginx有这么多优势,那在windows下如何来配置nginx+php环境?⽹上看到还是那么多转载来转载去的⽂章。这⾥就我配置的过程,来介绍⼀下:1、⾸先需要准备的应⽤程序包。nginx:nginx/Windows-1.0.4php:HiddenConsole:nx下php是以FastCGI的⽅式运⾏,所以我们下载⾮线程安全也就是nts的php包。2、安装与配置。 1)php的安装与配置。 直接解压下载好的php包,到D盘wnmp⽬录(D:wnmp),这⾥把解压出来的⽂件夹重命名成php5。进⼊⽂件夹修改-recommended⽂件为,并⽤Editplus或者Notepad++打开来。找到extension_dir = "./ext"更改为extension_dir = "D:/wnmp/php5/ext"往下看,再找到;extension=php_;extension=php_实际中,可能还要开启extension=php_ension=php_ension=php_ension=php_ension=php_ension=php_ension=php_ension=php_ension=php_ension=php_ension=php_ension=php_ension=php_ension=php_pdo_ension=php_pdo_ension=php_pdo_ension=php_pdo_ension=php_ension=php_ension=php_ension=php_ension=php_前⾯指定了php的ext路径后,只要把需要的扩展包前⾯所对应的“;”去掉,就可以了。这⾥打开php_和php_,让php⽀持mysql。当然不要忘掉很重要的⼀步就是,把php5⽬录下的⽂件复制到C:Windows⽬录下,也可以在系统变量⾥⾯指定路径,当然这⾥我选择了更为⽅便的⽅法^_^。(测试发现不复制也是可以的)到这⾥,php已经可以⽀持mysql了。接下来我们来配置php,让php能够与nginx结合。找到;_pathinfo=1我们去掉这⾥的分号:_pathinfo=1这⼀步⾮常重要,这⾥是php的CGI的设置。2)nginx的安装与配置把下载好的nginx-1.0.4的包同样解压到D盘的wnmp⽬录下,并重命名为nginx。接下来,我们来配置nginx,让它能够和php协同⼯作。进⼊nginx的conf⽬录,打开nginx的配置⽂件,找到location / { root html; #这⾥是站点的根⽬录 index ;}将root html;改为root D:/wnmp/www;加上,即:location / { root D:/wnmp/www; #这⾥是站点的根⽬录
index ;}这⾥需要注意,路径分隔符请使⽤/⽽不要使⽤Windows中的以防歧义。再往下,找到# 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 ;# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;# include fastcgi_params;#}先将前⾯的#去掉,同样将root html;改为root D:/wnmp/www;。再把标记为红⾊的/scripts改为$document_root,这⾥的$document_root就是指前⾯root所指的站点路径,这是改完后的:# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000#location ~ .php$ { root D:/wnmp/www; fastcgi_pass 127.0.0.1:9000; fastcgi_index ; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;}设定的存放⽬录,将#error_log logs/;的#去处,默认是存放在Nginx安装⽬录中logs⽬录下。保存配置⽂件,就可以了。nginx+php的环境就初步配置好了,来跑跑看。我们可以输⼊命令: -b 127.0.0.1:9000 -c D:/wnmp/www/php/来启动php,并⼿动启动nginx(可能不可⾏)。当然也可以利⽤脚本来实现。⾸先把下载好的包解压到nginx⽬录内,的作⽤是在执⾏完命令⾏脚本后可以⾃动关闭脚本,⽽从脚本中开启的进程不被关闭。然后来创建脚本,命名为start_,我们在Notepad++⾥来编辑它:@echo offREM Windows 下⽆效REM set PHP_FCGI_CHILDREN=5REM 每个进程处理的最⼤请求数,或设置为 Windows 环境变量set PHP_FCGI_MAX_REQUESTS=1000
echo Starting RunHiddenConsole D:/phpsetup/php-5.4.45-nts-Win32-VC9-x86/ -b 127.0.0.1:9000 -c D:/phpsetup/php-5.4.45-nts-Win32-VC9-x86/
echo RunHiddenConsole D:/phpsetup/nginx-1.6.0/ -p D:/phpsetup/nginx-1.6.0再另外创建⼀个名为stop_的脚本⽤来关闭nginx:@echo offecho
taskkill /F /IM > nulecho Stopping askkill /F /IM > nulexit这样,我们的服务脚本也都创建完毕了。双击start_,再看看进程管理器是不是有两个的进程和⼀个的进程呢?这样nginx服务就启动了,⽽且php也以fastCGI的⽅式运⾏了。到站点⽬录下,新建⼀个的⽂件,在⾥⾯编辑就说明,nginx+php的环境已经配置好了,呵呵~Nginx 403 forbidden的解决办法常见的,引起nginx 403 forbidden有⼆种原因,⼀是缺少索引⽂件,⼆权限问题。1、缺少或者⽂件代码如下:server {
listen 80;
server_name localhost;
index ;
root /var/www;}如果在/var/www下⾯没有,的时候,直接访问域名,找不到⽂件,会报403 forbidden。例如:你访问⽽这个域名,对应的root指定的索引⽂件不存在。权限问题对于PHP⽽⾔,如果nginx⽤户没有web⽬录的权限,则会导致该错误。解决办法:修改web⽬录的读写权限,或者是把nginx的启动⽤户改成⽬录的所属⽤户,重起⼀下就能解决。 如:代码如下(Linux下):chown -R nginx_user:nginx_user /htdocs
发布者:admin,转转请注明出处:http://www.yc00.com/news/1688379286a129159.html
评论列表(0条)