CentOS LAMP项目迁移指南
LAMP(Linux + Apache + MySQL + PHP)是经典的开源Web架构,迁移项目时需确保环境一致性、数据完整性和配置兼容性。以下是分步指南:
目标环境准备
sudo yum update -y。sudo yum install -y wget vim lsof。sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
sudo setenforce 0
sudo sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
源端与目标端环境一致性
/etc/httpd/conf.d/your_site.conf)、MySQL字符集(utf8mb4)、PHP扩展(如gd、mbstring)。若目标端未搭建LAMP环境,需先完成基础安装:
安装Apache
sudo yum install -y httpd
sudo systemctl start httpd
sudo systemctl enable httpd
安装MariaDB(MySQL替代)
sudo yum install -y mariadb-server mariadb
sudo systemctl start mariadb
sudo systemctl enable mariadb
# 运行安全脚本设置root密码
sudo mysql_secure_installation
安装PHP及扩展
sudo yum install -y epel-release
sudo yum install -y php php-mysqlnd php-gd php-mbstring php-xml
sudo systemctl restart httpd。传输文件至目标端
使用scp或rsync将源端项目文件复制到目标端Web目录(默认/var/www/html):
scp -r /path/to/source_project/ user@target_centos_ip:/var/www/html/
设置目录权限
确保Web用户(apache或www-data)对项目目录有读写权限:
sudo chown -R apache:apache /var/www/html/your_project
sudo chmod -R 755 /var/www/html/your_project
# 若项目需要写入(如上传文件),单独设置目录权限
sudo chmod -R 775 /var/www/html/your_project/uploads
调整配置文件
config.php、wp-config.php(WordPress)等配置文件,修改数据库连接信息(主机名、用户名、密码、数据库名)。/usr/local/apache2/htdocs),需替换为目标端路径(/var/www/html)。导出源端数据库
在源端使用mysqldump导出数据库(以WordPress为例):
mysqldump -u root -p your_database > your_database.sql
# 压缩减少传输量
gzip your_database.sql
传输并导入数据库
将压缩文件传输至目标端,解压后导入:
scp your_database.sql.gz user@target_centos_ip:/tmp/
gunzip /tmp/your_database.sql.gz
mysql -u root -p -e "CREATE DATABASE your_database;"
mysql -u root -p your_database < /tmp/your_database.sql
配置数据库权限
若目标端与源端不在同一服务器,需授权远程访问:
GRANT ALL PRIVILEGES ON your_database.* TO 'your_user'@'target_centos_ip' IDENTIFIED BY 'your_password';
FLUSH PRIVILEGES;
若在同一服务器,确保PHP连接数据库的主机名为localhost。
Apache配置检查
ServerName、DocumentRoot):sudo vim /etc/httpd/conf.d/your_site.conf
sudo apachectl configtest(无错误输出则正常)。sudo systemctl restart httpd。PHP功能测试
在项目根目录创建info.php:
<?php phpinfo(); ?>
访问http://target_centos_ip/info.php,确认PHP版本、扩展(如mysqlnd、gd)加载正常。
项目功能测试
http://target_centos_ip/your_project),检查前端页面显示。http://target_centos_ip/your_project/wp-admin),验证数据库连接。权限问题
若项目无法访问,检查目录权限(chown -R apache:apache)和SELinux状态(getenforce)。若SELinux开启,可临时设置为permissive模式排查:sudo setenforce 0。
数据库连接失败
sudo systemctl status mariadb。php.ini中的数据库扩展是否启用(extension=mysqlnd)。GRANT语句是否正确)。PHP扩展缺失
若项目报错缺少扩展(如Call to undefined function gd_imagecreate()),安装对应扩展:
sudo yum install -y php-gd
sudo systemctl restart httpd
通过以上步骤,可完成CentOS环境下LAMP项目的迁移。迁移后需定期备份数据,并监控服务器性能(如Apache连接数、MySQL负载)。