网站搜索

在 CentOS 7 上安装 Apache、MySQL 8 或 MariaDB 10 和 PHP 7


本操作指南介绍了如何安装最新版本的ApacheMySQL 8MariaDB 10PHP 7 以及 RHEL/CentOS 7/6Fedora 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

为此,我们将启用 EPELRemi 存储库并使用 yum 和 dnf(Fedora 中提供的新包管理工具)。

第 1 步:安装 EPEL 和 Remi 存储库

EPELExtra 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 保持不变,因为两个系统都使用相同的客户端协议和客户端库是二进制兼容的。

  1. MariaDB/MySQL (php-mysql) – 一个动态共享对象,将为 PHP 添加 MariaDB 支持。
  2. PostgreSQL (php-pgsql) – PHP 的 PostgreSQL 数据库支持。
  3. MongoDB (php-pecl-mongo) – 用于在 PHP 中与 MongoDB 数据库通信的接口。
  4. 通用 (php-pdo) – 一个动态共享对象,将为 PHP 添加数据库访问抽象层。
  5. Memcache (php-pecl-memcache) – Memcached 是一个缓存守护进程,专为动态 Web 应用程序设计,通过在内存中存储对象来减少数据库负载。
  6. Memcached (php-pecl-memcached) – 使用 libmemcached 库提供用于与 memcached 服务器通信的 API 的扩展。
  7. GD (php-gd) – 动态共享对象,为 PHP 添加了对使用 gd 图形库的支持。
  8. XML (php-xml) – 动态共享对象,增加了对 PHP 操作 XML 文档的支持。
  9. MBString (php-mbstring) – 用于处理 PHP 应用程序中的多字节字符串的扩展。
  10. MCrypt (php-mcrypt) – PHP 脚本的 Mcrypt 库。
  11. APC (php-pecl-apcu) – 用于优化和缓存 PHP 代码的 APC 模块。
  12. CLI (php-cli) – PHP 命令行界面。
  13. 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数据库

在本节中,我们将向您展示数据库 MySQLMariaDB 的安装,因此您可以根据自己的需求来选择。

安装 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