HCRM博客

如何在CentOS 7上使用YUM安装PHP?

CentOS 7 使用 yum 安装 PHP 详解

一、背景介绍

如何在CentOS 7上使用YUM安装PHP?-图1
(图片来源网络,侵权删除)

PHP(Hypertext Preprocessor)是一种流行的开源服务器端脚本语言,广泛用于 Web 开发,它具有简单易学、功能强大的特点,支持多种数据库和协议,能够轻松嵌入 HTML,是许多动态网站和应用程序的首选编程语言,CentOS 7 是一个企业级的 Linux 发行版,以其稳定性和安全性广受好评,在 CentOS 7 上安装 PHP 可以通过多种方式实现,其中最常见的是通过 yum(Yellowdog Updater, Modified)包管理工具来进行安装。

二、使用 yum 安装 PHP

更新系统

在执行任何安装操作之前,建议先更新系统,确保所有已安装的软件包都是最新的:

sudo yum update y

这一步可以确保你的系统处于最新状态,避免由于版本问题导致的兼容性错误。

2. 安装 EPEL(Extra Packages for Enterprise Linux)仓库

EPEL 仓库包含了很多额外的软件包,这些软件包在默认的 CentOS 仓库中是不可用的,安装 EPEL 仓库:

如何在CentOS 7上使用YUM安装PHP?-图2
(图片来源网络,侵权删除)
sudo yum install epelrelease y

EPEL 提供了更多的软件包选择,包括一些新的 PHP 模块和扩展。

安装 PHP 及相关模块

使用 yum 安装 PHP 及相关模块:

sudo yum install php phpcli phpcommon phpmysql phpgd phpmbstring y

命令会安装基本的 PHP 环境以及一些常用的 PHP 模块,如 CLI(命令行界面)、MySQL 支持、GD 图形库和多字节字符串支持。

验证安装

安装完成后,通过以下命令验证 PHP 是否成功安装:

php v

此命令将显示已安装的 PHP 版本信息,如果安装成功,你会看到类似如下的输出:

PHP 7.x.x (cli) (built: xxxxxxxx) ( NTS )
Copyright (c) 19972018 The PHP Group
Zend Engine v3.x.x, Copyright (c) 19982018 Zend Technologies

配置 PHP

PHP 的配置文件通常位于/etc/php.ini,你可以根据项目需求修改配置,例如调整内存限制、上传文件大小等:

如何在CentOS 7上使用YUM安装PHP?-图3
(图片来源网络,侵权删除)
sudo nano /etc/php.ini

在文件中可以找到并修改相应的参数,

memory_limit = 128M
upload_max_filesize = 64M
post_max_size = 64M

修改完成后保存并关闭文件。

重启 Web 服务器

如果你在使用 Web 服务器(如 Apache 或 Nginx),需要重启服务器以使配置生效:

sudo systemctl restart httpd    # For Apache
or
sudo systemctl restart nginx   # For Nginx

三、使用源码包安装 PHP(可选)

除了使用 yum 安装 PHP,还可以选择手动编译源码包来安装 PHP,这种方法适用于需要特定版本或者定制功能的场景。

下载 PHP 源码包

访问 PHP 官方下载页面获取最新的 PHP 源码包,选择你需要的版本并下载:

wget https://www.php.net/distributions/phpx.x.x.tar.gz

x.x.x 替换为你所需的具体版本号。

解压源码包

下载完成后,解压源码包:

tar zxvf phpx.x.x.tar.gz

安装编译工具和依赖库

确保系统中安装了编译工具和 PHP 编译所需的依赖库:

sudo yum groupinstall "Development Tools" y
sudo yum install epelrelease y
sudo yum install libxml2devel libcurldevel libjpegturbodevel libpngdevel freetypedevel y

配置编译选项

进入解压后的 PHP 源码目录,配置编译选项:

cd phpx.x.x
./configure prefix=/usr/local/php

可以根据需要添加其他配置选项,如指定模块或路径。

编译和安装

执行编译和安装:

make
sudo make install

编译和安装过程可能需要一些时间,具体取决于系统性能。

配置 PHP

复制配置文件模板并编辑:

sudo cp php.iniproduction /usr/local/php/lib/php.ini
sudo nano /usr/local/php/lib/php.ini

根据需求修改配置,然后保存并关闭文件。

设置环境变量

为了方便使用新安装的 PHP,设置PATH 环境变量:

echo 'export PATH=$PATH:/usr/local/php/bin' >> ~/.bashrc
source ~/.bashrc

这样,你就可以在终端中使用php 命令了。

验证安装

通过以下命令验证新安装的 PHP 版本:

/usr/local/php/bin/php v

如果安装成功,你会看到类似如下的输出:

PHP x.x.x (cli) (built: xxxxxxxx) ( NTS )
Copyright (c) 19972018 The PHP Group
Zend Engine vx.x.x, Copyright (c) 19982018 Zend Technologies

四、选择合适的安装方式

在选择安装方式时,可以根据项目需求和个人偏好进行选择:

使用 yum:简单快速,适合快速搭建环境和初学者,优点是安装方便,命令简洁;缺点是版本可能相对较老,配置相对受限。

使用源码包:可以选择最新版本,更灵活,可配置性更高,优点是可以定制功能,选择特定版本;缺点是相对繁琐,编译时间较长,可能需要手动解决依赖关系。

根据实际情况,灵活选择安装方式,无论哪种方式,都请根据项目需求和安全考虑合理配置 PHP,并随时保持系统和软件包的最新状态。

五、相关常见问题与解答(FAQs)

Q1:如何在 CentOS 7 上安装多个版本的 PHP?

A1:要在 CentOS 7 上安装多个版本的 PHP,可以使用不同的存储库或手动编译源码包来实现,以下是使用 Remi 存储库的方法:

1、安装 Remi 存储库:

   sudo yum install https://rpms.remirepo.net/enterprise/remirelease7.rpm y

2、启用多个 PHP 版本存储库:

   sudo yumconfigmanager enable remiphp74
   sudo yumconfigmanager enable remiphp73

3、安装所需版本的 PHP:

   sudo yum install php74phpfpm y     # For PHP 7.4
   sudo yum install php73phpfpm y     # For PHP 7.3

4、根据需要切换 PHP 版本,可以使用alternatives 命令:

   sudo alternatives config php
   sudo alternatives config phar
   sudo alternatives config phpencode
   sudo alternatives config phppencode

根据提示选择所需的 PHP 版本。

Q2:如何配置虚拟主机以支持多个 PHP 版本?

A2:要配置虚拟主机以支持多个 PHP 版本,可以按照以下步骤操作:

1、确保已经安装了多个 PHP 版本,并且每个版本都有独立的 FPM 配置文件,PHP 7.4 和 PHP 7.3 分别有/etc/opt/remi/php74/phpfpm.conf/etc/opt/remi/php73/phpfpm.conf

2、创建或编辑虚拟主机配置文件,为 PHP 7.4 创建一个虚拟主机:

   <VirtualHost *:80>
       DocumentRoot "/var/www/html/mysite74"
       ServerName mysite74.local
       <Directory "/var/www/html/mysite74">
           AllowOverride All
       </Directory>
       <FilesMatch \.php$>
           SetHandler "proxy:unix:/run/phpfpm/www.sock|fcgi://localhost/"
       </FilesMatch>
   </VirtualHost>

3、为 PHP 7.3 创建另一个虚拟主机:

   <VirtualHost *:80>
       DocumentRoot "/var/www/html/mysite73"
       ServerName mysite73.local
       <Directory "/var/www/html/mysite73">
           AllowOverride All
       </Directory>
       <FilesMatch \.php$>
           SetHandler "proxy:unix:/run/phpfpm/mysite73.sock|fcgi://localhost/"
       </FilesMatch>
   </VirtualHost>

4、确保在pool www 配置文件中设置了正确的 socket 文件路径:

   ; /etc/opt/remi/php74/phpfpm.d/www.conf for PHP 7.4
   listen = /run/phpfpm/www.sock
   ; /etc/opt/remi/php73/phpfpm.d/www.conf for PHP 7.3
   listen = /run/phpfpm/mysite73.sock

5、重启 Web 服务器和 PHPFPM:

   sudo systemctl restart httpd
   sudo systemctl restart php74phpfpm
   sudo systemctl restart php73phpfpm
分享:
扫描分享到社交APP
上一篇
下一篇