centos6.5 安装php7:
我采用的是编译安装方式。步骤如下:
1.安装依赖包
2.下载源码包
3.解压
4.配置configure
5.编译执行
6.配置
7.运行
1.安装依赖包
安装php7前需要安装所有的依赖,可参考如下(我需要用到postgresql,所以需要安装 postgresql-devel):
# yum install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel pcre-devel postgresql-devel -y
2.下载源码包:
# wget http://cn2.php.net/get/php-7.0.6.tar.gz/from/this/mirror php-7.0.6.tar.gz
3. 解压:
$ tar zxvf php-7.0.6.tar.gz
进入解压目录:
# cd php-7.0.6
4. 创建编译配置文件: 我使用的是postgresql 数据 ,因此需要加载 pdo-pgsql
# ./configure
--prefix=/usr/local/php7.0.12
--with-config-file-path=/usr/local/php7.0.12/etc
--enable-fpm
--with-fpm-user=nginx
--with-fpm-group=nginx
--enable-inline-optimization
--disable-debug
--disable-rpath
--enable-shared
--enable-soap
--with-libxml-dir
--with-xmlrpc
--with-openssl
--with-mcrypt
--with-mhash
--with-pcre-regex
--with-sqlite3
--with-zlib
--enable-bcmath
--with-iconv
--with-bz2
--enable-calendar
--with-curl
--with-cdb
--enable-dom
--enable-exif
--enable-fileinfo
--enable-filter
--with-pcre-dir
--enable-ftp
--with-gd
--with-openssl-dir
--with-jpeg-dir
--with-png-dir
--with-zlib-dir
--with-freetype-dir
--enable-gd-native-ttf
--enable-gd-jis-conv
--with-gettext
--with-gmp
--with-mhash
--enable-json
--enable-mbstring
--enable-mbregex
--enable-mbregex-backtrack
--with-libmbfl
--with-onig
--enable-pdo
--with-pdo-pgsql=/usr/pgsql-9.5
--with-zlib-dir
--with-pdo-sqlite
--with-readline
--enable-session
--enable-shmop
--enable-simplexml
--enable-sockets
--enable-sysvmsg
--enable-sysvsem
--enable-sysvshm
--enable-wddx
--with-libxml-dir
--with-xsl
--enable-zip
--with-pear
--enable-opcache
--with-mysql=/usr/local/mysql
--with-mysqli=/usr/local/mysql/bin/mysql_config
--with-pdo-mysql=/usr/local/mysql
安装可能会出现异常的报错,一般是依赖导致的,根据报错信息安装和修复相关依赖:
比如:
configure: error: mcrypt.h not found. Please reinstall libmcrypt.
这种情况就需要编译安装libmcrypt,因为yum安装的内容没有mcrypt.h文件。】
下载源代码:
wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz
解压:
tar xvf libmcrypt-2.5.7.tar.gz
配置:
cd libmcrypt-2.5.7
./configure
编译
make
make install
完毕后,我们发现多了文件
/usr/local/include/mcrypt.h
如果出现“configure: error: Don't know how to define struct flock on this system, set --enable-opcache=no”之类的错误
解决办法:
ln -s /usr/local/mysql/lib/libmysqlclient.so /usr/lib/libmysqlclient.so
ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18
在/etc/ld.so.conf.d中添加local.conf文件:
# echo "/usr/local/lib">> /etc/ld.so.conf.d/local.conf
更新动态库:
# ldconfig -v
5.编译执行
# make && make install
编译错误会有日志信息。有错误一般是依赖没有安装或者依赖的配置路径不对,比如要引入pdo_pgsql ,需要在配置中添加且后面要指定已经安装的pgsql数据的安装路径: --with-pdo-pgsql=/usr/pgsql-9.5/
编译成功后建议将php的路径添加到环境变量path中,这样每次登陆都会自动匹配到php的路径。
# vim /etc/profile
在末尾加入
PATH=$PATH:/usr/local/php/bin
export PATH
要使改动立即生效执行
# ./etc/profile
或
# source /etc/profile
查看php版本
# php -v
6.配置php-fpm
配置主要是启动的配置加载文件
# cp php.ini-production /etc/php.ini
# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf # cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
# chmod +x /etc/init.d/php-fpm
7.运行
# /etc/init.d/php-fpm
# ps -ef | grep php // 可以查看启动的进程, netstat -an -tcp | grep php 可以查看网络端口9000已经启动。