2022年10月22日土曜日

AWS EC2のPSQL(PostgreSQLのクライアント)をアップデートする方法

 EC2の中で、もとにした何かがどうなのかよくわからないが、psqlのバージョンが古くてRDSにちゃんとつながらないことがある。

ちゃんとつながらないというか、SQLは打てるのだが

\d tablename-foo

のように してテーブルの情報を見ようとした場合などにサーバーとのバージョン違いでエラーの旨のメッセージが出て微妙に不便という状態。


で、PostgreSQLのクライアントをアップデートしたいのだが、Linuxに慣れてはいないので検索するとrpmのリポジトリがどうとかという面倒な手順が出てきて、ちょっとやってみたけどエラーで引っかかったりして困ったのだが・・・


結局は、以下の公式に書いてある手順で簡単にアップデートできた。

https://aws.amazon.com/jp/amazon-linux-2/faqs/#Amazon_Linux_Extras


具体的には以下の通り。簡単。


現在のバージョンと入っているものを確認

$ sudo yum list installed | grep postgres

postgresql.x86_64                   9.2.24-8.amzn2                   @amzn2-core

postgresql-libs.x86_64              9.2.24-8.amzn2                   @amzn2-core


アンインストール

$ sudo yum remove postgresql


※ アンインストールは上記ページに辿り着く前に実行してしまったので、必要だったのかはよくわからない。ただ、しておいて損もないだろう。


$ sudo amazon-linux-extras | grep postgresql

  6  postgresql10             available    [ =10  =stable ]

 41  postgresql11             available    [ =11  =stable ]

 58  postgresql12             available    [ =stable ]

 59  postgresql13             available    [ =stable ]

 63  postgresql14             available    [ =stable ]



あったので、実際インストールをする。


$ sudo amazon-linux-extras install postgresql13


すぐに終わり、再度psqlを利用したら\dのコマンドでテーブル情報も確認できるようになった。めでたしめでたし。

 


2021年9月27日月曜日

Apache mod_rewriteの設定

基本は、

RewriteRule PTN REPLACE [OPTION]

を書く。


PTNは正規表現で、わたってくるのは /foo/bar.htmlなど、/から始まるパス(.htaccessではなくhttpd.confに書く場合)。


PTNが一致した場合のみ、パスがREPLACEに変わる。REPLACEを絶対URLにして、OPTIONにRまたはPでRedirectあるいはProxyが出来る。

リダイレクトは、[R,L]。Lを明示する必要がある。

プロキシは、[P]。PはLを暗黙的に含んでいる。


RewriteRuleではパスしか検査できない。なので、それ以外も調べたい場合などは

RewriteCond 検査対象文字列 条件

を直前に列挙する。複数列挙すればAND条件。ORにしたい場合には特殊な書き方がある。

検査対象文字列は、いろいろな暗黙変数的なもの。検索すればすぐに出てくるだろう。

条件は正規表現またはフラグ。これも検索すればわかる。


正規表現は普通のPerl互換。

なので、「すべてをマッチ」したいためだけに ^(.*)$なんて書く必要はない。なぜか流行っている?けども。




Apacheの自動再起動

 AWS EC2 AmazonLiunuxのインスタンスにて。

Apacheは最初から入っているが自動起動は有効化されていない。

rootユーザーにて以下実行で自動起動が有効になる。

# chkconfig httpd on


設定の状態確認は

# chkconfig --list httpd


こんな表示がされるが、

httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off

0(停止)から6までのいろいろな起動モード毎に自動起動するか否か。いい感じにしてくれてるはずなので、真ん中あたりがいくつかonならOKのはず。

2020年2月6日木曜日

Amazon Linux2でphp.iniの変更が反映されない

php.iniは/etc/php.ini

info.phpにも書いてあるのでわかる。

変更してApache再起動してもまったく変化なし。5回くらい再起動してもダメ。
で、

(特権ユーザで)
systemctl restart php-fpm

これをやったら変更が反映された。Apacheはどうでもいいらしい。


Server APIFPM/FastCGI
 こうなっているからだそうで。よくわからないし、そんなに詳しく知りたくもない・・・。

systemctl status php-fpm

こうすると、ステータスも見られる。PHP-FPMとかではダメ。そのあたりはOSによって違うらしい。めんどくさ・・・。

2018年6月26日火曜日

WindowsでTomcat8.5を使って開発するときのオレオレ証明書用のキー生成

Javaのbinフォルダにkeytoolというコマンドラインアプリケーションものがあるので、これを使う。

まず当然、コマンドプロンプトでこれを実行する。

そんで、
keytool -genkeypair -keystore c:/tomcatkeystore.jks -keyalg RSA -alias localhost -validity 3650
パスワードはどうでもいいので"password"と答え、あとの設問はreturnのみで答える。最後の確認だけyを答えないとキャンセルになってしまうが。

Tomcatのserver.xmlの以下を書き換え。(コメントアウトされてるのを解除し、SSLHostConfigの属性値を追加)
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true">
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="c:/tomcatkeystore.jks"
                         type="RSA"
                         certificateKeystorePassword="password"
                         certificateKeyAlias="localhost"
                         />
        </SSLHostConfig>
    </Connector>

これで、「安全でないホスト」としての接続はできた。

2018年4月10日火曜日

Tomcat 8.5のファイルアップロードサイズ上限変更

デフォルトが2MBになっている。それで、それ以上のファイルをアップロードするとFileUploadBase$SizeLimitExceededExceptionというのが出る。

maxSwallowSizeというのを設定すればよいということだが、それをやっても以前としてエラーが出る。いろいろ悩んだが、最後にmaxPostSizeも設定したら上手く行った。

<Connector ... maxSwallowSize="5000000" maxPostSize="5000000" ....>

みたいな。

この2つを同時に設定すると上手くいかないという情報もあったのだが、maxSwallowSizeというプロパティ自体が新しかった頃の情報かと思うので、その後にTomcatの仕様が変わったのかも知れない。ともかく、両方設定したらうまくいった。

2017年8月18日金曜日

人が求めてやまぬもの

この夏はずっと雨ばかりだし、そもそも娘の夏休み中は土日にはどこかに出かけることが多いので、ずっとバイクも乗れていない。まあ、そもそも仕事も忙しいし。

なので、なんとなくただの日記を投稿してみる。

先日、家の近くで何かの事件か事故があったようで警察がたくさんいたらしく、それが何だか気になるので地方ニュースにでも出ないかなと、普段は見ないニュースサイトなどをチェックしていた。

折しも終戦記念日が近かったこともあり、戦争、改憲、靖国神社、といった何だか気分の沈む話題が多く目についてしまう。

靖国神社がここのところいやに人気なのは、問題だと思う。靖国神社というのはやはり、色々と問題を抱えている。そこらにある氷川神社や神明神社みたいなのと一緒にはできない、特殊な背景をもった神社だ。「英霊」が祀られているのはたまたま都心にあったからとかではなく、そういう必然があったわけだし、それら一連の流れはともかく大日本帝國という存在に依存したコンテキストの上で成り立っているのだから、「神社にお参りするのはただの信仰」「昔から土着の日本の文化」といった理屈は通らない。

A級戦犯を含めた英霊に首相が祈るのが、そのまま戦犯を讃えることになるのかならないのか、それが良いのか悪いのか、といった議論の前に、まずはそもそもこれはどういう施設なのかということを確認、共有できないと、このあたりの議論はいつまでたっても噛み合わず不毛なままという気がする。なんだっけ?盲目の人が象を撫でる話みたいなもので。

それはそれとして、ではそもそも戦争というものは、と考える。

自衛隊の位置づけや出動の範囲をどうこうするというのが、良いか悪いか考えるならば、まずはその自衛隊の活動において議論の的になる「戦争」という舞台をどう捉えるか、ということを考えねばならない。

端的に言って、戦争が悪くなかったら軍隊の存在も悪くない、それを行う自衛隊がいたって問題ないわけだ。戦争は悪い、という前提があるから、それを行う軍隊は本来的に悪いのではないか、そうなれる自衛隊もまずいのではないか、という懸念が生じている。

戦争の否定を暗黙的なドグマとして議論をしていてなかなか議論が噛み合わない(ように俺には見える)のであれば、まずは互いの認識している大前提が一致しているかを再確認することは必要な気がする。

そうすると、おそらく、誰だって「戦争は悪い。してはいけない。」と言うだろうと思う。改憲して自衛隊を外に出したい人だって、戦争は悪いというのではないか。

だが、悪いというのは何なんだろう。

突き詰めて考えると、いまいちわからない。

戦争はしてはいけない。というのが世界中の人間のもつ自然な感情とは思えない。そうであったら歴史はこんな風になっていない。戦争は嫌いだ。というのもそう。本当に嫌いならしなければいい。悪い、と思うならしなければいいが、する。

相手が攻めてくるからだ、という話はよくあるが、攻めるために攻めるという国はないのではないだろうか。何かの利益のために攻める。それが将来において事実になるかどうかはともかく、多大なコストと大きなリスクをともなってどこかを攻めようという時に、攻める側には必ず、正当な理由がある。少なくとも自身にとって正当な理由が。そしてそれはたいがい、戦争をしかけるリスクより一層大きなリスクを、戦争をしないことに対して感じるからであり、もちろん戦争をして負けるわけにはいかないから先手を打つのだろう。

そう考えると、まあ非常に乱暴だが、いわば戦争というのは常に「自衛」なのだと思う。征服だとしても、そうしなければ自分が攻められて後手に回るからだとか、征服先から収奪した物資で自国民を潤すのだとか、征服先の人民を自国民として"救う"のだとか、何かしら、現在か将来の財産を守るための意図があるはずだ。

ただ単純に焼き尽くして壊し尽くしたいだけ、ということはまずない。

いや、あるかも知れない。人間個人の争いにしても、ほとんどの場合は双方に言い分があり、どちらも一定の理がある。だから「喧嘩両成敗」という言葉もある。とはいえ、なかには本当に一方的な、通り魔のようなケースもある。これは正常ではないが、国家においても正常ではない事態というのもあるのだろう。

ただ、それはやはりレアなケースであって、多くの戦争には、外からは狂気に見えたとしても、中の方にはそれなりの理由があるはずだ。それがどんなに身勝手だったとしても、少なくとも一人の人間だけの身勝手ではないし、身勝手だから「無い」というものでもない。

長くなりそうになってきたので、一気に話をすっ飛ばして思いついていた一点のみを書く。

要は、最近というか大人になってから考えるに、自分は、「人間は戦争が好きで、やりたいのだろう」と思っている。全員とは言わない。ただ、少なからぬ人々がだ。そして重要なのは、そういた人々は政治家や軍人といった人々に存在するのではなく、老若男女、学歴の高低、右派・左派といった思想を問わずにそういう人が存在するのだと思う。
また、日常会話の攻撃性とかもあまり関係ない気がする。つまり、ネトウヨと呼ばれるような人々が戦争が好きなのだというわけでもない。

そういう表面的な態度、理性的な思考とは別のところで、目的のために争いや犠牲を厭わず、かつ目的達成に対する執着が強い人間、結果的に「戦争が好きな人間、特定の条件さえ満たすなら戦争を手段として肯定する人間」がいるのだと思う。

そしてそういった人間は、要は実行力があるわけだから、仕事などでも成果を出しやすいのだろう。なので憧れられる。率先して戦うことは出来なくても、戦うことに憧れて、その暴力的な解決手段に憧れる。格闘技が常に一定の人気があること、ヤンキー漫画が不滅なこと、元々ただの気弱な子供時代を過ごしたはずの大多数のお父さんのうちの一定数が大人になってからヤクザに憧れること。戦争映画はもとより、 チャンバラも銃撃戦も、怪獣映画も。人間が暴力に憧れて酔いしれることはあまりにも普通だ。

その暴力の、まさに最大最高の権化のような戦争と兵器が、多くの人間の憧れの対象になることはまったくもって自然なことだ。これは道徳とか正義とは関係ない。ただただ、人間は暴力に怯えとともに憧れを抱くというだけのことだ。

だからもちろん、最近のアニメに限ったことではなく、要の東西を問わず戦争物の物語は人々に大人気だ。神話まで遡ったって、人々が好む題材はともかく、戦いと恋愛だろう。そして恋愛も時に戦いを伴って描かれるのだから、人々はやはり戦いが好きなのだろう。

なのに、平和について語ろうとするとき、どのような立場の人もまず、「戦争は悪い、戦いは嫌い、誰だってしたくはない。それは人類普遍の価値観」のような前提で話している気がする。テレビの討論番組など嫌いなので見ないが、そこに右派で登場しても、軍備を肯定するとしても戦争そのものまで肯定する人はあまりいないのではないか。

個人の戦いや架空の戦いと戦争を一緒にするな、という話もあるかも知れない。けど、それはやはり同じなのだ。憧れる対象としては同じだ。

なのに、それを認めずに、「この世の中で戦争だけは、誰もが嫌っている。好きだなんていうのは気の狂ったテロリストくらい」みたいな捩れた前提で話を始めるのでは、議論はずっと進まないのじゃないかなと。核心を避け続けてぐるぐると回ってしまう。

「本質的に戦争、あるいは戦い、争いが好きな人間というのはかなりの数がいる。むしろ多数派かも知れない」という認識、つまりそういった行為にも多くの人が認めるだけの「価値」がある、と認識した上で、では、その価値というのは平和を犠牲にしても求めてよいものか、それともどこかに妥協点を見出すべきか、といった話に進むのが筋ではないか。

たとえば、工場での品質管理を考えれば、不良品というものはあってはいけないしあるべきでもない。しかし不良品というものは必ず生じる。だから、「不良品などというものは我が社には存在しないし、あってはならない!」などと言っている企業があればそれはまあきっとブラック企業であって、普通は、不良品というものは必ず出来てくし無くせないよねという、適切な対象の認識のもとに、じゃあこれをいかにして管理しようかという話をする。

戦争というのは究極的だが、しかしやはりひとつの事象であることには変わらないのだから、これだけは「絶対にあってはならない」というのは理屈として無理がある。

「二度とあってはならない」みたいなのは、時系列を制約しているだけで「絶対にない」と言っているのとほぼ等しい。だから、それはやはり単なる誓いの言葉であり、誓いで世界が何とかなる時代は中世で終わっていると俺は思っている。いや、本当はその頃だってそんなものにはさほどの効力はなかったのではと勝手に想像している。

論理的に起こり得る事象を「起きない」と捉えるのは、科学ではなく信仰だ。「起こさない」といのも同じだ。毎日遅刻をする人間に、「遅刻をもうしない」と言わせても意味がないのと同じだ。そうならない理屈を考え出さねばならない。言霊というのはロマンチックだが、言葉にするだけでなんでも実現するなんてファンタジーな話は現実にはない。

そういう意味では「不戦の誓い」みたいなものはもう時をみた通りに信仰でしかない。さらには、「戦争は絶対にあってはならない」という前提ももはや論理ではなくてただの信仰なのだ。あってはならないならなぜある?戦争なしに存在し得なかった文明の恩恵のもとでその思いに至るという単純な矛盾は、まるで子供の屁理屈のようだが無視していい問題ではない。

そういうわけで、まあ信仰も役には立つが、この複雑な問題を管理するには力不足だ。科学的に考えるべきだろう。

だが人はまだ、誓っている。暴力を肯定する世界の只中で、それを是としたままに、暴力であるという理由で戦争を表面的に否定している。その矛盾にきっとほとんどの人は最初から気づいているが、それはそういうものとして済まされている。矛盾を真実として受け入れる信仰の方が、届かない真実に向かってもがき続ける科学よりも、はるかに楽だからだ。人はストレスを受けるのが嫌いだから仕方ない。ストレスが怖いからこそ、戦いという最大のストレスに打ち克つ戦士の姿を見て感動を覚えているのだから、これは当然の帰結だ。

だとすると、まだ当分の間、人間の社会は「戦争」という事象を十分に管理することはできず、したがって一定は発生してしまうのだろうと思う。そう認めることが、まずは管理のための、つまりより多くの平和のためへの第一歩なのではないかと俺は思う。


まあ・・・最後にいうと、「幼女戦記」というアニメを見てね。これ面白いんだけどまたなんともヒドいよなあ・・・ヒドいけど面白いよなあ・・・と思っているうちに、そんなことを考えたというところもあるんだけど(笑)