在 CentOS 7 上安装 Apache、MySQL 8 或 MariaDB 10 和 PHP 7
本操作指南介绍了如何安装最新版本的Apache、MySQL 8或MariaDB 10和PHP 7 以及 RHEL/CentOS 7/6 和 Fedora 24-29 上所需的 PHP 模块。
这种操作系统 (Linux) 与 Web 服务器 (Apache)、数据库服务器 (MariaDB/MySQL) 和服务器端脚本的组合语言 (PHP) 称为 LAMP 堆栈。
不要错过:如何在 CentOS 7 上安装 Nginx 1.15、MariaDB 10 和 PHP 7
自 2015 年 9 月起,PHP 5.4 不再受到 PHP 团队的支持,并且已达到生命周期结束,PHP 5.4 仍然随 RHEL/CentOS 7 一起提供/6 有较小的版本更改,并且 Red Hat 支持它,因此不需要升级到更高版本。不过,强烈建议将 PHP 5.4 升级到 PHP 5.5+,以获得更高的安全性和性能。
以下是您当前的 Linux 发行版附带的内容:
PHP Current Version | RHEL/CentOS 7 | RHEL/CentOS 6 |
---|---|---|
7.3 | 5.4 | 5.3 |
为此,我们将启用 EPEL 和 Remi 存储库并使用 yum 和 dnf(Fedora 中提供的新包管理工具)。
第 1 步:安装 EPEL 和 Remi 存储库
EPEL(Extra Packages for Enterprise Linux)是一个基于社区的存储库,为基于 RHEL 的 Linux 发行版提供附加软件包。
Remi 是一个存储库,您可以在其中找到最新版本的 PHP 堆栈(全功能),以便安装在 Fedora 和 Enterprise Linux 发行版中。
在 RHEL/CentOS 7 上
yum update && yum install epel-release
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
------ For RHEL 7 Only ------
subscription-manager repos --enable=rhel-7-server-optional-rpms
在 RHEL/CentOS 6 上
yum update && yum install epel-release
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
------ For RHEL 6 Only ------
subscription-manager repos --enable=rhel-6-server-optional-rpms
在 Fedora 24-29 上
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-29.rpm [On Fedora 29]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-28.rpm [On Fedora 28]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-27.rpm [On Fedora 27]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-26.rpm [On Fedora 26]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-25.rpm [On Fedora 25]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-24.rpm [On Fedora 24]
第 2 步:安装 Apache Web 服务器
Apache 是一个免费且开源的 HTTP Web 服务器,可在大多数基于 UNIX 的操作系统以及 Windows 上运行。因此,它可用于提供静态网页并处理动态内容。最近的报告显示,Apache 是网站和面向互联网的计算机中使用的排名第一的服务器。
要安装Apache Web服务器,请首先更新系统软件包并使用以下命令进行安装。
yum -y update
yum install httpd
安装Apache Web 服务器后,您可以启动它以在系统启动时自动启动。
systemctl start httpd
systemctl enable httpd
systemctl status httpd
如果您正在运行 firewalld,请确保防火墙上允许 Apache 流量。
firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --zone=public --permanent --add-service=https
firewall-cmd --reload
步骤 3:使用 Remi 存储库安装 PHP
PHP(超文本预处理器)是一种免费且开源的服务器端脚本语言,最适合 Web 开发。它可用于为网站生成动态网页,最常见于 *nix 服务器中。 PHP 的优点之一是它可以通过使用各种模块轻松扩展。
要安装 PHP,首先需要通过安装 yum-utils
来启用 Remi 存储库,这是一组用于管理 yum 存储库和软件包的有用程序的集合。
yum install yum-utils
安装后,您可以使用 yum-utils 提供的 yum-config-manager 来启用 Remi 存储库作为安装不同 PHP 版本的默认存储库,如图所示。
例如,要安装PHP 7.x版本,请使用以下命令。
------------- On CentOS & RHEL -------------
yum-config-manager --enable remi-php70 && yum install php [Install PHP 7.0]
yum-config-manager --enable remi-php71 && yum install php [Install PHP 7.1]
yum-config-manager --enable remi-php72 && yum install php [Install PHP 7.2]
yum-config-manager --enable remi-php73 && yum install php [Install PHP 7.3]
------------- On Fedora -------------
dnf --enablerepo=remi install php70 [Install PHP 7.0]
dnf --enablerepo=remi install php71 [Install PHP 7.1]
dnf --enablerepo=remi install php72 [Install PHP 7.2]
dnf --enablerepo=remi install php73 [Install PHP 7.3]
接下来,我们将在本文中安装所有以下 PHP 模块。您可以使用以下命令搜索更多与 PHP 相关的模块(也许集成您的 Web 应用程序需要的特定功能):
------ RHEL/CentOS 7/6------
yum search all php
------ Fedora ------
dnf search all php
无论发行版如何,上述命令都会返回当前启用的存储库中的包列表,其中包名称和/或描述中包含单词 php
。
这是我们将安装的软件包。请记住,MySQL 连接器(PHP、Perl、Python、Java 等)将与 MariaDB 保持不变,因为两个系统都使用相同的客户端协议和客户端库是二进制兼容的。
- MariaDB/MySQL (php-mysql) – 一个动态共享对象,将为 PHP 添加 MariaDB 支持。
- PostgreSQL (php-pgsql) – PHP 的 PostgreSQL 数据库支持。
- MongoDB (php-pecl-mongo) – 用于在 PHP 中与 MongoDB 数据库通信的接口。
- 通用 (php-pdo) – 一个动态共享对象,将为 PHP 添加数据库访问抽象层。
- Memcache (php-pecl-memcache) – Memcached 是一个缓存守护进程,专为动态 Web 应用程序设计,通过在内存中存储对象来减少数据库负载。
- Memcached (php-pecl-memcached) – 使用 libmemcached 库提供用于与 memcached 服务器通信的 API 的扩展。
- GD (php-gd) – 动态共享对象,为 PHP 添加了对使用 gd 图形库的支持。
- XML (php-xml) – 动态共享对象,增加了对 PHP 操作 XML 文档的支持。
- MBString (php-mbstring) – 用于处理 PHP 应用程序中的多字节字符串的扩展。
- MCrypt (php-mcrypt) – PHP 脚本的 Mcrypt 库。
- APC (php-pecl-apcu) – 用于优化和缓存 PHP 代码的 APC 模块。
- CLI (php-cli) – PHP 命令行界面。
- PEAR (php-pear) – PHP 应用程序存储库框架。
使用以下命令安装以下必要的 PHP 模块。
------ On RHEL/CentOS 7/6 ------
yum --enablerepo=remi install php-mysqlnd php-pgsql php-pecl-mongo php-pdo php-pecl-memcache php-pecl-memcached php-gd php-xml php-mbstring php-mcrypt php-pecl-apcu php-cli php-pear
------ On Fedora ------
dnf --enablerepo=remi install php-mysqlnd php-pgsql php-pecl-mongo php-pdo php-pecl-memcache php-pecl-memcached php-gd php-xml php-mbstring php-mcrypt php-pecl-apcu php-cli php-pear
第4步:安装MySQL或MariaDB数据库
在本节中,我们将向您展示数据库 MySQL 和 MariaDB 的安装,因此您可以根据自己的需求来选择。
安装 MySQL 8 数据库服务器
MySQL 是世界上最流行的开源关系数据库管理系统 (RDBMS) 之一,它通过提供对多个数据库的多用户访问来运行任何服务器。 MySQL 与 Apache 一起运行。
要安装最新的MySQL 8.0版本,我们将使用以下命令安装并启用官方MySQL Yum软件存储库。
rpm -Uvh https://repo.mysql.com/mysql80-community-release-el7-1.noarch.rpm [On RHEL/CentOS 7]
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el6-1.noarch.rpm [On RHEL/CentOS 6]
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-fc29-1.noarch.rpm [On Fedora 29]
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-fc28-1.noarch.rpm [On Fedora 29]
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-fc27-1.noarch.rpm [On Fedora 29]
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-fc26-1.noarch.rpm [On Fedora 29]
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-fc25-1.noarch.rpm [On Fedora 29]
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-fc24-1.noarch.rpm [On Fedora 29]
为您的 Linux 平台安装 MySQL Yum 软件存储库后,现在使用以下命令安装最新版本的 MySQL(当前为 8.0)。
yum install mysql-community-server [On RHEL/CentOS]
dnf install mysql-community-server [On Fedora]
成功安装MySQL后,是时候使用以下命令启动MySQL服务器了。
service mysqld start
查看我们关于如何确保 MySQL 8 数据库安装安全的文章。
安装 MariaDB 10 数据库服务器
MariaDB 是著名的 MySQL 的一个分支,MySQL 是世界上最流行的关系数据库管理系统 (RDBMS) 之一。它完全由社区开发,因此旨在保持 FOSS 并与 GPL 兼容。
如果您现在或曾经是 MySQL 用户,迁移到 MariaDB 将是一个非常简单的过程:连接、备份和恢复以及管理数据库的流行命令在两个 RDBMS 中都是相同的。
在最新的 RHEL/CentOS 7 发行版中,MariaDB 是 MySQL 的直接替代品,而在 RHEL/CentOS 6 中 MySQL 保持不变,并且不允许您安装 MariaDB默认存储库中的 RHEL/CentOS 6,但您可以使用官方 MariaDB 存储库安装 MariaDB。
要在 RHEL/CentOS 7 发行版上启用 MariaDB 存储库,请创建一个名为 /etc/yum.repos.d/mariadb.repo
的文件,其中包含以下内容:
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
注意:正如我上面所说,您还可以使用上述官方 MariaDB 存储库在 RHEL/CentOS 6 上安装 MariaDB。
启用 MariaDB 存储库后,然后执行以下操作:
------ On RHEL/CentOS 7 ------
yum --enablerepo=remi install httpd MariaDB-client MariaDB-server
------ On Fedora ------
dnf --enablerepo=remi install httpd MariaDB-client MariaDB-server
第 5 步:启用/启动 Apache 和 MySQL/MariaDB
在系统D上
------ Enable Apache and MariaDB on Boot ------
systemctl enable httpd
systemctl enable mariadb
------ Start Apache and MariaDB ------
systemctl start httpd
systemctl start mariadb
在 SysVinit 上
------ Enable Apache and MySQL on Boot ------
chkconfig --levels 235 httpd on
chkconfig --levels 235 mysqld on
------ Start Apache and MySQL ------
/etc/init.d/httpd start
/etc/init.d/mysqld start
第 6 步:验证 PHP 安装
让我们继续使用测试 PHP 的经典方法。在 /var/www/html 下创建一个名为 test.php
的文件,并向其中添加以下代码行。
phpinfo()
函数显示有关当前 PHP 安装的大量信息:
<?php
phpinfo();
?>
现在将您的网络浏览器指向 http://[server]/test.php
并通过向下滚动页面检查已安装的模块和其他软件是否存在(替换 [server]
与您的域或服务器的 IP 地址)。您的输出应该类似于:
恭喜!您现在已经安装了最新的可运行的LAMP堆栈。如果事情没有按预期进行,请随时使用下面的表格与我们联系。也欢迎提出问题和建议。
注意:您还可以按照此处提供的说明创建自定义存储库,在其他发行版中安装 MariaDB。