composer create-project laravel/laravel laravel-5.0-empty "~5.0.0" --prefer-dist
rm vendor/compiled.php
composer update
php artisan fresh (
remove this scaffolding)安裝後,共 19.3 MB,其中 vendor 下,有4,526 個檔案,共 18.4 MB。
記得設定 config/app.php 中的時區,
// 'timezone' => 'UTC',
'timezone' => 'Asia/Taipei',
在使用 Laravel 5.0 開發網頁時,每次要備份,vendor 目錄下,檔案很多,要備份時,花很多時間來掃描。因此希望將 vendor 由應用程式分開,可以減少備份時間。另外,storage目錄下的東西,也是無需備分的。
更進一步,再調整一下目錄,也有可能多個 App 共用 vendor。
此外,index.php 原先是放在 public 的目錄下,目錄不好設定。因而,個人習慣是,將 index.php 改為放在 App 的根目錄下,然後將程式放在子目錄下,例如 app-src 下。
調整後,希望目錄長成這樣子
[myapp]
|
+-- [app-src]
| |
| +- [app], [bootstrap], ...
|
+-- [L5-vendor] /* this can be moved out the project */
|
+-- [storage]
|
+-- index.php, favicon.ico, ...
在此,使用 IIS 6 的 web server,網頁的根目錄為 "\Inetpub\wwwroot"
要修改的檔案內容如下
1. 修改 la-tst/myapp/index.php
define('BASEDIR', __DIR__.'/app-src');
define('VENDORDIR', __DIR__.'/L5-vendor');
require BASEDIR.'/bootstrap/autoload.php';
$app = require_once BASEDIR.'/bootstrap/app.php';
$app->useStoragePath(__DIR__.'/storage');
若要將 vender 目錄移到專案外,讓多個專案共用。必須修改 config/session.php,設定不同的cookie 名稱,不然會出現 "TokenMismatchException in VerifyCsrfToken.php" 的錯誤。
2. 修改 app-src/bootstrap/autoload.php
require VENDORDIR.'/autoload.php';
3. 修改 L5-vendor/composer 下的 4 個 autoload 檔,包括 autoload_classmap.php、autoload_files.php、autoload_namespaces.php、autoload_psr4.php
$vendorDir = VENDORDIR;
$baseDir = BASEDIR;
調整好後,有可能要重新啟動 web server,才能正常運作。
瀏覽的 url:
http://10.161.86.192/la-tst/myapp/index.php
在此稍加說明,我是用 composer 安裝一個空的 Laravel 5.0 專案。啟動一個新的 AP 時,建立一個新的 App 目錄,直接 copy 整個目錄,然後,進行開發。
因此,在正規的作法,composer 目錄下的檔案是以 composer 來產生。但在此,直接手動改內容,是有點不太正規,但我是打定主意,不 update 系統。因為,目前已是 Laravel 5.1 是主流,5.0 已不太會更新。
另一調整目錄方式
在使用一段時間後,還是有必要 update。就是把根目錄下的全部東西,都移到 app-把 public 目錄下的東西,提到根目錄下調整後,希望目錄長成這樣子
[myapp]
|
+-- [app-src]
| |
| +- [app], [bootstrap], [vendor]...
|
+-- [storage]
|
+-- index.php, favicon.ico, ...
這樣,只要修改 index.php 的內容,能夠 include 到檔案即可,然後再改一下 storage 的目錄。這樣的目錄安排,不用修改伺服器設定,也可以 update package,缺點是,有些 artisan 的指令不能用,只能自行取捨了。