Laravel项目Ubuntu部署步骤
导读:Ubuntu 部署 Laravel 项目步骤 一 准备与安装基础环境 更新系统并安装基础软件: sudo apt update && sudo apt upgrade -y sudo apt install nginx...
Ubuntu 部署 Laravel 项目步骤
一 准备与安装基础环境
- 更新系统并安装基础软件:
- sudo apt update & & sudo apt upgrade -y
- sudo apt install nginx mysql-server curl git unzip -y
- 安装 PHP 与常用扩展(以 PHP 8.1 为例,可按需选择 8.2/8.3):
- sudo apt install php8.1 php8.1-fpm php8.1-mysql php8.1-curl php8.1-gd php8.1-mbstring php8.1-xml php8.1-zip php8.1-bcmath -y
- 启动并开机自启服务:
- sudo systemctl enable --now nginx
- sudo systemctl enable --now php8.1-fpm
- 安装 Composer(全局):
- curl -sS https://getcomposer.org/installer | php
- sudo mv composer.phar /usr/local/bin/composer
- composer --version
- 建议:开放防火墙端口 80/443(UFW:sudo ufw allow ‘Nginx Full’)。
二 创建或拉取项目并安装依赖
- 方式 A 全新安装:
- cd /var/www
- sudo composer create-project --prefer-dist laravel/laravel yourproject
- 方式 B 部署现有项目:
- cd /var/www
- sudo git clone https://github.com/your/repo.git yourproject
- cd yourproject & & sudo composer install --optimize-autoloader --no-dev
- 设置目录属主(Web 服务运行用户通常为 www-data):
- sudo chown -R www-data:www-data /var/www/yourproject
- 生成应用密钥(确保 .env 已配置 APP_KEY 或执行后复制输出到 .env):
- php artisan key:generate。
三 配置数据库
- 安全初始化与登录:
- sudo mysql_secure_installation
- sudo mysql -u root -p
- 创建数据库与专用用户(生产环境不建议使用 root):
- CREATE DATABASE laravel_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- CREATE USER ‘laravel_user’@‘localhost’ IDENTIFIED BY ‘StrongPassword!’;
- GRANT ALL ON laravel_db.* TO ‘laravel_user’@‘localhost’;
- FLUSH PRIVILEGES;
- EXIT;
- 配置 .env(示例):
- DB_CONNECTION=mysql
- DB_HOST=127.0.0.1
- DB_PORT=3306
- DB_DATABASE=laravel_db
- DB_USERNAME=laravel_user
- DB_PASSWORD=StrongPassword!
- 运行迁移(可按需加 --force):
- php artisan migrate --force。
四 配置 Nginx 站点
- 新建站点配置:
- sudo nano /etc/nginx/sites-available/yourdomain.com
- 示例配置(将 yourdomain.com 与 /var/www/yourproject/public 替换为实际值,PHP 版本与 sock 路径保持一致):
-
server { listen 80; server_name yourdomain.com www.yourdomain.com; root /var/www/yourproject/public; index index.php index.html;
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; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
location ~ /.ht { deny all; } }
-
- 启用站点并测试:
- sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/
- sudo rm -f /etc/nginx/sites-enabled/default # 如存在默认站点可移除
- sudo nginx -t & & sudo systemctl reload nginx。
五 文件权限与目录可写
- 推荐最小权限(避免使用 777):
- sudo chown -R www-data:www-data /var/www/yourproject
- sudo find /var/www/yourproject -type f -exec chmod 644 { } ;
- sudo find /var/www/yourproject -type d -exec chmod 755 { } ;
- sudo chmod -R 775 /var/www/yourproject/storage /var/www/yourproject/bootstrap/cache
- 如部署中遇到写入错误,可临时放宽 storage 与 bootstrap/cache 权限为 777,排障后再收紧。
六 生产环境优化与可选组件
- 优化 Laravel(生产):
- php artisan config:cache
- php artisan route:cache
- php artisan view:cache
- composer dump-autoload --optimize
- 队列与调度(如用到):
- 队列常驻:php artisan queue:work --daemon --tries=3
- 计划任务:将 * * * * * cd /var/www/yourproject & & php artisan schedule:run > > /dev/null 2> & 1 加入 crontab
- 可选缓存/队列驱动(以 Redis 为例,需提前安装并启动 Redis 服务):
- .env:CACHE_DRIVER=redis;QUEUE_CONNECTION=redis;REDIS_HOST=127.0.0.1;REDIS_PORT=6379
- 验证:php artisan tinker → Redis::ping() 应返回 PONG
- 可选:启用 HTTPS(Certbot)
- sudo apt install certbot python3-certbot-nginx -y
- sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
- 访问验证:打开浏览器访问 http://yourdomain.com,确认首页与接口正常。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Laravel项目Ubuntu部署步骤
本文地址: https://pptw.com/jishu/755701.html
