Ubuntu 16 之源码编译安装 PHP 7

▪ 环境

操作系统:Ubuntu 16

软件版本:PHP 7.1.9

▪ 安装

1. 基础软件

通过 sudo apt-cache search all | grep [name] 的方式验证以下软件包是否已全部安装

libxml2 libxml2-dev openssl libssl-dev libcurl3-dev libjpeg8 libjpeg8-dev libpng-dev libfreetype6 libfreetype6-dev libmcrypt-dev

如果缺少相关的软件包,可通过 sudo apt-get install [name] 的方式在线安装。

如果遇到部分依赖库版本不对导致不能安装时,建议将 apt-get 源恢复为系统默认的源试试。

2. 下载 PHP 源码包
$ cd /usr/local/src/

$ sudo wget http://mirrors.sohu.com/php/php-7.1.9.tar.gz
$ sudo tar zxvf php-7.1.9.tar.gz
$ cd php-7.1.9
3. 安装 PHP
$ sudo ./configure \
  --prefix=/usr/local/php \
  --with-mysql-sock=/tmp/mysql.sock \
  --with-config-file-path=/usr/local/php/etc \ 
  --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx \
  --with-mysqli=shared,mysqlnd --with-pdo-mysql=shared,mysqlnd \
  --with-gd --with-mhash --with-iconv --with-zlib --with-curl --with-openssl \
  --with-mcrypt=/usr/include --with-gettext --with-xmlrpc --with-jpeg-dir --with-freetype-dir \
  --enable-ftp --enable-zip --enable-xml --enable-soap --enable-pcntl --enable-mbstring --enable-sockets \
  --enable-session --enable-opcache --enable-mbregex --enable-gd-native-ttf \
  --enable-shmop --enable-shared --enable-bcmath --enable-inline-optimization --enable-sysvsem \
  --without-pear --without-gdbm --disable-fileinfo --disable-debug --disable-rpath

$ sudo make && make install

由于需要和 MySQL 进行通信,所以安装完后需要特别查看 lib 扩展库目录是否包含 mysqli.so、pdo_mysql.so 这两个动态库文件

$ cd /usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/
4. 配置文件设置并优化

拷贝 PHP 默认配置文件:

$ sudo cp /usr/local/src/php-7.1.9/php.ini-production /usr/local/php/etc/php.ini

配置文件的优化内容项:

# 避免PHP信息暴露在 HTTP 头中
expose_php = Off

# 避免暴露 PHP 调用 MySQL 的错误信息
display_errors = Off

# 在关闭 display_errors 后开启PHP错误日志(路径在php-fpm.conf中配置)
log_errors = On

# 设置PHP的扩展库路径
# 需要把默认扩展库的文件拷贝过来
# 默认扩展库目录:/usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/
extension_dir = "/usr/local/php/ext"

# 设置PHP的opcache和mysql动态库
extension=mysqli.so
extension=pdo_mysql.so
zend_extension=opcache.so

# 设置PHP的时区
date.timezone = Asia/Shanghai

# 开启opcache
[opcache]
opcache.enable=1

拷贝 PHP 扩展模块

$ sudo cp /usr/local/php/lib/php/extensions/no-debug-non-zts-20160303 /usr/local/php/ext -R

拷贝 PHP-FPM 默认配置文件:

$ sudo cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

拷贝 PHP-FPM 默认子配置文件:

$ sudo cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
7. 配置开机自启动

由于 Ubuntu 16 使用 systemd 替换了 SysV, 所以 Ubuntu 16 之前的 service 和 chkconfig 开机自启动将不在适用 Ubuntu 16。下面将介绍如何配置 PHP-FPM 开机自启动。

新建服务文件:

$ sudo vim /usr/lib/systemd/system/php-fpm.service

添加服务代码:

[Unit]
Description=PHP FastCGI Service
After=syslog.target network.target


[Service]
# start main service
ExecStart=/usr/local/php/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php/etc/php-fpm.conf

# restart main service
ExecReload=/bin/kill -USR2 $MAINPID

# stop main service
ExecStop=/bin/kill -SIGINT $MAINPID


[Install]
WantedBy=multi-user.target

启用服务文件:

$ sudo systemctl enable php-fpm.service
8. 相关命令
$ sudo systemctl stop php-fpm.service
$ sudo systemctl start php-fpm.service
$ sudo systemctl status php-fpm.service
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值