CentOS LAMP 项目部署实操指南
一 环境准备与组件安装
sudo yum update -ysudo yum install httpd -ysudo systemctl start httpd && sudo systemctl enable httpdsudo yum install mariadb-server mariadb -ysudo systemctl start mariadb && sudo systemctl enable mariadbsudo mysql_secure_installationsudo yum install php php-mysqlnd php-gd php-mbstring php-xml php-opcache -ysudo yum install php-fpm -y && sudo systemctl enable --now php-fpmsudo firewall-cmd --permanent --add-service=http && sudo firewall-cmd --permanent --add-service=https && sudo firewall-cmd --reload/etc/php.ini,设置 date.timezone = Asia/Shanghai/etc/httpd/conf/httpd.conf,在 DirectoryIndex 中加入 index.php二 部署你的项目
sudo vi /etc/httpd/conf.d/example.com.conf<VirtualHost *:80>
ServerAdmin webmaster@example.com
DocumentRoot "/var/www/html/example.com"
ServerName example.com
ServerAlias www.example.com
ErrorLog "/var/log/httpd/example.com-error_log"
CustomLog "/var/log/httpd/example.com-access_log" common
<Directory "/var/www/html/example.com">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
sudo mkdir -p /var/www/html/example.comsudo chown -R apache:apache /var/www/html/example.com && sudo chmod -R 755 /var/www/html/example.comsudo systemctl reload httpdindex.php 或入口文件在目录中http://服务器IP/ 或 http://域名/,确认首页或路由可正常访问三 数据库与项目配置
mysql -u root -pCREATE DATABASE myapp CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'myapp'@'localhost' IDENTIFIED BY 'StrongPass!23';
GRANT ALL PRIVILEGES ON myapp.* TO 'myapp'@'localhost';
FLUSH PRIVILEGES;
mysql -u myapp -p myapp < /path/to/schema.sqlconfig.php 或 .env),设置:
localhostmyappmyapp / StrongPass!23uploads/、storage/)建议:chown -R apache:apache <目录> && chmod -R 755 <目录>四 上线验证与常见问题
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.phphttp://服务器IP/info.php,确认 PHP 版本与扩展加载正常(完成后建议删除该文件)/var/log/httpd/error_log/var/log/php-fpm/www-error.log(若启用 FPM)<Directory> 中 Require all granted 与目录权限(apache:apache,755)config 中的主机、库名、账号、密码与是否允许 localhost 访问sudo setenforce 0,生产环境请改为正确的 SELinux 策略(如 httpd_sys_content_t、httpd_sys_rw_content_t)五 安全与优化建议
sudo yum install certbot python2-certbot-apache -ysudo certbot --apache -d example.com -d www.example.comphp.ini 中设置 opcache.enable=1memory_limit、upload_max_filesize、post_max_size、max_execution_timehttpd.conf 中设置 ServerTokens Prod 与 ServerSignature Offsudo yum update -y