Windows7系统中通过vagrant中使用Centos7搭建LAMP环境

一 安装Vagrant并启动Centos7

这里我使用的是virtualbox作为vagrant的支持,首先自行安装virtualbox,Windows下安装很方便,就不讲了,

接下来是安装vagrant  vagrant下载 根据提示安装。

https://atlas.hashicorp.com/boxes/search 这里可以搜到vagrant的各种镜像及其使用方法,我在下面找到centos7,即来到这个页面https://atlas.hashicorp.com/centos/boxes/7   你会看到对应的virtualbox下vagrant使用该镜像的方法

     

我们新建一个目录,在该目录下我们打开cmd 输入命令vagrant init centos/7 ,

本来下一步应该是直接执行vagrant up --provider virtualbox,但由于需要去国外下载box文件,国内直接使用命令访问下载经常龟速或者直接无法访问,我们直接使用迅雷等工具下载这个链接(无需FQ) 

https://atlas.hashicorp.com/centos/boxes/7/versions/1609.01/providers/virtualbox.box

(其实就是上面提到的https://atlas.hashicorp.com/centos/boxes/7连接 加上版本和更改提供者provider为virtualbox)

将下载到的virtualbox.box文件复制到我们的目录下来

你会看到当前目录有一个Vagrantfile文件出现,这是刚才执行vagrant init之后生成的,打开编辑这个文件,

config.vm.box = "centos/7" 改为config.vm.box = "./virtualbox.box" ,表示使用我们下载好的这个文件进行加载centos系统

去掉config.vm.network "forwarded_port", guest: 80, host: 8080前的#号,这样我们在宿主机也就是本机的localhost:8080就可以访问到vagrant里的centos的80端口。

使用vagrant ssh命令 在Linux下可直接连接我们的虚拟centos,Windows则不行,但我们在该命令后可以看到我们连接的privatekey的秘钥地址

之后通过Windows的ssh连接,使用刚才提到的秘钥,通过xshell 等工具连接127.0.0.1(即localhost)的2222端口即可,默认用户为vagrant 密码为空 ,连接成功后就可以再xshell里操作我们通过vagrant搭建的虚拟centos系统了


安装过程中我遇到的一些坑:

本博客是我搭建完环境后重新的整理 当时报的错我在Google的历史记录找到 大概是有这两个

一.vagrant was unable to mount virtualbox shared folders. this is usually because the filesystem vboxsf is not available 

参考链接 :

http://stackoverflow.com/questions/22717428/vagrant-error-failed-to-mount-folders-in-linux-guest

需加装插件 

$ vagrant plugin install vagrant-vbguest

二. "rsync" could not be found on your PATH. Make sure that rsync is properly installed on your system and available on the PATH.

参考链接:

http://stackoverflow.com/questions/34176041/vagrant-with-virtualbox-on-windows10-rsync-could-not-be-found-on-your-path

将对应文件内容改为

config.vm.synced_folder ".", "/vagrant", type: "virtualbox"end就解决了



二 在Centos7上安装LAMP环境

安装时我主要参考的链接http://www.cnblogs.com/zutbaz/p/4420791.html

这里是我安装过程中的一些补充

1 安装php后需重启Apache,php脚本才会生效,否则会输出php源代码

2 启动Mariadb时出现Failed to start mariadb.service: Unit mariadb.service failed to load: No such file or directory.

 解决方法 根据链接的yum安装后 需再

$sudo yum -y install mariadb-server

参考链接 http://stackoverflow.com/questions/31067135/in-centos7-can-not-start-mysql

3 安装过程中测试Apache等的报错 可在/var/log/httpd/error_log处查看Apache的错误提示

4 安装完php-mysql后 我试了重启Apache还是提示mysql_connect()未定义 后面重启虚拟机就好了

5 将php升级为5.6 参考链接http://blog.bensonwu.cn/2016/08/09/Centos7%E4%B8%8A%E6%90%AD%E5%BB%BALAMP%E7%8E%AF%E5%A2%83/

如果rpm源无法直接安装 可以试试先wget下载下来,再添加

6 修改MySQL 默认字符集 参考链接:

http://www.centoscn.com/mysql/2014/0728/3367.html

我的my.cnf默认是没有client和mysql字段的 需要根据他的写法 照着写进去  最后的重启mysql 使用这一句命令

sudo systemctl restart mariadb.service

三  将配好环境的Centos系统打包成box文件,以供复用

使用vagrant halt命令关闭当前centos系统后 使用vagrant package ,在当前目录下会生成package.box文件,这就是我们将centos7环境打包后的镜像了。

接下来我们新建一个目录来使用这个package.box

同样输入vagrant init centos/7  将package.box拷贝到当前目录下 修改Vagrantfile 

将config.vm.box = "centos/7" 改为config.vm.box = "./package.box"  并同样去掉config.vm.network "forwarded_port", guest: 80, host: 8080前的#号

输入vagrant up命令启动新的vagrant 输入vagrant ssh看到秘钥的保存地址,在Windows的ssh工具下再一次连接

进入打包号的centos系统 进入后发现一切和原来一模一样,localhost:8080同样可以访问成功,那么我们就完成了。


最后再将config.vm.synced_folder一项的注释去掉并改为config.vm.synced_folder "./workspace", "/var/www/html/syns"

即可将当前目录的workspace文件夹内容同步到虚拟centos系统的/var/www/html/syns目录下达到本地编辑,虚拟机测试的效果

然而我就在这里遇到了巨坑,同步到syns目录后,访问一直提示403 forbidden,一开始不知道什么原因查了好久 后面发现,只需要

sudo vim /etc/selinux/config

然后将SELINUX这项改为disabled,就成功了  至于seLinux的作用,我还需要继续学习



你可能感兴趣的:(Windows7系统中通过vagrant中使用Centos7搭建LAMP环境)