文章目录
- 一、为什么要装vagrant
- 二、所需安装软件
- 三、搭建vagrant本地环境
- 三、LNMP
- 四、tp5成功界面
LNMP = Linux(Ubuntu 14.04/ubuntu 16.04
) + Nginx1.10
+ Mysql5.7
+ PHP7.0
一、为什么要装vagrant
中小公司必备工具
1.·对本来的操作系统伤害少,若啥环境都装本机操作系统,过个一个月,你的操作系统就崩了
2. 对比VMware,二者都可多个虚拟机并存,但vagrant所占内存小,且方便管理,非常适合程序员
3. 这并不意味着VMware鸟用都没,它的功能多而人性化,更适合大众
二、所需安装软件
1. 安装 VirtualBox
- 官网VirtualBox 这是必须的
2. box
3. vagrant
- 官网vagrant
- 百度云盘vagrant–提取码: oql5
看不懂就一直下一步,强烈建议安装在C盘之外,成功之后会要求重启
4. xshell 方便连接操作系统
5. 创建有格式的目录
vagrant目录树结构:
vagrant
├─boxs
│ │
│ └─Ubuntu1604.box
│
├─Project
│ │
│ └─thinkphp5.0.22
│ │
│ └─...
└─Ubuntu
三、搭建vagrant本地环境
1. win+R cmd 进入命令行窗口
2. vagrant -v 检测是否成功安装
3. vagrant box list 检测是否安装过box配置
4. cd切换到Ubuntu目录下
5. vagrant box add Ubuntu E:\vagrant\boxs\Ubuntu1604.box
6. vagrant box list 可查看是否成功关联box
7. vagrant init Ubuntu 初始化生成Vagrantfile文件
8. Vagrant文件 环境配置
①、打开Vagrantfile文件,配置私网ip
②、配置共享目录
指向我们的项目的目录E:/vagrant/Project/thinkphp5.0.22
好处是你本地电脑一修改,vagrant的虚拟机也是会跟着改
# Create a private network, which allows host-only access to the machine
# using a specific IP.
# 配置私网
config.vm.network "private_network", ip: "192.168.33.10"
# Create a public network, which generally matched to bridged network.
# Bridged networks make the machine appear as another physical device on
# your network.
# config.vm.network "public_network"
# Share an additional folder to the guest VM. The first argument is
# the path on the host to the actual folder. The second argument is
# the path on the guest to mount the folder. And the optional third
# argument is a set of non-required options.
# 配置共享文件夹
config.vm.synced_folder "E:/vagrant/Project/thinkphp5.0.22", "/var/www/tp5"
# 禁用vagrant的默认共享目录
config.vm.synced_folder ".", "/vagrant", disabled:true
9. vagrant up
①、win10的话 一般会开启虚拟技术,不会碰到啥问题
②、win7的话,应该会碰见以下问题
问题1:PowerShell版本 低
没办法,升级呗
- 启动win7更新服务
win+r 输入services.msc查看启动服务.
在右边的窗格中找到windows update右击属性-常规–选择启动类型为手动
- 确保Microsoft .net Framework 4.0以上
win+r,输入appwiz.cpl
否则去官网安装
3 安装升级包
升级包
问题2: BIOS设置 没开启虚拟技术
解决办法:
进入BOIS,将intel virtual technology设置为enable,原来是disable
10. 登陆虚拟机
使用ssh连接登陆,一般GitBash,Xshell都有封装
①、ip难记,hosts文件设置虚拟域名
从而指向我们设置的ip192.168.33.10
window hosts文件位置:c:\Windows\System32\drivers\etc\
②、在Vagrantfile文件目录下,vagrant ssh
③、使用 127.0.0.1 直接连接我们的服务器,端口 2222 ,用户名密码 vagrant ,登陆之后 你可以 sudo su 切换到 root 用户
④、使用 第六步骤配置的私网192.168.66.11,端口 22 ,用户名密码 vagrant ,登陆之后 你可以 sudo su 切换到 root 用户
⑤、私钥连接
三、LNMP
1. 换apt源,加速
把ubuntu的apt源换成国内清华大学源
# 备份
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
# 清空文本,把语句复制进去
sudo vim /etc/apt/sources.list
# 安装nginx1.10
sudo apt-get install nginx
sudo apt list nginx
# 安装php7.0
sudo apt-get install php php7.0-fpm php7.0-mysql php7.0-common php7.0-curl php7.0-cli php7.0-mcrypt php7.0-mbstring php7.0-dom php7.0-dev
sudo apt list php7* | grep installed
# 安装mysql5.7,期间需要设置用户密码
sudo apt-get install mysql-client-5.7 mysql-server-5.7
# 查看安装版本
nginx -v && php -v && mysql -V
2. 开启服务
如果版本是跟我一样,跟我操作就ok了,版本不相同,你就要自己模仿了哈
①、查看nginx php-fpm 所属用户
# 查看nginx php-fpm 当前用户
ps -ef | grep -E 'nginx|php'
可以看出:我当然是对的了,你们应该有可能会不一样
②、相同则不用以下的修改用户步骤,请自行跳过
- nginx总配置文件位置:
/etc/nginx/nginx.conf
- php-fpm总配置文件位置:
/etc/php/7.0/fpm/php-fpm.conf
1. 查看其余配置文件位置
# 查看 nginx其余配置文件位置
cat /etc/nginx/nginx.conf | grep include*
# 查看 php-fpm其余配置文件位置
cat /etc/php/7.0/fpm/php-fpm.conf |grep include*
从图中可以看出:
其余配置文件位置:/etc/nginx/conf.d/*.conf + /etc/nginx/site-enabled/
php-fpm其余配置文件位置:/etc/php/7.0/fpm/pool.d/
2. 修改用户
# 修改nginx 确保里面的 user是www-data;
sudo vim /etc/nginx/nginx.conf
# 修改 php-fpm
sudo vim /etc/php/7.0/fpm/pool.d/www.conf
# 以下是php-fpm需要修改的地方
# /etc/php/7.0/fpm/pool.d/www.conf
user = www-data
group = www-data
listen.owner = www-data
listen.group = www-data
# 以下是nginx需要修改的地方
# /etc/nginx/nginx.conf
user www-data;
3. 确保php、fpm连接方式相同
在第二步小改的基础上,修改连接方式
要端口连接还是sock连接,自行选择
# 修改nginx 主机配置
sudo vim /etc/nginx/site-enabled/default
# 修改 php-fpm
sudo vim /etc/php/7.0/fpm/pool.d/www.conf
# 以下是php-fpm需要修改的地方
# /etc/php/7.0/fpm/pool.d/www.conf
# 端口连接
# listen = 127.0.0.1:9000
# sock连接
listen = /run/php/php7.0-fpm.sock
# 以下是nginx需要修改的地方
# /etc/nginx/site-enabled/default
root /var/www/tp5/public;
index index.php index.html index.htm index.nginx-debian.html;
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# 端口连接
# fastcgi_pass 127.0.0.1:9000;
# sock连接
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
③、正式开启服务
sudo service mysql start
sudo service php7.0-fpm start
sudo service nginx start
四、tp5成功界面
在浏览器输入我自己设置的域名: www.tp5.com,进入tp5成功界面