linux實踐——編譯安裝PHP7


說在前面:

  本人系統ubuntu12.04 64位,先前編譯安裝有php5.5.7版本,現在為了滿足composer對php的版本要求特嘗試安裝php7,使用的用戶為www先前已經添加。

安裝依賴庫:  

apt-get install libxml2-dev openssl libjpeg-dev libpng-dev  libcurl3-openssl-dev libfreetype6-dev libxslt-dev

指定下載目錄並下載源碼:  

cd /tmp
wget  http://cn2.PHP.net/distributions/php-7.0.5.tar.gz  
#http://cn.php.net/distributions/php-7.0.18.tar.gz

解壓進入目錄:  

tar zxvf php-7.0.5.tar.gz
cd php-php-7.0.5
mkdir -p /alidata/server/php-7.0.5
ln -s /alidata/server/php-7.0.5 /alidata/server/php70
mkdir -p /alidata/log/php70
touch /alidata/log/php70/php-fpm.log

  

編譯:

#防止網絡中斷帶來不必要的麻煩可以使用screen命令多重視窗管理程序
screen -S installphp7
#如果網絡中斷可用screen -r installphp7恢復現場,exit直接退出screen作業
#顯示目前所有的screen作業 screen -ls
./configure  --prefix=/alidata/server/php70  \
--with-curl \
--with-freetype-dir  \
--with-gd \
--with-gettext  \
--with-iconv-dir  \
--with-kerberos  \
--with-libdir=lib64  \
--with-libxml-dir \
 --with-mysqli  \
--with-openssl  \
--with-pcre-regex  \
--with-pdo-mysql  \
--with-pdo-sqlite  \
--with-pear  \
--with-png-dir  \
--with-xmlrpc  \
--with-xsl \
 --with-zlib  \
--enable-fpm  \
--enable-bcmath  \
--enable-libxml  \
--enable-inline-optimization  \
--enable-gd-native-ttf  \
--enable-mbregex  \
--enable-mbstring  \
--enable-opcache  \
--enable-pcntl  \
--enable-shmop  \
--enable-soap  \
--enable-sockets  \
--enable-sysvsem  \
--enable-xml  \
--enable-zip

安裝,短則幾分鍾長則幾十分鍾視機器速度而定:

make
make install

復制配置文件:

cp php.ini-production /alidata/server/php70/etc/php.ini
#adjust php.ini
sed -i 's#; extension_dir = \"\.\/\"#extension_dir = "/alidata/server/php70/lib/php/extensions/no-debug-non-zts-20151012/"#'  /alidata/server/php70/etc/php.ini
sed -i 's#extension_dir = \"\.\/\"#extension_dir = "/alidata/server/php70/lib/php/extensions/no-debug-non-zts-20151012/"#'  /alidata/server/php70/etc/php.ini
sed -i 's/post_max_size = 8M/post_max_size = 64M/g' /alidata/server/php70/etc/php.ini
sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 64M/g' /alidata/server/php70/etc/php.ini
sed -i 's/;date.timezone =/date.timezone = PRC/g' /alidata/server/php70/etc/php.ini
sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=1/g' /alidata/server/php70/etc/php.ini
sed -i 's/max_execution_time = 30/max_execution_time = 300/g' /alidata/server/php70/etc/php.ini
#adjust php-fpm
cp /alidata/server/php70/etc/php-fpm.conf.default /alidata/server/php70/etc/php-fpm.conf
sed -i 's,user = nobody,user=www,g'   /alidata/server/php70/etc/php-fpm.conf
sed -i 's,group = nobody,group=www,g'   /alidata/server/php70/etc/php-fpm.conf
sed -i 's,^pm.min_spare_servers = 1,pm.min_spare_servers = 5,g'   /alidata/server/php70/etc/php-fpm.conf
sed -i 's,^pm.max_spare_servers = 3,pm.max_spare_servers = 35,g'   /alidata/server/php70/etc/php-fpm.conf
sed -i 's,^pm.max_children = 5,pm.max_children = 100,g'   /alidata/server/php70/etc/php-fpm.conf
sed -i 's,^pm.start_servers = 2,pm.start_servers = 20,g'   /alidata/server/php70/etc/php-fpm.conf
sed -i 's,;pid = run/php-fpm.pid,pid = run/php-fpm.pid,g'   /alidata/server/php70/etc/php-fpm.conf
sed -i 's,;error_log = log/php-fpm.log,error_log = /alidata/log/php70/php-fpm.log,g'   /alidata/server/php70/etc/php-fpm.conf
sed -i 's,;slowlog = log/$pool.log.slow,slowlog = /alidata/log/php70/\$pool.log.slow,g'   /alidata/server/php70/etc/php-fpm.conf
sed -i 's,user = nobody,user=www,g'   /alidata/server/php70/etc/php-fpm.d/www.conf
sed -i 's,group = nobody,group=www,g'   /alidata/server/php70/etc/php-fpm.d/www.conf
sed -i 's,^pm.min_spare_servers = 1,pm.min_spare_servers = 5,g'   /alidata/server/php70/etc/php-fpm.d/www.conf
sed -i 's,^pm.max_spare_servers = 3,pm.max_spare_servers = 35,g'   /alidata/server/php70/etc/php-fpm.d/www.conf
sed -i 's,^pm.max_children = 5,pm.max_children = 100,g'   /alidata/server/php70/etc/php-fpm.d/www.conf
sed -i 's,^pm.start_servers = 2,pm.start_servers = 20,g'   /alidata/server/php70/etc/php-fpm.d/www.conf
sed -i 's,;pid = run/php-fpm.pid,pid = run/php-fpm.pid,g'   /alidata/server/php70/etc/php-fpm.d/www.conf
sed -i 's,;error_log = log/php-fpm.log,error_log = /alidata/log/php70/php-fpm.log,g'   /alidata/server/php70/etc/php-fpm.d/www.conf
sed -i 's,;slowlog = log/$pool.log.slow,slowlog = /alidata/log/php70/\$pool.log.slow,g'   /alidata/server/php70/etc/php-fpm.d/www.conf
#self start
install -v -m755 ./sapi/fpm/init.d.php-fpm  /etc/init.d/php-php70
/etc/init.d/php-fpm70 start

啟動成功

Starting php-fpm  done

  

開機自啟動:

echo "/etc/init.d/php-fpm70 start" >> /etc/rc.locale

  

  

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM