今天继续做大死,趟php7的配置的坑。php
照例,安装了昨天的各类扩展以后,解压php7的压缩文件到 /usr/local/。mysql
而后开始配置config的扩展:nginx
./configure --prefix=/usr/local/php7 \
--with-gd \
--with-freetype-dir \
--enable-gd-native-ttf \
--enable-mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-openssl \
--with-mcrypt \
--enable-mbstring \
--enable-zip \
--enable-fpm sql
在这里遇到了第一个坑:坑1。原本保证了所有的扩展命令都是一行,以保证正常安装。可是安装完成以后,居然连个Makefile文件都没有。因此make和make install命令无法儿运行。索性先检查是否全部命令获得了执行。api
./configure --enable-fpmphp7
从新安装fpm以后,Makefile总算是出来了。php-fpm
而后make一下。出来坑2:ui
ERROR: Unable to globalize '/usr/local/NONE/etc/php-fpm.d/*.conf' (ret=2) from /usr/local/etc/php-fpm.conf at line 125.
这个好说,既然是在 /usr/local/etc/php-fpm.conf文件的问题,就去找,果真最后一行是这个样子的:spa
include=NONE/etc/php-fpm.d/*.conf.net
果断修改成 include=etc/php.fpm.d/*.conf,要否则这个文件的配置扩展会找不到(也就是下面一个坑)
由于这个时候内心灰常纳闷。看到网上说要修改/usr/local/etc/php-fpm.conf里面,
好嘛,说改就改嘛。我查到根目录下,有两个conf,; Unix user/group of processes ; Note: The user is mandatory. If the group is not set, the default user's group ; will be used. user = www-data group = www-data
可是不管是哪个php-fpm.conf文件中,都没有找到
; Unix user/group of processes ; Note: The user is mandatory. If the group is not set, the default user's group ; will be used.
这段话。因此我开始怀疑这个问题是否是有点刻舟求剑了。因而开始找另外两个拓展配置文件:
总算找到了,在php7/sapi/fpm/www.conf下,
把这两个nobody修改为了www-data以后,继续运行 /usr/local/bin/php-fpm 遭遇坑3:
ERROR: [pool www] cannot get uid for user 'www-data'
这个时候心里是十分崩溃的。说好的开启服务呢??
好吧,这个www.conf是什么鬼,我查到了官网中的定义,说
那不就得了,索性所有用nobody避免风险啊。因而开心的改了回来。
再运行 /usr/local/bin/php-fpm ,果真正常启动了。小结:
1.在解压后,将文件夹放到/usr/local/下以后,若是安装 ./configure 扩展后没有出现Makefile,要考虑编译 PHP 时须要 --enable-fpm
配置选项来激活 FPM 支持,因此要从新安装一次确保安装成功:
./configure --enable-fpm
2.总共须要修改四个文件,首先,保证下面两个php-fpm.conf的扩展配置文件www.conf里面的user group 都是默认的nobody
/usr/local/etc/php-fpm.d/www.conf
/usr/local/php7/sapi/fpm/www.conf
3.其次在下面两个文件中最后一行的 include=NONE/etc/php-fpm.d/*.conf修改成include=etc/php-
fpm.d/*.conf
/usr/local/etc/php-fpm.conf
/usr/local/php7/sapi/fpm/php-fpm.conf
4.由于修改了配置文件中的用户和用户组,则须要从新运行
./configure --enable-fpm --with-mysqli --with-fpm-user=nobody --with-fpm-group=nobody
最后贴出引用过的官方文档地址:
http://php.net/manual/zh/install.fpm.install.php
http://php.net/manual/zh/install.unix.nginx.php