RHEL 及 CentOS 8 安装 Apache, MariaDB, PHP(LAMP)


LAMP 是 Linux + Apache + MySQL + PHP 的缩写, 但从 RHEL / CentOS 7 开始已经不会内置 MySQL, 改为使用 MariaDB, MariaDB 使用上与 MySQL 相同, 旧有的 MySQL 数据库也可以直接升级使用, 这里也会示范在 RHEL 8 / CentOS 8 安装 Apache + MariaDB + PHP。

安装 Apache

除了安装 httpd 套件外, 把 httpd-tools 也一拼安装, httpd-tools 包含了一些实用的工具, 例如 Apache 的压力测试工具 — ab.

# yum install httpd httpd-tools

跟着回答 “y” 后便会完成安装, 然后输入以下指令启动及设定 Apache 开机自动执行:

# systemctl start httpd
# systemctl enable httpd

这时 Apache 已经启动了, 可以在浏览器输入服务器的位置试试, 例如 http://localhost

然后要设定 Firewalld 防火墙, 执行以下指令, 把埠号 80 及 443 开放对开连线:

# firewall-cmd –permanent –zone=public –add-service=http
# firewall-cmd –permanent –zone=public –add-service=https

现在重新加载 Firewalld:

# systemctl reload firewalld

安装 MariaDB

执行以下指令安装 MariaDB:

# yum install mariadb-server mariadb

启动及设定开机自动执行 MariaDB:

# systemctl start mariadb
# systemctl enable mariadb

执行以下指令设定 MariaDB 的安全设定:

# mysql_secure_installation

执行后跟着回答问题, 分别是:

— 设定 root 帐号密码
— 是否移除匿名帐号
— 是否允许 root 帐号远端登入
— 是否移除 test 数据库

完成后可以测试一下 MariaDB 是否可以登入:

# mysql -u root -p

安装 PHP

以下指令除了会安装 PHP 外, 还会安装一些常用的 PHP 套件:

# yum install php php-fpm php-mysqlnd php-opcache php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel

跟以往不同, 在 RHEL 8 / CentOS 8 的 Apache, 默认不会使用 mod_php 执行 PHP, 而会默认使用 PHP-FPM 执行 PHP, 所以需要启动 PHP-FPM:

# systemctl start php-fpm
# systemctl enable php-fpm

安装及设定好 PHP 后需要重新启动 Apache 才会生效:

# systemctl restart httpd

另外也需要执行以下指令, 让 SELinux 允许 Apache 透过 PHP-FPM 执行 PHP 程式码:

# setsebool -P httpd_execmem 1

要测试 PHP, 可以放一个简单的 PHP Script 到 Apache DocumentRoot 目录, 默认是 /var/www/html/, 执行以下指令:

# vi /var/www/html/info.php

然后输入以下几行程式码:

<?php
phpinfo();
?>

然后在浏览器看看 http://localhost/info.php, 如果看到 PHP 的设定资料便表示安装完成了。

Leave a Reply