iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 25
2
Software Development

30天開發與部署 Laravel 專案系列 第 25

GCE /Ubuntu/Nginx環境下建立 Laravel專案

  • 分享至 

  • xImage
  •  

上一篇完成在 GCE( GCP Compute Engine)建置LNMP環境後,
接下來這篇會提到如何在ubuntu環境 Nginx上建立新 Laravel專案

先在home 裝 composer

  • 需要先安裝 composer ,才能建立專案
  • 指令:macOS用homebrew,linux用apt
    apt install composer

建立 Laravel 專案

  • 先前往 Nginx預設的root folder ,路徑「/var/www/html」。

  • 建立laravel專案指令:composer create-project --prefer-dist laravel/laravel test001

  • 可能會遇到錯誤狀況

    • 缺少 composer.lock 、 vendor資料夾:再專案內再裝一次composer
      composer install --no-scripts
      ls -al 確認 composer.lock vendor/是否有存在資料夾內。
    • .env缺少 APP_KEY:
      php artisan key:generate 產生APP_KEY
      php artisan config:cache 建立config cache

Nginx預設資料夾調整

目前規劃單一 IP位置跑單一個專案,因此需要調整 Nginx 讀取哪一份檔案

cd /etc/nginx/sites-available 前往sites-available的資料夾
ls -al 確認裡頭有哪些設定檔
vim default 預設修改default即可

```
# 設定網站根目錄路徑
#root /var/www/html; 
 root /var/www/html/test01/public;   
```

解決以上問題後啟動 php artisan serve

可以先確認 Nginx狀況: nginx -t
沒問題後重啟 Nginx : systemctl reload nginx

可能會遇到的問題

  • Laravel log檔因為權限不足無法使用問題

    error message
    The stream or file "/var/www/html/test01/storage/logs/laravel.log" could not be opened in append mode: failed to open stream: Permission denied

    解法
    先取得目錄所有權
    sudo chown -R $USER:www-data storage
    sudo chown -R $USER:www-data bootstrap/cache

    再設定目錄的訪問權限
    chmod -R 775 storage
    chmod -R 775 bootstrap/cache
    千萬別 777 訪問權限

正常啟動時,可以透過瀏覽器查看網頁顯示,也能進一步確認網站使用什麼網頁伺服器。

https://ithelp.ithome.com.tw/upload/images/20201009/20125263dPxIvaPW1x.png

上述步驟只是個人習慣確認開發環境有無異常...

但多數人不會直接在server進行開發,因此下一篇討論如何從git拉下已存在於遠端的專案並執行部署。


參考資料
https://ithelp.ithome.com.tw/articles/10228765?sc=iThelpR
https://blog.gtwang.org/linux/ubuntu-linux-laravel-nginx-mariadb-installation-tutorial/
https://ithelp.ithome.com.tw/articles/10217403
https://www.notion.so/nginx-for-laravel-393a28de3c054f9d96a763bb93b5593d
https://stackoverflow.com/questions/44839648/no-application-encryption-key-has-been-specified
https://stackoverflow.com/questions/52178033/the-stream-or-file-laravel-log-could-not-be-opened-failed-to-open-stream-pe/52178084


上一篇
GCP IaaS : Compute Engine with LNMP Environment
下一篇
GCE遠端同步與部署專案
系列文
30天開發與部署 Laravel 專案30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言