Vagrant + Ubuntu搭建LAMP开发环境
决定扔掉那些集成开发环境,今后的学习和开发均在vagrant+virtual+ubuntu下完成。vagrant的搭建可以说是非常快捷了,其原理就是将依赖环境搭建在虚拟机中,然后将本地文件(宿主机)映射到虚拟机并实现访问。即便如此,在搭建过程中依然有不少的坑要填。
安装vagrant 和 virtualbox
日常的工作和学习,我基本上都是在win7和MacOS下完成的,因此使用vagrant可以帮助我非常容易的实现在不同系统下部署完全一致的开发环境。
之所以在2017年的今天还在使用Ubuntu 14.04是因为这台Win7机器下只有低于Ubuntu14.04(含)的版本的Box盒子才能正常跑起来,主要是受vagrant版本太低的限制。
win7 下应当采用vagrant 1.9.3+ Virtualbox 5.1.3的组合,否则会出现各种像无法启动box,启动box后卡在密钥验证那里无法进入系统等奇葩问题,官方给出的解释是,win7最高支持到1.9.3。
Mac 10.12 下可以直接安装最新版,直接去官网下载最新的DMG安装包安装就好。
目录设置
└─trusty32
├─.vagrant
│ └─machines
│ └─default
│ └─virtualbox
└─www # 共享目录,宿主机文件和虚拟机同步目录
Vagrantfile配置(分配IP和共享目录)
config.vm.network "private_network", ip: "192.168.33.20"
指定虚拟机IP为 192.168.33.20
config.vm.synced_folder "./www", "/vagrant/www/", :mount_options => ["dmode=777","fmode=777"]
分配共享目录,即trusty32下的www的目录挂载在虚拟机/vagrant/www目录下。
vagrant和virtualbox的安装非常简单,不再赘述。主要记录ubuntu 14.04下搭建PHP7+Mysql+Apache2.4+Adminer的过程:
安装Apache
更新镜像源:sudo apt-get update && sudo apt-get upgrade
安装Apache2.4: sudo apt-get install apache2
。安装完成在浏览器输入192.168.33.20,看到Apache2 Ubuntu Default Page: It Works!则说明Apache2安装成功。
安装 Mysql
wget http://dev.mysql.com/get/mysql-apt-config_0.6.0-1_all.deb
下载MYSQL5.7安装包sudo dpkg -i mysql-apt-config_0.6.0-1_all.deb
添加到库sudo apt-get update
更新软件源sudo apt-get install mysql-server
安装Mysql服务
导入安装源的过程中会提示密钥无效:apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8C718D3B5072E1F5
apt update
安装过程中会要求输入root密码。
安装完成后输入 mysql -uroot -p
登入Mysql服务器验证是否成功安装了mysql服务
ARM的问题:
报错:ERROR 2002: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
解决: usermod -a -G aid_inet,aid_net_raw mysql
service mysql restart
安装PHP7.0
sudo apt-get install php7.0 php7.0-cli php7.0-fpm php7.0-gd php7.0-json php7.0-mysql php7.0-readline php7.0-xml php7.0-mbstring php7.0-curl
2020年10月23日更新:
安装PHP7.3
sudo apt update
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php7.3-fpm php7.3-mcrypt php7.3-cli php7.3-xml php7.3-mysql php7.3-gd php7.3-imagick php7.3-recode php7.3-tidy php7.3-xmlrpc php7.3-mbstring php7.3-curl
整合
整合PHP与Mysql
sudo apt-get install php7.0-mysql
整合PHP与Apachesudo apt-get install libapache2-mod-php7.0
重启Apache sudo service apache2 restart
验证
在apache默认网页目录下新建info.phpsudo vi info.php
<?php
echo mysqli_connect('localhost','root','root')?"数据库连接成功":"数据库连接出错";
phpinfo();