搬瓦工部署 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 RailsPhoenix ElixirGin Go 等。购买搬瓦工 VPS 请访问 bwh81.net,使用优惠码 NODESEEK2026 可享受 6.77% 的折扣。

关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工的方案、优惠和教程。我们不销售主机,不提供技术服务。

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。