2019独角兽企业重金招聘Python工程师标准>>>
引言
PHP7 已经出来有一整子了,听说速度明显有提升,而且 Yii2 又全面兼容 PHP7,那么为何不试试呢?
所以Vagrant 打造 PHP7 开发环境 这个项目就诞生了。
包括以下环境和软件:
- Nginx 1.4.6
- Mysql 5.5.46(mysql -V)
- PHP 7.0.8-3
- git
- autojump
- composer
- vim
Box地址
链接: http://pan.baidu.com/s/1nt1hDMD 密码: ckg4
如何搭建
下载 ubuntu_trusty_64.box, 执行以下命令添加刚才下载好的 box 到 Box list:
// cd 下载 box 目录
// vagrant box add 名称 路径
vagrant box add trusty64 ubuntu_trusty_64.box
vagrant box list // 查看
mkdir ubuntu // 创建文件夹
git clone https://github.com/forecho/vagrant-ubuntu-php7.git php7
cd php7
vagrant init // 初始化
然后启动 vagrant
vagrant up
最后你可以愉快的时候 Xshell 工具 SSH 连接了。
IP:192.168.33.10
端口:22
用户名:vagrant
密码:vagrant
连接之后切换 root 用户:
sudo su // 不需要输入密码
关于 nginx 的使用
默认这个 box 我已经配置好 LNMP 环境了。PHP 的项目直接放在当前文件夹的 php
文件夹内就可以了。(默认配置的是 php 文件夹,如果要换其他文件夹,请自行修改 nginx 的 dev.conf 文件的配置)
示例:
根目录
|--php
|--cai
|--zheng
|--hai
|--getyii
|--frontend
|--web
默认我使用的是 *.dev.com
作为域名。
只要在本机(一般是 Windows 系统)的 hosts 文件,添加一下代码:
……
192.168.33.10 cai.dev.com
192.168.33.10 cai-zheng-hai.dev.com
192.168.33.10 getyii-frontend-web.dev.com
……
注意
- 因为是虚拟机,所以添加 hosts 这一步是必须的。
- 域名只做了三层解析,太多层觉得没必要。也就是说URL
cai-zheng-hai-open.dev.com
默认是不行的。 - Windows 可以使用 Acrylic 软件让 host 支持通配符解析,参考文章:支持通配符和正则表达式的hosts文件(本地dns缓存及代理)
- Mac 可以使用 Dnsmasq 软件让 host 支持通配符解析,参考文章:Mac OSX 安装 Dnsmasq 来加速网络
关于MySQL
默认用户名:root
默认密码:root
关于一些常用的命令
PHP-FPM
- 重启
sudo service php7.0-fpm restart
- PHP 配置文件位置:
/etc/php/7.0/fpm/php.ini
- 查看 phpinfo() -> http://test.dev.com/
Nginx
-
重启
sudo service nginx restart
-
修改虚拟空间配置文件:
sudo vim /etc/nginx/conf.d/default.conf
MySQL
- 重启
sudo service mysql restart
常见问题
Mac 下使用虚拟机,运行项目的时候提示 「Permission denied」没有权限问题?
这个是因为 Nginx 、PHP 和 项目文件夹用户组不一致导致的问题,解决办法是:
修改 nginx 用户组:
$ sudo vim /etc/nginx/nginx.conf
# 修改为 vagrant
# user www-data;
user vagrant;
修改 PHP 用户组:
$ sudo vim /etc/php/7.0/fpm/pool.d/www.conf
; 修改用户为nginx
; user = www-data
user = vagrant
; 修改组为 vagrant
; group = www-data
group = vagrant
; listen.owner = www-data
; listen.group = www-data
listen.owner = vagrant
listen.group = vagrant
然后重启 Nginx 和 PHP
$ sudo service nginx restart
$ sudo service php7.0-fpm restart