讲师中心 微信公众号
AI工具推荐 视频效率加速

在本地虚拟机搭建集群,如何批量安装Laravel

秋杰大大_4717

秋杰大大_4717

发布时间:2026-09-27 13:54:37

|

607人浏览过

|

来源于php中文网

原创

批量安装Laravel集群的核心是标准化环境与自动化部署:通过Vagrant多实例、Docker Compose副本或Ansible批量配置,统一PHP版本、扩展、依赖及环境变量,共享数据库与Redis,禁用file session,迁移仅由单节点执行。

在本地虚拟机搭建集群,如何批量安装laravel

在本地虚拟机搭建集群并批量安装 Laravel,核心思路不是“单台逐个装”,而是统一环境 + 自动化部署。Laravel 本身是 PHP 应用,不直接支持“集群原生部署”,但你可以在多台虚拟机(如 Vagrant 管理的 Homestead 实例、或 Docker 容器集群)中,通过脚本+配置驱动方式实现批量初始化。

以下是真正可行、贴近生产逻辑的批量安装路径:

✅ 明确前提:集群 ≠ 多个 Laravel 实例乱跑

Laravel 是无状态应用,批量部署通常指:

  • 多个节点运行相同 Laravel 应用(负载均衡场景)
  • 每个节点独立运行,共享同一数据库和缓存(Redis)、文件存储(S3 或共享 NFS)
  • 所有节点环境一致(PHP 版本、扩展、依赖、配置)

因此,“批量安装”本质是:标准化镜像 + 配置注入 + 一键拉起


? 方法一:基于 Vagrant + Shell 脚本批量初始化 Homestead 节点

适合轻量集群(如 3–5 台 CentOS/Ubuntu 虚拟机),用 Vagrantfile 控制多实例,配合 shell provisioner 自动装 Laravel。

关键步骤:

  • 在 Vagrantfile 中定义多个 config.vm.define 实例(如 web1, web2, web3)
  • 每个实例挂载同一份 Laravel 代码(或通过 Git 克隆统一仓库)
  • 使用 config.vm.provision "shell" 执行统一安装脚本,例如:
# install-laravel.sh(在每台 VM 中运行)
apt-get update
apt-get install -y php8.2-cli php8.2-mbstring php8.2-xml php8.2-curl php8.2-sqlite3
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
cd /vagrant/app
composer install --no-dev --optimize-autoloader
php artisan key:generate --force
chown -R www-data:www-data storage bootstrap/cache

? 提示:把 Laravel 项目代码放在宿主机共享目录(如 ./laravel-app),Vagrant 自动同步到 /vagrant/app,避免每台重复下载。


? 方法二:Docker Swarm / Compose 批量部署(推荐)

更现代、可复现性高,天然支持“批量”。

Laravel
Laravel

避免常见的Laravel错误:N+1查询、批量赋值、缓存陷阱及队列序列化陷阱。

下载

操作要点:

  • 编写标准 Dockerfile(基于 php:8.2-apache,预装扩展 + 启用 mod_rewrite)
  • 使用 docker-compose.yml 定义多个 laravel-app service 实例(replicas: 3)
  • 用 .env 和 docker config/secrets 注入环境变量(DB_HOST、APP_KEY 等)
  • 构建镜像时 COPY 代码 + RUN composer install,确保依赖只装一次

示例片段:

services:
  app:
    build: .
    environment:
      - APP_ENV=production
      - DB_HOST=db
    depends_on: [db, redis]
    deploy:
      replicas: 3

✅ 优势:启动即集群,扩容缩容只需改 replicas;所有节点完全一致;镜像可推送到私有 Registry 复用。


⚙️ 方法三:Ansible 批量配置(适合已存在的虚拟机集群)

如果你已有若干台运行中的 Ubuntu/CentOS 虚拟机(IP 已知),用 Ansible 最省力。

最小 playbook 示例(deploy-laravel.yml):

- hosts: laravel_nodes
  become: true
  vars:
    laravel_dir: /var/www/myapp
  tasks:
    - name: Install PHP and extensions
      apt:
        name: "{{ item }}"
        state: present
      loop:
        - php8.2-cli
        - php8.2-mbstring
        - php8.2-xml
        - php8.2-curl

    - name: Install Composer globally
      get_url:
        url: https://getcomposer.org/installer
        dest: /tmp/composer-installer.php
      command: php /tmp/composer-installer.php --install-dir=/usr/local/bin --filename=composer

    - name: Clone Laravel app
      git:
        repo: https://gitlab.example.com/team/myapp.git
        dest: "{{ laravel_dir }}"
        version: main

    - name: Run composer install
      command: composer install --no-dev --optimize-autoloader
      args:
        chdir: "{{ laravel_dir }}"

    - name: Generate APP_KEY
      command: php artisan key:generate --force
      args:
        chdir: "{{ laravel_dir }}"

执行命令:

ansible-playbook -i inventory.ini deploy-laravel.yml

✅ 适合运维成熟团队;支持回滚、幂等、变量分组(dev/staging/prod)。


⚠️ 必须同步处理的关键项(否则集群会出问题)

  • .env 文件不能硬编码在代码里 → 用环境变量注入(Docker env / Ansible template / Vagrant synced folder 配置)
  • storage/ 和 bootstrap/cache 目录需可写 → 在容器中设 www-data 用户,在 VM 中 chown -R www-data:www-data
  • 数据库迁移只在一台节点执行 → 不要让所有节点 php artisan migrate 并发跑,加锁或指定 leader 节点
  • Session 和 Cache 必须外置 → 改用 Redis 或 Database driver,禁用 file session
  • 静态资源统一处理 → php artisan storage:link 和 npm run build 建议在构建阶段完成,而非运行时

不靠人工敲命令,批量才有意义。选 Docker 或 Ansible,取决于你当前基础设施:已有 VM 就用 Ansible;从零开始就用 Docker Compose + BuildKit;追求 Laravel 官方生态兼容性可保留 Homestead + Vagrant 多实例。

热门AI工具

更多
UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

相关专题

更多
php文件怎么打开
php文件怎么打开

打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

9384

2023.09.01

php怎么取出数组的前几个元素
php怎么取出数组的前几个元素

取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

5661

2023.10.11

php反序列化失败怎么办
php反序列化失败怎么办

php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

2055

2023.10.11

php怎么连接mssql数据库
php怎么连接mssql数据库

连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

3528

2023.10.23

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

4214

2023.10.23

html怎么上传
html怎么上传

html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

3291

2023.11.03

PHP出现乱码怎么解决
PHP出现乱码怎么解决

PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

4697

2023.11.09

php文件怎么在手机上打开
php文件怎么在手机上打开

php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

3662

2023.11.13

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

120

2026.09.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
如何安装 Composer
如何安装 Composer

共1课时 | 184人学习

Composer手册
Composer手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn