今天繼續作大死,趟php7的配置的坑。
照例,安裝了昨天的各種擴展之後,解壓php7的壓縮文件到 /usr/local/。
然後開始配置config的擴展:
./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
在這裡遇到了第一個坑:坑1。本來保證了全部的擴展命令都是一行,以保證正常安裝。但是安裝完成之後,竟然連個Makefile文件都沒有。所以make和make install命令沒法兒運行。索性先檢查是否所有命令得到了執行。
./configure --enable-fpm
重新安裝fpm之後,Makefile總算是出來了。
然後make一下。出來坑2:
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文件的問題,就去找,果然最後一行是這個樣子的:
include=NONE/etc/php-fpm.d/*.conf
果斷修改為 include=etc/php.fpm.d/*.conf,要不然這個文件的配置擴展會找不到(也就是下面一個坑)
因為這個時候心裡灰常納悶。看到網上說要修改/usr/local/etc/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. user = www-data group = www-data
好嘛,說改就改嘛。我查到根目錄下,有兩個conf,
但是無論是哪一個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
http://xxxxxx/Linuxjc/1178289.html TechArticle