0

0

怎么部署PHP项目_网站项目上线环境配置【方法】

看不見的法師

看不見的法師

发布时间:2026-02-11 11:15:10

|

937人浏览过

|

来源于php中文网

原创

PHP项目部署有五种方法:一、Apache+PHP+MySQL手动配置;二、Nginx+PHP-FPM高性能组合;三、Docker容器化封装;四、宝塔面板图形化操作;五、Git钩子自动部署。

怎么部署php项目_网站项目上线环境配置【方法】

如果您已完成PHP项目的本地开发,准备将其部署到生产服务器并对外提供服务,则需要完成一系列环境配置和文件迁移操作。以下是实现此目标的多种方法:

一、使用Apache + PHP + MySQL手动配置环境

该方法适用于具备Linux服务器管理权限的用户,通过安装和配置LAMP(Linux, Apache, MySQL, PHP)基础组件,构建稳定可控的运行环境。

1、登录服务器,执行命令安装Apache:sudo apt update && sudo apt install apache2

2、安装PHP及常用扩展:sudo apt install php libapache2-mod-php php-mysql

立即学习PHP免费学习笔记(深入)”;

3、启动并启用Apache服务:sudo systemctl start apache2 && sudo systemctl enable apache2

4、将PHP项目文件复制至/var/www/html/目录下,或创建子目录如/var/www/myproject/

5、修改Apache虚拟主机配置,指定DocumentRoot指向项目入口目录,并确保启用mod_rewrite模块

6、重启Apache服务使配置生效:sudo systemctl restart apache2

7、访问服务器IP或绑定域名,确认首页可正常加载且PHP文件能被解析执行而非直接下载

二、使用Nginx + PHP-FPM组合部署

该方法适合高并发场景,Nginx作为反向代理与静态资源服务器,PHP-FPM负责处理动态请求,性能与资源占用优于传统Apache模式。

1、安装Nginx和PHP-FPM:sudo apt install nginx php-fpm

2、确认PHP-FPM服务已启动:sudo systemctl start php7.4-fpm(版本号依实际安装调整)

3、编辑Nginx站点配置文件,通常位于/etc/nginx/sites-available/default或新建配置文件

4、在server块中设置root为项目路径,添加location ~ \.php$块,指定fastcgi_pass为127.0.0.1:9000或unix:/run/php/php7.4-fpm.sock

5、设置index指令包含index.php,确保支持PHP入口文件优先匹配

6、测试配置语法:sudo nginx -t,无误后重载服务:sudo systemctl reload nginx

7、检查PHPinfo页面是否正确输出,且$_SERVER['SERVER_SOFTWARE']显示Nginx而非Apache

三、通过Docker容器化部署

该方法利用标准化镜像封装运行环境,避免系统依赖冲突,便于多环境一致性交付与快速回滚。

1、在项目根目录创建Dockerfile,基于官方php:8.1-apache或php:8.1-fpm-alpine镜像

2、COPY项目代码至镜像内/var/www/html/路径,并设置WORKDIR

Hot Tattoo AI
Hot Tattoo AI

人工智能纹身生成器,提供独特的纹身创意

下载

3、RUN安装必要扩展如pdo_mysql、mbstring,并启用Apache rewrite模块(若使用apache镜像)

4、创建docker-compose.yml,定义web服务与mysql服务,配置端口映射、卷挂载和环境变量

5、执行docker-compose build构建镜像,再运行docker-compose up -d启动容器组

6、确认容器状态为up:docker ps | grep web,且浏览器访问宿主机IP:80端口时返回预期页面内容

四、使用宝塔面板图形化部署

该方法面向不熟悉命令行操作的开发者,通过Web界面完成环境搭建、站点创建、SSL证书申请等全流程操作,降低部署门槛。

1、在服务器上执行宝塔一键安装脚本:wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh

2、安装完成后记录面板地址、用户名与密码,通过浏览器访问并登录

3、进入软件商店,依次安装Nginx 1.22、PHP 8.1、MySQL 5.7(版本按项目兼容性选择)

4、点击网站 → 添加站点,填写域名(或IP)、根目录路径、PHP版本,勾选创建FTP与数据库

5、上传项目压缩包至根目录,解压后进入文件管理,确认public或web子目录为实际入口

6、在网站设置 → 网站目录中,将运行目录修改为/public或/web(如有),并保存

7、验证网站状态显示“正在运行”,且首页HTTP响应码为200而非500或403

五、通过Git钩子自动部署

该方法适用于已有Git仓库的团队协作项目,借助post-receive钩子在代码推送后自动拉取更新、安装依赖并重启服务,实现轻量级CI流程。

1、在服务器创建裸仓库:mkdir /home/git/myproject.git && cd /home/git/myproject.git && git init --bare

2、编辑hooks/post-receive文件,添加shell脚本:设置工作目录、git checkout到web路径、执行composer install(如需)、chown www-data权限

3、确保web目录拥有者为Web服务器运行用户(如www-data),且具有读写权限

4、本地项目中添加远程仓库:git remote add production user@server_ip:/home/git/myproject.git

5、推送代码触发部署:git push production main

6、检查web目录下文件时间戳是否随推送更新,且vendor目录存在且可被PHP正常加载

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
composer是什么插件
composer是什么插件

Composer是一个PHP的依赖管理工具,它可以帮助开发者在PHP项目中管理和安装依赖的库文件。Composer通过一个中央化的存储库来管理所有的依赖库文件,这个存储库包含了各种可用的依赖库的信息和版本信息。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

158

2023.12.25

mysql修改数据表名
mysql修改数据表名

MySQL修改数据表:1、首先查看数据库中所有的表,代码为:‘SHOW TABLES;’;2、修改表名,代码为:‘ALTER TABLE 旧表名 RENAME [TO] 新表名;’。php中文网还提供MySQL的相关下载、相关课程等内容,供大家免费下载使用。

673

2023.06.20

MySQL创建存储过程
MySQL创建存储过程

存储程序可以分为存储过程和函数,MySQL中创建存储过程和函数使用的语句分别为CREATE PROCEDURE和CREATE FUNCTION。使用CALL语句调用存储过程智能用输出变量返回值。函数可以从语句外调用(通过引用函数名),也能返回标量值。存储过程也可以调用其他存储过程。php中文网还提供MySQL创建存储过程的相关下载、相关课程等内容,供大家免费下载使用。

350

2023.06.21

mongodb和mysql的区别
mongodb和mysql的区别

mongodb和mysql的区别:1、数据模型;2、查询语言;3、扩展性和性能;4、可靠性。本专题为大家提供mongodb和mysql的区别的相关的文章、下载、课程内容,供大家免费下载体验。

284

2023.07.18

mysql密码忘了怎么查看
mysql密码忘了怎么查看

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS 应用软件之一。那么mysql密码忘了怎么办呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

518

2023.07.19

mysql创建数据库
mysql创建数据库

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS 应用软件之一。那么mysql怎么创建数据库呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

261

2023.07.25

mysql默认事务隔离级别
mysql默认事务隔离级别

MySQL是一种广泛使用的关系型数据库管理系统,它支持事务处理。事务是一组数据库操作,它们作为一个逻辑单元被一起执行。为了保证事务的一致性和隔离性,MySQL提供了不同的事务隔离级别。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

391

2023.08.08

sqlserver和mysql区别
sqlserver和mysql区别

SQL Server和MySQL是两种广泛使用的关系型数据库管理系统。它们具有相似的功能和用途,但在某些方面存在一些显著的区别。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

536

2023.08.11

Rust异步编程与Tokio运行时实战
Rust异步编程与Tokio运行时实战

本专题聚焦 Rust 语言的异步编程模型,深入讲解 async/await 机制与 Tokio 运行时的核心原理。内容包括异步任务调度、Future 执行模型、并发安全、网络 IO 编程以及高并发场景下的性能优化。通过实战示例,帮助开发者使用 Rust 构建高性能、低延迟的后端服务与网络应用。

1

2026.02.11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 11.5万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 11.2万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号