firewall-cmd --permanent --add-service=http
来打开 Web 服务器地址。在CentOS上打开Web服务器的步骤如下:
1、安装Apache
更新系统软件包:确保系统的软件包是最新的。
sudo yum update -y
安装Apache:通过Yum包管理器安装Apache HTTP Server。
sudo yum install httpd -y
2、启动并设置Apache服务
启动Apache服务:使用以下命令启动Apache服务。
sudo systemctl start httpd
设置Apache开机自启动:使Apache在系统重启后自动启动。
sudo systemctl enable httpd
3、配置防火墙
允许HTTP和HTTPS流量:默认情况下,CentOS使用Firewalld作为防火墙管理工具,需要将HTTP和HTTPS端口添加到防火墙规则中。
sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https
重新加载防火墙配置:使更改生效。
sudo firewall-cmd --reload
4、验证Apache安装
访问服务器IP地址:在浏览器中输入服务器的IP地址或域名,例如http://your_server_ip,如果看到Apache的测试页面,说明安装成功。
5、配置虚拟主机(可选)
创建虚拟主机配置文件:在/etc/httpd/conf.d目录中创建新的虚拟主机配置文件,为example.com创建配置文件。
sudo nano /etc/httpd/conf.d/example.com.conf
添加以下内容:
<VirtualHost *:80> ServerAdmin admin@example.com DocumentRoot "/var/www/html/example.com" ServerName example.com ServerAlias www.example.com <Directory "/var/www/html/example.com"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> ErrorLog /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/example.com-access.log combined </VirtualHost>
创建网站目录并设置权限:
sudo mkdir -p /var/www/html/example.com sudo chown -R $USER:$USER /var/www/html/example.com sudo chmod -R 755 /var/www/html/example.com
重启Apache服务:使配置生效。
sudo systemctl restart httpd
6、启用SSL/TLS(可选)
安装mod_ssl模块:
sudo yum install mod_ssl -y
生成自签名证书(测试用途):
sudo openssl req -new -newkey rsa:2048 -nodes -keyout /etc/pki/tls/private/example.com.key -out /etc/pki/tls/certs/example.com.csr sudo openssl x509 -req -days 365 -in /etc/pki/tls/certs/example.com.csr -signkey /etc/pki/tls/private/example.com.key -out /etc/pki/tls/certs/example.com.crt
配置SSL虚拟主机:编辑/etc/httpd/conf.d/ssl.conf文件。
<VirtualHost *:443> ServerAdmin webmaster@example.com DocumentRoot "/var/www/html" ServerName example.com ServerAlias www.example.com SSLEngine on SSLCertificateFile /etc/pki/tls/certs/example.com.crt SSLCertificateKeyFile /etc/pki/tls/private/example.com.key ErrorLog "/var/log/httpd/example.com-ssl-error_log" CustomLog "/var/log/httpd/example.com-ssl-access_log" combined </VirtualHost>
重启Apache服务:
sudo systemctl restart httpd
7、优化和安全配置
禁用目录浏览:在虚拟主机配置文件中添加或修改以下内容:
<Directory "/var/www/html"> Options -Indexes </Directory>
启用Gzip压缩:在Apache配置文件中添加以下内容:
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript
启用缓存:在虚拟主机配置文件中添加以下内容:
<IfModule mod_expires.c> ExpiresActive On ExpiresDefault "access plus 1 hour" ExpiresByType image/jpg "access plus 1 year" ExpiresByType image/jpeg "access plus 1 year" ExpiresByType image/gif "access plus 1 year" ExpiresByType image/png "access plus 1 year" ExpiresByType text/css "access plus 1 month" ExpiresByType application/pdf "access plus 1 month" ExpiresByType text/x-javascript "access plus 1 month" ExpiresByType application/x-shockwave-flash "access plus 1 month" ExpiresByType image/x-icon "access plus 1 year" ExpiresDefault "access plus 2 days" </IfModule>
定期更新和安全检查:定期更新服务器软件和进行安全检查,以确保服务器的安全性和稳定性。
sudo yum update sudo yum upgrade
常见问题解答(FAQs)
1、如何更改Apache的默认网页根目录?
要更改Apache的默认网页根目录,可以编辑Apache的主配置文件/etc/httpd/conf/httpd.conf
,找到DocumentRoot
指令并将其设置为新的目录路径,然后重启Apache服务以使更改生效。
DocumentRoot "/new/path/to/webroot"
2、如何在CentOS上启用SELinux并允许Apache访问特定目录?
如果系统启用了SELinux,可以使用以下命令设置适当的规则,以允许Apache访问特定目录:
sudo setsebool -P httpd_unified 1 sudo chcon -t httpd_sys_content_t /path/to/webroot -R
然后重启Apache服务:
sudo systemctl restart httpd