2017年9月9日 星期六

使用 docker 安裝及執行 Laravel

因為環境的關係,例如,在 Windows server 2003 下,只能跑 PHP 5.4,就限制了只能使用Laravel 5.0。而要裝 Laravel 5.0,也必需使用 PHP 5.4 ~ 5.6 的版本來安裝。相對的,使用 CentOS,則能使用最新版本的 PHP,相對的,也必須使用較高版本的 Laravel。

可是,自己個人使用的電腦,一定不想要同時安裝各種版本的 PHP,通常也不允許。甚至,像 PHP 5.4,因為官方不再支援,有可能無法安裝。在這種情形下,docker 實在是一個很理想的環境或工具。在這裡,要安裝 Laravel 5.0,選擇使用的 image 是 composer/composer:php5-alpine,它用的是 PHP 5.6,雖然標註為 DEPRECATED,但還是能用的。

我是習慣在一個專用的目錄下,放置和 Laravel 相關的專案,因此,將 composer 的 cache 也放在此目錄下,就可以省下很多等待下載的時間。其中 "-v $(pwd)/cache:/composer" 的選項,就是指定存放 cache 的 volume。

在建立專案時,會在該目錄下建立一個新的目錄,因此用 "-v $(pwd):/app" 來指定 volume。但是 update 時,則需在該專案的目錄下,因此 volume 的指定便成為 "-v $(pwd)/la-50:/app",而不用真的切換目錄。

$ docker run --rm -v $(pwd):/app  -v /cache:/composer composer/composer:php5-alpine create-project laravel/laravel la-50 "5.0.*" --prefer-dist

# 移險 la-50/vendor/compiled.php 後,進行 update
$ cd la-50
$ rm vendor/compiled.php

$ docker run --rm -v $(pwd):/app  -v ~/php-projects/cache:/composer composer/composer:php5-alpine update

接著用 PHP 5.4 來執行測試。注意,這裡使用的 image 已安裝所需的 PHP extension 了。
docker run -it --rm -v $(pwd):/app -p 8000:8000 php54_app php /app/artisan --host=0.0.0.0 serv

然後,使用瀏覽器開啟 http://localhost:8000/ 即可看到結果。













沒有留言: