V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
qq286735628
V2EX  ›  PHP

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

  •  
  •   qq286735628 · 2012-06-06 10:16:54 +08:00 · 8658 次点击
    这是一个创建于 4335 天前的主题,其中的信息可能已经有所发展或是发生改变。
    编译的时候,配置如下
    ./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文件夹中缺少某些文件~

    被这个问题困扰一天了一直不知道是什么原因
    17 条回复    1970-01-01 08:00:00 +08:00
    Sunyanzi
        1
    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
        2
    qq286735628  
    OP
       2012-06-06 10:35:48 +08:00
    @Sunyanzi 配置文件已经移动了~

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

    我的出错信息都在于/php-5.2.13里面缺少文件,很纳闷
    solf
        3
    solf  
       2012-06-06 10:58:59 +08:00
    你装的是5.2还是5.4?只有5.3以上才内置了php-fpm,xml格式的php-fpm.conf是5.2的
    qq286735628
        4
    qq286735628  
    OP
       2012-06-06 11:02:38 +08:00
    @solf
    我装的是5.4.3,但是不知道为什么,我的php-fpm会和/usr/local/php-5.2.13这里面的东西扯上关系
    qq286735628
        5
    qq286735628  
    OP
       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
        6
    franksin  
       2012-06-06 11:43:34 +08:00
    把出错信息粘出来看看吧,要原文,...
    qq286735628
        7
    qq286735628  
    OP
       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
        8
    franksin  
       2012-06-06 20:55:03 +08:00
    恩,restart我也没搞成功过。。。直接用pid来 -HUP吧。。。
    shiny
        9
    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
        10
    Tianpu  
       2012-06-06 21:53:13 +08:00
    @shiny 512M内存的时候每天跑个几十万PV 数据库有几个G 不编译能用?
    infong
        11
    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
        12
    shiny  
       2012-06-06 22:09:23 +08:00
    @Tianpu 都这么多PV了,又不是搞公益,为什么小气那么点内存呢?小内存VPS什么优化手段都没法使,守着个编译PHP以为灵丹妙药,真是。。。。
    kojp
        13
    kojp  
       2012-06-06 22:24:58 +08:00
    @shiny
    我也在怀疑编译和非编译安装在性能上会相差很大吗?
    Tianpu
        14
    Tianpu  
       2012-06-07 05:50:01 +08:00
    @shiny 所有东西自己造 PV翻10倍还有潜力 都是蜘蛛爬的 是人就好了 哎
    Tianpu
        15
    Tianpu  
       2012-06-07 05:51:23 +08:00
    @kojp 看应用了 比如我除了正则和PHP基本功能不需要 那一个进程可以节省不少内存的
    qq286735628
        16
    qq286735628  
    OP
       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
        17
    cy527300280  
       2012-06-07 11:32:16 +08:00
    还是用ubuntu方便,一条命令搞定
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2879 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 13:45 · PVG 21:45 · LAX 06:45 · JFK 09:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.