系统要求
更新系统
sudo yum update -y
sudo yum upgrade -y
安装Apache:
sudo yum install httpd -y
基本命令:
sudo systemctl start httpd # 启动
sudo systemctl enable httpd # 设置开机启动
sudo systemctl status httpd # 查看状态
配置文件位置:
- 主配置文件: /etc/httpd/conf/httpd.conf
- 虚拟主机配置: /etc/httpd/conf.d/
安装Nginx:
# CentOS 7需要添加EPEL仓库
sudo yum install epel-release -y
sudo yum install nginx -y
基本命令:
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx
配置文件位置:
- 主配置文件: /etc/nginx/nginx.conf
- 站点配置: /etc/nginx/conf.d/
开放HTTP/HTTPS端口:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
查看已开放端口:
sudo firewall-cmd --list-all
安装PHP及相关模块:
sudo yum install php php-mysqlnd php-fpm php-opcache php-gd php-xml php-mbstring -y
PHP配置文件位置:
- 主配置文件: /etc/php.ini
- FPM配置文件: /etc/php-fpm.d/www.conf
安装MariaDB:
sudo yum install mariadb-server mariadb -y
sudo systemctl start mariadb
sudo systemctl enable mariadb
安全设置:
sudo mysql_secure_installation
<VirtualHost *:80>
ServerAdmin webmaster@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/html/example
ErrorLog /var/log/httpd/example_error.log
CustomLog /var/log/httpd/example_access.log combined
</VirtualHost>
server {
listen 80;
server_name example.com www.example.com;
root /var/www/html/example;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
安装Certbot:
# Apache
sudo yum install certbot python3-certbot-apache -y
# Nginx
sudo yum install certbot python3-certbot-nginx -y
获取证书:
sudo certbot --apache # Apache
sudo certbot --nginx # Nginx
自动续期测试:
sudo certbot renew --dry-run
启用Gzip压缩
httpd.conf
启用mod_deflate
启用缓存
PHP优化
php.ini
中的内存限制和超时设置文件权限
禁用不必要模块
mod_autoindex
定期更新
sudo yum update -y
日志监控
禁用SSH root登录
sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config
sudo systemctl restart sshd
安装fail2ban防止暴力破解
sudo yum install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
服务无法启动
journalctl -xe
或 /var/log/messages
netstat -tulnp
权限问题
sudo setenforce 0
数据库连接问题
通过以上步骤,您可以在CentOS系统上搭建一个安全、稳定的Web服务器环境。根据实际需求选择Apache或Nginx,并合理配置相关组件。