http://laravel.tw/docs/5.0/homestead#included-software
1.安裝 VirtualBox
2.安裝 Vagrant
3.下載 VM
sudo git clone https://github.com/laravel/homestead.git Homestead
4.創建 Homestead.yaml 設定檔
sudo bash init.sh
5.設定你的 SSH 金鑰
ssh-keygen -t rsa -C "yehlu@homestead"
6.起動
sudo vagrant up
7.關閉
sudo vagrant halt
8.設定hosts
192.168.10.10 homestead.app
9.設定 ssh alias
alias vm="ssh vagrant@127.0.0.1 -p 2222"
10.資料目錄
/home/vagrant/Code/Laravel/public
11.測試
http://homestead.app/info.php
Laravel Homestead
Primary script unknown
/etc/nginx/sites-enabled/homestead.app
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
}
mysql root password
secret
PHP 7.0
http://blog.wu-boy.com/2015/10/laravel- ... ort-php-7/
很高興看到 Laravel 的 Homestead 推出 PHP 7 的版本,假如您還在使用 PHP 5.x 的 homestead box,請參考本篇教學,或者是參考線上文件來升級。底下是這次升級的兩個步驟,第一個就是重新下載新的 PHP-7 box 檔案,第二步驟修改 Homestead.yaml設定檔,請參考如下:
下載 homestead php-7 分支
要使用 PHP 7.0 請直接到 laravel/homestead repository 內下載 php-7 分支
1
$ git clone -b php-7 https://github.com/laravel/homestead.git Homestead
修改 Homestead.yaml
完成後,請勿執行 init.sh,因為這樣會直接覆蓋掉您的 Homestead.yaml 設定。修改您的 Homestead.yaml 加入 box 設定
1
box: laravel/homestead-7
最後在 laravel/homestead 目錄執行 vagrant up,就會開始下載新的 box 檔案並且開機,接著透過 vagrant ssh 登入系統即可。
Screen Shot 2015-10-05 at 2.55.16 PM
疑難排除
問題:原本的 homestead 指令無法開啟新安裝的 PHP 7 系統?
如果原本系統有 homestead 指令,你會發現升級後,無法透過 homestead up 來開機顯示新的 PHP 7.x 系統,這是因為 virtual box 的 name 衝突,要解決此問題,要先把原本的 box 刪掉,刪掉之前,請務必備份原本 box 內修改過的檔案或者是資料庫備份。請先執行底下指令
1
$ vagrant global-status
會顯示目前 vagrant 存在的 box 狀態
Screen Shot 2015-10-05 at 2.43.13 PM
畫面顯示會有兩個 box,一個是原本 homestead (PHP 5.x) 另一個則是 PHP 5.7 版本,這時候請先透過 vagrant destroy 把上面畫面兩個系統刪除,然後再重新下 homestead up 這樣就會是跑 laravel/homestead-7 新系統了,最後把資料庫 restore 回去,打開 URL 就可以看到原本的網站了。
問題:打開原本網站,結果發現 502 bad gateway?
這原因可以在 Nginx Log 檔案發現底下訊息
1
2015/10/05 10:05:13 [crit] 2061#0: *12 connect() to unix:/var/run/php5-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: 192.168.10.1, server: homestead.app, request: "GET /journals/J0000005585 HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "homestead.app"
可以看到 Nginx 設定的 unix:/var/run/php5-fpm.sock 路徑錯誤,請改成 unix:/var/run/php/php7.0-fpm.sock 才對,完成後請重新啟動 Nginx。
很高興看到 Laravel 的 Homestead 推出 PHP 7 的版本,假如您還在使用 PHP 5.x 的 homestead box,請參考本篇教學,或者是參考線上文件來升級。底下是這次升級的兩個步驟,第一個就是重新下載新的 PHP-7 box 檔案,第二步驟修改 Homestead.yaml設定檔,請參考如下:
下載 homestead php-7 分支
要使用 PHP 7.0 請直接到 laravel/homestead repository 內下載 php-7 分支
1
$ git clone -b php-7 https://github.com/laravel/homestead.git Homestead
修改 Homestead.yaml
完成後,請勿執行 init.sh,因為這樣會直接覆蓋掉您的 Homestead.yaml 設定。修改您的 Homestead.yaml 加入 box 設定
1
box: laravel/homestead-7
最後在 laravel/homestead 目錄執行 vagrant up,就會開始下載新的 box 檔案並且開機,接著透過 vagrant ssh 登入系統即可。
Screen Shot 2015-10-05 at 2.55.16 PM
疑難排除
問題:原本的 homestead 指令無法開啟新安裝的 PHP 7 系統?
如果原本系統有 homestead 指令,你會發現升級後,無法透過 homestead up 來開機顯示新的 PHP 7.x 系統,這是因為 virtual box 的 name 衝突,要解決此問題,要先把原本的 box 刪掉,刪掉之前,請務必備份原本 box 內修改過的檔案或者是資料庫備份。請先執行底下指令
1
$ vagrant global-status
會顯示目前 vagrant 存在的 box 狀態
Screen Shot 2015-10-05 at 2.43.13 PM
畫面顯示會有兩個 box,一個是原本 homestead (PHP 5.x) 另一個則是 PHP 5.7 版本,這時候請先透過 vagrant destroy 把上面畫面兩個系統刪除,然後再重新下 homestead up 這樣就會是跑 laravel/homestead-7 新系統了,最後把資料庫 restore 回去,打開 URL 就可以看到原本的網站了。
問題:打開原本網站,結果發現 502 bad gateway?
這原因可以在 Nginx Log 檔案發現底下訊息
1
2015/10/05 10:05:13 [crit] 2061#0: *12 connect() to unix:/var/run/php5-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: 192.168.10.1, server: homestead.app, request: "GET /journals/J0000005585 HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "homestead.app"
可以看到 Nginx 設定的 unix:/var/run/php5-fpm.sock 路徑錯誤,請改成 unix:/var/run/php/php7.0-fpm.sock 才對,完成後請重新啟動 Nginx。
Cannot start session without errors, please check errors giv
代碼: 選擇全部
chmod 777 /var/lib/php/sessions -fR