搬瓦工部署 Laravel PHP 应用教程
Laravel 是 PHP 生态中最流行的全栈 Web 框架,以优雅的语法和丰富的功能著称。它提供了路由、ORM、队列、认证等完整的 Web 开发工具集。本文将介绍如何在搬瓦工 VPS 上从零搭建 Laravel 运行环境并部署应用。购买搬瓦工 VPS 请参考 全部方案,使用优惠码 NODESEEK2026 可享受 6.77% 的折扣。
一、安装 PHP 和扩展
apt update && apt upgrade -y
apt install software-properties-common -y
add-apt-repository ppa:ondrej/php -y
apt update
apt install php8.3 php8.3-fpm php8.3-mysql php8.3-mbstring php8.3-xml php8.3-bcmath php8.3-curl php8.3-zip php8.3-gd php8.3-redis php8.3-intl -y
php -v
二、安装 Composer
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
composer --version
三、安装数据库
apt install mariadb-server -y
systemctl enable mariadb
mysql_secure_installation
# 创建数据库和用户
mysql -u root -p << 'EOF'
CREATE DATABASE laravel;
CREATE USER 'laravel'@'localhost' IDENTIFIED BY 'your_db_password';
GRANT ALL PRIVILEGES ON laravel.* TO 'laravel'@'localhost';
FLUSH PRIVILEGES;
EOF
四、部署 Laravel 项目
4.1 创建新项目或克隆已有项目
cd /var/www
composer create-project laravel/laravel myapp
cd myapp
# 或克隆已有项目
# git clone your-repo.git myapp
# cd myapp && composer install
4.2 配置环境变量
cp .env.example .env
php artisan key:generate
# 编辑 .env 文件,配置数据库连接
# DB_CONNECTION=mysql
# DB_HOST=127.0.0.1
# DB_PORT=3306
# DB_DATABASE=laravel
# DB_USERNAME=laravel
# DB_PASSWORD=your_db_password
4.3 设置文件权限
chown -R www-data:www-data /var/www/myapp
chmod -R 775 /var/www/myapp/storage
chmod -R 775 /var/www/myapp/bootstrap/cache
4.4 运行数据库迁移
php artisan migrate
五、Nginx 配置
apt install nginx -y
cat > /etc/nginx/sites-available/laravel.conf << 'EOF'
server {
listen 80;
server_name yourdomain.com;
root /var/www/myapp/public;
index index.php;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_page 404 /index.php;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
EOF
ln -sf /etc/nginx/sites-available/laravel.conf /etc/nginx/sites-enabled/
rm -f /etc/nginx/sites-enabled/default
nginx -t && systemctl restart nginx
六、Laravel 优化
# 生产环境优化
php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan optimize
# 安装 Redis 用于缓存和队列
apt install redis-server -y
# 修改 .env: CACHE_DRIVER=redis, QUEUE_CONNECTION=redis
七、队列和定时任务
# 使用 Supervisor 管理队列
apt install supervisor -y
cat > /etc/supervisor/conf.d/laravel-worker.conf << 'EOF'
[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/myapp/artisan queue:work redis --sleep=3 --tries=3 --max-time=3600
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
user=www-data
numprocs=2
redirect_stderr=true
stdout_logfile=/var/www/myapp/storage/logs/worker.log
EOF
supervisorctl reread
supervisorctl update
# Laravel 定时任务
(crontab -l 2>/dev/null; echo "* * * * * cd /var/www/myapp && php artisan schedule:run >> /dev/null 2>&1") | crontab -
八、SSL 证书
apt install certbot python3-certbot-nginx -y
certbot --nginx -d yourdomain.com
九、常见问题
500 错误
查看 storage/logs/laravel.log 获取详细错误信息。常见原因包括文件权限不正确、.env 配置错误、缓存需要清理等。
php artisan cache:clear
php artisan config:clear
总结
Laravel 是 PHP 生态最强大的框架,功能完善、社区活跃。在搬瓦工 VPS 上配合 Nginx 和 PHP-FPM 可以稳定高效运行。其他后端框架教程包括 Ruby on Rails、Phoenix Elixir、Gin Go 等。购买搬瓦工 VPS 请访问 bwh81.net,使用优惠码 NODESEEK2026 可享受 6.77% 的折扣。