標籤:map reg 表示 嵌入 日常 ons 其他 ora 狀態
http://www.itkeyword.com/doc/3863994020922591518
1、簡介
Laravel 致力於讓整個 PHP 開發過程變得讓人愉悅,包括本地開發環境,為此官方為我們提供了一整套本地開發環境 —— Laravel Homestead。
Laravel Homestead 是一個打包好各種 Laravel 開發所需要的工具及環境的 Vagrant 盒子(Vagrant 提供了一個便捷的方式來管理和設定虛擬機器),該盒子為我們提供了優秀的開發環境,有了它,我們不再需要在本地環境安裝 PHP、HHVM、Web伺服器以及其它工具軟體,我們也完全不用再擔心誤操作搞亂作業系統 —— 因為 Vagrant 盒子是一次性的,如果出現錯誤,可以在數分鐘內銷毀並重新建立該 Vagrant 盒子!
Homestead可以運行在 Windows、Mac 以及 Linux 系統上,其中已經安裝好了Nginx、PHP7.0、MySQL、Postgres、Redis、Memcached、Node以及很多其它開發 Laravel 應用所需要的東西。
註:如果你使用的是Windows,需要開啟系統的硬體虛擬化(VT-x),這通常可以通過BIOS來開啟。
預裝軟體
- Ubuntu 14.04
- Git
- PHP 7.0
- HHVM
- Xdebug
- Nginx
- MySQL
- SQLite 3
- Postgres
- Composer
- Node(With PM2, Bower, Grunt, and Gulp)
- Redis
- Memcached
- Beanstalkd
- Blackfire Profiler
環境準備
- Git
- PHP
- Laravel
- Composer
- Vagrant
- VirtualBox
安裝git
1.下載GitHub for Windows
https://windows.github.com/
安裝php
建議大家盡量安裝當前最新版本的 PHP
1.下載PHP
http://windows.php.net/download/
2.解壓目錄
我的路徑D:\php
3.添加環境變數
右鍵電腦->進階系統設定->環境變數->系統變數->PATH
C:\ProgramData\Oracle\Java\javapath;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\nodejs\;D:\php;C:\ProgramData\ComposerSetup\bin
4.設定php.ini
進入 PHP 安裝目錄(例如 D:\php
)。找到 php.ini-development
檔案並複製一份到目前的目錄,重新命名為 php.ini
,修改以下配置
去掉extension=php_mbstring.dll
前面的分號(888 行左右)
去掉extension=php_openssl.dll
前面的分號(893 行左右)
去掉extension_dir = "ext"
前面的分號(736 行左右)
5.使環境變數生效
重啟explorer.exe
安裝Laravel
1.下載Laravel
http://www.golaravel.com/download/
2.解壓目錄
我的路徑D:\laravel-v5.1.4
3.啟動Laravel
d: cd laravel-v5.1.4 D:\laravel-v5.1.4>php artisan serve Laravel development server started on http://localhost:8000/
在瀏覽器中訪問http://localhost:8000/
artisan
的 serve
命令還支援兩個參數:
host
設定主機地址
port
設定 web server 監聽的連接埠號碼
例如:php artisan serve --port=8888
安裝Composer
1.下載Composer-Setup.exe
https://getcomposer.org/doc/00-intro.md#installation-windows
2.配置Composer
Loading composer repositories with package information Installing dependencies (including require-dev) SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed”
如果安裝過程提示報錯為缺少CA認證,下載cacert.pem
到自訂路徑
http://curl.haxx.se/docs/caextract.html
然後修改php.ini檔案(1983行左右)
openssl.cafile=D:\php\verify\cacert.pem
3.測試Composer
composer -V Composer version 1.0-dev (d79427f1a7b15e8f4d46ce8124a4d0c58ba1479c) 2016-01-27 13:01:22
windows安裝可參考
http://pkg.phpcomposer.com/
2、安裝 & 設定準備工作
- VirtualBox 虛擬機器,基礎依賴
- Vagrant 基於VirtualBox或vmware的虛擬化環境部署工具,可以將一個虛擬機器打包(簡稱vbox)給別人。
- Homestead laravel官方vbox,Integration Environment以及一套特製的命令列工具。
- xshell 這是一款windows下的ssh & shell工具,同類的有securecrt、putty等。
在使用 Homestead 之前,需要先安裝 Virtual Box/VMWare 和 Vagrant,所有這些軟體包都為常用作業系統提供了一個便於使用的可視化安裝器。
安裝完以後重啟一下,再開啟cmd
vagrant --version
Vagrant 1.8.1
下載
安裝 Homestead Vagrant 盒子
通過命令
VirtualBox/VMWare 和 Vagrant 安裝好了之後,在終端中使用能如下命令將 laravel/homesterad
添加到 Vagrant 中。下載該盒子將會花費一些時間,時間長短主要取決於你的網路連接速度:
vagrant box add laravel/homestead
如果上述命令執行失敗,可以使用 Vagrant 老版本的方式,這需要輸入完整的 URL:
vagrant box add laravel/homestead https://atlas.hashicorp.com/laravel/boxes/homestead
可以自動下載homestead的vbox,然而國內網路大家懂的,龜速。
建議自己有vps的同學,在vps上通過
wget -O homestead.box https://atlas.hashicorp.com/laravel/boxes/homestead/versions/0.4.1/providers/virtualbox.box
手動下載後,再從vps上將box下載到本地,或者可以試試用迅雷下載。總之,想辦法把這個box檔案下載下來,然後通過以下命令添加到vagrant
vagrant box add laravel/homestead file:///d:/homestead.box
通過 GitHub 安裝 Homestead命令列工具
你還可以通過簡單複製倉庫代碼來實現 Homestead 安裝。將倉庫複製到使用者目錄下的 Homestead 目錄,這樣 Homestead 盒子就可以會作為所有其他 Laravel 項目的主機:
cd ~git clone https://github.com/laravel/homestead.git Homestead
複製完成後,在 Homestead 目錄下運行 bash init.sh
命令來建立 Homestead.yaml
設定檔,Homestead.yaml
設定檔檔案位於 ~/.homestead
目錄:
bash init.sh
安裝依賴
composer install
在Homestead目錄執行
php homestead
Laravel Homestead version 3.0.1
配置 Homestead
設定 Provider
Homestead.yaml
檔案中的 provider
鍵表示使用哪個 Vagrant 提供者:virtualbox
、vmware_fushion
或者vmware_workstation
,你可以將其設定為自己喜歡的提供者:
provider: virtualbox
配置共用資料夾
推薦:使用Vagrant在Windows平台搭建嵌入式Linux開發環境(2)Tftpd伺服器搭建
1、擷取root許可權 Ubuntu預設使用user使用者登入,而開發大部分情況下需要用到root許可權,使用命令切換使用者到超級許可權使用者root sudo su 2、下載安裝
C:\Users\stone\.homestead\Homestead.yaml
Homestead.yaml
檔案中的 folders
屬性列出了所有主機和 Homestead 虛擬機器共用的檔案夾,一旦這些目錄中的檔案有了修改,將會在本地和 Homestead 虛擬機器之間保持同步,如果有需要的話,你可以配置多個共用資料夾(一般一個就夠了):
folders: - map: d:/app to: /home/vagrant/Code
如果要開啟 NFS,只需簡單添加一個標識到同步資料夾配置:
folders: - map: ~/Code to: /home/vagrant/Code type: "nfs"
配置 Nginx 網站
對 Nginx 不熟?沒問題,通過 sites
屬性你可以方便地將“網域名稱”映射到 Homestead 虛擬機器的指定目錄,Homestead.yaml
中預設已經配置了一個樣本網站。和共用資料夾一樣,你可以配置多個網站:
sites: - map: homestead.app to: /home/vagrant/Code/Laravel/public
你還可以通過設定 hhvm
為 true
讓所有的 Homestead 網站使用 HHVM:
sites: - map: homestead.app to: /home/vagrant/Code/Laravel/public hhvm: true
預設情況下,每個網站都可以通過 HTTP(連接埠號碼:8000)和 HTTPS(連接埠號碼:44300)進行訪問。
修改Hosts檔案|訪問網站
不要忘記把 Nginx 網站配置中的網域名稱添加到本地機器上的 hosts
檔案中,該檔案會將對本地區名的請求重新導向到 Homestead 虛擬機器,在 Mac 或 Linux上,該檔案位於 /etc/hosts
,在 Windows 上,位於C:\Windows\System32\drivers\etc\hosts
,添加方式如下:
網域名稱需要在本機綁定hosts:192.168.10.10 homestead.app
確保 IP 位址和你的 Homestead.yaml
檔案中列出的一致,一旦你將網域名稱放置到 hosts 檔案,就可以在瀏覽器中通過該網域名稱訪問網站了!
http://homestead.app
啟動 Vagrant Box
配置好 Homestead.yaml
檔案後,在 Homestead 目錄下運行 vagrant up
命令,Vagrant 將會啟動虛擬機器並自動設定共用資料夾以及 Nginx 網站。
銷毀該機器,可以使用 vagrant destroy –force
vagrant up Box ‘laravel/homestead‘ could not be found
問題解決辦法
Box ‘laravel/homestead‘ could not be found
收到在homestead目錄下建立metadata.json檔案,內容為
{
"name": "laravel/homestead",
"versions": [{
"version": "0.4.1",
"providers": [{
"name": "virtualbox",
"url": "file:///F:/VirtualBox/homestead.box"
}]
}]
}
Then run vagrant box add metadata.json
This will install the box with a version and can be confirmed by:
$ vagrant box list
laravel/homestead (virtualbox, 0.4.0)
You will now be able to perform vagrant up using your local box.
Default login and password is just vagrant.
參考:
http://stackoverflow.com/questions/34946837/box-laravel-homestead-could-not-be-found
GuestAdditions versions on your host (5.0.14) and guest (5.0.6) do not match.問題解決辦法
This works for me in linux, I think this will solve the problem in windows as well.
Quick Solution for Failed to mount folders in Linux guest issue.
Add the following line to your Homestead/Vagrantfile:
config.vbguest.auto_update = false
Your d:\VirtualBox/Homestead/Homestead/Vagrantfile should looks like this:
/...Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| # To avoid install and uninstall VBoxGuessAdditions during vagrant provisioning. config.vbguest.auto_update = false.../
Save it and execute
$ vagrant destroy --force$ vagrant up
參考:
http://stackoverflow.com/questions/30175290/laravel-homestead-vagrant-vboxsf-not-available-issue
為指定項目安裝 Homestead
全域安裝 Homestead 將會使每個項目共用同一個 Homestead 盒子,你還可以為每個項目單獨安裝 Homestead,這樣就會在該項目下建立 Vagrantfile
,允許其他人在該項目中執行 vagrant up
命令,在指定項目根目錄下使用 Composer 執行安裝命令如下:
composer require laravel/homestead --dev
這樣就在項目中安裝了 Homestead。Homestead 安裝完成後,使用 make
命令產生 Vagrantfile
和Homestead.yaml
檔案,make
命令將會自動設定 Homestead.yaml
中的 sites
和 folders
屬性。
Mac/Linux:
php vendor/bin/homestead make
Windows:
vendor\bin\homestead make
接下來,在終端中運行 vagrant up
命令然後在瀏覽器中通過 http://homestead.app
訪問網站。不要忘記在/etc/hosts
檔案中添加網域名稱 homestead.app
。
3、日常使用
全域訪問 Homestead
有時候你想要在檔案系統的任意位置運行 vagrant up
啟動 Homestead 虛擬機器,要實現這一目的需要將 Homestead 安裝目錄添加到系統路徑。這樣你就可以在系統的任意位置運行 homestead
或 homestead ssh
來啟動/登入虛擬機器。
通過 SSH 串連虛擬機器
你可以在 Homestead 目錄下通過運行 vagrant ssh
以 SSH 方式串連到虛擬機器
vagrant ssh
但是如果你需要以更平滑的方式串連到 Homestead,可以為主機添加一個別名來快速串連到 Homestead 盒子,建立完別名後,可以使用 vm
命令從任何地方以 SSH 方式串連到 Homestead 虛擬機器:
alias vm="ssh [email protected] -p 2222"
可以通過virtualbox開啟虛擬機器
使用者名稱和密碼: vagrant.
串連到資料庫
預設已經在 Homestead 虛擬機器中為 MySQL 和 Postgres 資料庫做好了配置,更方便的是,Laravel的 .env
還為串連 Homestead 資料庫做好了配置。
想要通過本地的 Navicat 或 Sequel Pro 串連到 Homestead 上的 MySQL 或 Postgres 資料庫,可以通過建立串連來實現,主機 IP 都是 127.0.0.1
,對於 MySQL 而言,連接埠號碼是33060
,對 Postgres 而言,連接埠號碼是54320
,使用者名稱/密碼是 homestead
/secret
。
注意:只有從本地串連 Homestead 的資料庫時才能使用這些非標準的連接埠,在 Homestead 虛擬機器中還是應該使用預設的 3306 和 5432 連接埠進行資料庫連接配置。
添加更多網站
Homestead 虛擬機器在運行時,可能需要添加額外 Laravel 應用到 Nginx 網站。如果是在單個 Homestead 環境中運行多個 Laravel 應用,添加網站很簡單,只需將網站添加到 Homestead.yaml
檔案,然後在 Homestead 目錄中運行vagrant provision
命令即可。
- Homestead 中新增一個domain的步驟是
- 在homestead.ymal 檔案裡面編輯好sites和folders這兩個項目
- 執行vagrant provision
配置 Cron 調度任務
Laravel 提供了很方便的方式來調度 Cron 任務:只需每分鐘調度運行一次 Artisan 命令 schedule:run
即可。schedule:run
會檢查定義在 App\Console\Kernel
類中定義的調度任務並判斷運行哪些任務。
如果想要為某個 Homestead 網站運行 schedule:run
命令,需要在定義網站時設定 schedule
為 true
:
sites: - map: homestead.app to: /home/vagrant/Code/Laravel/public schedule: true
該網站的 Cron 任務會被定義在虛擬機器的 /etc/cron.d
目錄下。
連接埠轉寄配置
預設情況下,Homestead 連接埠轉寄配置如下:
- SSH: 2222 → Forwards To 22
- HTTP: 8000 → Forwards To 80
- HTTPS: 44300 → Forwards To 443
- MySQL: 33060 → Forwards To 3306
- Postgres: 54320 → Forwards To 5432
轉寄更多連接埠
如果你想要為 Vagrant 盒子添加更多連接埠轉寄,做如下轉寄通訊協定設定即可:
ports: - send: 93000 to: 9300 - send: 7777 to: 777 protocol: udp
4、使用 Blackfire Profiler 進行效能分析
SensioLabs 開發的 Blackfire Profiler 能自動收集代碼執行資料,比如記憶體、CPU 時間、硬碟 I/O 等,Homestead 使得在應用中使用該效能分析器變得輕而易舉。
Blackfire Profiler 需要的軟體包已經預先安裝到 Homestead 盒子,你只需要在 Homestead.yaml
檔案中設定 Blackfire Server ID 和 token:
blackfire: - id: your-server-id token: your-server-token client-id: your-client-id client-token: your-client-token
配置好 Blackfire 的憑證之後,在 Homestead 目錄下使用 vagrant provision
重新啟動 Homestead。在此之前,確保你已經查看過 Blackfire 文檔瞭解了如何在瀏覽器安裝相應的 Blackfire 擴充。
相關密碼
Ubuntu
使用者名稱:vagrant
密碼:vagrant
mysql密碼
homestead / secret
root / secret
虛擬機器操作
在不進入虛擬機器的情況下,還可以使用下面的命令對 虛擬機器進行管理:
vagrant up (啟動虛擬機器)
vagrant halt (關閉虛擬機器——對應就是關機)
vagrant suspend (暫停虛擬機器——只是暫停,虛擬機器記憶體等資訊將以狀態檔案的方式儲存在本地,可以執行恢複操作後繼續使用)
vagrant resume (恢複虛擬機器 —— 與前面的暫停相對應)
vagrant destroy (刪除虛擬機器,刪除後在當前虛擬機器所做進行的除開Vagrantfile中的配置都不會保留)
以上命令需在Homestead目錄下執行
參考:
http://stackoverflow.com/questions/26655516/how-to-install-manually-downloaded-box-for-vagrant
http://stackoverflow.com/questions/34946837/box-laravel-homestead-could-not-be-found
http://stackoverflow.com/questions/25981735/laravel-homestead-stuck-on-vm-login
http://os.51cto.com/art/201507/484834.htm
http://yaojinbu.com/post/2749.html
http://x-bird.qiubs.com/laravel-homestead-intro.html?utm_source=tuicool&utm_medium=referral
http://blog.csdn.net/small_rice_/article/details/45366299
http://blog.csdn.net/markely/article/details/49585887
http://www.ekan001.com/articles/40
http://www.tuicool.com/articles/rIVJRvm
Windows上使用Vagrant打造Laravel Homestead可協同跨平台開發環境