温馨提示×

PHP框架在Ubuntu如何搭建

小樊
38
2025-11-14 21:26:20
栏目: 编程语言

在 Ubuntu 上搭建 PHP 框架的标准流程


一 环境准备与基础组件安装

  • 更新系统并安装基础工具
    • sudo apt update && sudo apt upgrade -y
  • 选择并安装 Web + PHP + 数据库组合(二选一)
    • LAMP(Apache)
      • sudo apt install apache2 mysql-server php libapache2-mod-php php-mysql php-curl php-gd php-mbstring php-xml -y
      • sudo systemctl enable --now apache2
    • LNMP(Nginx + PHP-FPM)
      • sudo apt install nginx mysql-server php-fpm php-mysql php-curl php-gd php-mbstring php-xml -y
      • sudo systemctl enable --now nginx
  • 如需较新 PHP 版本(如 PHP 8.3),可添加 Ondřej Surý 的 PPA 后安装
    • sudo apt install software-properties-common -y
    • sudo add-apt-repository ppa:ondrej/php -y
    • sudo apt update
    • sudo apt install php8.3 php8.3-fpm php8.3-mysql php8.3-curl php8.3-gd php8.3-mbstring php8.3-xml php8.3-zip -y
    • sudo systemctl enable --now php8.3-fpm
  • 防火墙放行(UFW)
    • sudo ufw allow ‘Nginx Full’ 或 sudo ufw allow ‘Apache Full’

二 数据库配置

  • 登录 MySQL 并创建项目库与用户
    • sudo mysql -u root -p
    • CREATE DATABASE your_project_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    • CREATE USER ‘your_user’@‘localhost’ IDENTIFIED BY ‘your_password’;
    • GRANT ALL PRIVILEGES ON your_project_db.* TO ‘your_user’@‘localhost’;
    • FLUSH PRIVILEGES;
    • EXIT;
  • 在框架的配置文件(如 .env 或 config)中填入:数据库名、用户名、密码、主机(通常为 127.0.0.1)、端口(3306

三 以 Laravel 为例创建与部署

  • 安装 Composer(如未安装)
    • curl -sS https://getcomposer.org/installer | php
    • sudo mv composer.phar /usr/local/bin/composer
  • 创建项目
    • composer create-project --prefer-dist laravel/laravel your-project-name
    • cd your-project-name
  • 配置环境
    • cp .env.example .env
    • 编辑 .env 填写数据库连接信息(DB_CONNECTION、DB_HOST、DB_PORT、DB_DATABASE、DB_USERNAME、DB_PASSWORD)
    • php artisan key:generate
  • 数据库迁移(按需)
    • php artisan migrate
  • 本地开发运行(仅开发环境)
    • php artisan serve(默认 http://127.0.0.1:8000

四 Web 服务器配置要点

  • Nginx 示例(将入口指向框架的 public 目录,启用 URL 重写)
    • 建议站点根目录:/var/www/your-project-name/public
    • 核心配置片段:
      • root /var/www/your-project-name/public;
      • index index.php;
      • 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; # 与已安装 PHP-FPM 版本一致 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
      • 启用站点并重载:sudo ln -s /etc/nginx/sites-available/yourdomain /etc/nginx/sites-enabled && sudo nginx -t && sudo systemctl reload nginx
  • Apache 要点
    • 启用模块:sudo a2enmod rewrite proxy proxy_fcgi
    • 虚拟主机中设置 DocumentRoot 为框架的 public,Directory 允许 .htaccess 覆盖(AllowOverride All),并使用 FilesMatch 将 PHP 交给 PHP-FPM 处理(或使用 libapache2-mod-php 模块)
  • 文件权限
    • sudo chown -R www-data:www-data /var/www/your-project-name
    • sudo chmod -R 755 /var/www/your-project-name

五 上线与安全加固清单

  • 访问与日志排查
    • 访问服务器 IP/域名验证;出错时查看
      • Nginx:/var/log/nginx/error.log
      • Apache:/var/log/apache2/error.log
  • 安全与性能
    • 开启 HTTPS(Let’s Encrypt/certbot)
    • 关闭调试:php.ini 中 display_errors = Off,log_errors = On
    • 配置防火墙仅开放 80/443
    • 定期备份代码与数据库,设置合适的文件权限与所有者(避免 777)
  • 其他常见框架
    • Symfony:可用官方安装器或 Composer 创建项目(symfony new 或 composer create-project symfony/framework-standard-edition),开发时可用 php bin/console server:run,生产环境使用 Nginx/Apache 按 public/index.php 入口部署
    • 多数框架通用步骤:安装依赖(Composer)、配置 .env、生成密钥/迁移、设置 Web 服务器入口与重写规则、设置权限并上线

0