温馨提示×

Ubuntu环境下Laravel项目如何部署

小樊
55
2025-09-12 21:42:33
栏目: 智能运维

以下是在Ubuntu环境下部署Laravel项目的核心步骤:

一、环境准备

  1. 更新系统
    sudo apt update && sudo apt upgrade -y
    
  2. 安装基础组件
    • Nginx + PHP-FPM(推荐):
      sudo apt install nginx php-fpm php-mysql php-gd php-mbstring php-curl php-xml
      
    • Apache + PHP(可选):
      sudo apt install apache2 php libapache2-mod-php php-mysql
      sudo a2enmod rewrite
      
  3. 安装Composer
    curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
    

二、部署Laravel项目

  1. 上传项目代码
    • 通过Git克隆或直接上传至服务器目录(如/var/www/your_project):
      git clone <仓库地址> /var/www/your_project
      
  2. 安装依赖
    cd /var/www/your_project
    composer install --optimize-autoloader --no-dev
    
  3. 配置环境变量
    • 复制.env.example并修改为.env,设置数据库等参数:
      cp .env.example .env
      nano .env
      # 修改示例:
      DB_CONNECTION=mysql
      DB_HOST=127.0.0.1
      DB_DATABASE=your_db
      DB_USERNAME=your_user
      DB_PASSWORD=your_password
      
  4. 生成应用密钥
    php artisan key:generate
    
  5. 设置文件权限
    sudo chown -R www-data:www-data storage bootstrap/cache
    sudo chmod -R 755 storage bootstrap/cache
    

三、配置Web服务器

Nginx配置

  1. 创建虚拟主机文件:
    sudo nano /etc/nginx/sites-available/your_project
    
  2. 添加以下内容(替换your_domain和路径):
    server {
        listen 80;
        server_name your_domain.com;
        root /var/www/your_project/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:/var/run/php/php7.4-fpm.sock;
        }
        location ~ /\.ht {
            deny all;
        }
    }
    
  3. 启用配置并重启Nginx:
    sudo ln -s /etc/nginx/sites-available/your_project /etc/nginx/sites-enabled
    sudo nginx -t
    sudo systemctl restart nginx
    

Apache配置

  1. 创建虚拟主机文件:
    sudo nano /etc/apache2/sites-available/your_project.conf
    
  2. 添加以下内容(替换your_domain和路径):
    <VirtualHost *:80>
        ServerName your_domain.com
        DocumentRoot /var/www/your_project/public
        <Directory /var/www/your_project/public>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
        </Directory>
    </VirtualHost>
    
  3. 启用配置并重启Apache:
    sudo a2ensite your_project.conf
    sudo systemctl restart apache2
    

四、数据库与优化

  1. 创建数据库并导入数据
    sudo mysql -u root -p
    CREATE DATABASE your_db;
    USE your_db;
    SOURCE /path/to/your_project/database.sql; # 如有需要
    
  2. 执行迁移
    php artisan migrate
    
  3. 优化性能(生产环境)
    php artisan config:cache
    php artisan route:cache
    php artisan view:cache
    

五、安全与维护

  1. 启用SSL(可选)
    使用Let’s Encrypt免费证书:
    sudo apt install certbot python3-certbot-nginx
    sudo certbot --nginx -d your_domain.com
    
  2. 设置定时任务(如队列处理)
    sudo crontab -e
    # 添加示例(每分钟处理队列):
    * * * * * php /var/www/your_project/artisan queue:work
    

关键参考

  • Nginx配置:
  • 环境变量管理:
  • 权限设置:

0