WDlinux官方论坛's Archiver

kazaff 发表于 2012-8-20 20:06

升级PHP5.3.10后,发现FPM下总是提示无权限访问文件

今天把php5.2升级到PHP5.3.10,以这种--enable-fpm这种方式,可是发现restart服务后,提示无权限访问任何页面!
我对Linux权限本身就一头雾水,请高人指点,推测一下是因为什么原因?

我本来以为是php-fpm的权限问题,修改对应配置文件的user和group参数为www后,还是老样子!我崩溃了!

奇怪的是如果我去掉在httpd.conf中增加的php-fpm的参数,启动服务后,phpinfo提示的还是5.2!我崩溃了!

更奇怪的是,我切换到nigex后,启动服务,phpinfo提示的就是5.3.10,而且是FPM模式,妈的,我真崩溃了!

谁来救救我!

qqcm 发表于 2012-8-20 21:08

lanmp中nginx与apache的php是分开编译的,apache不支持php-fpm启动,只有nginx才支持php-fpm启动。需要apache支持php-fpm需要重新编译apache。
1.安装apache fastcgi模块
mod_fastcgi下载地址:[url]http://www.fastcgi.com/dist/[/url]

tar -zxvf mod_fastcgi-current.tar.gz
cd mod_fastcgi-2.4.6
cp Makefile.AP2 Makefile
make top_dir=/path/to/apache2 #你的apache安装路径或者直接编辑Makefile[则不需加top_dir参数]
make install top_dir=/path/to/apache2

2.安装php-fpm
在安装PHP-FPM编译的时候会报找不到libevent,可以执行
yum -y install libevent*
wget [url]http://www.monkey.org/~provos/libevent-1.4.12-stable.tar.gz[/url]
tar zxvf libevent-1.4.12-stable.tar.gz
cd libevent-1.4.12
./configure --prefix=$prefix
mak && make install

tar -jxvf php-5.3.3.tar.bz2
cd php-5.3.3
./configure \
--prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc \
--with-mysql=/usr/local/mysql/ --with-mysqli=/usr/local/mysql/bin/mysql_config \
--with-zlib --with-curl --with-jpeg-dir --with-freetype-dir --with-png-dir \
--with-libxml-dir=/usr/ --with-gd --with-openssl  \
--with-openssl --with-ldap --with-ldap-sasl --with-xmlrpc --without-pear \
--enable-xml --enable-gd-native-ttf \
--enable-ctype --enable-calendar --enable-inline-optimization \
--enable-magic-quotes --with-bz2 --enable-mbstring \
--enable-fpm  --enable-safe-mode  --enable-bcmath  --enable-shmop \
--enable-sysvsem --enable-mbregex  --enable-mbstring --enable-pcntl  \
--enable-zip --enable-ftp --enable-sockets --enable-soap
--with-libevent-dir=/usr
make && make install

cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm

cp -r sapi/fpm/php-fpm.conf /usr/local/etc/
配置php-fpm.conf文件中相关参数

启动php-fpm
/etc/init.d/php-fpm start


3.修改apache,让apache支持php-fpm
vi httpd.conf
add LoadModule fastcgi_module modules/mod_fastcgi.so
在vhosts.conf文件的项目中加入以下
    ScriptAlias /cgi-bin/ "/map/app/php5_poi/bin/"
FastCgiExternalServer /map/app/php5_poi/bin/php-fpm -host 127.0.0.1:9000  #php由外部的fastcgi来处理
AddType application/x-httpd-php .php
AddHandler php5-fastcgi .php
Action php5-fastcgi /cgi-bin/php-fpm
#Action php5-fastcgi /cgi-bin/php-fpm中的php-fpm一定要和FastCgiExternalServer中的文件名一样.而且/cgi-bin/和前面的ScriptAlias的路径也要一样,两句放一块就是说上面的映射也就是所有的.php文件都由/cgi-bin/php-fpm 处理
否則會出錯的.

<Directory "/map/app/php5_poi/bin/">
Options -Indexes FollowSymLinks +ExecCGI
Order allow,deny
Allow from all
</Directory>
加完以上的,安装完成了。但是php-fpm.conf配置文件需要优化。

kazaff 发表于 2012-8-20 21:45

[b]回复 [url=http://www.wdlinux.cn/bbs/redirect.php?goto=findpost&pid=12317&ptid=3330]2#[/url] [i]qqcm[/i] [/b]


   您指的重新编译apache,是不是就是mod_fastcgi的编译和配置?

基本上你发的步骤我都做了,不过我发现你帖的代码应该不是基于在wdlinux的吧?应该是你自己配置的环境!
[quote]#Action php5-fastcgi /cgi-bin/php-fpm中的php-fpm一定要和FastCgiExternalServer中的文件名一样.而且/cgi-bin/和前面的ScriptAlias的路径也要一样,两句放一块就是说上面的映射也就是所有的.php文件都由/cgi-bin/php-fpm 处理
否則會出錯的.

<Directory "/map/app/php5_poi/bin/">
Options -Indexes FollowSymLinks +ExecCGI
Order allow,deny
Allow from all
</Directory>
加完以上的[/quote]


上面这部分内容我不是很明白,能否给我看一下您的apache配置文件呢?感激不尽

kazaff 发表于 2012-8-20 23:24

[b]回复 [url=http://www.wdlinux.cn/bbs/redirect.php?goto=findpost&pid=12317&ptid=3330]2#[/url] [i]qqcm[/i] [/b]


   Not Found[p=30, 2, left]The requested URL /cgi-bin/php-fpm/index.php was not found on this server.[/p]


[p=30, 2, left]我按照您的步骤又测试了一遍,不知道这个问题是为什么?[/p]

kazaff 发表于 2012-8-20 23:29

[b]回复 [url=http://www.wdlinux.cn/bbs/redirect.php?goto=findpost&pid=12317&ptid=3330]2#[/url] [i]qqcm[/i] [/b]


   阿西吧,我去掉httpd.conf中原先的那个ScriptAlias后,提示又变了:


Forbidden[p=30, 2, left]You don't have permission to access /cgi-bin/php-fpm/phpinfo.php on this server.[/p]
[p=30, 2, left]我不清楚为什么我的根目录变成这样了?而且这次提示又是没权限!fuck[/p]

kazaff 发表于 2012-8-20 23:41

妈的,真搞不懂权限问题,nobody用户不行么?也不能改成root,我还能怎么办?我都不确定是不是这个设置的问题!!阿西吧,崩溃了

qqcm 发表于 2012-8-21 01:20

[b]回复 [url=http://www.wdlinux.cn/bbs/redirect.php?goto=findpost&pid=12325&ptid=3330]6#[/url] [i]kazaff[/i] [/b]


    你编译的是wdlinux的环境,那么就需要遵守wdlinux的路径来安装显然网站目录都没配置正确。还要注意权限问题。php-fpm本身是为nginx量身定制,运行于apache可以说牵强了些。毕竟已经不再是php5.2.x时的php-fpm了。

kazaff 发表于 2012-8-21 08:11

[b]回复 [url=http://www.wdlinux.cn/bbs/redirect.php?goto=findpost&pid=12328&ptid=3330]7#[/url] [i]qqcm[/i] [/b]


   那您能说一下我应该如何设置权限么?

kazaff 发表于 2012-8-21 10:33

[b]回复 [url=http://www.wdlinux.cn/bbs/redirect.php?goto=findpost&pid=12333&ptid=3330]8#[/url] [i]kazaff[/i] [/b]


   --with-libevent-dir=/usr这个参数我在编译php5.3.16的时候提示unknow~正常么?

qqcm 发表于 2012-8-21 21:13

[b]回复 [url=http://www.wdlinux.cn/bbs/redirect.php?goto=findpost&pid=12337&ptid=3330]9#[/url] [i]kazaff[/i] [/b]


    听我的就不要再apache中用php-fpm,apache要安装fastcgi模块,而这个东西好几年没更新了,不稳定。针对你的问题请去掉--with-[size=2][color=#cc0000]libevent-dir     要么 运行一下 yum -y install libevent  先把这个模块安装了再编译php[/color][/size]

kazaff 发表于 2012-8-22 16:34

[b]回复 [url=http://www.wdlinux.cn/bbs/redirect.php?goto=findpost&pid=12360&ptid=3330]10#[/url] [i]qqcm[/i] [/b]


   嗯,谢谢,我已经放弃了,太TM折腾人了啊!

hoteri 发表于 2012-9-17 22:18

wdlinux 这方面太欠缺了

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.