当前位置:首页 > 云服务器 > 正文

PHP项目上线放在服务器哪里?正确位置助你高效部署!

将PHP项目部署到服务器时,通常需要遵循以下步骤和最佳实践:

项目存放位置

  • 推荐目录:/var/www/your_project/
    • 这是Linux服务器存放Web项目的标准目录(your_project替换为项目名称)。

  • 关键目录结构: /var/www/your_project/ ├── public/ # Web入口目录(存放index.php) ├── app/ # 应用代码 ├── config/ # 配置文件 ├── vendor/ # Composer依赖 └── storage/ # 运行时文件(需可写权限)

设置Web服务器

Apache配置示例

<VirtualHost *:80> ServerName yourdomain.com DocumentRoot /var/www/your_project/public <Directory /var/www/your_project/public> Options -Indexes +FollowSymLinks AllowOverride All Require all granted </Directory> # 错误日志 ErrorLog ${APACHE_LOG_DIR}/your_project_error.log CustomLog ${APACHE_LOG_DIR}/your_project_access.log combined </VirtualHost>

启用配置:sudo a2ensite your_project.conf && sudo systemctl reload apache2

PHP项目上线放在服务器哪里?正确位置助你高效部署! 第1张

Nginx配置示例

server { listen 80; server_name yourdomain.com; root /var/www/your_project/public; index index.php; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ .php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; # 根据PHP版本调整 } # 禁止访问敏感文件 location ~ /.(?!well-known).* { deny all; } }

生效配置:sudo nginx -s reload

关键权限设置

# 将项目所有权交给Web用户(如www-data) sudo chown -R www-data:www-data /var/www/your_project # 设置存储目录可写(Laravel等框架需要) sudo chmod -R 775 /var/www/your_project/storage/

环境配置

  • 创建.env文件: cp .env.example .env nano .env # 填写数据库等生产环境配置
  • 保护敏感文件: # Nginx阻止访问.env location ~ /.env { deny all; return 403; }

部署流程

# 1. 拉取代码 git clone https://github.com/your/project.git /var/www/your_project # 2. 安装依赖 composer install --no-dev --optimize-autoloader # 3. 生成优化文件(框架相关) php artisan config:cache # Laravel示例 php artisan route:cache # 4. 处理前端资源(如需要) npm install && npm run prod

安全增强

  • 禁用危险函数:在php.ini中设置: disable_functions = exec,passthru,shell_exec,system
  • 启用HTTPS:使用Let’s Encrypt免费证书: sudo certbot --apache # 或 --nginx

自动化部署(可选)

使用Git钩子或CI/CD工具(如GitHub Actions)实现自动部署:

PHP项目上线放在服务器哪里?正确位置助你高效部署! 第2张

# .github/workflows/deploy.yml 示例 name: Deploy on: push: branches: [main] jobs: deploy: runs-on: ubuntu-latest steps: - name: SSH Deploy uses: appleboy/ssh-action@master with: host: your_server_ip username: deploy_user key: ${{ secrets.SSH_PRIVATE_KEY }} script: | cd /var/www/your_project git pull origin main composer install --no-dev php artisan migrate --force

常见问题解决

  • 权限错误:确保storage/和bootstrap/cache/目录对Web用户可写。
  • 白屏问题:检查PHP错误日志(/var/log/php/error.log),常见于环境变量未加载。
  • 数据库连接失败:确认.env中的数据库配置与生产环境一致。

提示:对于高可用架构,建议将项目放在分布式存储(如NFS)或容器化部署(Docker + Kubernetes)。

通过以上步骤,你的PHP项目将安全高效地运行在生产环境中!

PHP项目上线放在服务器哪里?正确位置助你高效部署! 第3张

0