本次采用dnf安装
openEuler版本为 25.0.3
apache版本2.4.58
php版本 8.3.19
一、apache安装
安装dnf install httpd -y
启动服务systemctl start httpd && systemctl enable httpd
防火墙放通systemctl firewall-cmd --permanent --add-service=http --add-service=https
systemctl irewall-cmd --reload
主配置文件:/usr/local/apache2/conf/httpd.conf
(源码安装)或 /etc/httpd/conf/httpd.conf
(包管理器安装)
二、php安装
1、dnf安装php
dnf install php -y
dnf install php-cli php-fpm php-mysqlnd php-gd php-mbstring php-curl php-xml php-zip -
vim /etc/php.ini
memory_limit = 256M upload_max_filesize = 64M post_max_size = 64M
启动php-fpm服务(若使用web服务)
systecmctl start php-fpm
systemctl enable php-fpm
三、配置 Apache 支持 PHP
PHP模块配置确保 Apache 配置中包含以下内容(推荐在 /etc/httpd/conf.d/php.conf
中):
-
关键检查点:
-
SetHandler
中的路径/run/php-fpm/www.sock
必须与php-fpm.conf
中的listen
参数一致。 -
确保启用了
proxy_fcgi
和proxy
模块(见下一步)
-
启用 Apache 代理模块
vim /etc/httpd/conf.modules.d/00-proxy.conf
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so检查配置语法并重启 Apache apachectl configtest systemctl restart httpd
四、配置 Apache 支持 ssl
1、安装mod_ssl模块
dnf install mod_ssl -y # 安装 mod_ssl 模块
2、生成ssl证书(自签名)mkdir -p /root/ssl/
1)、自签名CA证书
openssl req -newkey rsa:4096 -nodes -sha256 -x509 -days 3650 \
-subj "/C=CN/ST=Guangdong/L=guangzhou/O=person/OU=Personal/CN=ittest.ca" \
-keyout ca1.key \
-out ca.crt
-`req`: 创建证书请求
- `-newkey rsa:4096`: 生成4096位RSA密钥
- `-nodes`: 不加密私钥
- `-sha256`: 使用SHA-256哈希算法
- `-x509`: 生成自签名证书
- `-days 3650`: 有效期10年
- `-subj`: 证书主题信息(国家/省/市/组织/部门/域名)
- `-keyout ca.key`: 输出CA私钥文件
- `-out ca.crt`: 输出CA证书文件
2). 生成服务器证书请求
openssl req -newkey rsa:4096 -nodes -sha256 \
-subj "/C=CN/ST=Guangdong/L=guangzhou/O=person/OU=Personal/CN=www.ittest.com" \
-keyout www.ittest.com.key \
-out www.ittest.com.csr
生成服务器私钥(`www.ittest.com.key`)和证书签名请求(`www.ittest.com.csr`)
- CN(Common Name)设置为域名`www.ittest.com`
3). 用CA签发服务器证书
openssl x509 -req -days 3650 \
-CA ca.crt -CAkey ca.key -CAcreateserial \
-in www.ittest.com.csr \
-out www.ittest.com.crt
- `x509`: 证书处理命令
- `-req`: 输入是CSR文件
- `-CA`: 指定CA证书
- `-CAkey`: 指定CA私钥
- `-CAcreateserial`: 创建序列号文件
- 输出已签名的服务器证书(`www.ittest.com.crt`)
4). 验证证书内容
openssl x509 -in www.ittest.com.crt -noout -text
3、配置 Apache SSL 虚拟主机 vim /etc/httpd/conf.d/ssl.conf
<VirtualHost *:443> ServerName www.ittest.com # 替换为你的域名 DocumentRoot /var/www/html SSLEngine on SSLCertificateFile /root/ssl/www.ittest.com.crt SSLCertificateKeyFile /root/ssl/www.ittest.com.key # 可选:强化 SSL 配置(推荐) SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1 SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH SSLHonorCipherOrder on Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload" </VirtualHost>
4、配置放火墙放行apache https
firewall-cmd --permanent --add-service=https # 永久允许 HTTPS sudo firewall-cmd --reload # 重载防火墙规则
5、处理selinux策略(如启用)若系统启用 SELinux,需允许 Apache 访问证书文件:
chcon -R -t httpd_sys_content_t /root/ssl/
6、重启apache并验证
systemctl restart httpd # 重启服务
systemctl status httpd