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

本文遵守 CC-BY-NC-4.0 许可协议。

Creative Commons License

欢迎转载,转载需注明出处,且禁止用于商业目的。

上篇Java泛型函数
下篇ThinkPHP定时任务(二)