在CentOS上搭建Web服务器(以Apache/Nginx为例)需要系统化的步骤和注意事项。以下是详细指南和避坑要点:
系统更新
sudo yum update -y
sudo yum install epel-release -y # 扩展软件库
关闭SELinux(避免权限问题)
sudo setenforce 0 # 临时关闭
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config # 永久关闭
防火墙配置
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
sudo yum install httpd -y
错误1:无法启动Apache
sudo systemctl start httpd # 启动失败时检查日志
journalctl -xe # 查看详细错误
sudo netstat -tulnp | grep 80
错误2:403 Forbidden
sudo chown -R apache:apache /var/www/html
sudo chmod -R 755 /var/www/html
/var/www/html
下有index.html
文件。sudo systemctl start httpd
sudo systemctl enable httpd
echo "Hello World" > /var/www/html/index.html
sudo yum install nginx -y
错误1:端口冲突
sudo systemctl stop httpd
sudo systemctl disable httpd
错误2:502 Bad Gateway
systemctl status php-fpm
sudo systemctl start nginx
sudo systemctl enable nginx
echo "Hello Nginx" > /usr/share/nginx/html/index.html
sudo yum install php php-mysqlnd php-fpm -y
/etc/php-fpm.d/www.conf
:
ini
user = nginx
group = nginx
listen = /run/php-fpm/www.sock
bash
sudo systemctl restart php-fpm
sudo yum install mariadb-server mariadb -y
sudo systemctl start mariadb
sudo mysql_secure_installation # 安全配置
bash
firewall-cmd --add-port=3306/tcp --permanent
sudo yum install certbot python3-certbot-nginx -y
sudo certbot --nginx -d yourdomain.com
bash
echo "0 0,12 * * * root python3 -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew" | sudo tee -a /etc/crontab > /dev/null
apache
或nginx
,避免直接使用root
。/var/log/httpd/error_log
/var/log/nginx/error.log
bash
sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
bash
curl http://localhost
bash
echo "<?php phpinfo(); ?>" > /var/www/html/info.php
访问 http://your-ip/info.php
通过以上步骤,您可以在CentOS上快速搭建稳定的Web服务器,同时规避常见权限、端口冲突等问题。建议根据实际需求选择Apache或Nginx,并定期更新软件以修复安全漏洞。