初めてのUbuntu

晴れサーバー系で苦戦中。 今日はさくらのクラウドに新しいインスタンス作成して、Ubuntu20.04というのを入れて、ウェブアプリケーションが動くようにする作業の、手順確認をしている。 ローカルに入れてやれって話だけど、Dockerの登場でVagrant消してしまったし、WindowsのWSL2がUbuntuだというが、それを同じように扱えるのかわからないし、扱えたとしても環境汚したくないので、多少のお金がかかるけど、実際にインスタンス作ってやるのがベストと判断して。
ディスクは、今が20GBだけど、使用率が85%くらいになっていてこの先怖いので、今はまだ最小の20GBで作るけど、本番時は40GBにするつもり。 Ubuntu使うの初めてで、yumじゃなくてaptだったり、firewalldじゃなくてufwだったりするが、基本的にはLinuxなので、これくらいの違いしか自分にはわからず。
とりあえずPHPは8.0.0を入れたが、昨日か今日に、8.0.1というのがリリースされているので、本番時はそれを入れたいので、自動的に落ちて来なかったら入れる方法探さなくてはならない。
あとはnginxやImageMagick入れたのだけど、ImageMagicで待望のWebPが扱えるようになっていて素晴らしい。 今動いているCentOS7のyumから入れられるImageMagickはWebPに対応しておらず、やるとしたら自分でコンパイルしないといけなくて、それはリスクが高すぎるのでずっとWebP対応ができていなかった。 iOSでもWebPが扱えるようになった今、対応しない理由はない。

今まではpostfix+dovecotでメールサーバーも立てていたが、メールサーバーはもういらないかな…… 独自ドメインのメール使うことほとんどないし、もし使うならSESとか外のサービス使おうと思う。
eth1の追加はCentOS7よりわかりやすい感じだった、yml編集するだけだったので。

色々設定して、いざアプリケーションを動かしてみようと思ったら、PHPのエラーで動かない。 色々調べていたが、PHP8からの「後方互換性のない変更点」に引っかかっていた。 このページの

多くの notice が警告に変換されるようになりました:

未定義の変数を読み取ろうとした場合
未定義のプロパティを読み取ろうとした場合
未定義の配列のキーを読み取ろうとした場合
オブジェクトでない値のプロパティを読み取ろうとした場合
配列でない値のインデックスにアクセスしようとした場合
配列を文字列に変換しようとした場合
リソースを配列のキーとして使おうとした場合
null や bool 値や float の値を文字列オフセットとして使おうとした場合
境界を超えて文字列のオフセットを読み取ろうとした場合
文字列のオフセットに空文字列を割り当てようとした場合


の、特に先頭から3つ目までに。 これはコード自体をかなり修正しないといけないので、手元で検証してからじゃないとできなさそうだ。
php-fpmの設定で、php7系とphp8系を、ドメインを区別して、同じnginxで処理したいのだけど、Dockerで出来るかな。 ポート変えれば簡単にできるが、出来るならポート変えずに処理したい。
fastcgi_pathで、php-fpmのソケットを指定しているので、そこを変えれば多分行けるので、これは明日以降で要検証だ。

あとは公開鍵認証、Mackerelくらいだろうか。 今はMunin入れてるけど、これももういらないかな。
今まで1年掛かって取り掛かりすらしなかったプロジェクトに、ここ数日で取り組んでいて、やる気になれば1週間もあれば終わりそうなので、今までどれだけ逃げてきたかっていうのが分かる。

夜はジョギングには行かずランジジャンプ30回×5セットのトレーニング。 1セット目で膝とか痛かったが、2セット目以降で痛みが消えて、筋肉と心臓が鍛えられた。

さくらのクラウド データベースアプライアンス

晴れ火曜はいつもの店でいつものように打ち合わせ。 今日は道路が非常に混んでおり、年末年始休みが終わって、人々が平常通りに動き出しているのを感じた。
首都圏で緊急事態宣言出ているが、香川県のこのお店への来客具合は、いつもと変わらないような気がする。 2021年が始まって2週間経ったが、この集まりでのプロジェクトの動きはまだ何も無い。 1年って52週間しかないので、そのうちの4%も、もう経過しているということを再認識しなくてはならない。 あっという間に夏になって、また年末になってしまうだろう。
モーニング

自分のサーバーでは、さくらのクラウドを使っているのだけど、アプリケーションとデータベースを同じサーバーに同居させている。
何度か書いているが、新しいインスタンスに新しいディストリビューションを入れて、PHPなどを最新版にしたい。 だが、アプリケーションとDBが同居していると、別のインスタンス立ち上げてDB接続させたい場合問題になる。 やろうと思えば古いインスタンスのポート開けて、そこに接続させることもできるのだけど、微妙な策だ。
なので、DBをサーバーに同居させるのではなく、AWSでいうRDSみたいに、DB専用のサービスみたいなものが、さくらのクラウドにもあるので、それに移行する作業をしていた。

さくらのクラウドでデータベースアプライアンスを使うには、スイッチが必須。 スイッチは、スイッチのみのプランか、スイッチ+ルータのプランがある。 別にルータ機能は求めてないし、ルータ機能がついているとIPアドレスも16個や32個取得しなくてはならず、金額が跳ね上がる。 裏側でネットワーク組むだけなので、スイッチだけのプランを作成し、データベースアプライアンスと、今動いているインスタンスにNICを追加してスイッチに接続させた。 インスタンスにNICを追加するのは動かしながらはできないので、一旦サーバーを落とさなくてはならない。 冗長化などもしてないため、2,3分で終わるので今アクセスしている人たちは無視して、無理やりシャットダウンしてNIC追加して、ついでにプランを2CPU×2GBメモリに上げた。 今までは1×1で、22時前後など負荷のかかる時間は少々厳しかったので。
で、SSHでeth1を追加したりして、ようやくDBアプライアンスに接続することができた。 ネットワークは苦手なので、この辺りの一連の作業も気を使う。

接続できたので、次はデータベースのデータを移行しなくてはならない。 mysqldumpで丸っと移せばいいのだけど、mysqlの管理テーブルとかも移ってしまうのと、without的なものが見つからなかったので、1データベースずつmysqldump, mysqlコマンドで流し込んでいった。
で、軽くテストして、いざデータベース接続先を変更したら、insertの一部クエリでエラーが発生。 not nullのカラムを持つテーブルにinsertする場合に発生していたのだけど、例えばnameがnot nullだとして、
INSERT INTO table (id, name, birthday) VALUES(1, ”, ‘2000-01-01’);
というのは通るが、
INSERT INTO table (id, birthday) VALUES(1, ‘2000-01-01’);
というのはエラーが発生する。 こんな処理している箇所がけっこうあって、コード直すのは箇所が多くて大変なのだけど、DB側でnot null制約を外して対応してしまった。

が、後で調べて分かったのだけど、MariaDB10.2.4からsqlmodeに「STRICT_TRANS_TABLES」が追加されたよう。 これはSQLを厳密に処理する設定らしく、上で挙げたようなnot nullなのにカラム指定しないインサート、つまり空ではなくnullのような場合にエラーを吐くようになっていたらしい。
前まで使っていたのが、MariaDB10.1.48で、今がMariaDB10.4.12だからだな。

とりあえず、色々計画している中での、データベースの分離は終わった。 これでようやくスタートラインに立てた感じがする。

夜はジョギングへ。 ペース気にせず
5.31, 5.27, 5.23, 5.09, 5.08, 5.05と、6kmを31分46秒で、キロ5分17秒ペースだった。

道の駅ふれあいパークみの

晴れ今日は「道の駅ふれあいパークみの」に併設されている公園に遊びに行く予定になっている。 11時半くらいに家を出て、マルナカでお昼ごはんを購入して、車内で食べながら一般道で向かう。
13時前に到着して、シートを敷いて荷物を置いておく。 寒い冬の日の屋外だからだろうか、それとも新型コロナウィルスの影響だろうか、公園には人がまばらだった。
滑り台で遊んだり、長男がクリスマスにもらったバレーボールで遊んだり、それを使ってドッジボールをしたり。 最後の1時間くらいは、地元の幼稚園に通う子が「一緒に遊ぼう」と言いに来て、長男と三女とその子の3人で、いろいろやって遊んでいた。
17時まで滞在したが、今日はここ数日に比べたら暖かかったので助かった。 高松空港や綾川に比べたら、海も近いし三野の方が暖かそうなイメージはあるが。
ふれあいパークみの

夕飯を食べてからはジョギング。 さっき公園で暇すぎたので、ストレッチやランジウォークやっていたので、少し足が疲れていたのと、食後20分でのランだったので、少しお腹が苦しかった。
5.14, 4.46, 4.44, 4.35と、3.8kmを18分41秒で、キロ4分51秒ペースだった。

この三連休、三女の陸上がなかったのだけど、陸上習い始める1年くらい前までは、毎土日が今日のような感じで予定がなく、昼前から公園に遊びに行っていたなぁと思い出した。
それはそれで充実していたと思うけど、陸上のある日々で、休みなのに朝から夜まで出かけている方が、充実感があるなぁと実感した。 疲れたりパソコンやる時間がなかったりと、問題はあるのだけど。
新型コロナウィルスが三度猛威を振るう中、陸上がどうなっていくのかが、まだわからない。 監督はやる気だけど、そもそもの競技場や四番丁が閉鎖されたら、活動の場がなくなってしまう。
そういえば、屋島競技場は先週金曜日の朝に、観客席の天井部分からアルミの部品(長さ2.1m、重さ5kg)が落下していたのを発覚したらしく、コロナ関係なく閉鎖されている。
観客席の屋根の内側を構成する部品の一つだろうけど、その重量のものが、高さ12m上から落ちてきたのが直撃したら、下手したら死ぬかもしれないな……

38歳の誕生日

曇り今日は38歳の誕生日。 誕生日だからといって、特に変わったことはないのだが。
家でお昼ごはんを食べて、午後から三女と、さぬきこどもの国に遊びに行ってきた。 この前陸上チームのサイクリングで来たが、三女と2人でくるのは結構ひさしぶりな気がする。 施設の中で遊んだが、リニューアルされていたので、プラネタリウムの改修が終わってから、もしかしたら一度も来ていなかったのかもしれない。 新型コロナウィルスの影響だろうけど、館内はガラガラだった。 特に科学や美術の体験コーナーは人が全然いなかった。
三女の年齢的に、この施設ではもうあまり楽しめなくなってきたな。 1時間程滞在した。

特に行く場所はないので、このまま西ウィングの方に車で走っていって、空港公園の施設の一部で、ロープのピラミッドみたいなのがある広場でちょっとだけ遊んだが寒すぎた……
それから、車でブラブラと走り、矢坪のファミリーマートでシュークリームやファミチキ、コーヒーなど購入して、綾川競技場に行ってみることに。

綾川競技場は10月から改修工事中で4月くらいまで使えないのだが、どんなになっているのだろうと思って。
工事中なので、競技場は全体が柵に囲まれていて、中があまり見えなかった。 芝生の部分は全部剥がされて、ショベルカーが穴を掘っていた。 競技場のトラックはそのままだったけど、リレーゾーン変更などが適用された、新仕様には変えてくれないのだろうか。

それから、トンネルで少しだけトレーニングして、芝生広場の前で軽くドリルして遊んで、綾川競技場を出発。
帰りは国分寺経由で、通ったことない道を走って、新しい道を覚えて帰ってきた。

夜は自分の誕生日を祝ってもらった。 子供たちからはプレゼントをもらった。 ジョギング用のニット帽、手袋、靴下×6足、ビール×6本、ガム×2パック、ノート。
靴下は持っているやつがほとんど穴が開いているので、今日買いに行こうかと思っていた。 もらったやつはちょっと分厚そうなのとグリップがついていないので、どんな具合なのかは履いてみないとわからないな。 夏は暑そうな感じがする。 ニット帽は、ほぼ新品のが1つ余っているので、使い所が難しいのと生地がちょい薄手なので、真冬じゃなくて、春先と秋に使えそうな感じかもしれない。 手袋は今使っているのが登山用で使っていて、処分することになったやつを使っているので、もう8年くらい使っているものだと思う。 10本の指のうち8本くらいに穴が開いていて、自分は特にみっともなさとか気にしないのだが、捨てるいいチャンスになったかな。 これは今度使ってみよう。

今夜もジョギングは無し。 休みだと夜走りに行くのが面倒で難しいのだが、3日連続で休んでいるので、ちょっとやばいかも。

寒すぎる空港公園

曇り今日は有明クロスカントリーの日だが、新型コロナウィルスが急速に広まってきたこともあり、チームとして出場辞退するということになった。 そのためいつも通りの土曜日なので、朝は三女のスイミングへ。  スイミング後はくら寿司へ。 Go to Eatの無限くら寿司で1回だけポイントをためたので、今回は1000円引きで食べることができる。 といっても、2人でデザートまで食べて、1,700円くらいだったが。

それからゆめタウンで、三女の上履きと飲み物を買って、図書館へ。 年末から借りていた本を返して別の本を借りてきた。 ここで、三女と同じ陸上チームで、同じ小学校の家族と遭遇。
図書館の後は、空港公園のアドベンチャーゾーンに遊びに行った。 ここで一輪車や凧揚げをしようと思っている。 車の中で少しくつろいでいたら、先程図書館で遭遇した同じ陸上チームの家族がやってきた。 偶然にも空港公園、それも人気エリアではないアドベンチャーゾーンで遭遇するとは。
今日は天気も良くなく、風も強くて、空港公園は非常に寒かった。 風が強いので凧は良く上がったが、強すぎてかなり引っ張られる感じだった。
空港公園は風が強いのに加えて、時々雪が降っていた。 日陰の場所では薄っすらと雪も積もっていたし……

15時半くらいまで、1時間ほど空港公園に滞在して、マルナカで夕飯のシチューの材料を購入して帰宅。
今夜もジョギングは無し。

新学期

晴れ今日から子供たちの学校の新学期が始まった。 朝は7時位に起きて、子供たちを学校まで送っていってあげる。 家に帰ってきて7時半くらい。 二度寝してもいいのだが、最初の目覚ましが15分後、次の目覚ましが30分後になるので、今から寝てもほとんど寝ることができない。 寝ると、起きる時がつらすぎるので、寝ずにパソコンやることにした。
いつもより15分くらいは時間があるので、早めに切り上げてマックに行こうと思っていたのに、逆にいつもより10分遅くなって、マックに着いたのが9時半になってしまった。 そのため、ほとんど滞在することはできず。

前から検討しているサーバーおOSだけど、CentOS8の雲行きが怪しくなってきたので、今まで一度も使ったことがないのだが、DebianかUbuntuを試してみようかと思い始めている。 RHELがさくらのクラウドで使えれば値段によっては検討してもいいのだけど、今の所ラインナップにすら入っていないので検討すらできない。
DebianもUbuntuも使ったことがないので、どっちがどうとかわからないけど、シェア的にはUbuntuが高い? よくわからないので、ググったり、試しに両方入れてみて、って感じになるかもしれない。
が、もう1年越しのプロジェクトなので、いつ出来るかもわからないが……

今夜はジョギング無し。 明日から三連休だけど、クロスカントリーも中止だし、陸上練習もないので、やることがなさそうだ。

雪が舞う日

曇り今日も三女の陸上で屋島へ。 毎日8時に家を出る生活も今日が最後だ。 9時~14時までなので、今日は家に帰ってきて仕事をしていた。 13時過ぎに家を出発して再び屋島に向かう。
帰りに「さぬき麺市場」でお昼ごはんを食べるが、首都圏で緊急事態宣言が出るためか、香川県内でもコロナの感染者が多くなってきているためか、店内には1人しかお客さんがいなかった。 見える所に店員が3人いたが、まだ14時過ぎなのにお客さんより店員の方が多いとは。
湯だめうどん

そういえば、今週から来月末まで高松市の特定のお店でPayPayで支払うと、25%ポイントバックされるキャンペーンが始まった。 1回で2000円までのバック、期間中合計で20,000円までバックされる。 年末には岡山市で同様のキャンペーンがやっていたが、高松市でやってくれるのは嬉しい。 期間中に80,000円も使わえないから、PayPayで払える店は、クレジットカードや現金よりも優先してPayPayで支払うのが効果的だ。 ただ、PayPayで支払えても25%バックされない店もあるので注意が必要だけど。

夜はジョギングへ。 今日は日中雪がパラつき、風も非常に強く寒い日だ。 夜に長男のスイミングの迎えに行った時の、自動車の温度計ではマイナス3度だった。
土曜日に有明クロスカントリーに出場する予定だったけど、今日は都内で2,500人、県内でも30人の新型コロナウィルスの感染者が出て、監督の判断でチームとして出場しないこととなってしまった。
なので、今日休んで、明日軽く走って調整しようと思っていたが、調整する必要がなくなってしまった。
モチベーションを下げないために、寒いけど今日は走らないといけないと思って出発。 ゆっくり走ってると寒すぎるので、速く走って体を暖めようとしたが、速いペースにも関わらず、全然体が暖まらず、走り終わった後でも寒かった。
5.13, 5.03, 4.40, 4.40, 4.30, 4.28と、6kmを28分45秒で、キロ4分47秒ペースだった。

移動してばかり

晴れ今日も三女の陸上が朝9時から屋島である。 11時半くらいに終わる予定なので、家に帰るのに40分、屋島に行くのに40分かかるので、送ってから家に帰っていると、滞在時間がほとんどなく、移動している時間だけかかるという無駄なことになるので、屋島周辺にいることにした。 仕事できるようにノートパソコンは持ってきてある。
10時くらいまで屋島競技場の駐車場で時間を潰して、それからマクドナルドへ。 遅い朝ごはんを食べながら仕事してたが、先日ノートパソコンのOS再インストールをしたばかりで、ほとんど環境が整っていなかった。 こういう時に限って、SSHで作業しないといけないものが発生して、非常に面倒だった。 前も書いたが物理キーボードがあまり効かなくなっているので、タイピングするのも非常にストレスが溜まる。 10文字打つのに、キーボードを30回くらい押すような感じ。

11時半で三女の陸上は終わったが、お弁当を食べて帰るので屋島出たのが12時になってしまった。 そのまま整形外科に行こうと思って急いで行ったのだが、午前受付の12時半をわずかに過ぎてしまい、受付してもらえず…… そのまま家に帰って、少々作業して、14時半から午後の診察が始まるので、また整形外科へ。 なんだか移動してばかりで、何も作業ができていない気がする……
今日で三女の病院は終わりだ。 年末で開いている病院を探したので、御厩の病院になってしまった、家から遠いわけではないが近いわけでもないので、通うのが面倒だった。

夜はジョギングへ。 適当なペースで6km。
5.23, 5.32, 5.33, 5.29, 5.18, 5.08で、6kmを32分31秒で、キロ5分24秒ペースだった。