前言
安装php有两种方式,一种是通过包管理器,另一种是通过编译安装.
包管理器安装优缺点
优点: 简单. 缺点:
- 不能安装多个不同php版本.
- 不能指定php安装目录.
- php目录文件位置过于分散.
- 如果有多个站点只能公用一个php-fpm,降低并发效率.
编译安装优缺点
优点:
- 可以安装多个不同php版本.
- 可以指定php安装目录.
- php目录文件集中,便于管理.
- 多个站点可以使用多个php-fpm,提高并发效率. 缺点: 步骤繁琐.
介于编译安装的诸多好处, 于是这篇文章告诉大家如何编译安装php
步骤
下载需要安装的php版本
去官网https://www.php.net/releases/
下载php对应的版本包,我这里以7.2.31版本为演示
#新建临时存放文件夹
mkdir /usr/local/temp
#进入临时文件夹
cd /usr/local/temp
#下载php-7.2.31版本
wget https://www.php.net/distributions/php-7.2.31.tar.gz
注意点: 下载可能很慢.
解压缩
#解压php-7.2.31到当前目录
tar -xzvf php-7.2.31.tar.gz
#进入解压缩后的文件夹
cd /usr/local/temp/php-7.2.31
配置,编译,安装
#新建php需要安装的目录
mkdir -p /usr/local/php
#配置
./configure \
--prefix=/usr/local/php/php-7.2.31-jjziyuan \
--enable-fpm \
--with-mysql \
--with-pdo-mysql \
--with-mysqli \
--enable-mbstring \
--enable-xml \
--with-gd \
--with-jpeg-dir \
--with-curl \
--with-openssl
#编译
make
#安装
make install
注意点:
--enable --with
后面接的是需要安装的模块, 如果是php官网自带的模块就用enable, 第三方模块用with.- mysql数据库安装三个驱动模块
--with-mysql --with-pdo-mysql --with-mysqli
, 可以确保php与数据库的正确连接. --prefix
后面接的是自己指定安装路径,这个必须要有. 否则安装后php文件会很分散, 卸载的时候极度麻烦. 但是指定路径后,卸载只要删除指定的文件夹就行.
配置php.ini文件和php-fpm.conf文件
配置文件位置:
在
/usr/local/temp/php-7.2.31
目录下有php.ini-production
文件,这个文件就是我们需要的php配置文件.在
/usr/local/php/php-7.2.31-jjziyuan/etc
目录下有php-fpm.conf.default
,这个文件就是我们需要的php-fpm配置文件.如果7.0+版本时, php-fpm有个php-fpm.d文件夹,里面有www.conf
#添加php.ini配置文件 cp /usr/local/temp/php-7.2.31/php.ini-production /usr/local/php/php-7.2.31-jjziyuan/etc/php.ini #添加php-fpm.conf配置文件 cp /usr/local/php/php-7.2.31-jjziyuan/etc/php-fpm.conf.default /usr/local/php/php-7.2.31-jjziyuan/etc/php-fpm.conf #添加www.conf配置文件 cp /usr/local/php/php-7.2.31-jjziyuan/etc/php-fpm.d/www.conf
修改配置文件
如果是7.0+版本则修改www.conf,如果是5.0+则修改php-fpm.conf
#修改文件内容
user = nginx
group = nginx
listen = 127.0.0.1:9001 #这个按需配置,如果有多个fpm,需要改动端口号
注意点:
使用nginx必须安装php-fpm模块, 因为nginx不能解析php文件.
启动php-fpm时最好指定下php.ini和php-fpm.conf的位置,命令:
/usr/local/php/php-7.2.31-jjziyuan/sbin/php-fpm
-c /usr/local/php/php-7.2.31-jjziyuan/etc/php.ini
-y /usr/local/php/php-7.2.31-jjziyuan/etc/php-fpm.conf查看是否启动成功
ps aux | grep php-fpm
结尾
通过以上步骤就可以安装任意版本的php, 并且可以多个共存, 安装后安装目录也很集中, 方便管理.(www.hedaoshe.com)
安装过程碰到问题解决方法
如果安装过程碰到问题, 一定是缺少相关编译软件, 可以通过yum -y install [缺少的编译软件名]
安装缺少的编译软件来解决, 下面列出可能缺少的编译软件名
- gcc
- gcc-c++
- openssl
- openssl-devel
- zlib
- zlib-devel
- pcre
- pcre-devel
- libxml2-devel
- libjpeg-devel
- libpng
- libpng-devel
- curl-devel
#一次性安装
yum -y install gcc \
gcc-c++ \
openssl \
openssl-devel \
zlib \
zlib-devel \
pcre \
pcre-devel \
libxml2-devel \
libjpeg-devel \
libpng \
libpng-devel \
curl-devel