首页主机资讯php框架在ubuntu上怎么部署

php框架在ubuntu上怎么部署

时间2025-11-27 17:59:04发布访客分类主机资讯浏览521
导读:在 Ubuntu 上部署 PHP 框架的标准流程 以下步骤适用于 Laravel、ThinkPHP、Symfony 等主流框架,涵盖环境准备、Web 服务器配置、权限与数据库初始化,以及常见故障排查。 一、准备环境 更新系统并安装基础组件...

在 Ubuntu 上部署 PHP 框架的标准流程

以下步骤适用于 Laravel、ThinkPHP、Symfony 等主流框架,涵盖环境准备、Web 服务器配置、权限与数据库初始化,以及常见故障排查。

一、准备环境

  • 更新系统并安装基础组件(以 Nginx + PHP-FPM + MySQL 为例):
    • 安装:sudo apt update & & sudo apt install nginx php-fpm php-mysql unzip composer -y
    • 验证:php -vcomposer -vsudo systemctl status nginx
  • 选择与你项目匹配的 PHP 版本(如 7.4/8.0/8.1/8.2/8.3),并安装常用扩展(示例):
    • sudo apt install php-curl php-json php-zip php-gd php-mbstring php-xml php-bcmath php-pear
  • 启动并开机自启 PHP-FPMNginx
    • sudo systemctl enable --now php8.1-fpm nginx(请将 8.1 替换为你的实际版本)
  • 如需数据库,安装并加固 MySQL(创建应用专用库与用户,避免使用 root)。

二、部署通用步骤

  • 上传或拉取代码到站点目录(如 /var/www/yourproject),确保入口为框架的 public/index.php
  • 安装依赖:
    • cd /var/www/yourproject & & composer install --optimize-autoloader --no-dev
  • 配置环境:
    • 复制 .env.example.env,设置 APP_ENV=productionAPP_DEBUG=false、数据库连接等敏感信息。
    • 生成应用密钥(Laravel):php artisan key:generate
  • 数据库初始化(示例):
    • 创建库与用户(MySQL):
      • CREATE DATABASE yourdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
      • GRANT ALL ON yourdb.* TO ‘appuser’@‘localhost’ IDENTIFIED BY ‘StrongPass!’;
      • FLUSH PRIVILEGES;
    • 迁移/建表:Laravel 执行 php artisan migrate --force;ThinkPHP 可执行 php think migrate:run(按项目实际命令)
  • 设置文件权限(示例):
    • sudo chown -R www-data:www-data /var/www/yourproject
    • sudo find /var/www/yourproject -type f -exec chmod 644 { } ;
    • sudo find /var/www/yourproject -type d -exec chmod 755 { } ;
    • 可写目录(Laravel 常见):storagebootstrap/cache
      • sudo chgrp -R www-data storage bootstrap/cache
      • sudo chmod -R ug+rwx storage bootstrap/cache
  • Web 服务器配置要点:
    • Nginx 将根目录指向 public,并启用 try_files $uri $uri/ /index.php?$query_string;
    • PHP-FPM 通过 Unix socket(如 /run/php/php8.1-fpm.sock)或 127.0.0.1:9000 与 Nginx 通信。

三、Nginx 与 PHP-FPM 配置示例

  • Nginx 服务器块(将 yourdomain.com/var/www/yourproject/public 替换为你的域名与路径;将 php8.1-fpm.sock 替换为你的 PHP 版本):
    server {
        
        listen 80;
        
        server_name yourdomain.com www.yourdomain.com;
        
        root /var/www/yourproject/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:/run/php/php8.1-fpm.sock;
        
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        
            include fastcgi_params;
    
        }
    
    
        location ~ /\.ht {
        
            deny all;
    
        }
    
    }
        
    
  • 启用站点并生效:
    • sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/
    • sudo nginx -t & & sudo systemctl reload nginx
  • PHP-FPM 监听(示例路径,按实际版本调整):
    • 编辑:/etc/php/8.1/fpm/pool.d/www.conf
    • 确认:listen = /run/php/php8.1-fpm.sock
    • 重启:sudo systemctl restart php8.1-fpm

四、框架差异要点

  • Laravel
    • 入口在 public/index.php;生产环境设置 APP_ENV=productionAPP_DEBUG=false
    • 常用命令:php artisan key:generatephp artisan migrate --force、按需执行 php artisan config:cachephp artisan route:cache
    • 目录权限:storagebootstrap/cache 需对 www-data 可写
  • ThinkPHP 6
    • 入口在 public/index.php;配置 .env 的数据库连接(如 DB_TYPE/DB_HOST/DB_NAME/DB_USER/DB_PWD
    • 可使用 Composer 创建项目:composer create-project topthink=6.0. your_project*
    • 数据库迁移:php think migrate:run
    • Apache 需开启 mod_rewrite 并在虚拟主机配置 AllowOverride All 指向 public
  • Symfony
    • 入口通常为 public/index.php;开发可用内置服务器,生产使用 Nginx/PHP-FPM
    • 检查环境:php bin/console check:requirements
    • 常见扩展:intlpdo_mysql;设置 date.timezone
    • 生产路由通常指向 app.php(避免暴露 app_dev.php)。

五、生产优化与安全建议

  • 使用 HTTPS/TLS(如 Let’s Encrypt),强制 HTTP→HTTPS 跳转
  • 关闭调试:APP_DEBUG=false;设置强 APP_KEY;隐藏 server 版本信息
  • 缓存优化:Laravel 执行 config:cacheroute:cache;启用 OPcache
  • 最小权限原则:仅对 storagebootstrap/cache 等目录赋予写权限;代码目录只读
  • 专用数据库用户与最小权限;定期备份数据库与代码
  • 日志与监控:开启 Laravel LogPHP-FPM slowlog,结合 fail2ban 与防火墙策略。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: php框架在ubuntu上怎么部署
本文地址: https://pptw.com/jishu/758101.html
php代码在ubuntu上怎么调试 Debian swapper占用CPU多吗

游客 回复需填写必要信息