iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 4
1
Software Development

從零開始的Laravel RESTful api系列 第 4

Day 04 : 環境架設 part III -- Composer & Laravel

在完成 LAMP server 架設以及 MySQL 設置之後,接下來就要著手準備 Laravel 的開發環境。

Composer

在能夠成功開啟一個 Laravel 專案之前,我們必須要下載一個 php 的套件管理器,名為 Composer。首先我們進入 Composer 的 官網,然後點選 Download。

composer website

進入頁面後,文章內會指示在終端機鍵入以下指令

$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
  php -r "if (hash_file('sha384', 'composer-setup.php') === 'a5c698ffe4b8e849a443b120cd5ba38043260d5c4023dbf93e1558871f1f07f58274fc6f4c93bcfd858c6bd0775cd8d1') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
  php composer-setup.php
  php -r "unlink('composer-setup.php');"

其中第 2 行的 sha384 以及後面的加密字串則會隨著版本的不同而有所變化,不過文件中指示我們複製的指令通常會以最新版的為標準,所以最好就是將文件提供的指令複製下來。

下載完之後並沒有結束,因為還沒有將 composer 的環境設為全域,因此在終端機輸入 composer 之後反而是顯示找不到指令。

以自己為例,我是在家目錄下載 composer,完成之後會有一個 composer.phar 檔案
composer.phar

而輸入 composer 卻顯示 command not found
<p.s.> $ php composer.phar 則能夠跑出結果,但這並非我們想要運行的方式。

composer command not found

所以尚須執行以下指令使其能夠被全域使用:
$ sudo mv composer.phar /usr/local/bin/composer

之後輸入 composer 就可以看到結果。

use composer globally

Laravel installation

  • 透過 composer 新增專案:

    在下載完 Composer 之後,其實就可以直接新增專案了,首先移動到 apache 的根目錄:

    $ cd /var/www/html

    然後輸入以下指令:

    $ composer create-project --prefer-dist laravel/laravel blog

    這時有可能會出現 permission denied 的錯誤,然後 composer 也不能夠用 sudo 的方式運行。因為實際上新增專案等於是新增一個資料夾,而所在的檔案位置可能需要有權限才能夠對檔案做處理。

    mkdir(): Permission denied

    permission denied

    解決方法如下:

    1. $ cd /var/www
    2. $ sudo chown -Rv root:$USER .
    3. $ sudo chmod -Rv g+rw .

    image alt

    1. $ cd html
    2. $ composer create-project --prefer-dist laravel/laravel blog

    此時就可以正常新增 Laravel 專案 ( 第一次需要花一段時間安裝 )

    <p.s.>若遇到 Cannot create cache directory .. or directory is not writable. Proceeding without cache in Laravel,輸入以下指令可以將上述警告訊息排除:

    $ sudo chown -R $USER /home/$USER/.composer

  • 透過 laravel installer 新增專案

    雖然可以直接透過 composer 新增 laravel 專案,但是指令顯得有些冗長,讓使用者不容易記住,而 laravel installer 則可以省去很多指令而且比較直覺。透過 composer 下載 laravel installer :

    $ composer global require laravel/installer

    但下載完成後輸入 $ laravel new blog 卻出現無此指令的情形 :

    laravel command not found

    必須將 composer system-wide vendor bin 資料夾納入環境變數裡,對於 Ubuntu 18.04 的版本而言,指令如下

    $ echo 'export PATH="$PATH:$HOME/.composer/vendor/bin"' >> ~/.bashrc

    接著執行 ~/.bashrc 檔

    $ source ~/.bashrc

    最後輸入$ laravel 就可以看到結果,也就是說可以透過 laravel installer 新增專案。

    laravel command

初入 Laravel

在能夠新增 laravel 專案之後,我們可以用兩種方式在瀏覽器打開

  1. 在專安資料夾的位置下用 php artisan 開一個伺服器

    $ php artisan serve

    <p.s.> localhost 的 address 不一定都一樣是 127.0.0.1
    php artisan serve

    之後在瀏覽器輸入 localhost:8000 即可看到 laravel 專案的首頁

    laravel homepage

  2. (optional) 將專案新增在 apache 的根目錄 /var/www/html,之後在瀏覽器輸入 localhost/專案名稱/public,但用此方式會衍伸很多權限、uri routes、http request method、... 等問題,為了避免夜長夢多,因此在這次的主題都會用第1種方式。

    成功開啟 Laravel 專案之後,接下來就可以進入這次主題的核心了。

參考網站:

  1. Composer : https://getcomposer.org/
  2. How to fix Error: mkdir(): Permission denied when running composer : https://stackoverflow.com/questions/30266250/how-to-fix-error-mkdir-permission-denied-when-running-composer
  3. Cannot create cache directory .. or directory is not writable. Proceeding without cache in Laravel : https://stackoverflow.com/questions/35874482/cannot-create-cache-directory-or-directory-is-not-writable-proceeding-withou
  4. Laravel installation : https://laravel.com/docs/6.x

上一篇
Day 03 : 環境架設 part II -- MySQL & phpMyAdmin
下一篇
Day 05 : MVC 架構
系列文
從零開始的Laravel RESTful api30

尚未有邦友留言

立即登入留言