使用Vagrant搭建PHP虚拟机环境可以快速解决本地开发环境不一致的问题,让开发、测试环境保持统一,减少环境差异带来的兼容性问题。下面为大家详细介绍完整的搭建流程。

一、准备工作
在开始搭建之前,需要先完成以下基础软件的安装:
- 安装VirtualBox,Vagrant默认使用VirtualBox作为虚拟化 provider,安装时选择对应系统的版本即可
- 安装Vagrant,到Vagrant官网下载对应操作系统的安装包,按照引导完成安装,安装完成后可以在终端输入
vagrant --version验证是否安装成功
二、初始化Vagrant虚拟机
首先创建一个专门的目录用于存放Vagrant配置文件,比如创建php-vagrant目录,进入该目录后执行初始化命令:
# 初始化一个Ubuntu系统的Vagrant box,也可以选择其他你需要的系统镜像 vagrant init ubuntu/bionic64
执行完成后目录下会生成Vagrantfile配置文件,接下来需要修改该文件来适配PHP环境的需求。
三、配置Vagrantfile
打开Vagrantfile文件,修改以下关键配置项:
# 配置虚拟机IP,方便本地访问 config.vm.network "private_network", ip: "192.168.33.10" # 配置目录映射,将本地项目目录映射到虚拟机的/var/www/html目录 config.vm.synced_folder "./www", "/var/www/html" # 配置虚拟机资源,根据需求调整内存和CPU config.vm.provider "virtualbox" do |vb| vb.memory = "2048" vb.cpus = 2 end
保存配置后,执行启动命令启动虚拟机:
vagrant up
首次启动会自动下载对应的系统镜像,等待启动完成即可。
四、安装PHP及相关环境
虚拟机启动完成后,通过SSH连接到虚拟机内部:
vagrant ssh
连接成功后,执行以下命令安装PHP及相关常用扩展:
# 更新软件源 sudo apt-get update # 安装PHP以及常用扩展,包含MySQL、Redis、Curl等扩展 sudo apt-get install -y php php-cli php-fpm php-mysql php-redis php-curl php-gd php-mbstring php-xml php-zip # 安装Nginx作为Web服务器 sudo apt-get install -y nginx # 配置Nginx支持PHP,修改默认站点配置 sudo vim /etc/nginx/sites-available/default
在Nginx配置文件中找到location ~ .php$ 部分,修改为以下内容:
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; # 根据实际安装的PHP版本调整路径
}
保存配置后重启Nginx和PHP-FPM服务:
sudo systemctl restart nginx sudo systemctl restart php7.2-fpm
五、验证PHP环境
在本地php-vagrant目录下创建www文件夹,在文件夹内创建index.php文件,内容如下:
<?php phpinfo(); ?>
打开浏览器访问http://192.168.33.10,如果可以看到PHP的信息页面,说明PHP环境已经搭建成功。
六、常用Vagrant命令
日常使用中常用的Vagrant命令如下:
| 命令 | 说明 |
|---|---|
| vagrant up | 启动虚拟机 |
| vagrant halt | 关闭虚拟机 |
| vagrant reload | 重启虚拟机并重新加载配置 |
| vagrant ssh | 连接到虚拟机SSH |
| vagrant destroy | 销毁当前虚拟机 |
注意:如果需要安装特定版本的PHP,可以先添加对应的PHP源再执行安装命令,避免默认源版本不符合需求。同时目录映射的配置可以根据实际项目路径调整,方便本地代码修改后同步到虚拟机内。