Vagrant打造Laravel開發環境(LNMP)

Vagrant打造Laravel開發環境(LNMP)

96 
Junting 
2016.10.29 10:23*  字數 1246  閱讀 2195 評論 4

準備工做


部署環境


一、首先,將VirtualBox 和 Vagrant 安裝好!javascript

Vagrant 是一個簡單易用的部署工具,用英文說應該是 Orchestration Tool 。它能幫助開發人員迅速的構建一個開發環境,幫助測試人員構建測試環境, Vagrant 基於 Ruby 開發,使用開源 VirtualBox 做爲虛擬化支持,能夠輕鬆的跨平臺部署。php

通俗的來講, 就是在本地部署一個和 Linux 虛擬機上的同步文件夾, 這樣全部的操做都方便了許多。html

// 安裝好後,查看下 Vagrant 版本
F:\Twitch\test>vagrant -v
Vagrant 1.8.6

二、進入工做文件夾java

workspace

三、打開終端進入工做目錄,或者你能夠在當前的目錄按住 shift + 鼠標右鍵 可快速打開當前目錄的 命令窗口mysql

Terminal
 // 執行 vagrant box list 查看下當前 Vagrant 下部署了那些工具 F:\Twitch\test>vagrant box list ubuntu16.04 (virtualbox, 0) 初始安裝,會告訴你什麼都沒有! // 執行 vagrant box list 查看下當前 Vagrant 下部署了那些工具 F:\Twitch\test>vagrant box list ubuntu16.04 (virtualbox, 0) 初始安裝,會告訴你什麼都沒有!

四、開始添加咱們準備好的 Box 鏡像吧, 執行 vagrant box add 系統名字 Box鏡像地址nginx

這裏由於我以前添加的是test,因此這裏我另起一個工做空間laravel

F:\Twitch\laravel>vagrant box add laravel /software/ubuntu16.04.box
addBox

再來查看下 咱們 Vagrant 部署了那些工具吧!git

vagrantList

5 、添加好Box鏡像後,初始化環境(Initialization environment) ,執行 vagrant init 系統名,初始化成功你的工做目錄下回生成一個 Vagrantfile 的配置文件sql

F:\Twitch\laravel>vagrant init laravel A `Vagrantfile` has been placed in this directory. You are now ready to `vagrant up` your first virtual environment! Please read the comments in the Vagrantfile as well as documentation on `vagrantup.com` for more information on using Vagrant. 這裏提示咱們,將 一個 Vagrantfile 文件放入了你的工做目錄,而後你可使用 vagrant up 啓動你的系統! F:\Twitch\laravel>vagrant init laravel A `Vagrantfile` has been placed in this directory. You are now ready to `vagrant up` your first virtual environment! Please read the comments in the Vagrantfile as well as documentation on `vagrantup.com` for more information on using Vagrant. 這裏提示咱們,將 一個 Vagrantfile 文件放入了你的工做目錄,而後你可使用 vagrant up 啓動你的系統!
初始化

六、環境配置shell

分配一個 IP,讓本地能夠訪問到他,須要手動設置,默認是在 29行。

VagrantfileConf

七、到這裏全部的配置就完成了,執行 vagrant up 正式啓航吧!啓動後會在工做目錄下生成一個隱藏文件夾 .vagrant 目錄

VagrantUp

分析下,

 default: Adapter 1: nat // 網絡鏈接模式 default: Adapter 2: hostonly // 主機 ==> default: Forwarding ports... default: 22 (guest) => 2222 (host) (adapter 1) // 把服務器 22 端口映射到本地 2222 端口 ==> default: Booting VM... // 啓動 ==> default: Waiting for machine to boot. This may take a few minutes... default: SSH address: 127.0.0.1:2222 // 使用127.0.0.1:2222 來鏈接咱們的服務器 default: SSH username: vagrant // ssh 鏈接 用戶名 default: SSH auth method: private key // 密碼 default: your host and reload your VM. default: default: Guest Additions Version: 5.0.18 default: VirtualBox Version: 5.1 ==> default: Configuring and enabling network interfaces... ==> default: Mounting shared folders... default: /vagrant => F:/Twitch/laravel // 服務器下的 /vagrant 目錄映射咱們本地的 F:/Twitch/laravel ,這兩個目錄是同步的,這就作到了咱們在本地開發服務器上運行項目,固然這些參數都能在配置中修改 default: Adapter 1: nat // 網絡鏈接模式 default: Adapter 2: hostonly // 主機 ==> default: Forwarding ports... default: 22 (guest) => 2222 (host) (adapter 1) // 把服務器 22 端口映射到本地 2222 端口 ==> default: Booting VM... // 啓動 ==> default: Waiting for machine to boot. This may take a few minutes... default: SSH address: 127.0.0.1:2222 // 使用127.0.0.1:2222 來鏈接咱們的服務器 default: SSH username: vagrant // ssh 鏈接 用戶名 default: SSH auth method: private key // 密碼 default: your host and reload your VM. default: default: Guest Additions Version: 5.0.18 default: VirtualBox Version: 5.1 ==> default: Configuring and enabling network interfaces... ==> default: Mounting shared folders... default: /vagrant => F:/Twitch/laravel // 服務器下的 /vagrant 目錄映射咱們本地的 F:/Twitch/laravel ,這兩個目錄是同步的,這就作到了咱們在本地開發服務器上運行項目,固然這些參數都能在配置中修改
VagrantDetails

八、使用 Xshell 來鏈接咱們的虛擬機,兩種鏈接方式!

使用 127.0.0.1 直接鏈接咱們的服務器,端口 2222 ,用戶名密碼 vagrant ,登錄以後 你能夠 sudo su 切換到 root 用戶

loca

使用 192.168.66.11 來鏈接服務器,端口 22

private_network

以上咱們使用vagrant搭建ubuntu環境就成功了!

最後附上vagrant一些經常使用的命令, 但願這能幫助大家, 別忘記點贊喲!


$ vagrant box add NAME URL #添加一個box $ vagrant box list #查看本地已添加的box $ vagrant box remove NAME virtualbox #刪除本地已添加的box,如如果版本1.0.x,執行$ vagrant box remove NAME $ vagrant init NAME #初始化,實質應是建立Vagrantfile文件 $ vagrant up #啓動虛擬機 $ vagrant halt #關閉虛擬機 $ vagrant destroy #銷燬虛擬機 $ vagrant reload #重啓虛擬機 $ vagrant package #當前正在運行的VirtualBox虛擬環境打包成一個可重複使用的box $ vagrant ssh #進入虛擬環境 打包 $ vagrant package 當前要被打包的系統名 --output 打包到的地址/包名 $ vagrant box add NAME URL #添加一個box $ vagrant box list #查看本地已添加的box $ vagrant box remove NAME virtualbox #刪除本地已添加的box,如如果版本1.0.x,執行$ vagrant box remove NAME $ vagrant init NAME #初始化,實質應是建立Vagrantfile文件 $ vagrant up #啓動虛擬機 $ vagrant halt #關閉虛擬機 $ vagrant destroy #銷燬虛擬機 $ vagrant reload #重啓虛擬機 $ vagrant package #當前正在運行的VirtualBox虛擬環境打包成一個可重複使用的box $ vagrant ssh #進入虛擬環境 打包 $ vagrant package 當前要被打包的系統名 --output 打包到的地址/包名

部署LNMP


一、先更換下 apt-get 源,這裏咱們使用清華大學的源,權威不是!參考

vagrant@ubuntu-xenial:/etc/apt$ sudo vim /etc/apt/sources.list vagrant@ubuntu-xenial:/etc/apt$ sudo apt-get update vagrant@ubuntu-xenial:/etc/apt$ sudo vim /etc/apt/sources.list vagrant@ubuntu-xenial:/etc/apt$ sudo apt-get update

二、準備工做,安裝language-pack-en-bas 語言包,解決系統不一樣語言之間可能發生的衝突,安裝以後能夠減小許多因語言編碼帶來的問題。其中-y參數代表直接安裝,無需確認。

vagrant@ubuntu-xenial:~$ sudo apt-get install -y language-pack-en-base //安裝成功後,運行下面這條命令,設定語言編碼爲 UTF-8 vagrant@ubuntu-xenial:/etc/apt$ locale-gen en_US.UTF-8 // 安裝Git,Vim vagrant@ubuntu-xenial:~$ sudo apt-get install git vim vagrant@ubuntu-xenial:~$ sudo apt-get install -y language-pack-en-base //安裝成功後,運行下面這條命令,設定語言編碼爲 UTF-8 vagrant@ubuntu-xenial:/etc/apt$ locale-gen en_US.UTF-8 // 安裝Git,Vim vagrant@ubuntu-xenial:~$ sudo apt-get install git vim

三、安裝Nginx

vagrant@ubuntu-xenial:~$ sudo apt-get -y install nginx vagrant@ubuntu-xenial:~$ nginx -v nginx version: nginx/1.10.0 (Ubuntu) vagrant@ubuntu-xenial:~$ sudo apt-get -y install nginx vagrant@ubuntu-xenial:~$ nginx -v nginx version: nginx/1.10.0 (Ubuntu)
nginx

四、安裝Mysql
直接安裝Mysql5.7,5.7 能夠說是里程碑式的版本,提升了性能,並增長了不少新的特性。特別是新增長的json字段,用過以後你會愛上她的!!

MySQL 開發團隊於 9.12 日宣佈 MySQL 8.0.0 開發里程碑版本(DMR)發佈!可是目前 8.0.0 仍是開發版本,若是你但願體驗和測試最新特性,能夠從http://dev.mysql.com/downloads/mysql/ 下載各個平臺的安裝包。不過,MySQL 軟件包是愈來愈大了,Linux 平臺上的二進制打包後就將近有 1 GB。若是在產品環境中使用,在 8.0 沒有進入穩定版本以前,請繼續使用 5.7 系列,當前最新的版本是 5.7.15 GA 版本——這隻有 600 M 多。

// 一、下載.deb包到你的服務器: vagrant@ubuntu-xenial:~$ wget http://dev.mysql.com/get/mysql-apt-config_0.5.3-1_all.deb // 二、而後使用**dpkg命令添加Mysql的源:** vagrant@ubuntu-xenial:~$ sudo dpkg -i mysql-apt-config_0.5.3-1_all.deb 注意: 注意在添加源的時候,會叫你選擇安裝 MySQL哪一個應用,這裏選擇 Server便可,再選擇 MySQL 5.7後又會回到選擇應用的那個界面,此時選擇Apply便可。 // 三、安裝 vagrant@ubuntu-xenial:~$ sudo apt-get update vagrant@ubuntu-xenial:~$ sudo apt-get install mysql-server vagrant@ubuntu-xenial:~$ mysql -V mysql Ver 14.14 Distrib 5.7.16, for Linux (x86_64) using EditLine wrapper // 一、下載.deb包到你的服務器: vagrant@ubuntu-xenial:~$ wget http://dev.mysql.com/get/mysql-apt-config_0.5.3-1_all.deb // 二、而後使用**dpkg命令添加Mysql的源:** vagrant@ubuntu-xenial:~$ sudo dpkg -i mysql-apt-config_0.5.3-1_all.deb 注意: 注意在添加源的時候,會叫你選擇安裝 MySQL哪一個應用,這裏選擇 Server便可,再選擇 MySQL 5.7後又會回到選擇應用的那個界面,此時選擇Apply便可。 // 三、安裝 vagrant@ubuntu-xenial:~$ sudo apt-get update vagrant@ubuntu-xenial:~$ sudo apt-get install mysql-server vagrant@ubuntu-xenial:~$ mysql -V mysql Ver 14.14 Distrib 5.7.16, for Linux (x86_64) using EditLine wrapper 

五、安裝PHP7.0

// 一、安裝php7.0 vagrant@ubuntu-xenial:~$ sudo apt-get -y install php7.0 vagrant@ubuntu-xenial:~$ php -v PHP 7.0.8-0ubuntu0.16.04.3 (cli) ( NTS ) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies with Zend OPcache v7.0.8-0ubuntu0.16.04.3, Copyright (c) 1999-2016, by Zend Technologies // 二、安裝php7.0-mysql, php7.0與mysql通訊的模塊,關聯上 vagrant@ubuntu-xenial:~$ sudo apt-get -y install php7.0-mysql // 三、安裝fpm,這是Nginx用來解析php文件的: vagrant@ubuntu-xenial:~$ sudo apt-get install php7.0-fpm // 四、安裝其餘的必備模塊 vagrant@ubuntu-xenial:~$ sudo apt-get install php7.0-curl vagrant@ubuntu-xenial:~$ sudo apt-get install php7.0-xml vagrant@ubuntu-xenial:~$ sudo apt-get install php7.0-mcrypt vagrant@ubuntu-xenial:~$ sudo apt-get install php7.0-json vagrant@ubuntu-xenial:~$ sudo apt-get install php7.0-gd vagrant@ubuntu-xenial:~$ sudo apt-get install php7.0-mbstring vagrant@ubuntu-xenial:~$ sudo apt-get install php7.0-dom vagrant@ubuntu-xenial:~$ sudo apt-get install php7.0-zip // 一、安裝php7.0 vagrant@ubuntu-xenial:~$ sudo apt-get -y install php7.0 vagrant@ubuntu-xenial:~$ php -v PHP 7.0.8-0ubuntu0.16.04.3 (cli) ( NTS ) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies with Zend OPcache v7.0.8-0ubuntu0.16.04.3, Copyright (c) 1999-2016, by Zend Technologies // 二、安裝php7.0-mysql, php7.0與mysql通訊的模塊,關聯上 vagrant@ubuntu-xenial:~$ sudo apt-get -y install php7.0-mysql // 三、安裝fpm,這是Nginx用來解析php文件的: vagrant@ubuntu-xenial:~$ sudo apt-get install php7.0-fpm // 四、安裝其餘的必備模塊 vagrant@ubuntu-xenial:~$ sudo apt-get install php7.0-curl vagrant@ubuntu-xenial:~$ sudo apt-get install php7.0-xml vagrant@ubuntu-xenial:~$ sudo apt-get install php7.0-mcrypt vagrant@ubuntu-xenial:~$ sudo apt-get install php7.0-json vagrant@ubuntu-xenial:~$ sudo apt-get install php7.0-gd vagrant@ubuntu-xenial:~$ sudo apt-get install php7.0-mbstring vagrant@ubuntu-xenial:~$ sudo apt-get install php7.0-dom vagrant@ubuntu-xenial:~$ sudo apt-get install php7.0-zip

至此與php相關的模塊安裝安裝完成。

配置LNMP


一、配置PHP
輸入/fix_pathinfo搜索,將cgi.fix_pathinfo=1改成cgi.fix_pathinfo=0:

vagrant@ubuntu-xenial:~$ sudo vim /etc/php/7.0/fpm/php.ini vagrant@ubuntu-xenial:~$ sudo vim /etc/php/7.0/fpm/php.ini
php.ini

二、編輯fpm配置文件:

vagrant@ubuntu-xenial:~$ sudo vim /etc/php/7.0/fpm/pool.d/www.conf vagrant@ubuntu-xenial:~$ sudo vim /etc/php/7.0/fpm/pool.d/www.conf

找到listen = /run/php/php7.0-fpm.sock修改成listen = 127.0.0.1:9000。使用9000端口。

sudo service php7.0-fpm stop

sudo service php7.0-fpm start

wwwconf

注意:若是在遇到用戶權限和文件權限的問題,修改下 上圖中 user 和 group ,全改成vagrant,讓他對項目目錄達到全部權限!

三、配置Nginx:
配置 站點 下的default文件,修改前先備份一個哦!(/etc/nginx/sites-available/)

## # You should look at the following URL's in order to grasp a solid understanding # of Nginx configuration files in order to fully unleash the power of Nginx. # http://wiki.nginx.org/Pitfalls # http://wiki.nginx.org/QuickStart # http://wiki.nginx.org/Configuration # # Generally, you will want to move this file somewhere, and start with a clean # file but keep this around for reference. Or just disable in sites-enabled. # # Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples. ## # Default server configuration # server { listen 80; // 監聽80端口, 默認站點 #listen [::]:80 default_server; // // IPV6 開啓 # SSL configuration # # listen 443 ssl default_server; # listen [::]:443 ssl default_server; # # Note: You should disable gzip for SSL traffic. # See: https://bugs.debian.org/773332 # # Read up on ssl_ciphers to ensure a secure configuration. # See: https://bugs.debian.org/765782 # # Self signed certs generated by the ssl-cert package # Don't use them in a production server! # See: https://bugs.debian.org/765782 # # Self signed certs generated by the ssl-cert package # Don't use them in a production server! # # include snippets/snakeoil.conf; root /var/www/html; // 配置網站站點目錄 # Add index.php to the list if you are using PHP index index.php index.html index.htm index.nginx-debian.html; server_name localhost; // 域名 location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. #try_files $uri $uri/ =404; //首頁訪問規則 // 記得修改 try_files $uri $uri/ /index.php?$query_string; } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # // 開啓這塊註釋,解析php文件 location ~ \.php$ { include snippets/fastcgi-php.conf; # # # With php7.0-cgi alone: // 兩種方式 : 1.監聽 9000 端口, 2.sock 連接, 推薦使用 1 fastcgi_pass 127.0.0.1:9000; # # With php7.0-fpm: # fastcgi_pass unix:/run/php/php7.0-fpm.sock; } //注意閉合哦!  } ## # You should look at the following URL's in order to grasp a solid understanding # of Nginx configuration files in order to fully unleash the power of Nginx. # http://wiki.nginx.org/Pitfalls # http://wiki.nginx.org/QuickStart # http://wiki.nginx.org/Configuration # # Generally, you will want to move this file somewhere, and start with a clean # file but keep this around for reference. Or just disable in sites-enabled. # # Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples. ## # Default server configuration # server { listen 80; // 監聽80端口, 默認站點 #listen [::]:80 default_server; // // IPV6 開啓 # SSL configuration # # listen 443 ssl default_server; # listen [::]:443 ssl default_server; # # Note: You should disable gzip for SSL traffic. # See: https://bugs.debian.org/773332 # # Read up on ssl_ciphers to ensure a secure configuration. # See: https://bugs.debian.org/765782 # # Self signed certs generated by the ssl-cert package # Don't use them in a production server! # See: https://bugs.debian.org/765782 # # Self signed certs generated by the ssl-cert package # Don't use them in a production server! # # include snippets/snakeoil.conf; root /var/www/html; // 配置網站站點目錄 # Add index.php to the list if you are using PHP index index.php index.html index.htm index.nginx-debian.html; server_name localhost; // 域名 location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. #try_files $uri $uri/ =404; //首頁訪問規則 // 記得修改 try_files $uri $uri/ /index.php?$query_string; } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # // 開啓這塊註釋,解析php文件 location ~ \.php$ { include snippets/fastcgi-php.conf; # # # With php7.0-cgi alone: // 兩種方式 : 1.監聽 9000 端口, 2.sock 連接, 推薦使用 1 fastcgi_pass 127.0.0.1:9000; # # With php7.0-fpm: # fastcgi_pass unix:/run/php/php7.0-fpm.sock; } //注意閉合哦!  }

若是是設置的 fastcgi_pass unix:/var/run/php5-fpm.sock, fpm 配置文件不須要修改, 若是是監聽 9000 端口就須要修改 fpm 配置文件 vim /etc/php5/fpm/pool.d/www.conf

// 註釋掉 sock 添加監聽 9000 端口 ;listen = /run/php/php7.0-fpm.sock listen = 127.0.0.1:9000 // 註釋掉 sock 添加監聽 9000 端口 ;listen = /run/php/php7.0-fpm.sock listen = 127.0.0.1:9000

fpm 配置文件修改以後, 須要重啓 fpm 才能生效 service php5-fpm start
, 若是想要檢測 9000 端口是否開啓成功運行 netstat -tln.

vagrant@ubuntu-xenial:~$ sudo /etc/init.d/nginx restart [ ok ] Restarting nginx (via systemctl): nginx.service. vagrant@ubuntu-xenial:~$ sudo /etc/init.d/nginx restart [ ok ] Restarting nginx (via systemctl): nginx.service.

配置完後,咱們來運行一個文件!

vagrant@ubuntu-xenial:/var/www/html$ sudo vim phpinfo.php // 內容 <?php phpinfo(); ?> vagrant@ubuntu-xenial:/var/www/html$ sudo vim phpinfo.php // 內容 <?php phpinfo(); ?>
nginx Lnmp

至此,咱們LNMP環境搭建完成了!

安裝 Laravel


請轉到此處,Laravel--入門篇(環境配置)

相關文章
相關標籤/搜索