[安裝筆記]_Pydio 6 install on Windows Server 2012R2
Pydio就是以前的Ajaxpolrer,後來改名變成Pydio,意思就是Put your data in obit(把你的資料放在軌道上XD)
我用這個Web UI Storage很久了,到Pydio介面大改變,在第六版的時候甚至加入了類似Dropbox的Client sync software
但因為我一路升級上來,當初安裝在Windows Server的時候有些步驟沒有做確實,導致這個Client sync的功能屢屢遭遇錯誤
所以我就乾脆砍掉重練,順便紀錄一下步驟。
如果你是Linux環境安裝Pydio,相當快速,
基本上yum跟apt-get都有repo了,
直接yum [apt-get] install pydio
就可以搞定安裝程序。
如果你是Windows環境,就會比較多事情要搞,這裡已經假裝你已經裝好MYSQL SERVER 5.6跟PHP 5.5(我的環境版本)
翻譯整理至官方文件:https://pyd.io/configure-applicationpool-for-pydio-in-windows2012-iis8/
1.到 https://pyd.io/download/ 下載手動安裝檔
2.解壓縮到你的inetpub資料夾,或者自己挑一個位置,等等IIS站台要指向該路徑,以下示範我是放在S:\WebSite\pydio
3.新增應用程式集區,名稱建議就維持pydio,後面會有一點相依性,不需要.NET CLR
4.對你的SITE下面剛剛放的Pydio目錄右鍵,選擇新增應用程式,別名跟路徑打一打選一選,記得應用程式集區要選到剛剛創建的pydio
5.變更資料夾權限,因為要移除IIS_IUSRS這個帳號改用剛剛app pool的pydio,所以先關閉繼承權限,刪除IIS_IUSRS帳號
6.加入iis apppool\pydio 使用者權限,並且把他的權限全開
7.都確定權限完畢後,不需要重新啟動,這時直接打開工作管理員會看到w3wp.exe程序有一個是用pydio這個user在執行,就代表前面的步驟都有做對,如果沒有,請檢查前面的步驟有沒有做好
8.接下來打開你的browser,輸入http://你的ip/pydio,就會看到以下畫面(第一次要等一下),會有幾個錯誤跟warning
9.依序解決這些error,首先是PHP Session的問題,主要是在”S:\WebSite\pydio\data\tmp”底下沒有sessions的資料夾,創建一個。
以及在conf/bootstrap_conf.php的環境變數需要反註解(因為Linux不用,所以預設這行是註解的)
反註解大概在50行左右,
$AJXP_INISET["session.save_path"] = AJXP_DATA_PATH."/tmp/sessions";
/* * Additionnal php.ini settings * > Problems with tmp dir : set your own session tmp dir (create it and make it writeable!) * > Concurrent versions of AjaXplorer : use session.cookie_path to differentiate them. */ $AJXP_INISET = array(); $AJXP_INISET["session.save_path"] = AJXP_DATA_PATH."/tmp/sessions"; //$AJXP_INISET["session.cookie_path"] = "/ajaxplorer"; /* * If you want to force the https, uncomment the line below. This will automatically * redirect all calls to ajaxplorer via http to the same URL with https */ //define("AJXP_FORCE_SSL_REDIRECT", true);
10.另外pydio官方建議把”S:\WebSite\pydio\data\tmp\session”這個session資料夾移到別的地方去,或者在Windows IIS用Request filter(要求篩選)的方式去禁止外部網路訪問data資料夾
如果你要用前者方式,請在上一個步驟的設定檔直接改成你移動的資料夾path,Windows絕對路徑可以使用。
另外記得也要把你移動出去的資料夾加入iis apppool\pydio使用者的權限
我是用後者的方式,直接用Request filter去篩掉整個data資料夾(因為data資料夾底下還有包含一些比較需要保護的東西)
如果你沒有要求篩選的功能,請去把IIS的要求篩選功能打開,就會看到了
11.設定一些REWRITE的RULE,在”S:\WebSite\pydio\web.config”
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="Imported Rule 1" stopProcessing="true"> <match url="^shares" ignoreCase="false" /> <conditions logicalGrouping="MatchAll"> <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" /> </conditions> <action type="Rewrite" url="./dav.php" /> </rule> <rule name="Imported Rule 2" stopProcessing="true"> <match url="^api" ignoreCase="false" /> <action type="Rewrite" url="./rest.php" /> </rule> <rule name="Imported Rule 3" stopProcessing="true"> <match url="^user" ignoreCase="false" /> <action type="Rewrite" url="./index.php?get_action=user_access_point" appendQueryString="false" /> </rule> <rule name="Imported Rule 4" stopProcessing="true"> <match url="(.*)" ignoreCase="false" /> <conditions logicalGrouping="MatchAll"> <add input="{URL}" pattern="^/pydio6/index" ignoreCase="false" negate="true" /> <add input="{URL}" pattern="^/pydio6/plugins" ignoreCase="false" negate="true" /> <add input="{URL}" pattern="^/pydio6/dashboard|^/pydio6/welcome|^/pydio6/settings|^/pydio6/ws-" ignoreCase="false" /> </conditions> <action type="Rewrite" url="index.php" /> </rule> </rules> </rewrite> <security> <requestFiltering> <hiddenSegments> <add segment="data" /> </hiddenSegments> </requestFiltering> </security> </system.webServer> </configuration>
12.S:\WebSite\pydio\data\public底下也要
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="Imported Rule 1" stopProcessing="true"> <match url="^shares" ignoreCase="false" /> <conditions logicalGrouping="MatchAll"> <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" /> </conditions> <action type="Rewrite" url="./dav.php" /> </rule> <rule name="Imported Rule 2" stopProcessing="true"> <match url="^api" ignoreCase="false" /> <action type="Rewrite" url="./rest.php" /> </rule> <rule name="Imported Rule 3" stopProcessing="true"> <match url="^user" ignoreCase="false" /> <action type="Rewrite" url="./index.php?get_action=user_access_point" appendQueryString="false" /> </rule> <rule name="Imported Rule 4" stopProcessing="true"> <match url="(.*)" ignoreCase="false" /> <conditions logicalGrouping="MatchAll"> <add input="{URL}" pattern="^/pydio6/index" ignoreCase="false" negate="true" /> <add input="{URL}" pattern="^/pydio6/plugins" ignoreCase="false" negate="true" /> <add input="{URL}" pattern="^/pydio6/dashboard|^/pydio6/welcome|^/pydio6/settings|^/pydio6/ws-" ignoreCase="false" /> </conditions> <action type="Rewrite" url="index.php" /> </rule> </rules> </rewrite> </system.webServer> </configuration>
完成之後,再重新整理剛剛的頁面,應該只剩下SSL加密跟PHP COMMAND LINE的部分,SSL加密我四月份再補充…因為我把SSL憑證的PRIVATE KEY搞丟了Orz…我的網域要4月份憑證才到期…
PHP COMMAND LINE可以忽略
按下click here to continue to Pydio 就可以進去設定頁面
接下來就看著辦啦,連一連SQL,建議用MySQL不要用SQLite,效能跟體積會好很多,且帳號轉移也比較方便
這版有SYNC真的很不錯,而且因為是用QT寫的,所以LINUX, MAC, WINDOWS三個平台都可以用!
很優秀的PROJECT!
===================================================================
額外補充,預設每個User會有一個Repositories,叫做My File,他會存在pydio/data/personal/username底下,每個user一個folder
不是很喜歡把site跟userdata放在一起,所以找了一下解法在:https://pyd.io/f/topic/remove-myfiles-and-common-files-repositories/
在”S:\WebSite\pydio\conf\bootstrap_repositories.php”,把path改成你喜歡的位置,下面是已經被我改過的,需要注意有些會直接代換PHP函數,例如AJXP_USER會自動換成USER的名稱
"PATH" => "T:\Samba\Pydio_Personal_Sync\AJXP_USER",
$REPOSITORIES[1] = array( "DISPLAY" => "My Files", "DISPLAY_ID" => 432, "DESCRIPTION_ID"=> 476, "AJXP_SLUG" => "my-files", "DRIVER" => "fs", "DRIVER_OPTIONS"=> array( "PATH" => "T:\Samba\Pydio_Personal_Sync\AJXP_USER", "CREATE" => true, "RECYCLE_BIN" => 'recycle_bin',
另外如果有很多USER,要一次大量新增REPO,可以參考
Leave a comment
很抱歉,必須登入網站才能發佈留言。