安装nginx+php后,Php页面访问时提示404,但页面是存在的是怎么回事?

作者&投稿:戊雯 (若有异议请与网页底部的电邮联系)
安装nginx+php后,Php页面访问时提示404,但页面是存在的.~

安装nginx+php后,Php页面访问时提示404,但页面是存在的,应该是下面的原因造成的:
这个是因为index.html 文件目录是nginx默认安装目录 /usr/local/nginx/html,而info.php 把它放到了 /data/web 下造成的,可以在nginx.conf配置文档里面找到相应的问题。
可以按照下面测试更改:
location ~ \.php$ {root /data/web;fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;include fastcgi_params;}nginx -t && nginx -s reload
nginx+php的运行原理:
nginx的worker进程直接管理每一个请求到nginx的网络请求。
对于php而言,由于在整个网络请求的过程中php是一个cgi程序的角色,所以采用名为php-fpm的进程管理程序来对这些被请求的php程序进行管理。php-fpm程序也如同nginx一样,需要监听端口,并且有master和worker进程。worker进程直接管理每一个php进程。
关于fastcgi:fastcgi是一种进程管理器,管理cgi进程。市面上有多种实现了fastcgi功能的进程管理器,php-fpm就是其中的一种。php-fpm作为一种fast-cgi进程管理服务,会监听端口,一般默认监听9000端口,并且是监听本机,也就是只接收来自本机的端口请求,所以通常输入命令netstat -nlpt|grep php-fpm 会得到:
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 1057/php-fpm
这里的127.0.0.1:9000 就是监听本机9000端口的意思。
关于fastcgi的配置文件,fastcgi的配置文件一般放在nginx.conf同级目录下,配置文件形式,一般有两种:fastcgi.conf 和 fastcgi_params。不同的nginx版本会有不同的配置文件,这两个配置文件有一个非常重要的区别:fastcgi_parames文件中缺少下列配置:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
可以打开fastcgi_parames文件加上上述行,也可以在要使用配置的地方动态添加,使该配置生效。
当需要处理php请求时,nginx的worker进程会将请求移交给php-fpm的worker进程进行处理,也就是最开头所说的nginx调用了php,其实严格得讲是nginx间接调用php。

你看看我的这个回答对你行不行
静态页面的index.html 是可以访问的,而动态的info.php确是404 找不到,为什么会这样那?index.html 文件目录是nginx默认安装目录 /usr/local/nginx/html,而
info.php 我把它放到了 /data/web 下 是不是这个原因 ?看下nginx.conf配置文档
server {
listen 80;
server_name localhost;

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


error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}
}

过程
尝试更改下
location ~ \.php$ {
root /data/web;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}
nginx -t && nginx -s reload
测试访问仍然不行
google
再次更改
location ~ \.php$ {
root /data/web;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /data/web$fastcgi_script_name;
include fastcgi_params;
}
nginx -t && nginx -s reload
测试一下
[root@me zongm]# curl -I
HTTP/1.1 200 OK
Server: nginx/1.0.5
Date: Mon, 01 Aug 2011 08:34:17 GMT
Content-Type: text/html
Connection: keep-alive
X-Powered-By: PHP/5.3.6
firefox 测试ok!
你试试我这个过程看看,希望我的回答对你有用,如果还有其他的问题,可以去后盾网论坛问题求助专区去提问,会让你有更多收益!

安装nginx+php后,Php页面访问时提示404,但页面是存在的,应该是下面的原因造成的:

这个是因为index.html 文件目录是nginx默认安装目录 /usr/local/nginx/html,而info.php 把它放到了 /data/web 下造成的,可以在nginx.conf配置文档里面找到相应的问题。

可以按照下面测试更改:

location ~ \.php$ {
root           /data/web;
fastcgi_pass   127.0.0.1:9000;
fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
include        fastcgi_params;
}
nginx -t && nginx -s reload




如何搭建php5.2.X开发环境
搭建PHP的环境方法有很多,主要分为独立安装和集成安装两种,独立安装需要你分别下载apache、mysql和php等软件,而集成安装只需要下载一个软件安装包就可以了。对于初学者,我们为了节约时间,更快的入门,只需要学习集成安装方法这一种就够用了。集成安装包主要有:WampServer、appserv、easyphp等等,我们只要...

零基础学Python需要从哪里开始?
分享Python学习路线:第一阶段:Python基础与Linux数据库这是Python的入门阶段,也是帮助零基础学员打好基础的重要阶段。你需要掌握Python基本语法规则及变量、逻辑控制、内置数据结构、文件操作、高级函数、模块、常用标准库模板、函数、异常处理、mysql使用、协程等知识点。学习目标:掌握Python的基本语法,具备...

零基础学Python应该学习哪些入门知识
2.3.2 廖雪峰编写的《Python教程》。廖先生的教程涵盖了 Python 知识的方方面面,内容更加系统,有一定深度,有一定基础之后学习会有更多的收获。2.4 学会安装包。Python中有很多扩展包,想要安装这些包可以采用两种方法:2.4.1 使用pip或easy_install。1)在网上找到的需要的包,下载下来。eg. rsa-...

Linux学什么?
安装设备驱动程序(例如modem);熟悉grub\/Lilo导航器和简单的修复操作;熟悉系统固有目录的名称和公共设备;学习使用mount命令访问其他文件;了解编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑...

零基础学python能学会吗
可以的,只要你愿意付出时间和努力,肯定是可以学会的。而且Python本身就是适合零基础人员学习的编程语言,而且功能强大、语法简单、上手更加容易,学习的时候找一个好的培训机构,从入门到精通只需要5个月的时间就可以了,平时自己多练习、多交流、多敲敲代码。

岭东区19446255558: 安装nginx+php后,Php页面访问时提示404,但页面是存在的是怎么回事? -
燕鬼小儿: 安装nginx+php后,Php页面访问时提示404,但页面是存在的,应该是下面的原因造成的:这个是因为index.html 文件目录是nginx默认安装目录 /usr/local/nginx/html,而info.php 把它放到了 /data/web 下造成的,可以在nginx.conf配置文档里面找...

岭东区19446255558: 为什么启动了NGINX服务器却打不开PHP网页 -
燕鬼小儿: 先试三个办法 一、打开IE,点工具,点internet选项,点高级,点恢复默认设置,点保存,退出,重新打开IE 二、打开IE,刷新五次以上 三、打开IE,点工具,点internet选项,点删除文件,点清除历史记录,确定,保存,退出IE,重新打开IE....

岭东区19446255558: 一台机linux器装nginx一台装PHP,怎么能够用nginx访问php页面? -
燕鬼小儿: nginx通过fastcgi模式调用另一台的php解释器,然后将php程序执行后的结果传给nginx,nginx再输出就可以了

岭东区19446255558: Ubuntu14.04 安装nginx+php5 - fpm 后访问php页面空白,怎么解决 -
燕鬼小儿: 先看位置对不对,可能nginx解析的地址不对 再看日志 我估计,你是nginx配置错了!测试方法 比如再你访问的页面里面随便写点东西 不过要确定不是404 如果是404 你还是乖乖去看下nginx配置到哪了....要注意nginx的访问权限

岭东区19446255558: 使用nginx时在网页显示<?php phpinfo(); ?>,怎么处理 -
燕鬼小儿: 如果是直接输出了这句话,那就是你没有配置好 导致php不能正确执行直接当作了普通文件直接输出了 重新配置吧

岭东区19446255558: 安装完nginx和php - fpm后,在firefox浏览器中打开php页面时显示下载框,而不是直接的页面? -
燕鬼小儿: nginx配置的有问题,可以参考下面我给出的,并且保证服务运行正常.location ~ .*\.(php|php5)?$改完记得重启nginx

岭东区19446255558: linux配置nginx+php,但是无法访问PHP文件,能访问html -
燕鬼小儿: 如果仅仅是测试,请将index.php放到 html 目录下即可:/usr/local/nginx/html/index.php

岭东区19446255558: windows环境下使用nginx,如何支持php? -
燕鬼小儿: 使用nginx+php集成包phpfind或phpstudy即可一键安装好环境.还支持php版本一键切换,带控制面板的,纯中文绿色解压即可,完全符合国人使用习惯,你试试吧

岭东区19446255558: php和nginx安装后怎么配置 -
燕鬼小儿: 先安装编译依赖的一些组件 复制代码 代码如下:yum install pcre pcre-devel openssl openssl-devel -y1、解压程序包 复制代码 代码如下:tar xf nginx-1.10.0.tar.gz cd nginx-1.10.02、预编译配置参数 复制代码 代码如下:./configure --user=www \--...

岭东区19446255558: nginx 浏览php的时候会变成下载 -
燕鬼小儿: php的时候会变成下载:这是因为nginx没有设置好碰到php文件时,要传递到后方的php解释器.看看你的nginx.conf配置,里面有没有这样的设置:location ~ .*\.php$ {fastcgi_pass 127.0.0.1:9000; }上面的意思,就是说,碰到.php结尾的文件,传递给后方127.0.0.1的9000端口上.当然啦,你的php-fpm解析器也需要正常运行,并监听好9000端口,才能最终生效并有效处理php脚本.windows下开启监听的办法,php-cgi.exe -b 127.0.0.1:9000 -c php\php.ini

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网