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 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 服务器入口与重写规则、设置权限并上线