发布于2026-07-03 阅读(0)
扫一扫,手机访问
在 Ubuntu 上搭建 PHP 框架的标准流程

先说核心判断:在Ubuntu上部署PHP框架,流程虽然看着步骤多,但只要环境准备扎实,后面基本就是流水线作业。这里把标准流程拆解开,从零开始,一步步走一遍。
先做系统更新总没错:
sudo apt update && sudo apt upgrade -y
接下来面临第一个选择:Web服务器用Apache还是Nginx?这直接决定了后续的组件搭配。
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
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
最后别忘了防火墙放行:
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)。
以Lara vel走一遍完整流程。先装Composer——PHP生态里绕不过去的依赖管理工具:
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
然后创建项目:
composer create-project --prefer-dist lara vel/lara vel 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服务器上了。
关键思路:把入口指向框架的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-a vailable/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模块也行。
最后但容易被忽略的一步:设置正确的目录权限。标准做法是把项目目录归属给www-data用户:
sudo chown -R www-data:www-data /var/www/your-project-name
sudo chmod -R 755 /var/www/your-project-name
部署不是终点,上线前后的安全措施同样重要。
访问服务器IP或域名验证是否能正常打开。如果遇到白屏或500错误,先看日志:
/var/log/nginx/error.log/var/log/apache2/error.logdisplay_errors = Off,同时保持log_errors = On——错误要记,但要记在日志里,而不是暴露给用户如果是Symfony,流程大同小异:用官方安装器或Composer创建项目(symfony new或composer create-project symfony/framework-standard-edition),开发时php bin/console server:run,生产环境用Nginx/Apache指向public/index.php入口即可。
绝大多数PHP框架其实遵循同一套模式:Composer装依赖→配置.env→生成密钥→数据库迁移→设置Web服务器入口与重写规则→调整权限→上线。流程固定,变的是框架本身的写法习惯。掌握了一套,其他的只是花点时间熟悉配置文件的写法差异而已。
上一篇:PHP文件在Ubuntu如何共享
下一篇:PHP代码在Ubuntu如何调试
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8