Linux安装PHP7.x
众所周知,PHP7的性能和执行速度都有了很大的改进。恰逢最近公司的一些项目也在尝试着迁移到PHP7的环境,由于本人平时开发使用MAC和Linux,而且不愿意使用现成的批量部署工具(不是愿意重复造轮子,而是想知道到底安装了哪些东西)。所以就选择自己编译安装环境。
获取源代码
PHP源代码是开源的,我们可以在PHP的官方下载我们需要的源码包,这里我们以PHP7.1.1为例
# 下载源码
wget http://cn2.php.net/get/php-7.1.2.tar.gz/from/this/mirror
# 解压
tar xvf mirror
安装依赖库
下面就列举下常用的Centos7.x和Ubuntu系的依赖安装
Centos
# 包含扩展依赖的开发库
sudo 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
# 包含编译源码必要的类库
sudo yum groupinstall "Development Tools"
Ubuntu
sudo apt-get install libcurl4-openssl-dev libbz2-dev libssl-dev libxml2-dev libjpeg-dev libpng12-dev libfreetype6 libfreetype6-dev libgmp3-dev libmcrypt4 libmcrypt-dev libreadline-dev libxslt1.1 libxslt-dev
开始编译
进入我们的源码目录,首先配置安装。安装上所有常用的扩展。注意,这里的PHP的安装目录是/alidata/server/php
./configure \
--prefix=/alidata/server/php \
--with-config-file-path=/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-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--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 \
--enable-mysqlnd-compression-support \
--with-pear \
--enable-opcache \
--with-libdir=lib64
配置和检查完依赖后,下来就要开始编译了
make
# 如果一切顺利,make结束后,安装就行。如果安装目录没有当前用户的写权限,需要上sudo
sudo make install
安装完成
安装完成后,还需要做两小步骤
- 添加/alidata/server/php/lib/php到php.ini的include_path
- 添加/alidata/server/php/bin 到环境变量,方便后续使用
至此,PHP安装完成
➜ /etc php -v
PHP 7.1.2 (cli) (built: Feb 17 2017 23:04:39) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologie
常见错误处理
Centos7 安装报如下错误
libmcrypt libmcrypt-devel
未找到,需要下载源码进行安装。默认安装在 /usr/local/lib- 编辑文件/etc/ld.so.conf,添加/usr/local/lib到最后,执行ldconfig