Debian 9 下编译安装PHP及配置
一、准备工作
1.1 更新系统安装包列表
没啥,就他喵想用个最新的。
# apt update
1.2 必须软件包
下面都是编译php必须的,提前安装好。
# apt install gcc make
# apt install libxml2 libxml2-dev //xml库
1.2 创建需要使用的目录
创建目录source和web,分别用来放源码和编译后的文件。
# mkdir /source/
# mkdir /web/
二、安装php
2.1 安装php
[官方网站] http://php.net/
命令流程:
# cd /source/
# wget http://www.php.net/distributions/php-7.1.10.tar.gz
# tar -zxf php-7.1.10.tar.gz
# cd php-7.1.10
# ./configure --prefix=/web/php --with-config-file-path=/web/php/etc --enable-fpm --with-mysqli --with-pdo-mysql
# make && make install
--with-config-file-path #配置文件所在目录
--enable-fpm //启用php-fpm模块(推荐)
--enable-mbstring //启用mbstring模块(推荐)。多字节字符串,让php支持支持ISO-8859-*, EUC-JP, UTF-8之外编码的语言
--with-mysqli //打开mysqli模块
--with-pdo-mysql //pdo_mysql模块
三、安装php扩展(可选)
上面的方法是将所以扩展都编译在一起。这里是单独编译出来,然后通过php.ini文件,自由度更高。
/source/php-7.1.10/ext 你会看到很多的文件夹。需要什么扩展就进入哪个文件夹,运行如下命令。
# /web/php/bin/phpize
# ./configure --with-php-config=/web/php/bin/php-config
# make && make install
安装必须
# apt install autoconf //php扩展编译需要
phpredis扩展
[官方网站] http://pecl.php.net/package/redis
命令流程:
# cd /source/
# wget http://pecl.php.net/get/redis-3.1.4.tgz
# tar -zxf redis-3.1.4.tgz
# cd redis-3.1.4
# /web/php/bin/phpize
# ./configure --with-php-config=/web/php/bin/php-config
# make && make install
openssl扩展
命令流程:
# cd /source/php-7.1.10/ext/openssl
# cp config0.m4 config.m4
# ln -s /usr/lib/x86_64-linux-gnu/libssl.so /usr/lib
# /web/php/bin/phpize
# ./configure --with-php-config=/web/php/bin/php-config
# make && make install
gd扩展
命令流程:
# apt install libpng-dev
# apt install libfreetype6 libfreetype6-dev
# cd /source/php-7.1.10/ext/gd
# /web/php/bin/phpize
# ./configure --with-php-config=/web/php/bin/php-config --with-freetype-dir
# make && make install
--with-freetype-dir //打开gd库对freetype字体库的支持。
四、配置php-fpm
4.1 copy默认配置文件
# cd /source/php-7.1.10
# cp php.ini-development /web/php/etc/php.ini
# cd /web/php/etc
# cp php-fpm.conf.default php-fpm.conf
# cd /web/php/etc/php-fpm.d/
# cp www.conf.default www.conf
复制代码
4.2 修改php-fpm.conf
说明:为了可以使用信号命令。
找到以下字段
;pid = run/php-fpm.pid
修改成
pid = run/php-fpm.pid
保存
复制代码
4.3 修改www.conf
# groupadd web
# useradd -g web nginx -M -s /sbin/nologin
找到以下字段
user = nobody
group = nobody
修改成
user = nginx
group = www
保存
复制代码
附、常用命令
php-fpm常用命令
# /web/php/sbin/php-fpm -c /web/php/etc/php.ini //启动php-fpm
# kill -SIGUSR2 `cat /web/php/var/run/php-fpm.pid` //重启php-fpm
# kill -SIGINT `cat /web/php/var/run/php-fpm.pid` //关闭php-fpm
信号解释:
SIGINT, SIGTERM 立刻终止
SIGQUIT 平滑终止
SIGUSR1 重新打开日志文件
SIGUSR2 平滑重载所有worker进程并重新载入配置和二进制模块