chromium版Edgeのclickonceを有効にする
chromium版Edgeのclickonceはデフォルト無効になっているが、設定で有効化できる。
EdgeのURLバーに edge://flags/#edge-click-once
を入力してenableに変更すれば良い。
コマンドで操作する場合は以下のレジストリ。
enable_clickonce.reg
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge] "ClickOnceEnabled"=dword:00000001 "DirectInvokeEnabled"=dword:00000001
ColdFusionでURL EncodeとURL Decode
はじめに
仕事でColdFusion(以下CF)を書くものの、自己学習でライセンス料を払いたくないためCF互換のLuceeを使って書いているがURLのエンコードとデコードの関数が怪しかったのでメモ。
encodeとdecodeの標準関数
以下が使用できる。ただし、urlEncode()はluceeでのみ実装された関数で、CFでは使えない。
- urlEncode() ※luceeのみ実装
- encodeForUrl()
- urlDecode()
- decodeFromUrl()
使い方
urlEncode()
<cfdump var="#urlEncode('testParam=日本語文字列')#"> <!--- test%3D%E6%97%A5%E6%9C%AC%E8%AA%9E --->
encodeForUrl()
<cfdump var="#encodeForUrl('testParam=日本語文字列')#"> <!--- test%3D%E6%97%A5%E6%9C%AC%E8%AA%9E --->
urlDecode()
<cfset encodedUrl = encodeForUrl("testParam=日本語文字列")> <cfdump var="#urlDecode(encodedUrl)#"> <!--- test=日本語 --->
decodeFromUrl
<cfset encodedUrl = encodeForUrl("testParam=日本語文字列")> <cfdump var="#decodeFromUrl(encodedUrl)#"> <!--- test=æ¥æ¬èª --->
日本語が文字化けする。
まとめ
エンコードに関してはurlEncode()の方がcharsetを指定できる上位互換だが、lucee独自の実装でCFでは使えない。互換性を優先するならurlEncode()は使わずにencodeForUrl()を使う。
デコードに関してはurlDecode()を使う。decodeFromUrl()は何のために実装されているのか、存在意義がわからない。
CFの標準関数の命名規約どうなってn...
tomcatをsystemdに登録する手順(CentOS8)
実現したいこと
- apache-tomcat公式のtar.gzをダウンロードしてCentOS8のsystemdに登録する。
systemctl restart tomcat
コマンドが正常に実行できるようにする。- プロセスの実行ユーザーはtomcat。
用意するもの、環境
- OS: CentOS8
- tomcat9.0
- Adopt OpenJDK 11 (LTS)
手順
1.tomcat実行用ユーザーを作成
以下のコマンドを実行してtomcatユーザーを新規作成する。
# useradd -s /sbin/nologin tomcat
2.tomcatを準備
公式サイトからダウンロードした apache-tomcat.tar.gz を適当な場所に設置する。
自分は/opt/tomcat
に設置してlatestリンクを作ってる。
# mkdir /opt/tomcat # cd /opt/tomcat # tar zxvf apache-tomcat-9.0.39.tar.gz # ln -s /opt/tomcat/apache-tomcat-9.0.39 latest
こういう配置にする。
# ll /opt/tomcat/ drwxr-xr-x. 9 tomcat tomcat apache-tomcat-9.0.39 lrwxrwxrwx. 1 tomcat tomcat latest -> apache-tomcat-9.0.39
3.JDKを配置
# mdir /opt/jdk # cd /opt/jdk # cp OpenJDK11U-jdk_x64_linux_hotspot_11.0.9_11.tar.gz /opt/jdk # tar zxvf OpenJDK11U-jdk_x64_linux_hotspot_11.0.9_11.tar.gz # ln -s jdk-11.0.9+11 latest
こういう配置にする。
# ll /opt/jdk/ drwxr-xr-x. 9 root root jdk-11.0.9+11 lrwxrwxrwx. 1 root root latest -> jdk-11.0.9+11
4.systemdのユニットファイルを作成
tomcatのユニットファイルを /usr/lib/systemd/system/tomcat.service
に新規作成する。
/usr/lib/systemd/system/tomcat.service
[Unit] Description=Apache Tomcat Servlet Container After=syslog.target network.target [Service] Type=oneshot User=tomcat Group=tomcat EnvironmentFile=/opt/tomcat/latest/bin/setenv.sh ExecStart=/opt/tomcat/latest/bin/startup.sh ExecStop=/opt/tomcat/latest/bin/shutdown_watching.sh RemainAfterExit=yes TimeoutSec=90 [Install] WantedBy=multi-user.target
ユニットファイルを反映。
# systemctl daemon-reload
5.tomcatの起動スクリプトを作成
プロセス終了を監視するシャットダウンスクリプトを新規作成する。
/opt/tomcat/latest/bin/shutdown_watching.sh
#!/bin/sh # const TOMCAT_HOME=/opt/tomcat/latest TOMCAT_USER=tomcat SHUTDOWN_WAIT=60 # function tomcat_pid() { echo `ps aux | grep org.apache.catalina.startup.Bootstrap | grep -v grep | awk '{ print $2 }'` } # shutdown.shでtomcatを停止する。 pid=$(tomcat_pid) if [ -n "$pid" ] then echo "Stoping Tomcat" /bin/sh $TOMCAT_HOME/bin/shutdown.sh # PIDが無くなるまで待機 let kwait=$SHUTDOWN_WAIT count=0; until [ `ps -p $pid | grep -c $pid` -eq '0' ] || [ $count -gt $kwait ] do echo -n -e "/nwaiting for processes to exit"; sleep 1 let count=$count+1; done if [ $count -gt $kwait ]; then echo -n -e "/nkilling processes which didn't stop after $SHUTDOWN_WAIT seconds" kill $pid fi else echo "Tomcat is not running" exit 0 # success fi exit 0 # success
6.tomcatのJava関連設定
tomcatはstartup.shと同じディレクトリにsetenv.shを設置すると起動時に読み込んでくれる。 以下を新規作成してJAVA_HOMEを設定する。JAVA_HOME以外は省略しても動くと思うが、一応設定してる。
/opt/tomcat/latest/bin/setenv.sh
#!/bin/sh JAVA_HOME="/opt/jdk/latest" CATALINA_HOME="/opt/tomcat/latest" CATALINA_BASE="/opt/tomcat/latest" CATALINA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=256M -Xmx2548m"
以上で準備完了。
動作確認
起動したりログを見たりプロセスを確認したりして正常に動作することを確認。
# systemctl start tomcat # systemctl status tomcat # ps -ef | grep tomcat # systemctl restart tomcat # systemctl stop tomcat # ps -ef | grep tomcat
以上。