OS X: Vagrant搭建PHP开发环境
最近想要改用 PHP 写网站,然而又不想在 OS X 上装上一大堆的 PHP 开发环境。想起来一直没试过 Vagrant ,干脆这次就试下。
安装
从官网上下载并安装 Vagrant: https://www.vagrantup.com/downloads.html
因为我的虚拟机用的是 Parallels Desktop ,不想再装个 VirtualBox 了,所以要装个 Vagrant 插件
$ vagrant plugin install vagrant-parallels
接下来安装系统,因为国内的下载速度并不是很理想,所以还是单独下载吧。Parallels Desktop 的 box 可以在这边搜索到:http://www.vagrantbox.es/
然后添加这个 box 并且创建一个虚拟机:
$ vagrant box add ubuntu ~/Downloads/parallels_ubuntu-14.04.box
$
$ cd ~/Developer
$ vagrant init ubuntu
$ vagrant up
现在就可以 ssh 进去虚拟机了:
$ vagrant ssh
配置
首先是换软件源,这就不说了。但是如果遇到缺 locale
的问题,可以修复下:
vagrant$ sudo locale-gen en_US.UTF-8
vagrant$ sudo dpkg-reconfigure locales
接着,装 Apache / PHP / Postgresql
vagrant$ sudo apt-get update
vagrant$ sudo apt-get install postgresql postgresql-contrib php5-pgsql php5 php5-mcrypt php5-cli apache2 libapache2-mod-php5
vagrant$
vagrant$ sudo -i -u postgres
postgres$ createuser -P -s test
Enter password for new role:
Enter it again:
postgres$ logout
vagrant$
vagrant$ sudo cat > /etc/apache2/sites-available/test.conf
<VirtualHost *:80>
ServerName test.dev
ServerAdmin webmaster@localhost
DocumentRoot /vagrant/test
<Directory /vagrant/test>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
vagrant$ sudo ln -s /etc/apache2/sites-available/test.conf /etc/apache2/sites-enabled/test.conf
vagrant$ sudo service apache2 restart
使用
进入虚拟机后,会发现刚刚的 ~/Developer/
目录已经映射到 /vagrant/
目录了,这样就可以直接在主机上修改文件了。
为了方便访问虚拟机里面的网站,我觉得采用的方案是,给虚拟机绑定一个固定的 IP ,然后在主机的 hosts 文件里面绑定域名。
绑定IP,修改 Vagrantfile: config.vm.network "private_network", ip: "1.1.1.2"
然后可以在 hosts 里面加上: 127.0.0.1 test.dev
这样就可以直接通过 test.dev
来访问虚拟机中的虚拟主机了。
vagrant 还有些常用命令:
$ vagrant init # 初始化
$ vagrant up # 启动虚拟机
$ vagrant halt # 关闭虚拟机
$ vagrant reload # 重启虚拟机
$ vagrant ssh # SSH 至虚拟机
$ vagrant status # 查看虚拟机运行状态
$ vagrant destroy # 销毁当前虚拟机