centos編譯安裝php-fpm的方法:首先通過“yum install wget vim”安裝依賴軟件;然后安裝php依賴;接著拷貝“php.ini-production”到編譯時指定的配置文件目錄;最后檢查PHP版本即可。
推薦:《PHP視頻教程》
CentOS7下編譯安裝PHP5.4.45并編譯php-fpm
系統(tǒng)環(huán)境
uname?-a Linux?localhost.localdomain?3.10.0-514.el7.x86_64?#1?SMP?Tue?Nov?22?16:42:41?UTC?2016?x86_64?x86_64?x86_64?GNU/Linux cat?/etc/redhat-release CentOS?Linux?release?7.3.1611?(Core) date Fri?Feb?2?22:12:58?CST?2018
所需文件
立即學習“PHP免費學習筆記(深入)”;
源碼
PHP : http://sg2.php.net/distributions/php-5.4.45.tar.gz
編譯環(huán)境
gcc
依賴:cpp、glibc-devel、glibc-headers、kernel-headers、libmpc、mpfr
伴隨升級:glibc、glibc-common、libgcc、libgomp
gcc-c++
依賴:libstdc++-devel
伴隨升級:libstdc++
yum install gcc gcc-c++
依賴軟件
yum?install?wget?vim
wget用于下載,vim方便編輯文件
編譯安裝需要對應功能的頭文件,頭文件的獲得方式有兩個方式,一個是通過yum安裝對應的devel包,里面就包含了編譯過程中所需要文件;另外一種方式就是下載需要的源碼包,并且解壓縮,然后在configue中指定源文件位置即可。
開始安裝
安裝php依賴
這里使用yum進行安裝,當然,也可以選擇使用源碼包。使用源碼時,最好選擇與yum相對應的版本,否則可能會不現(xiàn)兼容性問題。
源碼下載位置:http://vault.centos.org/centos/7/os/Source/SPackages/
yum?install?libxml2-devel????#2.9.1 yum?install?openssl?openssl-devel???#1.0.2k yum?install?bzip2?bzip2-devel???#1.0.6 yum?install?curl?curl-devel???#7.29.0 yum?install?libjpeg?libjpeg-devel???#libjpeg-turbo-1.2.90 yum?install?libpng?libpng-devel??#1.5.13 yum?install?libxslt?libxslt-devel??#1.1.28 yum?install?freetype?freetype-devel???#2.4.11 yum?install?gmp?gmp-devel???#6.0.0 yum?install?icu?libicu-devel???#50.1.2 yum?install?-y?epel-release?&&?yum?install?-y?libmcrypt?libmcrypt-devel???#2.5.8該包CentOS默認源中沒有,所以使用epel的源 yum?install?unixODBC?unixODBC-devel?#2.3.1
下面這些會依賴安裝,如不確定也可手動再安裝一次
gettext???#0.18.2.1 zlib???#1.2.7 pcre???#8.32 libpng???#1.5.13
若使用源碼方式,為保證功能完整性,需安裝以下包:
yum?install?libxml2?openssl?bzip2?curl?libjpeg?freetype?gmp?icu?libicu?libmcrypt?unixODBC?gettext?zlib?pcre?libpng
安裝php
php:
wget?http://sg2.php.net/distributions/php-5.4.45.tar.gz tar?zxvf?php-5.4.45.tar.gz cd?php-5.4.45 ./configure? --prefix=/opt/web_engine/php? --with-config-file-path=/opt/web_engine/php/etc? --with-gettext? --with-gmp? --with-mysql? --with-openssl? --with-pdo-mysql? --with-bz2? --with-curl? --with-mcrypt? --with-mhash? --with-freetype-dir? --with-unixODBC=/usr/? --with-pdo-odbc=unixODBC,/usr/? --with-libxml-dir? --with-zlib? --with-pcre-dir? --with-gd? --with-jpeg-dir? --with-png-dir? --with-xmlrpc? --with-libxml-dir? --with-xsl? --enable-soap? --enable-sysvmsg? --enable-wddx? --enable-zip? --enable-exif? --enable-intl? --enable-bcmath? --enable-calendar? --enable-mbstring? --enable-shmop? --enable-fpm? --enable-sockets make?&&?make?install Installing?PHP?CLI?binary:?/opt/web_engine/php/bin/ Installing?PHP?CLI?man?page:?/opt/web_engine/php/php/man/man1/ Installing?PHP?FPM?binary:?/opt/web_engine/php/sbin/ Installing?PHP?FPM?config:?/opt/web_engine/php/etc/ Installing?PHP?FPM?man?page:?/opt/web_engine/php/php/man/man8/ Installing?PHP?FPM?status?page:?/opt/web_engine/php/php/fpm/ Installing?PHP?CGI?binary:?/opt/web_engine/php/bin/ Installing?PHP?CGI?man?page:?/opt/web_engine/php/php/man/man1/ Installing?build?environment:?/opt/web_engine/php/lib/php/build/ Installing?header?files:?/opt/web_engine/php/include/php/ Installing?helper?programs:?/opt/web_engine/php/bin/ program:?phpize program:?php-config Installing?man?pages:?/opt/web_engine/php/php/man/man1/ page:?phpize.1 page:?php-config.1 Installing?PEAR?environment:?/opt/web_engine/php/lib/php/ [PEAR]?Archive_Tar?-?installed:?1.3.12 [PEAR]?Console_Getopt?-?installed:?1.3.1 [PEAR]?Structures_Graph-?installed:?1.0.4 [PEAR]?XML_Util?-?installed:?1.2.3 [PEAR]?PEAR?-?installed:?1.9.5 Wrote?PEAR?system?config?file?at:?/opt/web_engine/php/etc/pear.conf You?may?want?to?add:?/opt/web_engine/php/lib/php?to?your?php.ini?include_path /root/php-5.4.45/build/shtool?install?-c?ext/phar/phar.phar?/opt/web_engine/php/bin ln?-s?-f?/opt/web_engine/php/bin/phar.phar?/opt/web_engine/php/bin/phar Installing?PDO?headers:?/opt/web_engine/php/include/php/ext/pdo/
后續(xù)工作
拷貝源碼目錄下的php.ini-production到編譯時指定的配置文件目錄
cp?/root/php-5.4.45/php.ini-production?/opt/web_engine/php/etc cd?/opt/web_engine/php/etc?&&?cp?php.ini-production?php.ini cd?/opt/web_engine/php/etc?&&?cp?php-fpm.conf.default?php-fpm.conf
另外,若有知定義php擴展,則安裝擴展
檢查PHP版本
/opt/web_engine/php/bin/php?-v PHP?5.4.45?(cli)?(built:?Feb?2?2018?15:44:07) Copyright?(c)?1997-2014?The?PHP?Group Zend?Engine?v2.4.0,?Copyright?(c)?1998-2014?Zend?Technologies
查看詳細信息
/opt/web_engine/php/bin/php -i
…
systemd配置
vim?/usr/lib/systemd/system/php-fpm.service ? [Unit] Description=The?PHP?FastCGI?Process?Manager After=syslog.target?network.target ? [Service] Type=simple PIDFile=/opt/web_engine/php/var/run/php-fpm.pid ExecStart=/opt/web_engine/php/sbin/php-fpm?--nodaemonize?--fpm-config?/opt/web_engine/php/etc/php-fpm.conf ExecReload=/bin/kill?-USR2?$MAINPIDe ? [Install] WantedBy=multi-user.target
日志輪換
vim?/etc/logrotate.d/php-fpm /var/log/php-fpm/*.log?{ ????su?root?root ????daily ????missingok ????rotate?52 ????compress ????delaycompress ????notifempty ????olddir?/var/log/php-fpm/archive ????#create?640?nginx?adm ????sharedscripts ????postrotate ????????/bin/kill?-SIGUSR1?`cat?/opt/web_engine/php/var/run/php-fpm.pid?2>/dev/null`?2>/dev/null?||?true ????endscript }