如何部署Oracle Linux 9.x LAMP环境?

Apache

1 理论部分

– LAMP是Linux+Apache+MySQL+PHP的简写
– LAMP实质是Apache、MySQL、PHP基于Linux系统安装从而提供php脚本语言运行环境

2 实践部分

2.1 实践环境

hostname=www.cmdschool.org
ipaddress=10.168.0.170

2.2 安装前的准备

2.2.1 关闭SELinux

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0

2.2.2 防火墙配置

firewall-cmd --permanent --add-service http --add-service https
firewall-cmd --reload
firewall-cmd --list-all

2.3 安装并配置MySQL

2.3.1 安装软件包

dnf -y install mysql-server

2.3.2 启动服务并设置自启动

systemctl start mysqld
systemctl enable mysqld

启动完成后,你可以使用如下命令确认服务的状态,

systemctl status mysqld

2.3.3 设置MySQL密码

mysql_secure_installation

配置向导如下,

#...
Press y|Y for Yes, any other key for No:
Please set the password for root here.

New password: ********

Re-enter new password: ********
#...
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
#...
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : n
#...
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
#...
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
#...

2.4 安装并配置Apache+PHP

2.4.1 安装软件包

dnf -y install httpd php php-pdo php-mysqlnd mod_ssl

2.4.2 删除默认SSL虚拟主机配置

cp /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.default
sed -i '/\<VirtualHost _default_:443\>/,/\<\/VirtualHost\>/d' /etc/httpd/conf.d/ssl.conf

以上配置可以避免如下错误提示,

AH00526: Syntax error on line 85 of /etc/httpd/conf.d/ssl.conf:
SSLCertificateFile: file '/etc/pki/tls/certs/localhost.crt' does not exist or is empty

2.4.3 修改默认的服务器名称

cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.default
sed -i "s/\#ServerName www.example.com\:80/ServerName localhost\:80/g" /etc/httpd/conf/httpd.conf

以上配置可以避免如下警告提示,

AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using ::1. Set the 'ServerName' directive globally to suppress this message

2.4.4 启动服务并设置自启动

httpd -t
systemctl start httpd php-fpm
systemctl enable httpd php-fpm

启动完成后,你可以使用如下命令确认服务的状态,

systemctl status httpd php-fpm

2.4.5 配置虚拟主机

vim /etc/httpd/conf.d/www.cmdschool.org.conf

加入如下配置,

<VirtualHost *:443>
        DocumentRoot /var/www/www.cmdschool.org
        ServerName www.cmdschool.org
        ServerAlias cmdschool.org

        SSLEngine on
        SSLProtocol all -SSLv2
        SSLCipherSuite DEFAULT:!EXP:!SSLv2:!DES:!IDEA:!SEED:+3DES
        SSLCertificateFile /etc/httpd/www.cmdschool.org.crt
        SSLCertificateKeyFile /etc/httpd/www.cmdschool.org.key
        SSLCertificateChainFile /etc/httpd/root_bundle.crt
</VirtualHost>

<VirtualHost *:80>
        DocumentRoot /var/www/www.cmdschool.org
        ServerName www.cmdschool.org
        ServerAlias cmdschool.org
        RewriteEngine on
        RewriteCond %{SERVER_PORT} !^443$
        RewriteRule ^/?(.*)$ https://%{SERVER_NAME}/$1 [L,R]
</VirtualHost>

<Directory /var/www/www.cmdschool.org>
  Require all granted
</Directory>

根据配置文件的需求,你需要手动创建如下目录,

mkdir -p /var/www/www.cmdschool.org

根据配置文件的需求,你需要使用如下命令部署证书文件,

cp www.cmdschool.org.crt /etc/httpd/www.cmdschool.org.crt
cp www.cmdschool.org.key /etc/httpd/www.cmdschool.org.key
cp root_bundle.crt /etc/httpd/root_bundle.crt

证书请自行准备,笔者建议你申请权威的腾讯云证书,使用申请Apache的格式证书即可,
https://cloud.tencent.com/product/ssl
配置修改后,你需要使用如下命令检测语法并重载使服务生效,

httpd -t
systemctl reload httpd

2.5 测试服务端配置

2.5.1 配置名称解析

notepad \Windows\System32\drivers\etc\hosts

你需要加入如下配置,

10.168.0.170 www.cmdschool.org

注:以上配置只适用于测试环境,生产环境请使用DNS进行名称解析

2.5.2 测试PHP服务

echo '<?php phpinfo(); ?>' > /var/www/www.cmdschool.org/index.php

然后,你可以使用如下链接进行测试,
http://www.cmdschool.org/

参阅文档
======================

Apache官方主页
—————–
https://httpd.apache.org/

PHP文档
——————-
https://www.php.net/docs.php

没有评论

发表回复

PHP
如何基于RHEL 9.x编译安装PHP-FPM 8.x?

1 前言 一个问题,一篇文章,一出故事。 PHP-FPM可以跟Nginx配合使Nginx环境具备运行 …

PHP
如何基于CentOS 7.x编译安装PHP-FPM?

1 前言 一个问题,一篇文章,一出故事。 PHP-FPM可以跟Nginx配合使Nginx环境具备运行 …

Apache
如何修改Apache UMask?

1 前言 一个问题,一篇文章,一出故事。 笔者遇到运行于Apache账号的PHP创建文件时组没有写权 …