# Laravel on ubuntu ## 預備動作 ``` $ sudo apt update $ sudo apt upgrade $ sudo apt install software-properties-common ``` ## 安裝 Apache ``` $ sudo apt install apache2 ``` ## 檢查安裝版本 ``` $ sudo apache2 -v ``` ![](https://cdn-images-1.medium.com/max/800/1*hOVUGKnDrtQdxekr6w9tAg.png) ## Use localhost to check ![](https://cdn-images-1.medium.com/max/800/1*OdAIuvDcpVwJ-lfPkYpjmA.png) ## 安裝 MySQL ``` $ sudo apt install mysql-server ``` ## 檢查安裝版本 ``` $ sudo mysql --version ``` ![](https://cdn-images-1.medium.com/max/800/1*3LHpEl0HIhelQx3lih1snw.png) ## Install PHP ## 新增 ppa 來源 ``` $ sudo apt-add-repository ppa:ondrej/php $ sudo apt update ``` ## 安裝 PHP 及相關擴充 ``` $ sudo apt install php7.2 php7.2-common php7.2-cli php7.2-curl php7.2-gd php7.2-json php7.2-dev php7.2-pgsql php7.2-sqlite3 php7.2-gd php7.2-curl php7.2-memcached php7.2-imap php7.2-mysql php7.2-mbstring php7.2-xml php7.2-zip php7.2-bcmath php7.2-soap php7.2-intl php7.2-readline ``` ## 安裝 Apache 的 PHP 模組 ``` $ sudo apt install libapache2-mod-php7.2 ``` ![](https://cdn-images-1.medium.com/max/800/1*JqSY_bGr3C1JLCPwv7WuVw.png) # 下載/安裝 Composer ``` $ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" $ HASH="$(wget -q -O - https://composer.github.io/installer.sig)" $ php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" ``` ### You should get the following output if everything is fine: Installer Verified ``` $ php composer-setup.php $ php -r "unlink('composer-setup.php');" ``` ![](https://i.imgur.com/Oyf13as.png) ### 完成後,可以把 composer.phar 變成全域指令: ``` $ sudo mv composer.phar /usr/local/bin/composer ``` ### 最後,透過取得安裝版本來測試一下是否成功安裝。 ``` $ composer --version $ composer ``` ![](https://cdn-images-1.medium.com/max/800/1*zKm02N6oIw_tTi1VKEJgQQ.png) ### 建立新 Laravel 專案 ### 請先切換工作目錄到您的專案目錄 (Projects) 底下,然後執行 Composer 建立專案的指令即可: ``` $ mkdir ~/Projects $ cd ~/Projects $ composer create-project laravel/laravel --prefer-dist ``` ![](https://cdn-images-1.medium.com/max/800/1*MPbxZHv8lwyd4DOVhDLXyQ.png) ### Laravel 在運行的時候,會將應用程式的 cache 及 log 寫入檔案,因此別忘了把資料夾權限開大: ``` $ cd laravel $ chmod -R 777 storage $ chmod -R 777 bootstrap/cache ``` ## 建立/開啟虛擬站台 ### 為了讓我們開發時可以支援多個專案,因此我們要在 Apache 上設定虛擬站台。請用 root 權限新增虛擬站台設定檔 ### /etc/apache2/site-available/laravel.local.conf 輸入以下設定檔: ``` sudo vim /etc/apache2/sites-available/laravel.local.conf ``` Write ``` <VirtualHost laravel.local:80> DocumentRoot "/home/"Username"/Projects/laravel/public" ServerAdmin laravel.local <Directory "/home/"Username"/Projects/laravel"> Options All AllowOverride All Require all granted </Directory> </VirtualHost> ``` 完成後要在 Apache 裡啟動這個站台,成功啟動後要重新載入 Apache 設定檔 # 開啟站台 $ sudo a2ensite laravel.local # 重新載入 Apache 設定檔 $ sudo systemctl reload apache2 ![](https://cdn-images-1.medium.com/max/800/1*1A4hGZIN7SVwfbXJFTd7Yw.png) ``` sudo vim /etc/hosts ``` Write ``` 127.0.0.1 laravel.local ``` ![](https://cdn-images-1.medium.com/max/800/1*Q3J_um762Pz768frPKGshA.png) ## 完成後打開瀏覽器,輸入網址 laravel.local 應該就可以看到 Laravel 的專案啟動畫面如下: ![](https://cdn-images-1.medium.com/max/800/1*tc3koul7_pgW_nLre8AwUA.png) # 每次開起虛擬機都需要重新run ## 開啟站台 ``` $ sudo a2ensite laravel.local ``` ## 重新載入 Apache 設定檔 ``` $ sudo systemctl reload apache2 ``` # Ref [1](https://ithelp.ithome.com.tw/articles/10193397) [2](https://www.atlantic.net/vps-hosting/how-to-install-laravel-framework-on-ubuntu-18-04/)