WIN10 vagrant和virtualbox虚拟机和一键搭建lnmp环境配置thinkphp虚拟主机

时间:2021-01-02 16:50:40

版本:win10系统
  virtualbox:5.1.26
  vagrant :1.9.7
  centos 7.0
  xshell/git

首先下载好对应版本的软件

配置vagrant和virtualbox

一.把虚拟机加载到box容器中

vagrant box add CentOs7.0 D:\soft\Vagrantfile\package.box

CentOs7.0 是给虚拟机起的名字 D:\soft\Vagrantfile\package.box 是box路径也就是centos7.0

二.找一个/新建一个目录,例如vagrant,然后初始化环境

#新建目录
mkdir vagrant
#打开此目录
cd vagrant
#初始化,CentOs7.0 为你上方设置的名字
vagrant init CentOs7.0

初始化成功后,本目录下会出现Vagrantfile这样一个文件,这个是vagrant的配置文件,后续的配置在这里修改

三.修改配置文件

1. 网络配置 端口映射,意思是将虚拟机的端口映射到主机的端口上,主机局域网内可以通过访问这个端口来访问到你虚拟机上的东西

config.vm.network "forwarded_port", guest: 80, host: 8080 打开注释

上述作用是将虚拟机的80端口映射到主机的8080端口上,那我直接访问主机的8080端口就相当于访问虚拟机的80端口

2.私有网络,只有主机才能访问虚拟机,主句局域网内成员不能访问的虚拟机的内容

config.vm.network "private_network", ip: "192.168.33.11" 打开注释

3. 共享目录 ../www是本地的文件 映射到/home/wwwroot/default

config.vm.synced_folder "../www", "/home/wwwroot/default"

四.启动虚拟机

vagrant up

输出:

==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
default: Adapter 2: hostonly
==> default: Forwarding ports...
default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 192.168.33.11
default: SSH username: vagrant
default: SSH auth method: private key
.......

如果不报错的话就是启动成功了...

五.连接虚拟机使用(xshell/git)工具

ip:192.168.33.11(上面设置的私有网络)
用户名:vargant 密码是私钥 文件位置:D:\vagrant1\.vagrant\machines\default\virtualbox\private_key

(也可以在Vagrantfile文件中设置登录密码和用户名
config.ssh.username = "vagrant"
config.ssh.password = "vagrant"
用xshell工具登录时的用户名和密码)
然后使用vagrant status 命令,查看是否正在运行。

搭建lnmp环境一键安装嘻嘻嘻
附上:lnmp官网 https://lnmp.org/install.html

1. yum install screen
  screen -S lnmp
2. 下载并安装LNMP一键安装包:
wget -c http://soft.vpser.net/lnmp/lnmp1.4.tar.gz && tar zxf lnmp1.4.tar.gz && cd lnmp1.4 && ./install.sh lnmp
如提示wget: command not found ,使用yum install wget 或 apt-get install wget 命令安装。
根据提示操作
3、安装完成
如果显示Nginx: OK,MySQL: OK,PHP: OK
lnmp环境安装完成

********lnmp环境搭建完成后想要访问项目就要配置虚拟主机

    LNMP添加、删除虚拟主机及伪静态

    附上官网:https://lnmp.org/faq/lnmp-vhost-add-howto.html

第一步/ 添加网站(虚拟主机)
lnmp vhost add
根据提示操作
虚拟主机配置文件在:/usr/local/nginx/conf/vhost/域名.conf

列出网站(虚拟主机) lnmp vhost list

第二步/ 配置本地host文件

win10:
C:\Windows\System32\drivers\etc\host文件
如果没有权限用管理员身份运行记事本,在记事本中打开host文件保存即可.
192.168.33.11 wzy.com

此时可以使用浏览器访问wzy.com [完成]

这时访问thinkphp文件会出现只能访问首页,项目其他页面都报404,解决方法是要引入伪静态

1.伪静态操作(访问项目要引入对应的伪静态文件)
伪静态规则文件需要放在/usr/local/nginx/conf/ 下面。(一键安装包提供了laravel.thinkphp等等伪静态)
添加的虚拟主机,打开后前半部分配置会显示如下:

WIN10 vagrant和virtualbox虚拟机和一键搭建lnmp环境配置thinkphp虚拟主机

在root /home/wwwroot/www.vpser.net;这一行下面添加:
include thinkphp.conf;
上面的thinkphp.conf为伪静态文件,如需要其他伪静态文件自己创建个并上传到/usr/local/nginx/conf/ 下面并include 伪静态.conf; 加完保存

执行:/etc/init.d/nginx restart 重启生效,如果报错可能是添加有误或伪静态规则有误。

这时候就能正常访问项目了.

LNMP相关配置文件位置
Nginx主配置(默认虚拟主机)文件:/usr/local/nginx/conf/nginx.conf
添加的虚拟主机配置文件:/usr/local/nginx/conf/vhost/域名.conf
MySQL配置文件:/etc/my.cnf
PHP配置文件:/usr/local/php/etc/php.ini
php-fpm配置文件:/usr/local/php/etc/php-fpm.conf

使用Navicat连接mysql时候没有权限访问,报1130 解决方法:

Linux下MySQL Error 1130 不能远程访问
使用xshell工具连接mysql
mysql -u root -p password
use mysql;
update user set host = '%' where user = 'root'; //这个命令执行错误时可略过
flush privileges;
select host, user from user; //检查‘%’ 是否插入到数据库中
quit;

vagrant命令:

vagrant up开启虚拟机

vagrant halt 关闭虚拟机

vagrant reload 重启

注意:关机前一定要关闭虚拟机

可以写两个bat脚本放到桌面

启动环境:

    WIN10 vagrant和virtualbox虚拟机和一键搭建lnmp环境配置thinkphp虚拟主机

关闭环境:

    WIN10 vagrant和virtualbox虚拟机和一键搭建lnmp环境配置thinkphp虚拟主机

WIN10 vagrant和virtualbox虚拟机和一键搭建lnmp环境配置thinkphp虚拟主机

使用时双击即可.