源码编译安装PHP

PHP在Linux机器上的安装是非常方便的,不同发行版的源里都有PHP的安装包,安装起来简单快速,对于一些简单的网站、应用等完全能够满足。往往以这种形式安装的PHP版本比较低,目前最高也就只有到5.5版本的。我的CentOS6.6支持的PHP版本才到5.3,5.3和5.5的性能差距是很大的,如果对程序的性能有较高的要求,那么首先提升PHP的版本是最简单直接的方法。这时候,只能编译安装较高版本的PHP了。

安装PHP前,需要安装编译环境和PHP的相关依赖。
Ubuntu环境下:

sudo apt-get install build-essential gcc g++ autoconf libiconv-hook-dev libmcrypt-dev libxml2-dev libmysqlclient-dev libcurl4-openssl-dev libjpeg8-dev libpng12-dev libfreetype6-dev

CentOS环境下:

yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers gd gd2 gd-devel gd2-devel perl-CPAN pcre-devel

然后安装下载好的PHP

cd php-5.6.15/
./configure --prefix=/usr/local/php --with-config-file-path=/etc/php --enable-fpm --enable-pcntl --enable-mysqlnd --enable-opcache --enable-sockets --enable-sysvmsg --enable-sysvsem  --enable-sysvshm --enable-shmop --enable-zip --enable-ftp --enable-soap --enable-xml --enable-mbstring --disable-rpath --disable-debug --disable-fileinfo --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-pcre-regex --with-iconv --with-zlib --with-mcrypt --with-gd --with-openssl --with-mhash --with-xmlrpc --with-curl --with-imap-ssl
sudo make
sudo make install
sudo cp php.ini-development /etc/php/php.ini

安装完成之后,还没办法直接使用新版的PHP,需要修改环境变量才可以,打开~/.bashrc,末尾加入下面两行:

export PATH=/usr/local/php/bin:$PATH
export PATH=/usr/local/php/sbin:$PATH

保存后,输入下面代码使之生效:

source ~/.bashrc

好了现在查看一下PHP的版本(php -v),已经改变了。

PHP 5.6.15 (cli) (built: Nov 12 2015 10:38:55)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies

上面我主要参考了swoole文档中的一段讲解,URL:环境搭建及扩展安装

OK了,PHP现在已经可以使用了,但是只能在cli下使用,如果想通过Web去使用,还需要启动他的php-fpm。

如果当前机器上有正在运行的php-fpm,通过Web访问可以看到PHP的版本还是之前旧的版本,需要停掉旧的php-fpm。

service php-fpm stop

之前我将PHP安装在了 /usr/local/php/ 目录下,他的php-fpm就在 /usr/local/php/sbin/php-fpm,配置文件在/usr/local/php/etc/php-fpm.conf。启动这里的php-fpm就可以了,在启动前可以修改php-fpm.conf的配置,合理的配置php-fpm,可以有效的提升Web请求的处理效率,当然也可以使用默认配置启动php-fpm。

php-fpm的相关操作:

#测试php-fpm配置
/usr/local/php/sbin/php-fpm -t
/usr/local/php/sbin/php-fpm -c /etc/php/php.ini -y /usr/local/php/etc/php-fpm.conf -t
 
#启动php-fpm
/usr/local/php/sbin/php-fpm
/usr/local/php/sbin/php-fpm -c /etc/php/php.ini -y /usr/local/php/etc/php-fpm.conf
 
#关闭php-fpm
kill -INT `cat /usr/local/php/var/run/php-fpm.pid`
 
#重启php-fpm
kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`

通过kill想php-fpm发送的信号:

INT, TERM 立刻终止
QUIT 平滑终止
USR1 重新打开日志文件
USR2 平滑重载所有worker进程并重新载入配置和二进制模块

OK,启动php-fpm后,就可以看到9000端口被php-fpm占用了,在通过Web访问以下,没有问题。

有关其他php-fpm的说明,可以参考以下链接:
php-fpm – 启动参数及重要配置详解
php-fpm的安装和启动

发表评论

电子邮件地址不会被公开。 必填项已用*标注