搭建前准备
- 安装 VirtualBox-5.1.6-110634-Win
- 安装 vagrant_1.8.5
- 准备 ubuntu16.04.box
【环境】
- php7.0版本
- mysql5.7版本
Ps:本篇所有配置基本都需要管理员权限,所以请提前' sudo su '
安装好 VirtualBox-5.1.6-110634-Win 和 vagrant_1.8.5 后 在本地目录新建一个工作目录,进入工作目录按住shift
同时点击鼠标右键,点击 在此处打开命令窗口
。
添加box
镜像
//vagrant box add 系统名字 box镜像
vagrant box add server ubuntu16.04.box
初始化server
//vagrant init 系统名字
vagrant init server
这时候早工作目录中会看到一个Vagrantfile
文件,用记事本打开编辑第29
行的ip
。把前面的注释去掉,ip
地址可以根据自己需求修改。
开启虚拟机
//vagrant up
vagrant up
成功启动过后会在工作目录中看到文件夹.vagrant
可以用第三方工具来连接我们的虚拟机中的服务器了
特别注意: 如果是第三方工具连接, 用户名和密码都是 vagrant
(虚拟机安装结束)
接下来开始搭建nginx环境
修改源
//打开目录
cd /etc/apt/
//备份源
cp sources.list sources.list.bak
//修改源
vim sources.list
//进入文件后,敲键盘` 60dd `删除原来的信息
//本例使用清华大学源
//切记使用一个源就好
/***-----------清华大学源------------***/
# deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security multiverse
//切记使用一个源就好
/***-----------东北大学源------------***/
deb-src http://mirror.neu.edu.cn/ubuntu/ xenial main restricted #Added by software-properties
deb http://mirror.neu.edu.cn/ubuntu/ xenial main restricted
deb-src http://mirror.neu.edu.cn/ubuntu/ xenial restricted multiverse universe #Added by software-properties
deb http://mirror.neu.edu.cn/ubuntu/ xenial-updates main restricted
deb-src http://mirror.neu.edu.cn/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
deb http://mirror.neu.edu.cn/ubuntu/ xenial universe
deb http://mirror.neu.edu.cn/ubuntu/ xenial-updates universe
deb http://mirror.neu.edu.cn/ubuntu/ xenial multiverse
deb http://mirror.neu.edu.cn/ubuntu/ xenial-updates multiverse
deb http://mirror.neu.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirror.neu.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
deb http://archive.canonical.com/ubuntu xenial partner
deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://mirror.neu.edu.cn/ubuntu/ xenial-security main restricted
deb-src http://mirror.neu.edu.cn/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
deb http://mirror.neu.edu.cn/ubuntu/ xenial-security universe
deb http://mirror.neu.edu.cn/ubuntu/ xenial-security multiverse
//切记使用一个源就好
/***-----------阿里云源------------***/
# deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricted
deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
deb http://archive.canonical.com/ubuntu xenial partner
deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse
准备
//升级(刚刚修改的源 就是这里)
sudo apt-get update
//这个包是为了解决系统不同语言之间可能发生的冲突,
//安装之后可以减少许多因语言编码带来的问题。
//其中-y参数表明直接安装,无需确认。
sudo apt-get install -y language-pack-en-base
//安装完成之后,运行
//设定语言编码为UTF-8
locale-gen en_US.UTF-8
安装php7.0及其必用和常用依赖包
apt-get install php7.0
apt-get install php7.0-mysql
apt-get install php7.0-fpm
apt-get install php7.0-curl
apt-get install php7.0-xml
apt-get install php7.0-mcrypt
apt-get install php7.0-xml
apt-get install php7.0-json
apt-get install php7.0-mbstring
apt-get install php7.0-gd
//懒人复制
apt-get install php7.0-mysql php7.0-fpm php7.0-curl php7.0-xml mcrypt php7.0-xml php7.0-json php7.0-mbstring php7.0-gd
安装mysql5.7
apt-get install mysql-server-5.7
安装nginx
apt-get install nginx
安装一些常用的工具
apt-get install curl
apt-get install wget
apt-get install vim
apt-get install ssh
apt-get install openssl
apt-get install git
apt-get install zip
apt-get install unzip
//懒人复制
apt-get install curl wget vim ssh openssl zip unzip git
(环境配置结束)
** laravel
**开发环境配置
配置php
vim /etc/php/7.0/fpm/php.ini
输入 :set nu
在第761行
找到
cgi.fix_pathinfo=1
改为
cgi.fix_pathinfo=0
编辑** fpm
**的配置文件
vim /etc/php/7.0/fpm/pool.d/www.conf
输入 :set nu
在第36行
找到
listen = /run/php/php7.0-fpm.sock
改为
listen = 127.0.0.1:9000
然后执行service php7.0-fpm stop
再执行service php7.0-fpm start
重启fpm服务
配置** nginx
**
需要修改的地方会有注释
为了让大家看得清楚,就把行号打开了
Ps:打开行号的命令 :set nu
vim /etc/nginx/sistes-available/admin.cbc.com
//如下修改
1 ##
2 # You should look at the following URL's in order to grasp a solid understanding
3 # of Nginx configuration files in order to fully unleash the power of Nginx.
4 # http://wiki.nginx.org/Pitfalls
5 # http://wiki.nginx.org/QuickStart
6 # http://wiki.nginx.org/Configuration
7 #
8 # Generally, you will want to move this file somewhere, and start with a clean
9 # file but keep this around for reference. Or just disable in sites-enabled.
10 #
11 # Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
12 ##
13
14 # Default server configuration
15 #
16 server {
//我注释掉了原来的配置,下面那条是自己手写的80端口
17 #listen 80 default_server;
18 listen 80;
19 #listen [::]:80 default_server;
20
21 # SSL configuration
22 #
23 # listen 443 ssl default_server;
24 # listen [::]:443 ssl default_server;
25 #
26 # Note: You should disable gzip for SSL traffic.
27 # See: https://bugs.debian.org/773332
28 #
29 # Read up on ssl_ciphers to ensure a secure configuration.
30 # See: https://bugs.debian.org/765782
31 #
32 # Self signed certs generated by the ssl-cert package
33 # Don't use them in a production server!
34 #
35 # include snippets/snakeoil.conf;
36
//这个是配置本地的laravel环境目录
37 root /vagrant/laravel/public;
38
39 # Add index.php to the list if you are using PHP
//添加了一个 index.php ,原来是没有的。
40 index index.php index.html index.htm index.nginx-debian.html;
41
42 #server_name lufficc.com www.lufficc.com;
//这里是测试的时候,为了方便写的域名。
43 server_name admin.cbc.com;
44
45 location / {
46 # First attempt to serve request as file, then
47 # as directory, then fall back to displaying a 404.
48 #try_files $uri $uri/ =404;
//将下面的指令放到站点配置文件中就可以实现美化链接的功能。
49 try_files $uri $uri/ /index.php?$query_string;
50 }
51
52 # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
53 #
//去掉前面的注释就好了。
54 location ~ \.php$ {
//去掉前面的注释就好了。
55 include snippets/fastcgi-php.conf;
56 #
57 # # With php7.0-cgi alone:
//去掉前面的注释就好了。
58 fastcgi_pass 127.0.0.1:9000;
59 # # With php7.0-fpm:
60 # fastcgi_pass unix:/run/php/php7.0-fpm.sock;
//千万不要忘记这里,去掉前面的注释就好了。
61 }
62
63 # deny access to .htaccess files, if Apache's document root
64 # concurs with nginx's one
65 #
66 #location ~ /\.ht {
67 # deny all;
68 #}
69 }
70
71
72 # Virtual Host configuration for example.com
73 #
74 # You can move that to a different file under sites-available/ and symlink that
75 # to sites-enabled/ to enable it.
76 #
77 #server {
78 # listen 80;
79 # listen [::]:80;
80 #
81 # server_name example.com;
82 #
83 # root /var/www/example.com;
84 # index index.html;
85 #
86 # location / {
87 # try_files $uri $uri/ =404;
88 # }
89 #}
重启** nginx
**
service nginx stop
service nginx start
配置站点的时候
添加一个软连接
cd /etc/nginx/sites-enabled
ln -s /etc/nginx/sites-available/admin.cbc.com ./
nginx配置完毕
添加** laravel
**
这里面的laravel是我自己手动再本地的工作目录下添加的,因为服务器的目录/vagrant
里面是于本地的工作目录同步的,所以这也是为什么在配置nginx
的时
候第37
行会把项目的root
目录指向/vagrant
目录下的原因。毕竟是为了开发
的时候方便一些。
修改本地** hosts
**文件
在地址栏输入地址:C:\Windows\System32\drivers\etc
Xp
、Win7
、可以直接修改hosts
文件,Win8
、Win8.1
、Win10
需要把hosts拖到桌面,修改后再拖拽回去。
添加示例如下(注意注释的部分):
# 添加如下
# 192.168.33.33 是VBox虚拟机中服务器主机的IP地址
# admin.cbc.com 是我们配置好的域名
192.168.33.33 admin.cbc.com
关于使用** Navicat for MySQL
**连接数据库问题
很多人都连不上数据库,总会有连接失败的提示。可能是因为端口混淆的问题。
废话不多说,看图:
我自己这样修改后就连接上了,如果你还是连接不上,在网上找到了大神的解决方法,请按照如下修改。
//修改本地SSH配置文件
vim /etc/ssh/sshd_config
//在配置信息的尾部,添加如下代码:
KexAlgorithms diffie-hellman-group1-sha1,[email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1
Ciphers 3des-cbc,blowfish-cbc,aes128-cbc,aes128-ctr,aes256-ctr
//保存退出后,执行
ssh-keygen -A
//重启SSH
service ssh restart
如果还是不行,也可能是Navicat for MySQL
版本问题。或者请使用英文版(汉化版不解释)。
(全文完)
【文章中命令解释】
最后附上vagrant
一些常用的命令, 希望这能帮助你们, 别忘记点赞哟
$ vagrant box add NAME URL #添加一个box
$ vagrant box list #查看本地已添加的box
$ vagrant box remove NAME virtualbox #删除本地已添加的box
$ vagrant box remove NAME 如若是版本1.0.x,执行
$ vagrant init NAME #初始化,实质应是创建Vagrantfile文件
$ vagrant up #启动虚拟机
$ vagrant halt #关闭虚拟机
$ vagrant destroy #销毁虚拟机
$ vagrant reload #重启虚拟机
$ vagrant package #当前正在运行的VirtualBox虚拟环境打包成一个可重复使用的box
$ vagrant ssh #进入虚拟环境
【原文参考】
《倡哥 - Ubuntu 下php7 mysql5.7 LNMP 环境搭建》
《倡哥 - Windows 下使用 Vagrant 构建 Linux 开发环境》