免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 8263 | 回复: 6
打印 上一主题 下一主题

CentOS6.0+Nginx1.1.4+PHP5.3.8+MySQL5.5.16只能访问第一个php文件 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-09-24 18:48 |只看该作者 |倒序浏览
这几天吃了个螃蟹

CentOS6.0+Nginx1.1.4+PHP5.3.8+MySQL5.5.16 跑网站程序。各程序编译安装正常,Nginx静态页面正常显示,诡异的是只能访问第一个php文件,输入其他的php文件的地址,依然显示第一个php文件执行的结果。请各位大虾帮忙判断一下是哪里出了问题。



CentOS 6.0 64bit (Basic Server)下安装Nginx1.1.4+PHP 5.3.8+Mysql 5.5.16

1. 安装 CentOS 6.0 64bit (Basic Server)
分区
boot        100M
/                5G
/var                10024M
/tmp        8G
/usr                5G
/swap        10024M
/home        all

2.  YUM Packages.
* Tools
  yum install telnet gcc gcc-c++
  yum install libtool
*Nginx
  yum install pcre-devel  zlib-devel
* PHP:
yum install gd-devel libjpeg-devel libpng-devel freetype-devel libxml2-devel curl-devel  

3. MySQL5.5.16
#useradd mysql
#yum install ncurses-devel
#tar zxvf  mysql-5.5.16.tar.gz (注意要下载源代码的包)
#cd mysql-5.5.16-linux2.6-x86_64
cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/home/mysql/ \
-DMYSQL_UNIX_ADDR=/home/mysql/mysqld.sock \
-DDEFAULT_CHARSET=utf8 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_SPHINX_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_USER=mysql

#make && make install

要在/etc/my.cnf里面加上
[mysqld]
basedir = /usr/local/mysql
datadir = /home/mysql/data

4. PHP 5.3.8
1). 编译PHP前传
为了安装GD库到yum安装必要的包(libpng,libjpeg等)还要安装 : jpegsrc.v6b.tar.gz,libpng-1.2.8-config.tar.gz(好像只有tar包)
I. 安装jpegsrc.v7.tar.gz
下载软件

进入jpeg-7的源码目录,然后执行以下步骤:
Linux代码  
cp /usr/share/libtool/config/config.sub .   
cp /usr/share/libtool/config/config.guess .   
./configure --enable-shared --enable-static   
make   
mkdir -p /usr/local/man/man1   
make install-lib   /*缺install-lib*/
make install   

II. 安装libpng-1.5.4-config.tar.gz
下载软件
Linux代码  
./configure   
make   
make install  

2). 编译PHP
Linux代码  
./configure --prefix=/usr/local/php --with-pdo-mysql=mysqlnd --with-mysql=mysqlnd --with-mysqli=mysqlnd  --enable-fpm --enable-mbstring --with-curl --with-iconv-dir=/usr/local/libiconv --with-freetype-dir=/usr/local/freetype --with-gd=/usr/local/gd  --with-jpeg-dir=/usr/local/jpeg --with-png-dir=/usr/local/png  --enable-pcntl --enable-sockets --enable-zip --with-zlib --enable-xml


make  
make install  

3). 配置php-fpm并运行
PHP5.3内置了fastcgi支持。
I.  生成配置文件
   复制$PHP_DIR/etc/php-fpm.conf.default 到$PHP_DIR/etc/php-fpm.conf
   打开一下两行注释:
   pid = run/php-fpm.pid
   pm.start_servers = 20
   pm.min_spare_servers = 5
   pm.max_spare_servers = 35
II.. 启动php-fpm
   $PHP_DIR/sbin/php-fpm
III. 停止php-fpm
   killall -9 php-fpm

IV. 加入到服务中去并每次开机自动启动
  cp  $PHP_SOURCE_DIR/sapi/fpm/init.d.php-fpm  /etc/init.d/php-fpm
  chmod 700 /etc/init.d/php-fpm
  chkconfig --add php-fpm
  chkconfig --level 345 php-fpm on
  服务方式启动php-fpm
  service php-fpm restart

5. Nginx
I. tar包安装到/usr/local/nginx
Linux代码  
./configure --prefix=/usr/local/nginx   
make   
make install  

II 启动停止nginx
启动: sbin/nginx (默认使用conf/nginx.conf作为配置文件)
停止: kill `cat /usr/local/nginx/logs/nginx.pid`
III. 令开机自动启动
加入条目
cp /usr/local/nginx/sbin/nginx 到 /etc/rc.local
#echo "/usr/local/nginx/sbin/nginx" >>/etc/rc.local
IV. 虚拟主机配置
  $NGINX_DIR/conf/nginx.conf,增加如下段
Nginx.conf代码  
server {   
     listen       80;   
     server_name  *.helixway.me helixway.me;   
     root   /home/www;  #注意 root要设置在location /外面, 否则接下来访问PHP将会返回一片空白(状态码404)   
  
     location / {   
         index  index.html index.htm;   
     }   
  
     error_page   500 502 503 504  /50x.html;   
     location = /50x.html {   
         root   html;   
     }   
}  

V. 连接fastcgi服务器
这里以www.helixway.me为例,使其支持php
A). 配置文件修改
* 在conf/nginx.conf中的http{ 里加入行:
Nginx.conf代码  
fastcgi_connect_timeout 300;   
fastcgi_send_timeout 300;   
fastcgi_read_timeout 300;   
fastcgi_buffer_size 64k;   
fastcgi_buffers 4 64k;   
fastcgi_busy_buffers_size 128k;   
fastcgi_temp_file_write_size 128k;  

* 在conf/nginx.conf中的server_name 为*.helixway.me的server { 段里加入行:
Nginx.conf代码  
location ~ .*\.(php|php5)?$   
{         
#fastcgi_pass  unix:/tmp/php-cgi.sock;   
fastcgi_pass  127.0.0.1:9000;   
fastcgi_index index.php;   
include fastcgi.conf;   
}  

* 上面配置中include指示符包含了另外一个配置文件fasctcgi.conf,该文件默认存在conf/目录下,一般不需要做任何修改。
B). 重新启动nginx.

别忘了iptables

  
  
  安装路径
程序都在/usr/local/目录下
配置文件位置
nginx  /usr/local/nginx/conf/nginx.conf
mysql /etc/my.cnf
php /usr/local/php/etc/php-fpm.conf
网站程序
/home/www web
/home/mysql/data 数据库

论坛徽章:
0
2 [报告]
发表于 2011-09-24 19:11 |只看该作者
感觉像是给cache了, 不过你先试试第一次访问访问其他的php能返回正常结果么

论坛徽章:
0
3 [报告]
发表于 2011-09-24 19:12 |只看该作者
可以的,php返回的都是正常的结果。哪个文件先执行,以后访问任何php文件返回的都是这个文件的执行结果。

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
4 [报告]
发表于 2011-09-24 20:40 |只看该作者
楼主连续访问两个不同的php文件,看下nginx的log,有没有异常

论坛徽章:
0
5 [报告]
发表于 2011-10-18 20:08 |只看该作者
好像有异常

论坛徽章:
0
6 [报告]
发表于 2011-10-19 10:18 |只看该作者
我也是这样   后来没心情折腾就换回5.6了

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:09
7 [报告]
发表于 2011-10-19 10:23 |只看该作者
我说有src的rpm包有别人编译好的版本不用硬要自己编译?
你要自己编译用src的rpm来rpmbulid不好么?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP