以下是一个基于CentOS的LAMP项目实战案例,涵盖环境搭建、应用部署及安全配置,以搭建简易电商网站为例:
安装Apache
sudo yum install httpd -y
sudo systemctl start httpd
sudo systemctl enable httpd
验证:浏览器访问服务器IP,显示“Apache默认页面”。
安装MariaDB(MySQL替代)
sudo yum install mariadb-server mariadb -y
sudo systemctl start mariadb
sudo mysql_secure_installation # 设置root密码并完成安全配置
验证:登录MySQL mysql -u root -p
,创建数据库 CREATE DATABASE shopdb;
。
安装PHP及扩展
sudo yum install php php-mysql php-gd php-xml -y
sudo systemctl restart httpd
验证:在/var/www/html
创建info.php
,内容为<?php phpinfo(); ?>
,访问http://IP/info.php
查看PHP信息。
部署网站代码
/var/www/html/shop
:wget https://example.com/oscommerce.zip
unzip oscmmerce.zip -d /var/www/html/shop
chown -R apache:apache /var/www/html/shop
shop/includes/configure.php
,填入MySQL的DB_HOST
、DB_USER
、DB_PASS
。配置虚拟主机(可选)
编辑/etc/httpd/conf.d/shop.conf
:
<VirtualHost *:80>
ServerName shop.example.com
DocumentRoot /var/www/html/shop
<Directory /var/www/html/shop>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
重启Apache生效:sudo systemctl restart httpd
。
防火墙配置
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
禁用不必要的模块
编辑/etc/httpd/conf/httpd.conf
,注释掉不需要的模块(如mod_rewrite
仅在需要时启用)。
定期备份
mysqldump -u root -p shopdb > /backup/shopdb_$(date +%F).sql
tar -czvf /backup/shop_$(date +%F).tar.gz /var/www/html/shop
。/etc/httpd/conf/httpd.conf
中的MaxKeepAliveRequests
和KeepAliveTimeout
参数。tail -f /var/log/httpd/access_log
实时查看访问日志,异常时排查。