本文地址: http://www.akayzhang.com/article/2
轉(zhuǎn)載請(qǐng)注明出處
把博客服務(wù)器升級(jí)到 php7,享受下 php7 帶來(lái)的暢快感沈跨。
下載
由于php7已合到master,所以直接用主分支即可。
git clone https://github.com/php/php-src.git && cd php-src
生產(chǎn)configure文件
./buildconf
進(jìn)行配置
./configure
--prefix=/apps/lib/php7 \
--exec-prefix=/apps/lib/php7 \
--bindir=/apps/lib/php7/bin \
--sbindir=/apps/lib/php7/sbin \
--includedir=/apps/lib/php7/include \
--libdir=/apps/lib/php7/lib/php \
--mandir=/apps/lib/php7/php/man \
--with-config-file-path=/apps/conf/php7 \
--with-mysql-sock=/var/lib/mysql/mysql.sock \
--with-mcrypt=/usr/include \
--with-mhash --with-openssl? \
--with-mysqli=/usr/bin/mysql_config \
--with-pdo-mysql=/usr \
--with-gd --with-iconv \
--with-zlib \
--enable-zip \
--enable-inline-optimization \
--disable-debug \
--disable-rpath \
--enable-shared \
--enable-xml \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-mbregex \
--enable-mbstring \
--enable-ftp \
--enable-gd-native-ttf \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-soap \
--without-pear \
--with-gettext \
--enable-session \
--with-curl \
--with-jpeg-dir \
--with-freetype-dir \
--enable-opcache \
--enable-fpm \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--without-gdbm \
--disable-fileinfo
/apps/lib/php7是我定義的php7安裝路徑,正常安裝路徑可以定義為/usr/local/php7
用--disable-fileinfo 原因是本人服務(wù)器內(nèi)存只有512M,比較小悲幅,在編譯的過(guò)程中內(nèi)存不夠哦用套鹅,會(huì)報(bào)錯(cuò),如下:
cc: Internal error: Killed (program cc1)
所以添加了--disable-fileinfo汰具,具體原因見(jiàn)https://bugs.php.net/bug.php?id=48809https://bugs.php.net/bug.php?id=48809卓鹿,
還有一個(gè)方法就是增加虛擬內(nèi)存來(lái)加大內(nèi)存,這樣會(huì)加大io留荔,但是在解決編譯內(nèi)存過(guò)大的情況還是挺好的吟孙。
其中configure的各個(gè)配置參數(shù)的作用可通過(guò)
./configure --help
查看,如果要知道你mysql的各個(gè)目錄來(lái)進(jìn)行配置聚蝶,可以通過(guò)這個(gè)命令查看
#如果mysql沒(méi)有開(kāi)啟的話
mysql.server start
ps -ef | grep mysql
可以看到mysql的basedir杰妓,socket等目錄,就可以配置--with-mysql-sock碘勉, --with-mysqli巷挥,--with-mysqli等參數(shù)。
root? ? ? 976? ? 1? 0 10:48 ?? ? ? ? 00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --pid-file=/var/run/mysqld/mysqld.pid --basedir=/usr --user=mysql
mysql? ? 1183? 976? 0 10:48 ?? ? ? ? 00:00:19 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock
編譯安裝
make && make install
配置文件
復(fù)制php配置文件
開(kāi)發(fā)環(huán)境
cp php.ini-development /apps/conf/php7/php.ini
生產(chǎn)環(huán)境
cp? php.ini-production /apps/conf/php7/php.ini
添加redis擴(kuò)展
由于博客用到redis验靡,接下來(lái)安裝php-redis擴(kuò)展倍宾,redis目前沒(méi)有官方穩(wěn)定版,但是我所在的公司已經(jīng)將開(kāi)發(fā)版用于生產(chǎn)環(huán)境胜嗓,沒(méi)出現(xiàn)什么大問(wèn)題高职。
git clone https://github.com/phpredis/phpredis.git
cd phpredis
git checkout -b php7 origin/php7
/usr/local/php7/bin/phpize
./configure --with-php-config=/usr/local/php7/bin/php-config
make
sudo make install
編輯php.ini 加上
[redis]
extension=redis.so
done