- 在 Windows Server 2016 或 Win10 上,先安裝 .NET Framework 3.5。
- 安裝 Visual Studio 2015 Community with Updates,一切依預設值即可,裝完後沒有一定要 Launch(希望不用註冊也能撐久點)。
- 從官網下載 2.0.0.2542 版的原始碼,假設解壓到 D:\easyTravel-src-2542 目錄下。
- 下載安裝 Java SE 7,並設 JAVA_HOME 環境變數。
- 下載解壓 Ant 1.9.x,並設 PATH 指到 bin 目錄。
- 修改 D:\easyTravel-src-2542\commons-demo\resources\easyTravel.properties,version.buildnumber=2542。
- 修改 D:\easyTravel-src-2542\commons-demo\resources\easyTravelConfig.properties,cassini20/UltiDevCassinWebServer2 改為 cassiniDev4/CassiniDev4-console(共有兩處)。
- 修改 D:\easyTravel-src-2542\Launcher\src\com\dynatrace\easytravel\launcher\procedures\B2BFrontendProcedure.java,在 if(CONFIG.b2bFrontendServer.contains("cassini")) 條件符合時:
- 修改 D:\easyTravel-src-2542\Launcher\src\com\dynatrace\easytravel\launcher\procedures\PaymentBackendProcedure.java,在 if(CONFIG.paymentBackendServer.contains("cassini")) 條件符合時:
- 修改 D:\easyTravel-src-2542\dotNET45\build.xml,新增這一行:<property name="dotnet.framework.path" location="C:\Program Files (x86)\MSBuild\14.0\Bin" />。
- 切換到 D:\easyTravel-src-2542\Distribution 目錄下,執行 ant。
- 切換到 D:\easyTravel-src-2542\dotNET45 目錄下,執行 ant。
- 從別處取得同版本的 CreditCardAuthorization64.exe,複製到 D:\easyTravel-src-2542\Distribution\dist 目錄下。
- 修改 D:\easyTravel-src-2542\Distribution\dist\startDistributed.cmd,set-this-property 改為機器名稱(可用 hostname 指令取得);..\jre\bin\java 改為 "%JAVA_HOME%"\jre\bin\java,再執行。
- 在管理介面關閉所有測試流量,再啟動 Production 群組的 Standard 情境,應該沒有錯誤,而且前後台都能運作。
星期三, 2月 15, 2017
Building dynatrace easyTravel from Source (Windows)
上次談過在 Linux 平台上由原始碼重建 easyTravel,美中不足的是 B2B 後台不包含在內。為了讓這個主題更完整,花了近一週的時間摸索建置程序,除了幾個小蟲,還升級到 .NET 4 + Cassini 4,艱辛之路在此留下歷程:
星期五, 2月 03, 2017
星期四, 1月 26, 2017
Docker Volume + SELinux
在 Jenkins 的 Docker 官網首頁有一個參數引起我的興趣:
- docker run -v /srv/jenkins:/var/jenkins_home jenkins
大意是說 Container 裡原本有個必要、可讀寫的 /var/jenkins_home 目錄,我們可以把它拉出來方便管理。太棒了!但一試之下發現不單純:
- Permission denied
原來 /srv/jenkins 目錄是要先建好並授權:
- sudo mkdir /srv/jenkins
- sudo chown `whoami` /srv/jenkins
結果還是一樣?原來是 SELinux 的關係。在 CentOS 預設是開啟 SELinux 的,可以這麼確認:
- getenforce
短期(到下次重啟前)的控制,可透過 setenforce 指令;長期就要編輯 /etc/sysconfig/selinux 設定檔並重啟。若不想關閉 SELinux,還要多些準備工夫:
- docker run -v /srv/jenkins:/var/jenkins_home:Z jenkins
最後面的大寫 Z 代表「只有 Host 與那個 Container 分享」,若改小寫 z 代表「Host、那個 Container、其他 Container 都可分享」。
星期一, 1月 23, 2017
Owncloud Maximum upload size
新的 9.x 在管理介面上有個很貼心的設定,直接就可以設最大上傳檔案的大小,不過沒用?關鍵是上傳 30 秒之後超過了一個 PHP 的 max_execution_time 設定,若是像我一樣用 Docker-based ownCloud,Web Server 是 Apache,可以在 .htaccess 改成 0 代表沒有上限。
這個過程曲曲折折,主要是對 PHP + Apache 不熟,雖然這篇提到的 phpinfo.php 非常有用,不過被這篇的參數誤導很久,它建議:
這個過程曲曲折折,主要是對 PHP + Apache 不熟,雖然這篇提到的 phpinfo.php 非常有用,不過被這篇的參數誤導很久,它建議:
- max_input_time 3600
- max_execution_time 3600
- max_input_time -1
- max_execution_time -1
- max_execution_time 0
Docker-based SonarQube can't change to non-embedded database?
依據 SonarQube 的說法,換掉預設的內嵌式資料庫並不困難,重點有以下幾個:
- 準備空的資料庫
- 準備權限足夠的一組帳密
- 設定資料庫所在主機的網路接受外部連入(防火牆、資料服務)
- 修改 conf/sonar.properties
- sonar.jdbc.url=
- sonar.jdbc.username=
- sonar.jdbc.password=
- [
- {
- ...
- "Config": {
- ...
- "Env": [
- ...
- "SONARQUBE_JDBC_USERNAME=sonar",
- "SONARQUBE_JDBC_PASSWORD=sonar",
- "SONARQUBE_JDBC_URL=",
- ...
- docker run -d -e "SONARQUBE_JDBC_URL=..." sonarqube
星期六, 1月 14, 2017
Compile Error CS1012
原本一個使用 C# 撰寫,確定可以編譯成功的專案,沒改任何程式碼,換了新的編譯環境後竟然失敗?
- error CS1012: Too many characters in character literal
- string[] fixflds = fixfld.Split('、');
- C:\>chcp
- Active code page: 437
- C:\>chcp 950
- Invalid code page
星期三, 1月 11, 2017
ldapsearch
在練習對 ldap 查詢時,可以好好利用這裡介紹的測試伺服器(雖然不一定活著?)。首先要確認域名解析是否成功?
[2017/02/17]
要確認密碼,可這麼做:
- ping ldap.forumsys.com
- ldapsearch -h ldap.forumsys.com -x
- ldapsearch -h ldap.forumsys.com -x -s base
- ldapsearch -h ldap.forumsys.com -x -b dc=example,dc=com
- ldapsearch -h ldap.forumsys.com -D cn=read-only-admin,dc=example,dc=com -w password -b dc=example,dc=com
- ldapsearch -h ldap.forumsys.com -x -b dc=example,dc=com ou=*
[2017/02/17]
要確認密碼,可這麼做:
- ldapwhoami -h ldap.forumsys.com -D cn=read-only-admin,dc=example,dc=com -w password
訂閱:
文章 (Atom)