系统要求
更新系统
sudo yum update -y
安装Apache
sudo yum install httpd -y
启动Apache服务并设置开机自启
sudo systemctl start httpd
sudo systemctl enable httpd
检查Apache状态
sudo systemctl status httpd
配置防火墙允许HTTP/HTTPS流量
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
测试安装 在浏览器访问服务器IP地址,应看到Apache测试页面
安装MariaDB(MySQL的替代品)
sudo yum install mariadb-server mariadb -y
启动并启用MariaDB
sudo systemctl start mariadb
sudo systemctl enable mariadb
运行安全安装脚本
sudo mysql_secure_installation
按照提示设置root密码并完成安全配置
测试登录
mysql -u root -p
安装PHP及相关模块
sudo yum install php php-mysqlnd php-fpm php-gd php-xml php-mbstring -y
重启Apache使PHP生效
sudo systemctl restart httpd
测试PHP
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
访问http://your-server-ip/info.php
查看PHP信息页面
创建网站目录
sudo mkdir -p /var/www/example.com/public_html
sudo chown -R apache:apache /var/www/example.com/public_html
创建虚拟主机配置文件
sudo vi /etc/httpd/conf.d/example.com.conf
添加以下内容:
<VirtualHost *:80>
ServerAdmin admin@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html
ErrorLog /var/log/httpd/example.com-error.log
CustomLog /var/log/httpd/example.com-access.log combined
</VirtualHost>
测试配置并重启Apache
sudo apachectl configtest
sudo systemctl restart httpd
安装EPEL仓库
sudo yum install epel-release -y
安装phpMyAdmin
sudo yum install phpmyadmin -y
配置phpMyAdmin
sudo vi /etc/httpd/conf.d/phpMyAdmin.conf
修改Require ip
部分允许你的IP访问
重启Apache
sudo systemctl restart httpd
访问phpMyAdmin
通过http://your-server-ip/phpmyadmin
访问
禁用目录浏览
sudo sed -i 's/Options Indexes FollowSymLinks/Options -Indexes +FollowSymLinks/' /etc/httpd/conf/httpd.conf
隐藏Apache版本信息
echo "ServerTokens Prod" | sudo tee -a /etc/httpd/conf/httpd.conf
echo "ServerSignature Off" | sudo tee -a /etc/httpd/conf/httpd.conf
定期更新系统
sudo yum update -y
设置自动安全更新
sudo yum install yum-cron -y
sudo systemctl enable yum-cron
sudo systemctl start yum-cron
Apache无法启动
sudo tail -n 50 /var/log/httpd/error_log
sudo netstat -tulnp | grep :80
PHP文件不解析
/etc/httpd/conf.d/php.conf
是否存在数据库连接问题
GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password'; FLUSH PRIVILEGES;
权限问题
sudo chown -R apache:apache /var/www/html
通过以上步骤,您已经在CentOS系统上成功搭建了一个功能完整的LAMP(Linux, Apache, MySQL/MariaDB, PHP)Web服务器环境。