顯示具有 synology 標籤的文章。 顯示所有文章
顯示具有 synology 標籤的文章。 顯示所有文章

2018年5月15日 星期二

Synology Nginx 設置 Laravel Virtual Host

Laravel 建立的網站需要將所有的 uri 導向 index.php 的設置。

Synology 的 Web Station 本身就有設置  Virtual Host 的功能。
但可惜他 UI 介面缺少了加入自定義參數的功能,功能只做了一半。
後端伺服器如果採用 Apache,可以使用 .htaccess 來做處理。
可是 Nginx 因為效能上的考量不給這樣子做,得採自行建立 Virtual Host 的方式才行。

Nginx 主要的設定檔路徑為:
/etc/nginx/nginx.conf
Web Station 會把所有 Virtual Host 資料也寫在這個檔案裡面。

避免之後加了其他 Host 而覆寫了這個檔案,就把 Virtual Host 的資訊拆開來寫。
參照 /etc/nginx/nginx.conf 的內容,最下面有幾個 include 可以使用。

include conf.d/http.*.conf;
include app.d/server.*.conf;
include sites-enabled/*;

* sites-enabled 下面可以任意命名,放這裡比較方便。

一開始搜尋一些網路範例,不是得到 502,要不就 redirect 到 default server 去。
直接在 UI 畫面上見一個來抄比較快了。

把加入的 Virtual Host 資訊 copy 出來另存在 sites-enabled 目錄下即可。

# 這裡是做 http 強制轉 https。
server {
    listen 80;
    listen [::]:80;
    server_name your.virtual.host;
    return 301 https://your.virtual.host$request_uri;
}

server {

    listen      443 ssl;
    listen      [::]:443 ssl;

    server_name your.virtual.host;

    location ^~ /.well-known/acme-challenge {
        root /var/lib/letsencrypt;
        default_type text/plain;
    }

    root    "/your/virtual/host/public";
    index    index.html  index.htm  index.cgi  index.php  index.php5 ;
    error_page 400 401 402 403 404 405 406 407 408 500 501 502 503 504 505 @error_page;

    location @error_page {
        root /var/packages/WebStation/target/error_page;
        rewrite ^ /$status.html break;
    }

    location ^~ /_webstation_/ {
        alias    /var/packages/WebStation/target/error_page/;
    }

    # php 會不會動就看這裡了
    location ~* \.(php[345]?|phtml)$ {
        fastcgi_pass unix:/run/php-fpm/php-9f1e642a-0d20-4664-8934-c51d34f609de.sock;
        fastcgi_param HOST "your.virtual.host";
        include fastcgi.conf;
    }

    # 這一行要記得加入才能 redirect 所有的 uri
    location / {
                try_files $uri $uri/ /index.php?$query_string;
    }

}

Web Station 建立 Virtual Host 的時候,如果伺服器有提供 HTTPS 的連線,並且在伺服器裡面已經設置好憑證的話,會在設定裡面多了 ssl_ 相關的設定。刪除 Virtual Host 的話憑證的目錄也會一起刪除,如果設定檔是複製過來的,就要注意憑證路徑是否被刪掉了。

我這邊是使用憑證是單檔對應多伺服器,所以直接把 ssl_ 的設定通通拿掉,採用預設的 ssl_ 內容即可。

設置完成後可以先試試看 conf 檔案有沒有問題:
sudo nginx -t

沒問題的話讓就載入 conf 擋了:
sudo nginx -s reload

以上

2018年3月5日 星期一

Synology Docker 安裝 Odoo

從 web 的畫面連上 Synology NAS,打開 Docker。

在『倉庫伺服器』搜尋 odoo ,列表的第一個有掛徽章的表示是官方資源。

安裝之前我們先看一下說明,點選 odoo 名稱旁邊的開啟新頁按鈕,會連到倉庫說明頁。
https://hub.docker.com/_/odoo/

在 How to use this image 有提到
This image requires a running PostgreSQL server.

odoo 是使用 PostgreSQL,所以我們也要安裝 postgres。

映像檔的安裝沒有順序關係,所以我們先裝 odoo 再搜尋 postgres 來安裝即可。
回到剛剛的頁面,點選 odoo 再按上方的『下載』。

映像檔都安裝好之後我們就可以來作佈署了,首先要佈署資料庫。倉庫頁有範例命令:

Start a PostgreSQL server

$ docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo --name db postgres:9.4

我們在『映像檔』頁面選擇 postgres 再按下『佈署』,容器名稱就叫做 db 吧。


再來進入『進階設定』的『環境設定』加入兩個變數:POSTGRES_USER, POSTGRES_PASSWORD。

最後按下確定按鈕,postgres 即佈署完成。
接下來輪到 odoo 了,可以參考倉庫的命令:

Start an Odoo instance

$ docker run -p 8069:8069 --name odoo --link db:db -t odoo
回到映像檔,執行佈署。名稱就給個 odoo。
進入『進階設定』的『連接埠設定』會看到有兩個連接埠,我們可以在『本機連接埠』填上與容器連接埠相同的號碼。(原先會是自動設定的字樣)

再來進入『容器間連結』按 + 新增一個連結,選擇稍早產生出來的 db 並在別名填上 db。



如此就完成了 odoo 的佈署。

連上 http://[synalogy.ip]:8069 開始 odoo。

以上

// ============
從 mobile01 找到的資料:
https://www.mobile01.com/topicdetail.php?f=494&t=5185355

利用 ssh 登入 NAS

首先建立 database,odoo 使用的是 postgres。會建立兩個資料庫,一個存資料一個主程式。

sudo docker create --name odoo-db-data library/postgres:版本 /bin/true

sudo docker run -d --name odoo-db --env POSTGRES_USER=odoo --env POSTGRES_PASSWORD="自訂" --volumes-from odoo-db-data library/postgres:版本

版本可以依照個人的需求輸入,如果想要下載最新的版本就輸入 latest。

接著建立 Odoo,一樣會建兩個容器。

sudo docker create -v /var/lib/odoo --name odoo-data odoo:版本 /bin/true

sudo docker run -d --name odoo --link odoo-db:db -p 8069:8069 --volumes-from odoo-data odoo:版本 odoo --db_password="自訂"

容器建立完成之後開啟瀏覽器 http://主機:8069 就可以連上 odoo 了。

2018年1月23日 星期二

在 Synology NAS 上使用 Laravel Framework

我的 Synology 環境是跑 2 個版本的 PHP,
而新 5.5 的 Laravel 又要 PHP 7.0 以上才給動,
原本是採用 ssh 進去做設定,使用 php 命令就回應某些元件要 >= 7.0。
使用 php70 命令又說 phar extension 沒有啟動。

後來採用了網路磁碟機的方式來做解決。
我的環境是 mac,安裝了 composer。
連上 NAS 的網路磁碟機之後用命令列執行就可以建立好資料夾。

首先在自己的 mac 裡面下載 Laravel:
composer global require "laravel/installer"


接著在 NAS 的磁碟目錄裡面建一個 project:(這邊我用 composer 直接建立,因為我沒有為下載的 Laravel 設立 path)
composer create-project --prefer-dist laravel/laravel blog


在 Synology 的 Web Station 裡設一個虛擬主機,並把『主目錄』設在 Laravel 建立好的 project 目錄裡的 public 子目錄。另外把 PHP 設為 7.0。


連上設定好的網址,成功的話會看到這個畫面。


架設完成就可以開始進行 framework 的研究囉。

Reference:
https://laravel.com/docs/5.5
https://laravel.tw/docs/5.2