前言

安装php有两种方式,一种是通过包管理器,另一种是通过编译安装.

包管理器安装优缺点

优点: 简单. 缺点:

  1. 不能安装多个不同php版本.
  2. 不能指定php安装目录.
  3. php目录文件位置过于分散.
  4. 如果有多个站点只能公用一个php-fpm,降低并发效率.

编译安装优缺点

优点:

  1. 可以安装多个不同php版本.
  2. 可以指定php安装目录.
  3. php目录文件集中,便于管理.
  4. 多个站点可以使用多个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

注意点:

  1. --enable --with后面接的是需要安装的模块, 如果是php官网自带的模块就用enable, 第三方模块用with.
  2. mysql数据库安装三个驱动模块--with-mysql --with-pdo-mysql --with-mysqli , 可以确保php与数据库的正确连接.
  3. --prefix后面接的是自己指定安装路径,这个必须要有. 否则安装后php文件会很分散, 卸载的时候极度麻烦. 但是指定路径后,卸载只要删除指定的文件夹就行.

配置php.ini文件和php-fpm.conf文件

配置文件位置:

  1. /usr/local/temp/php-7.2.31目录下有php.ini-production文件,这个文件就是我们需要的php配置文件.

  2. /usr/local/php/php-7.2.31-jjziyuan/etc目录下有php-fpm.conf.default,这个文件就是我们需要的php-fpm配置文件.

  3. 如果7.0+版本时, php-fpm有个php-fpm.d文件夹,里面有www.conf.default文件,这个是我们要的www.conf文件. 如果是5.0+版本着没有这个文件夹.也不需要配置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.default /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,需要改动端口号

注意点:

  1. 使用nginx必须安装php-fpm模块, 因为nginx不能解析php文件.

  2. 启动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

  3. 查看是否启动成功ps aux | grep php-fpm

结尾

通过以上步骤就可以安装任意版本的php, 并且可以多个共存, 安装后安装目录也很集中, 方便管理.

安装过程碰到问题解决方法

如果安装过程碰到问题, 一定是缺少相关编译软件, 可以通过yum -y install [缺少的编译软件名] 安装缺少的编译软件来解决, 下面列出可能缺少的编译软件名

  1. gcc
  2. gcc-c++
  3. openssl
  4. openssl-devel
  5. zlib
  6. zlib-devel
  7. pcre
  8. pcre-devel
  9. libxml2-devel
  10. libjpeg-devel
  11. libpng
  12. libpng-devel
  13. 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
THE END
开启精彩搜索

历史搜索

用户名或邮箱
密码
用户名
密码
重复密码
邮箱
注册
找回密码
注册 登录
邮箱
邮箱验证码
发送验证码
59秒后可重发
新密码
重复密码
请选择支付方式
余额支付

购买将消耗【10

微信支付
微信扫码支付 0 元
[ 04分50秒 ]
请使用微信扫一扫
扫描二维码支付
支付宝支付
支付宝扫码支付 0 元
[ 04分50秒 ]
请使用支付宝扫一扫
扫描二维码支付
已完成支付
未完成支付

请输入验证码

点击验证码可以刷新

你确认吗?

确认

2024年10月1日

新增

新增