2018年11月20日 星期二
2018年11月16日 星期五
OpenJDK 相關資料
Orcale 對於 JAVA/JRE 的支援,做了些變動。 針對個人用途的 Oracle Java SE 8 公開更新至少會一直提供到 2020
年底為止。業務、商業或生產用途的 Oracle Java SE 8 若未取得商業授權,將會無法使用 2019 年 1 月之後發行的公開更新。
於 2018.11要釋出的 JAVA11 (LTS)版本,它的免費支援也僅提供六個用。取得商業支援的話,不管是採用 JAVA8/JRE8 或 JAVA11/JRE11皆可支援到 2025年。
AWS釋出免費OpenJDK Amazon Corretto,免費安全更新至2023年。
這試著重新部署主機上原有的服務,將 Orcale JRE 試著改變成 OpenJDK Amazon Corretto,但會出現以下狀況,原已佈署到服務內的 Tomcat 服務,主機重新啟動是無法自動執行 Tomcat,但透過 /tomcat/bin/startup.bat 可以正常執行。後來查一下,看來應是 Tomcat 與 JRE 所選用的位元版本不一致所導致的,細節可操考這頁的說明。
目前 Amazon Corretto 僅提供 64bit 版本。後來直接重新下載 tomcat 64bit 版本,直接將 64bit 版本內的 /bin/* 直接覆蓋到 32bit 版本內 (保留 catalina.bat, setclasspath.bat, catalina.bat ) 後就可以正常運作了。
相關資料:
於 2018.11要釋出的 JAVA11 (LTS)版本,它的免費支援也僅提供六個用。取得商業支援的話,不管是採用 JAVA8/JRE8 或 JAVA11/JRE11皆可支援到 2025年。
AWS釋出免費OpenJDK Amazon Corretto,免費安全更新至2023年。
這試著重新部署主機上原有的服務,將 Orcale JRE 試著改變成 OpenJDK Amazon Corretto,但會出現以下狀況,原已佈署到服務內的 Tomcat 服務,主機重新啟動是無法自動執行 Tomcat,但透過 /tomcat/bin/startup.bat 可以正常執行。後來查一下,看來應是 Tomcat 與 JRE 所選用的位元版本不一致所導致的,細節可操考這頁的說明。
目前 Amazon Corretto 僅提供 64bit 版本。後來直接重新下載 tomcat 64bit 版本,直接將 64bit 版本內的 /bin/* 直接覆蓋到 32bit 版本內 (保留 catalina.bat, setclasspath.bat, catalina.bat ) 後就可以正常運作了。
相關資料:
2018年10月21日 星期日
2018年10月2日 星期二
pdf.js 最簡易的應用方式
使用方式:
下載 pre-built 版本,將下載的 zip 檔解壓縮放到特定目錄,例如放到 Scripts/pdj.js/* 的位址。應用方式 :
HTML頁面加入以下腳本即可相關資料:
<a href="Scripts/pdf.js/web/viewer.html?file=1.pdf">Open yourpdf.pdf with PDF.js</a>
這樣的寫法,pdf 的檔案,要放到 Scripts/pdf.js/web/ 目錄內<a href="Scripts/pdf.js/web/viewer.html?file=/pdf/1.pdf">Open yourpdf.pdf with PDF.js</a>
這樣的寫法,表示 pdf 檔案放在網站根目錄下的 pdf 資料夾,這樣子就可以將 pdf集中到指定的目錄內
2018年9月21日 星期五
代理伺服器後的 Web Server 要取得 Client IP 的作法
這有一台主機是前端是透過 reverse proxy (squid) 代理,而這樣的方式若 Web Server 不做額外的調整時,所看到的連線記錄都會是 Proxy Server IP。如果要取得 Client IP 時,Apache就要做以下調整。
這是以 Apache2.4 windows server 為範例:
編輯 Conf/httpd.conf 檔案,內容如下:
因為主機的使用量還蠻大的,所以主機有額外採用 rotatelogs 的機制,但很奇怪的是採用 TransferLog 的方式就不能記錄到 Client IP,記錄的 IP 還是 Proxy IP,但在 error.log 就有記錄到連線的 Client IP。後來將 TransferLog 改採 CustomLog 的方式後就可以正確的記錄 Client IP。
我在這卡了很久,一直不明白為什麼沒有記錄到 Client IP ,在後來才發現這個現象,只要將 TransferLog 的機制改成 CustomLog 後就可以解決這個問題。
修改方式如下:
相關資料:
這是以 Apache2.4 windows server 為範例:
編輯 Conf/httpd.conf 檔案,內容如下:
啟用 LoadModule remoteip_module modules/mod_remoteip.so
將 LogFormat 所有出現 %h 改成 %a
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
改成
LogFormat "%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%a %l %u %t \"%r\" %>s %b" common
LogFormat "%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
(如果是直接在 $h 後加入 $a 那就會同時記錄proxy IP 與 client IP)
加入
#To get Cient IP behide the Proxy
<IfModule mod_remoteip.c>
RemoteIPHeader X-Forwarded-For
RemoteIPInternalProxy Your Proxy IP
</IfModule>
因為主機的使用量還蠻大的,所以主機有額外採用 rotatelogs 的機制,但很奇怪的是採用 TransferLog 的方式就不能記錄到 Client IP,記錄的 IP 還是 Proxy IP,但在 error.log 就有記錄到連線的 Client IP。後來將 TransferLog 改採 CustomLog 的方式後就可以正確的記錄 Client IP。
我在這卡了很久,一直不明白為什麼沒有記錄到 Client IP ,在後來才發現這個現象,只要將 TransferLog 的機制改成 CustomLog 後就可以解決這個問題。
修改方式如下:
TransferLog "|X:/Apache2/bin/rotatelogs.exe X:/Apache2/logs/access_%Y%m%d.log 2592000 common"
改成
CustomLog "|X:/Apache2/bin/rotatelogs.exe X:/Apache2/logs/access_%Y%m%d.log 2592000" common
相關資料:
2018年8月21日 星期二
2018年7月18日 星期三
Apache 2.4 - 無法停止服務
最近有幾台採用 Server 2008 R2 64bit 的設備,Apache 2.4 出現無法停止服務的狀況。但將主機重新開機後,不管是使用服務或指令停止服務就可以很正常的停止與啟動,但使用一段時間後(也許 1-2 小時後),有時它就會出現無法停止的現象。但神奇的是,又不是每一台都會有這樣的狀況。
因為機器上的版本剛升級 Apache 2.4.34 V15的版本,想說與升級至 V15 版本有關係,但查了一下資料,看起來好像與微軟的更新有關。 因為這篇的敘述與我的主機的狀況很像,我的主機也是運作了至少 4 or 5年以上,也是最近才出現此現象。剛找到另一篇資料,看來應是同一篇作者反應,現在回想起來,另一台Windows Server 上的 FTP Server 也有出現問題,看來與 Microsoft 的安全性更新有很大的關係。目前看來好像無解,僅能解除 KB4338818。在觀察看看吧!!
107.07.19
今天看到的,似乎已針對 Server 2008 R2 版本釋出修正(KB4345459),但需手動更新。由資料看來,若不急著測試。應該會在下個月(8/14)的更新包含此修正檔。
107.07.20
忍不住試著安裝 KB4345459 。目前的測試結果看來是已解決無法停止 Apache 服務的問題;
這有觀察到另一台 Server 2016 的主機,看到 Windows Update 將 KB4345418 修正檔自動部署更新。
107.07.25
Microsoft 將 KB4338821 納入到重要更新內,透過 Windows Update 就可以直接安裝修正。此更新已包含此問題的修正(Addresses an issue that occurs when an administrator tries to stop the World Wide Web Publishing Service (W3SVC). The W3SVC remains in a "stopping" state, but cannot fully stop or it cannot be restarted.)。
先前已安裝 KB4345459 的主機同時安裝 KB4338821 看來是沒有問題的。
因為機器上的版本剛升級 Apache 2.4.34 V15的版本,想說與升級至 V15 版本有關係,但查了一下資料,看起來好像與微軟的更新有關。 因為這篇的敘述與我的主機的狀況很像,我的主機也是運作了至少 4 or 5年以上,也是最近才出現此現象。剛找到另一篇資料,看來應是同一篇作者反應,現在回想起來,另一台Windows Server 上的 FTP Server 也有出現問題,看來與 Microsoft 的安全性更新有很大的關係。目前看來好像無解,僅能解除 KB4338818。在觀察看看吧!!
107.07.19
今天看到的,似乎已針對 Server 2008 R2 版本釋出修正(KB4345459),但需手動更新。由資料看來,若不急著測試。應該會在下個月(8/14)的更新包含此修正檔。
107.07.20
忍不住試著安裝 KB4345459 。目前的測試結果看來是已解決無法停止 Apache 服務的問題;
這有觀察到另一台 Server 2016 的主機,看到 Windows Update 將 KB4345418 修正檔自動部署更新。
107.07.25
Microsoft 將 KB4338821 納入到重要更新內,透過 Windows Update 就可以直接安裝修正。此更新已包含此問題的修正(Addresses an issue that occurs when an administrator tries to stop the World Wide Web Publishing Service (W3SVC). The W3SVC remains in a "stopping" state, but cannot fully stop or it cannot be restarted.)。
先前已安裝 KB4345459 的主機同時安裝 KB4338821 看來是沒有問題的。
相關資料:
- Apache 2.4 is unkillable and can't be stopped onWindows Server
- Apache cannot shutdown / restart after Windows Update
- Filezilla Server and KB4338818
- 微软针对Windows 7,Windows 8.1发布KB4345459和KB4345424
2018年7月10日 星期二
2018年6月29日 星期五
JAVA8 支援更新問題
館內購買的資料庫,有些系統所採用的架構是 Tomcat、JAVA8。
Orcale 對於 JAVA/JRE 的支援,做了些變動。 針對個人用途的 Oracle Java SE 8 公開更新至少會一直提供到 2020 年底為止。業務、商業或生產用途的 Oracle Java SE 8 若未取得商業授權,將會無法使用 2019 年 1 月之後發行的公開更新。
於 2018.11要釋出的 JAVA11 (LTS)版本,它的免費支援也僅提供六個用。取得商業支援的話,不管是採用 JAVA8/JRE8 或 JAVA11/JRE11皆可支援到 2025年。
未來系統可以朝向以下方向調整:
相關連結:
Orcale 對於 JAVA/JRE 的支援,做了些變動。 針對個人用途的 Oracle Java SE 8 公開更新至少會一直提供到 2020 年底為止。業務、商業或生產用途的 Oracle Java SE 8 若未取得商業授權,將會無法使用 2019 年 1 月之後發行的公開更新。
於 2018.11要釋出的 JAVA11 (LTS)版本,它的免費支援也僅提供六個用。取得商業支援的話,不管是採用 JAVA8/JRE8 或 JAVA11/JRE11皆可支援到 2025年。
未來系統可以朝向以下方向調整:
- 系統改採 OpenJDK 架構
- 系統直接改採廠商所提供的主機使用
- 取得 Oracle 商業授權
相關連結:
- Oracle Java SE 8 發行版本更新
- Oracle Java SE Support Roadmap
- 面對Java版本的升級,舊式桌面應用改怎麼辦?
- OpenJDK availability for Windows OS
- Github ojdkbuild
- 107.08.08 測試過,在 Windows Tomcat 的架構,Github ojdkbuild 提供的版本,是無法直接取代 Orcale 所釋出的版本。JRE 換成 OPENJDK 時會出現 Tomcat 啟動失敗,原因如右:Failed creating Java D:\JRE\bin\client\jvm.dll (由 Tomcat log 觀察),Github ojdkbuild 提供的檔案解壓縮後並沒有這個 client 目錄。
- Download Zulu® for Windows
- 107.08.08 採用Zulu 提供的版本可以順利切換(如圖);後來才注意到該公司也是宣告免費版本的支援終止。
2018年6月14日 星期四
Server 2008 R2 64bit 磁碟清理工具
有一台主機的 C:/ 容量不足,才發現原來 Server 2008 R2 64bit 預設是沒有磁碟清理工具。若要使用需做以下處理。
相關資料:
- 第一種方式:
將以下檔案,複製一份到指定的位址內。
C:\Windows\winsxs\amd64_microsoft-windows-cleanmgr_31bf3856ad364e35_6.1.7600.16385_none_c9392808773cd7da\cleanmgr.exe
C:\Windows\winsxs\amd64_microsoft-windows-cleanmgr.resources_31bf3856ad364e35_6.1.7600.16385_zh-tw_1d4e095896ea82e5\cleanmgr.exe.mui
Cleanmgr.exe 複製到 %systemroot%\System32中。
Cleanmgr.exe.mui 複製到 %systemroot%\System32\zh-TW中。
- 第二種方式:
採用安裝"桌面體驗" 的方式進行安裝也是可以的。
相關資料:
訂閱:
文章 (Atom)