Linux編譯升級(jí)php的詳細(xì)方法
更新時(shí)間:2013年11月04日 12:02:35 作者:
Linux編譯升級(jí)php的詳細(xì)方法,有配置php.ini、配置php-fpm.conf的代碼。
服務(wù)器環(huán)境:CentOS – 5.4
php升級(jí):5.4.14 - 5.5.0
升級(jí)心得:比較順利,但是有一點(diǎn)需要說(shuō)明:eaccelerator無(wú)法兼容php5.5.0,好在php在5.5.0默認(rèn)提供了Zend OPcache,所以一直習(xí)慣eaccelerator的朋友如果要升級(jí)到php5.5.0的話,可能要暫時(shí)和eaccelerator說(shuō)bye bye了。
1、安裝php5.5.0
下載php安裝包:http://www.php.net/get/php-5.5.0.tar.gz/from/a/mirror
# 解壓縮安裝包
tar zxvf php-5.5.0.tar.gz
# 進(jìn)入目錄
cd php-5.5.0
# 編譯安裝
./configure \
--prefix=/usr/local/webserver/php-d/php-5.5.0 \
--with-config-file-path=/usr/local/webserver/php-d/php-5.5.0/etc \
--with-config-file-scan-dir=/usr/local/webserver/php-d/php-5.5.0/etc/php.d \
--with-curl=/usr/local/lib \
--with-freetype-dir=/usr/lib64 \
--with-gd \
--with-gettext \
--with-iconv-dir=/usr/local/lib \
--with-jpeg-dir=/usr/lib64 \
--with-kerberos \
--with-ldap \
--with-ldap-sasl \
--with-libdir=lib64 \
--with-libxml-dir=/usr/lib64 \
--with-mcrypt \
--with-mhash \
--with-mysql \
--with-mysqli \
--with-openssl \
--with-pcre-regex=/usr \
--with-pdo-mysql=shared \
--with-pdo-sqlite=shared \
--with-pear=/usr/local/lib/php \
--with-png-dir=/usr/lib64 \
--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 \
--disable-rpath
make ZEND_EXTRA_LIBS='liconv'
make install
cp php.ini-production /usr/local/webserver/php-d/php-5.5.0/etc/php.ini
這里有幾個(gè)地方需要說(shuō)明一下:
安裝時(shí),請(qǐng)根據(jù)自己的情況添加、刪除附加組建,修改對(duì)應(yīng)的目錄路徑
安裝的時(shí)候別忘記了搭配opcache:–enable-opcache
php-5.3.10編譯時(shí)加了–enable-safe-mode選項(xiàng),但是php-5.4.0已經(jīng)去掉了該選項(xiàng),編譯時(shí)可以 ./configure –help | grep “safe-mode” 查看一下,沒(méi)有信息輸出,表示已經(jīng)不支持!
同樣去處的還有:'–enable-discard-path','–enable-fastcgi','–enable-force-cgi-redirect','–with-curlwrappers'
2.編譯安裝php5.5.0擴(kuò)展模塊:
安裝imagick
安裝這個(gè)模塊需要服務(wù)器支持ImageMagick,這里和升級(jí)php無(wú)關(guān),這部分省略,需要的請(qǐng)自行搜索
下載地址:http://pecl.php.net/package/imagick
tar xvzf imagick-3.1.0RC2.tgz
cd imagick-3.1.0RC2
/usr/local/webserver/php-d/php-5.5.0/bin/phpize
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/
./configure --with-php-config=/usr/local/webserver/php-d/php-5.5.0/bin/php-config
make
make install
注意:
避免兼容問(wèn)題,請(qǐng)使用最新版本,請(qǐng)不要使用3.0.1之前的版本
如果安裝的時(shí)候報(bào)錯(cuò)make: *** [imagick_file.lo] 錯(cuò)誤 1,請(qǐng)調(diào)用pkgconfig
以上目錄路徑請(qǐng)根據(jù)個(gè)人情況進(jìn)行修改
安裝memcache:
安裝這個(gè)模塊需要服務(wù)器支持memcached,這里和升級(jí)php無(wú)關(guān),這部分省略,需要的請(qǐng)自行搜索
下載地址:http://pecl.php.net/package/memcache
tar xvzf memcache-3.0.tgz
cd memcache-3.0.8
/usr/local/webserver/php-d/php-5.5.0/bin/phpize
./configure \
--enable-memcache \
--with-php-config=/usr/local/webserver/php-d/php-5.5.0/bin/php-config
make
make install
注:請(qǐng)不要使用2.2.6及以下版本,不兼容
安裝phpredis-master
安裝這個(gè)模塊需要服務(wù)器支持redis,這里和升級(jí)php無(wú)關(guān),這部分省略,需要的請(qǐng)自行搜索
下載地址:https://github.com/nicolasff/phpredis
unzip master
cd phpredis-master
/usr/local/webserver/php-d/php-5.5.0/bin/phpize
./configure \
--enable-redis \
--with-php-config=/usr/local/webserver/php-d/php-5.5.0/bin/php-config
make
make install
至此,所有需要的模塊都安裝完畢。
3.配置php.ini
vi /usr/local/webserver/php-d/php-5.5.0/etc/php.ini
# 找到extension_dir
extension_dir = "/usr/local/webserver/php-d/php-5.5.0/lib/php/extensions/no-debug-non-zts-20121212/"
extension = "imagick.so"
extension = "memcache.so"
extension = "pdo_mysql.so"
extension = "redis.so"
# 找到date.timezone
date.timezone = Asia/Shanghai
# 找到session.save_handler
session.save_handler = redis
# 找到session.save_path
session.save_path = "tcp://127.0.0.1:6379?weight=1"
配置Zend OPcache
一直以來(lái)都習(xí)慣用eAccelerator為php提供加速,但是目前有兩個(gè)問(wèn)題:
eAccelerator暫時(shí)不兼容php5.5.0
eAccelerator和Zend Opcache沖突
好在php5.5.0默認(rèn)提供了Zend Opcache為php加速,配置方法如下:
zend_extension = /usr/local/webserver/php-d/php-5.5.0/lib/php/extensions/no-debug-non-zts-20121212/opcache.so
; 上面zend_extension路徑為opcache.so的路徑
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1
注意:如果在您的php擴(kuò)展模塊找不到opcache.so說(shuō)明沒(méi)有安裝成功,請(qǐng)重新安裝
4.配置php-fpm.conf
pid = /usr/local/webserver/php-d/php-5.5.0/var/run/php-fpm.pid
error_log = /usr/local/webserver/php-d/php-5.5.0/logs/php-fpm.log
log_level = notice
emergency_restart_threshold = 10
emergency_restart_interval = 60s
process_control_timeout = 5s
daemonize = yes
rlimit_files = 65535
rlimit_core = 0
user = www
group = www
listen.backlog = -1
listen.owner = www
listen.group = www
listen.mode = 0666
listen.allowed_clients = 127.0.0.1
pm = static
pm.max_children = 64
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 1024
ping.response = pong
slowlog = /usr/local/webserver/php-d/php-5.5.0/logs/$pool.log.slow
request_slowlog_timeout = 0
request_terminate_timeout = 0
catch_workers_output = yes
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f jht2718@163.com
php_flag[display_errors] = on
備注:請(qǐng)根據(jù)自己的情況修改配置文件
5.修改啟動(dòng)項(xiàng):
cp /usr/local/webserver/php-d/php-5.5.0/bin/php /etc/init.d/php
php升級(jí):5.4.14 - 5.5.0
升級(jí)心得:比較順利,但是有一點(diǎn)需要說(shuō)明:eaccelerator無(wú)法兼容php5.5.0,好在php在5.5.0默認(rèn)提供了Zend OPcache,所以一直習(xí)慣eaccelerator的朋友如果要升級(jí)到php5.5.0的話,可能要暫時(shí)和eaccelerator說(shuō)bye bye了。
1、安裝php5.5.0
下載php安裝包:http://www.php.net/get/php-5.5.0.tar.gz/from/a/mirror
復(fù)制代碼 代碼如下:
# 解壓縮安裝包
tar zxvf php-5.5.0.tar.gz
# 進(jìn)入目錄
cd php-5.5.0
# 編譯安裝
./configure \
--prefix=/usr/local/webserver/php-d/php-5.5.0 \
--with-config-file-path=/usr/local/webserver/php-d/php-5.5.0/etc \
--with-config-file-scan-dir=/usr/local/webserver/php-d/php-5.5.0/etc/php.d \
--with-curl=/usr/local/lib \
--with-freetype-dir=/usr/lib64 \
--with-gd \
--with-gettext \
--with-iconv-dir=/usr/local/lib \
--with-jpeg-dir=/usr/lib64 \
--with-kerberos \
--with-ldap \
--with-ldap-sasl \
--with-libdir=lib64 \
--with-libxml-dir=/usr/lib64 \
--with-mcrypt \
--with-mhash \
--with-mysql \
--with-mysqli \
--with-openssl \
--with-pcre-regex=/usr \
--with-pdo-mysql=shared \
--with-pdo-sqlite=shared \
--with-pear=/usr/local/lib/php \
--with-png-dir=/usr/lib64 \
--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 \
--disable-rpath
make ZEND_EXTRA_LIBS='liconv'
make install
cp php.ini-production /usr/local/webserver/php-d/php-5.5.0/etc/php.ini
這里有幾個(gè)地方需要說(shuō)明一下:
安裝時(shí),請(qǐng)根據(jù)自己的情況添加、刪除附加組建,修改對(duì)應(yīng)的目錄路徑
安裝的時(shí)候別忘記了搭配opcache:–enable-opcache
php-5.3.10編譯時(shí)加了–enable-safe-mode選項(xiàng),但是php-5.4.0已經(jīng)去掉了該選項(xiàng),編譯時(shí)可以 ./configure –help | grep “safe-mode” 查看一下,沒(méi)有信息輸出,表示已經(jīng)不支持!
同樣去處的還有:'–enable-discard-path','–enable-fastcgi','–enable-force-cgi-redirect','–with-curlwrappers'
2.編譯安裝php5.5.0擴(kuò)展模塊:
安裝imagick
安裝這個(gè)模塊需要服務(wù)器支持ImageMagick,這里和升級(jí)php無(wú)關(guān),這部分省略,需要的請(qǐng)自行搜索
下載地址:http://pecl.php.net/package/imagick
復(fù)制代碼 代碼如下:
tar xvzf imagick-3.1.0RC2.tgz
cd imagick-3.1.0RC2
/usr/local/webserver/php-d/php-5.5.0/bin/phpize
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/
./configure --with-php-config=/usr/local/webserver/php-d/php-5.5.0/bin/php-config
make
make install
注意:
避免兼容問(wèn)題,請(qǐng)使用最新版本,請(qǐng)不要使用3.0.1之前的版本
如果安裝的時(shí)候報(bào)錯(cuò)make: *** [imagick_file.lo] 錯(cuò)誤 1,請(qǐng)調(diào)用pkgconfig
以上目錄路徑請(qǐng)根據(jù)個(gè)人情況進(jìn)行修改
安裝memcache:
安裝這個(gè)模塊需要服務(wù)器支持memcached,這里和升級(jí)php無(wú)關(guān),這部分省略,需要的請(qǐng)自行搜索
下載地址:http://pecl.php.net/package/memcache
復(fù)制代碼 代碼如下:
tar xvzf memcache-3.0.tgz
cd memcache-3.0.8
/usr/local/webserver/php-d/php-5.5.0/bin/phpize
./configure \
--enable-memcache \
--with-php-config=/usr/local/webserver/php-d/php-5.5.0/bin/php-config
make
make install
注:請(qǐng)不要使用2.2.6及以下版本,不兼容
安裝phpredis-master
安裝這個(gè)模塊需要服務(wù)器支持redis,這里和升級(jí)php無(wú)關(guān),這部分省略,需要的請(qǐng)自行搜索
下載地址:https://github.com/nicolasff/phpredis
復(fù)制代碼 代碼如下:
unzip master
cd phpredis-master
/usr/local/webserver/php-d/php-5.5.0/bin/phpize
./configure \
--enable-redis \
--with-php-config=/usr/local/webserver/php-d/php-5.5.0/bin/php-config
make
make install
至此,所有需要的模塊都安裝完畢。
3.配置php.ini
復(fù)制代碼 代碼如下:
vi /usr/local/webserver/php-d/php-5.5.0/etc/php.ini
# 找到extension_dir
extension_dir = "/usr/local/webserver/php-d/php-5.5.0/lib/php/extensions/no-debug-non-zts-20121212/"
extension = "imagick.so"
extension = "memcache.so"
extension = "pdo_mysql.so"
extension = "redis.so"
# 找到date.timezone
date.timezone = Asia/Shanghai
# 找到session.save_handler
session.save_handler = redis
# 找到session.save_path
session.save_path = "tcp://127.0.0.1:6379?weight=1"
配置Zend OPcache
一直以來(lái)都習(xí)慣用eAccelerator為php提供加速,但是目前有兩個(gè)問(wèn)題:
eAccelerator暫時(shí)不兼容php5.5.0
eAccelerator和Zend Opcache沖突
好在php5.5.0默認(rèn)提供了Zend Opcache為php加速,配置方法如下:
復(fù)制代碼 代碼如下:
zend_extension = /usr/local/webserver/php-d/php-5.5.0/lib/php/extensions/no-debug-non-zts-20121212/opcache.so
; 上面zend_extension路徑為opcache.so的路徑
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1
注意:如果在您的php擴(kuò)展模塊找不到opcache.so說(shuō)明沒(méi)有安裝成功,請(qǐng)重新安裝
4.配置php-fpm.conf
復(fù)制代碼 代碼如下:
pid = /usr/local/webserver/php-d/php-5.5.0/var/run/php-fpm.pid
error_log = /usr/local/webserver/php-d/php-5.5.0/logs/php-fpm.log
log_level = notice
emergency_restart_threshold = 10
emergency_restart_interval = 60s
process_control_timeout = 5s
daemonize = yes
rlimit_files = 65535
rlimit_core = 0
user = www
group = www
listen.backlog = -1
listen.owner = www
listen.group = www
listen.mode = 0666
listen.allowed_clients = 127.0.0.1
pm = static
pm.max_children = 64
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 1024
ping.response = pong
slowlog = /usr/local/webserver/php-d/php-5.5.0/logs/$pool.log.slow
request_slowlog_timeout = 0
request_terminate_timeout = 0
catch_workers_output = yes
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f jht2718@163.com
php_flag[display_errors] = on
備注:請(qǐng)根據(jù)自己的情況修改配置文件
5.修改啟動(dòng)項(xiàng):
復(fù)制代碼 代碼如下:
cp /usr/local/webserver/php-d/php-5.5.0/bin/php /etc/init.d/php
您可能感興趣的文章:
- 深入探討Linux靜態(tài)庫(kù)與動(dòng)態(tài)庫(kù)的詳解(一看就懂)
- linux生成(加載)動(dòng)態(tài)庫(kù)靜態(tài)庫(kù)和加載示例方法
- 分析Windows和Linux動(dòng)態(tài)庫(kù)
- linux 程序、動(dòng)態(tài)庫(kù)、靜態(tài)庫(kù)內(nèi)部添加版本號(hào)和編譯時(shí)間詳解
- 淺談Linux C語(yǔ)言動(dòng)態(tài)庫(kù)及靜態(tài)庫(kù)
- Linux下nginx編譯安裝教程和編譯參數(shù)詳解
- Linux編譯mssql擴(kuò)展使用php連接sqlserver2008的使用步驟
- 在Linux下編譯C或C++程序的教程
- 解決Linux程序編譯鏈接動(dòng)態(tài)庫(kù)版本的相關(guān)問(wèn)題
相關(guān)文章
分享幾種好用的PHP自定義加密函數(shù)(可逆/不可逆)
最近的項(xiàng)目中一直有用到加密函數(shù),今天來(lái)給大家推薦幾個(gè)好用且我自己常用的加密函數(shù),這幾個(gè)都是可逆的加密函數(shù),其中也有針對(duì)于ID的加密函數(shù),需要的朋友可以參考下2020-09-09在PHP中使用反射技術(shù)的架構(gòu)插件使用說(shuō)明
基于反射的插件架構(gòu)實(shí)際上并沒(méi)有歸類為一種模式,因?yàn)樗鼘?shí)際上不是一個(gè)模板,而是一糸列組合在一起的形成程序架構(gòu)的概念。2010-05-05php類自動(dòng)裝載、鏈?zhǔn)讲僮?、魔術(shù)方法實(shí)現(xiàn)代碼
這篇文章主要介紹了php類自動(dòng)裝載、鏈?zhǔn)讲僮?、魔術(shù)方法,需要的朋友可以參考下2017-07-07