温馨提示×

laravel在centos上如何实现自动化部署

小樊
52
2025-03-29 15:35:26
栏目: 智能运维

在CentOS上实现Laravel的自动化部署可以通过多种方式完成,以下是使用Docker和GitLab CI/CD的示例流程:

使用Docker实现自动化部署

  1. 安装Docker及相关工具

    sudo yum install -y epel-release sudo yum install -y docker sudo systemctl start docker sudo systemctl enable docker 
  2. 创建Dockerfile: 在你的Laravel项目根目录下创建一个Dockerfile,内容如下:

    FROM php:7.4-fpm # 安装依赖 RUN yum install -y git zip unzip # 安装Composer COPY --from=composer:latest /usr/bin/composer /usr/bin/composer # 设置工作目录 WORKDIR /var/www/html # 复制项目文件 COPY . /var/www/html # 安装项目依赖 RUN composer install --optimize-autoloader --no-dev # 配置文件权限 RUN chown -R www-data:www-data /var/www/html RUN chmod -R 755 /var/www/html/storage RUN chmod -R 755 /var/www/html/bootstrap/cache 
  3. 创建docker-compose.yml

    version: '3' services: web: build: . volumes: - .:/var/www/html ports: - "8000:8000" depends_on: - db db: image: mysql:5.7 volumes: - db_data:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: example MYSQL_DATABASE: laravel MYSQL_USER: user MYSQL_PASSWORD: password volumes: db_data: 
  4. 初始化Docker Compose

    docker-compose up -d 
  5. 配置Nginx(可选): 如果你想使用Nginx作为Web服务器,可以按照以下步骤进行配置:

    server { listen 80; server_name your_domain_or_IP; root /var/www/html/public; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php-fpm/php7.4-fpm.sock; } location /\.ht { deny all; } } 
  6. 重启Nginx

    sudo systemctl restart nginx 

使用GitLab CI/CD实现自动化部署

  1. 配置.gitlab-ci.yml: 在你的Laravel项目根目录下创建一个.gitlab-ci.yml文件,内容如下:

    stages: - build - test - deploy build: stage: build script: - composer install --optimize-autoloader --no-dev - php artisan key:generate - php artisan config:cache test: stage: test script: - vendor/bin/phpunit --coverage-clover build/logs/clover.xml deploy: stage: deploy script: - rsync -avz --delete --exclude='.git' --exclude='.env' . user@your_server_ip:/path/to/your/laravel/public only: - master 
  2. 配置SSH密钥: 在GitLab CI/CD Runner上配置SSH密钥,以便能够安全地访问你的服务器。

  3. 部署到服务器: 在.gitlab-ci.yml中配置的deploy阶段会自动将代码同步到你的服务器。

通过以上步骤,你可以在CentOS上实现Laravel的自动化部署。根据你的具体需求,可以选择使用Docker或GitLab CI/CD来实现更高效的部署流程。

0