部署后端 PHP 和前端 Vue 项目涉及多个步骤,包括环境准备、代码部署、配置和测试。以下是一个详细的部署指南:
一、环境准备
-
服务器选择
- 可以选择云服务器(如阿里云、腾讯云、AWS 等)或本地服务器。
- 确保服务器操作系统支持 PHP 和 Node.js(如 Ubuntu、CentOS 等)。
-
安装必要的软件
- Web 服务器:Nginx 或 Apache(推荐 Nginx)。
- PHP:安装 PHP 及其扩展(如
php-fpm
、php-mysql
等)。 - 数据库:MySQL 或 MariaDB。
- Node.js 和 npm:用于构建 Vue 项目。
- Composer:用于管理 PHP 依赖。
示例(Ubuntu):
sudo apt update sudo apt install nginx php-fpm php-mysql mysql-server nodejs npm composer
-
配置防火墙
- 开放 80(HTTP)和 443(HTTPS)端口。
- 示例(UFW):
sudo ufw allow 'Nginx Full'
二、后端 PHP 部署
-
上传代码
- 将 PHP 项目代码上传到服务器(如
/var/www/your-project
)。 - 可以使用 SFTP 工具(如 FileZilla)或 Git 部署。
- 将 PHP 项目代码上传到服务器(如
-
配置 PHP
- 确保 PHP 配置正确(如
php.ini
中的upload_max_filesize
、memory_limit
等)。 - 重启 PHP 服务:
sudo systemctl restart php7.4-fpm
- 确保 PHP 配置正确(如
-
配置 Nginx
-
编辑 Nginx 配置文件(如
/etc/nginx/sites-available/your-project
):server { listen 80; server_name your-domain.com; root /var/www/your-project/public; index index.php index.html; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.ht { deny all; } }
- 启用配置并重启 Nginx:
sudo ln -s /etc/nginx/sites-available/your-project /etc/nginx/sites-enabled/ sudo systemctl restart nginx
-
-
安装依赖
- 进入项目目录,运行 Composer 安装依赖:
cd /var/www/your-project composer install
- 进入项目目录,运行 Composer 安装依赖:
-
配置数据库
- 创建数据库和用户,并更新项目中的数据库配置(如
.env
文件)。
- 创建数据库和用户,并更新项目中的数据库配置(如
三、前端 Vue 部署
-
构建项目
- 在本地开发环境中,运行以下命令构建生产版本:
npm run build
- 构建后的文件会生成在
dist
目录中。
- 在本地开发环境中,运行以下命令构建生产版本:
-
上传构建文件
- 将
dist
目录中的文件上传到服务器的静态文件目录(如/var/www/your-project/public
)。 - 如果后端和前端分离部署,可以将前端文件上传到另一个目录(如
/var/www/vue-project
)。
- 将
-
配置 Nginx(静态文件)
-
如果前端和后端分离,需要为前端配置单独的 Nginx 站点:
server { listen 80; server_name frontend.your-domain.com; root /var/www/vue-project; index index.html; location / { try_files $uri $uri/ /index.html; } }
- 重启 Nginx:
sudo systemctl restart nginx
-
四、测试与优化
-
测试
- 访问域名,确保前后端功能正常。
- 检查日志(如 Nginx 错误日志
/var/log/nginx/error.log
和 PHP 错误日志)。
-
优化
- PHP:开启 OPcache,提高性能。
- Vue:使用 CDN 加速静态资源加载。
- Nginx:启用 Gzip 压缩和缓存。
-
安全性
- 配置 HTTPS(使用 Let's Encrypt 免费证书)。
- 禁用不必要的 PHP 函数(如
eval
)。 - 定期更新软件和依赖。
五、示例目录结构
/var/www/
├── your-project/ # PHP 项目
│ ├── public/ # Web 根目录(包含前端构建文件)
│ ├── src/ # PHP 源代码
│ ├── vendor/ # Composer 依赖
│ └── .env # 环境配置
└── vue-project/ # 前端构建文件(如果分离部署)
├── index.html
├── js/
├── css/
└── ...
六、常见问题
-
404 错误
- 检查 Nginx 配置中的
root
路径是否正确。 - 确保 Vue 路由模式(如
history
模式)配置了try_files $uri $uri/ /index.html;
。
- 检查 Nginx 配置中的
-
502 错误
- 检查 PHP-FPM 是否正常运行。
- 确保 Nginx 配置中的
fastcgi_pass
路径正确。
-
跨域问题
- 如果前后端分离,需要在后端配置 CORS(跨域资源共享)。
通过以上步骤,你可以成功部署后端 PHP 和前端 Vue 项目。根据实际需求,可以进一步优化和调整配置。