您的位置:首页 >CentOS PHP项目如何部署
发布于2026-04-24 阅读(0)
扫一扫,手机访问

在 CentOS 上部署 PHP 应用,其实是个相当标准化的过程。关键在于一开始就选对技术栈,然后按部就班地执行。下面,我们就来拆解一下从环境准备到上线验证的完整流程。
动手之前,先得把蓝图规划好。这一步的核心是明确目标环境,避免中途返工。
sudo yum update -y 更新系统。如果需要的软件包不在默认源里,启用 EPEL 源往往能解决问题。如果你追求部署简单、生态丰富,LAMP 栈是个稳妥的起点。
sudo yum install -y httpd mariadb-server php php-mysqlnd php-pdo php-gd php-mbstring。sudo systemctl start httpd mariadb && sudo systemctl enable httpd mariadb。sudo mysql_secure_installation,跟着向导设置 root 密码、移除匿名用户、禁止远程 root 登录等,这是数据库安全的第一道防线。CREATE DATABASE your_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER ‘your_user’@‘localhost’ IDENTIFIED BY ‘StrongPass!’;
GRANT ALL PRIVILEGES ON your_db.* TO ‘your_user’@‘localhost’;
FLUSH PRIVILEGES;
sudo vi /etc/httpd/conf.d/your_app.conf。
ServerName your.domain.local
DocumentRoot /var/www/your_app
ErrorLog /var/log/httpd/your_app_error.log
CustomLog /var/log/httpd/your_app_access.log combined
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
sudo cp -r /path/to/app /var/www/your_app。sudo chown -R apache:apache /var/www/your_app && sudo chmod -R 755 /var/www/your_app。sudo systemctl restart httpd。sudo firewall-cmd --permanent --add-service=http --add-service=https && sudo firewall-cmd --reload。对于高并发或资源敏感的场景,LNMP 架构通常是更优解。
sudo yum install -y epel-release nginx mariadb-server php php-fpm php-mysqlnd php-gd php-mbstring php-xml。sudo systemctl start nginx mariadb php-fpm && sudo systemctl enable nginx mariadb php-fpm。sudo mysql_secure_installation 完成数据库基础加固。/etc/php-fpm.d/www.conf,找到 listen 项,设置为 listen = /run/php-fpm/www.sock。同时,确保 user 和 group 参数与 Nginx 的运行用户一致(通常是 apache 或 nginx)。listen = 127.0.0.1:9000。sudo systemctl restart php-fpm。sudo vi /etc/nginx/conf.d/your_app.conf。server {
listen 80;
server_name your.domain.local;
root /usr/share/nginx/html/your_app;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/run/php-fpm/www.sock; # 若用 TCP,改为 127.0.0.1:9000
}
location ~ /\.ht {
deny all;
}
}
sudo cp -r /path/to/app /usr/share/nginx/html/your_app。sudo chown -R nginx:nginx /usr/share/nginx/html/your_app && sudo chmod -R 755 /usr/share/nginx/html/your_app。sudo systemctl restart nginx。服务跑起来只是第一步,确保一切运转正常才是关键。下面这些验证和排错步骤,能帮你省去不少麻烦。
info.php 文件,内容为 。访问这个文件,可以直观地看到 PHP 版本、已加载的扩展(比如 mysqli/pdo_mysql、gd、mbstring 等)是否齐全。.env 或 config/database.php),确认数据库连接参数(DB_HOST, DB_USER, DB_PASS, DB_NAME)完全正确,并且数据库用户确实拥有从 localhost 连接的权限。setenforce 0 切换到宽容模式来测试。但在生产环境,更推荐使用 semanage fcontext 命令设置精细的策略,而不是直接关闭它。sudo firewall-cmd --permanent --add-service=http --add-service=https && sudo firewall-cmd --reload。/var/log/httpd/error_log;Nginx 在 /var/log/nginx/error.log;PHP-FPM 的错误日志通常在 /var/log/php-fpm/www-error.log。部署完毕,或者遇到问题时,可以快速对照下面这个清单进行排查。
| 检查项 | 期望结果 | 命令或路径 |
|---|---|---|
| Web 服务 | 80/443 正常访问 | curl -I http://域名 |
| PHP 解析 | info.php 正常显示 | /var/www/your_app/info.php |
| 数据库 | 可本地登录并授权 | mysql -u root -p;SHOW GRANTS; |
| 防火墙 | 80/443 放行 | firewall-cmd --list-services |
| SELinux | 未阻断访问 | getenforce(返回 Permissive/Disabled 便于排查) |
| 目录权限 | 属主与权限正确 | ls -ld /var/www/your_app;ps aux |
总的来说,以上流程完整覆盖了 LAMP 和 LNMP 这两种在 CentOS 上部署 PHP 项目的主流方式。你只需要根据项目的实际需求和团队的技术栈偏好,选择其中一条路径执行,就能顺利完成从零到一的上线过程。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
9