编译安装PHP-5.4.3,启动PHP-FPM总是初始化失败

2012-06-06 10:16:54 +08:00
 qq286735628
编译的时候,配置如下
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --enable-fpm

make && make install后,执行/usr/local/php/sbin/php-fpm,会提示初始化错误

安装的时候,会自动生成一个/usr/local/php-5.2.13/的文件夹,并且运行php-fpm的时候,总会提示5.2.13文件夹中缺少某些文件~

被这个问题困扰一天了一直不知道是什么原因
8673 次点击
所在节点    PHP
17 条回复
Sunyanzi
2012-06-06 10:32:47 +08:00
mv /usr/local/php/etc/php-fpm.* /usr/local/php/etc/php-fpm.conf

用 * 主要是因为我忘了那文件叫什么了 ... 大概是 php-fpm.conf.default ..?

出错信息里不是写的很明白么 ...

再及 ... 最近在 CentOS / Debian 和 Lion 上都安过 5.4.3 ...

都没有出现自动生成 php-5.2.13 的那个问题 ... 查查别的地方吧 ...
qq286735628
2012-06-06 10:35:48 +08:00
@Sunyanzi 配置文件已经移动了~

有个疑问,为什么网上看到的php-fpm.conf的格式是标准的xml,但是这里面装好的却不是xml的格式

我的出错信息都在于/php-5.2.13里面缺少文件,很纳闷
solf
2012-06-06 10:58:59 +08:00
你装的是5.2还是5.4?只有5.3以上才内置了php-fpm,xml格式的php-fpm.conf是5.2的
qq286735628
2012-06-06 11:02:38 +08:00
@solf
我装的是5.4.3,但是不知道为什么,我的php-fpm会和/usr/local/php-5.2.13这里面的东西扯上关系
qq286735628
2012-06-06 11:10:45 +08:00
我刚才自己去/usr/local/php-5.2.13/里面生成几个目录,然后php-fpm可以运行了
root 28214 0.0 0.1 54556 2944 ? Ss 11:15 0:00 php-fpm: master process (/usr/local/php-5.2.13/etc/php-fpm.conf)
nobody 28215 0.0 0.1 54556 2684 ? S 11:15 0:00 php-fpm: pool www
nobody 28216 0.0 0.1 54556 2684 ? S 11:15 0:00 php-fpm: pool www

不过我在浏览器中还是不能执行php的文件。

运行php-fpm,进程中会出现php-cgi吗?我的没看到有CGI

@Sunyanzi @solf
franksin
2012-06-06 11:43:34 +08:00
把出错信息粘出来看看吧,要原文,...
qq286735628
2012-06-06 11:48:46 +08:00
@franksin 谢谢关注,我刚才在/usr/local/php-5.2.13里面新建了/var/log/以及/var/run/目录后,PHP-FPM就能启动了。

不过现在没法重启php-fpm

/usr/local/php/sbin/php-fpm -h

Usage: php [-n] [-e] [-h] [-i] [-m] [-v] [-t] [-p <prefix>] [-g <pid>] [-c <file>] [-d foo[=bar]] [-y <file>]
-c <path>|<file> Look for php.ini file in this directory
-n No php.ini file will be used
-d foo[=bar] Define INI entry foo with value 'bar'
-e Generate extended information for debugger/profiler
-h This help
-i PHP information
-m Show compiled in modules
-v Version number
-p, --prefix <dir>
Specify alternative prefix path to FastCGI process manager (default: /usr/local/php-5.2.13).
-g, --pid <file>
Specify the PID file location.
-y, --fpm-config <file>
Specify alternative path to FastCGI process manager config file.
-t, --test Test FPM configuration and exit

那些restart啥的都有也没法用
franksin
2012-06-06 20:55:03 +08:00
恩,restart我也没搞成功过。。。直接用pid来 -HUP吧。。。
shiny
2012-06-06 21:25:44 +08:00
不知道为啥喜欢折腾编译安装呢。
一、"有个疑问,为什么网上看到的php-fpm.conf的格式是标准的xml,但是这里面装好的却不是xml的格式"
在PHP5.3之前,php-fpm是一个非官方的补丁包;在PHP5.3之后,纳入官方发行版。
之前的配置文件都是XML格式的,官方发行版里的都是ini格式的。
另外一个区别是,PHP5.2.X的PHP-FPM仅支持静态设置进程数,而PHP5.3之后能够动态管理进程数。

二、php-fpm如果是编译安装的,都是要自己准备好相应的init-script并chkconfig --add (如果你是cent os的话。如果是ubuntu则不需要),然后用service php-fpm start/stop/restart/reload
否则,你只能在/etc/rc.local里指定开机命令行,并且管理特麻烦。

三、安装的目录只能在./configure里指定,我怀疑你是不是配置错了路径,或者从网上抄了没注意?
四、如果能make && make install成功,一般是不会缺组件的(默认情况下)
Tianpu
2012-06-06 21:53:13 +08:00
@shiny 512M内存的时候每天跑个几十万PV 数据库有几个G 不编译能用?
infong
2012-06-06 21:59:16 +08:00
/usr/local/php/sbin/php-fpm -v 一下,看是不是5.4.3的
觉得这个php-fpm是5.2.x的,
另 /usr/local/php/bin/php-config看看会输出什么。
shiny
2012-06-06 22:09:23 +08:00
@Tianpu 都这么多PV了,又不是搞公益,为什么小气那么点内存呢?小内存VPS什么优化手段都没法使,守着个编译PHP以为灵丹妙药,真是。。。。
kojp
2012-06-06 22:24:58 +08:00
@shiny
我也在怀疑编译和非编译安装在性能上会相差很大吗?
Tianpu
2012-06-07 05:50:01 +08:00
@shiny 所有东西自己造 PV翻10倍还有潜力 都是蜘蛛爬的 是人就好了 哎
Tianpu
2012-06-07 05:51:23 +08:00
@kojp 看应用了 比如我除了正则和PHP基本功能不需要 那一个进程可以节省不少内存的
qq286735628
2012-06-07 09:11:17 +08:00
@shiny
我的安装路径是/usr/local/php,最小化编译,我只添加了--enable-fpm
@infong
/usr/local/php/sbin/php-fpm -v
得到的是5.4.3

/usr/local/php/bin/php-config的结果:

Usage: ./php-config [OPTION]
Options:
--prefix [/usr/local/php]
--includes [-I/usr/local/php/include/php -I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM -I/usr/local/php/include/php/Zend -I/usr/local/php/include/php/ext -I/usr/local/php/include/php/ext/date/lib]
--ldflags [ -L/usr/local/lib -L/usr/local/mysql/lib]
--libs [-lcrypt -lresolv -lcrypt -lrt -lmysqlclient -lrt -lm -ldl -lnsl -lrt -lxml2 -lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -lcrypt -lxml2 -lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -lcrypt ]
--extension-dir [/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525]
--include-dir [/usr/local/php/include/php]
--man-dir [/usr/local/php/php/man]
--php-binary [/usr/local/php/bin/php]
--php-sapis [ cli fpm cgi]
--configure-options [--prefix=/usr/local/php --with-mysql=/usr/local/mysql --enable-fpm]
--version [5.4.3]
--vernum [50403]

BTW:
编译安装按需定制,需要什么用什么~
其实我开始到也想用包管理的这类东西,不过客观环境受限,SUSE企业版的yast2这种包管理我没用功,安装东西总要放光盘,不懂得自己上网下载,才用编译~
cy527300280
2012-06-07 11:32:16 +08:00
还是用ubuntu方便,一条命令搞定

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/38540

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX