「Web技術」に関する日記(2)

<前

さくらのVPS

無料期間が終わりそうなのでいったん解約しました。
しばらくは手元のVMWareでLinuxサーバーについて学んで、次はいっそクラウドで…と思ったけど最低料金の時点で結構お高いから次もVPSで済ますかな。
それに伴い、昨日出したURLもさっそく無効になりました。

VPS+CentOS7+Nginx+ASP.NET

昨日まで構築していたVPS環境は、設定がいろいろしっちゃかめっちゃかになってしまったので、いったん初期化しました。

んで、DockerとMastodonは後回しにするという前提で、FTPサーバーを確実にインストールすることから始めることにしました。
とにかく、ややこしい設定にするとたちまち詰まるのは目に見えているので、シンプルな設定で済むように、コマンドを打つときに使っているSSHを暗号通信にそのまま使えるSFTPでやることにしました。

VPSでやりたいことは、Linux(ここではCentOS7)で、C#により記述されたプログラムを動かすサーバーを動かしたいので、Nginxと.NET Coreをインストール。
WebサーバーはApacheでもよかったのですが、どうせWebサーバー本体はHTTP/HTTPSでのアクセスへの玄関口としてしか使わないし、Nginxのほうが新しくて軽くてシェアも伸ばしているらしいし、最悪、背後でApacheサーバーを動かすこともできると分かったので、新しいサーバー技術の勉強も兼ねて、WebサーバーはNginxにしました。設定自体は案外簡単で、HTTPで公開するだけなら、ちょろっと設定ファイルをいじって、Nginxを自動実行するように設定するだけです。

.NET Coreのインストールも簡単で、マイクロソフトの公式サイトに書いてある手順を踏むだけ。昨日はASP.NETを動かすという場面で詰まってしまいましたが、ファイルのアップロードができなかったために詰まっていたので、その点も解決済みです。こちらも、ASP.NETのサーバーを自動実行するように設定しました。

そして、実際にできたのが、以下のサイト。テスト用なので、いずれ消すとは思いますが、ひとまずはうまく動いているようです。
http://linuxtest.tgws.plus/

あとは、VPSでいろいろ定期実行したいこともあるので、crontabについても調べていきたいところですね。

以下、参考にしたサイト。

Visual Studio CodeとVPS

Visual Studio Code

PHPの整形は、いろいろある中で、php cs fixer(小文字のほう)がうまく使えました。
PSR-2に従って整形してくれるらしいのですが、命名規則までは直してはくれないようです。
コーディング規則の最終確認にはSideCIを使っているのですが、ここでチェックすると、警告はある程度までは減っても、ある程度は残ってしまうんですね。
SideCIは本当に最終確認で、気軽にここで調整というわけにはいかないので、できるだけ手元でさっと確かめたいのですが、そのあたりの環境はまだ構築できていません。

VPS

マストドンをちょっとやってみたくてVPS始めたんですが、うまくいかなかったので、もう一個やりたかったこと、.NETのWebアプリケーションをLinux上のサーバーで動かすというのに挑戦しています。
今あるサイトをここのサーバーに置き換えるのではなく、新しいことを始めたい、というところです。
もちろん、軌道に乗ればサーバー移転も考えますが。
先日学習していたdotnetコマンドの件は、これの準備段階ということで、とりあえずハローワールドですが成果が出ました。

dotnet

例えば、C#で作っているfunyakのステージデータが正当なものであるかどうかを検証するには、同じC#で作ったプログラムを使うほうが簡単だったり仕様の不一致が防げたりして都合がいいわけです。

まだFTPを入れていなくて、手元で作ったWebアプリケーションを向こうで試せないので、ちょっとFTPも入れておこうと思います。

.NET Core

Dockerであれこれやるのはいったん置いといて、使い慣れたC#をLinux完了で動かすため、.NET Coreについて勉強中。
さくらのVPS無料お試し期間中にできる限りのことはやっておきたいのです。
とりあえず、手元のWindows環境での.NET Coreの実行には成功。
Linux環境ではまだ試していませんが、dotnetコマンドで実行ができるようです。

VPS

昨日から頑張っていたのですが、なかなかうまくいかないものですね。
ログインからしてトラブル続きです。
なんとかDockerとか入れてみたりあれこれできる環境は作っていますが、これは一度仕切りなおしたほうがいいかなという気もしてきました。

カービィハンターズZとUri.EscapeDataString

ゲーム記の新方式への移行が完了。
そしてカービィハンターズZのページを公開。
ゲーム記のほうは管理画面がまだまだできていませんが、管理画面で頑張らなくてもあんまり問題ない設計にはなっているので、そのへんは急がずぼちぼちやっていこうかと思います。

ゲーム記の件が落ち着いたので、以前TGWSAdminで問題になっていたデータ送信の問題の対処についての話を書き始めました。
実はサンプルコードはとっくの昔に作ってGitHubにアップしてるんですけどね。
mifumi323/EscapeLongDataStringSample
ただ、これに関しては、ちょっと言いたいことがあるので、プログラムだけでなく、解説とかも入れていこうかと思います。

VPSについて。
一応OSをインストールして、セキュリティの設定をするところまではしたけど…うーん、ここから先、サーバー構築とかしなきゃいけないのよね…。
そこらのやっすい共有レンタルサーバー並みの環境を構築するだけでも、不慣れな私には結構な作業ですし、じゃあそこまでしてその先に求めるものは何なの?って話で。
共有じゃLet's Encrypt使えねーなめんどくせーなVPSならできんじゃねぐらいの気持ちで始めてみたのですが、ちょっと、手間の天秤計算すると割に合わなさそう…。
当初は、今のこのサイトを移転するのを視野に入れて考えていたのですが、今は、TGWSAdminの自宅PC以上の安定稼働のためにVPSを使うのがいいんじゃないかという気がしてきています。

VPS

ちょっとVPSを検討中。
いくつかVPSやクラウドサービスを比較してみたけど、結局さくらのVPSがコストパフォーマンス的にも信頼性的にも現実的かなーといったところ。
いろいろ考慮することがあるのでVPS使うからと言ってすぐ今のサイトを移転するわけじゃないけど、何らかの形で使っていけたらなーと。

無題

AmazonAWSの認証について調査中。
一応何かライブラリを使えば簡単にできないこともなさそうなのですが、認証周りのことを一度よく理解しておいたほうがよさそうな気がしたので自分で実装してみることにしました。
アンパンマンDBの商品情報の更新の一助にしようと考えています。

クッキーが消えた

今日パソコンを立ち上げたらクッキーが消えてました。
どうもクッキーそのものが消滅したのではなく、クッキーを読み出すためのデータが壊れたのが原因だったらしく、クッキーの中身は無事なまま読み出せなくなっていたようです。
しかしそのデータを使ってクッキーを復活させることはできないらしく、テキストエディタ等でクッキーを編集しても、不正なクッキーとして削除されてしまうようでした。
一部、どうしても消えてもらうと困るクッキーがあったので、ちょっとサイトアドレスを偽装して自作のクッキーを書き込むためだけのCGIを使って復活させました。

大神やってました。
犬コロが見つからないのでしばらくそこら辺で適当に遊んでようと思ったら、遊びに行った先で例の犬コロが出てきました。
そして、力と力で語り合おうなんて、硬派な事を言い出すんです!
ボスとなると急に慎重になっちゃって必要以上の時間を掛けてしまうのは悪い癖ですね…。

ふにゃさんの重力変化を実装してみました。
知ってる人にはもうおなじみの恒例のシークレットですね。
しかし今回、今まで以上にゲームが変わります。
ふにゃさんには色々動くギミックがあり、それらは原則として重力変化の影響を受けないのですが、それらとふにゃの動きの食い違いでかなり変わってしまうようです。
ちなみにギミックのほうに重力変化の影響を出すかどうかは未定ですが、基本的に影響を出さない方向で行こうと思っています。
そうそう、5面の攻略ページも作りました。

ミディビのルールのいくつかの補足説明を書きました。
まあ、雑多な部分ですね。

なんか学校で九州フェアなんてやってました

メールフォームにスタイルシートを適用してみました。
例によってスタイルシートを使ったりタグを手直ししたりでそこそこHTMLの仕様に近くなったので、<!DOCTYPE ~>宣言を入れてみました。
なんかWRAPあたりがIE用でHTML4.01の仕様上おかしいのですが、些細なことだと思うのでほっときます。
あと、もう練習ではなく実践でやっていきますのでCSS練習場へのリンクは外しました。

どうも最近何をするでもなく無意味にパソコン触ったりしていて、そんなことをするぐらいならその時間を使って勉強しようと思うのですが、そうしようと思うとパソコンでするべきことが次々浮かんできて勉強するのが後回しになってしまいます。
こんなんじゃいけないけど、何をするでもなしってのよりはましか・・・

古いものはあまり食べないのですが…

何やら一年ほど前の餅が出てきました。
真空パックにされているし、餅なので大丈夫なはず…
一応賞味期限は8月までだし…
というわけで網で焼いて美味しく食べさせていただきました。
明日が楽しみだ…

.htaccessファイルを使うとサーバーエラーのときに出てくるメッセージ(NotFoundやForbiddenなど)を変えられるということで、挑戦してみたのですが、サーバーのディレクトリ構成がわからなかったため、断念しました(というより、失敗しました)。

「自分に100質」にひとつ追加しました。
掲示板にレスするときの精神です。
一行スレには一行レスというのも悪くはないんですが。

あと、CGIの配布がOKであったようなので、「Q&A」の記述を変更しました。
まあ欲しがる人なんていないと思いますが。

ダウンロードCGI

SuExec・.htaccess・CGIを使って、データのダウンロードは出来るが外部からの直リンクは出来ないというシステムを作ろうとしたのですが、なかなかうまくいきません。
今回はMIDIで試してみたのですが、WindowsMediaPlayerで不明なエラーが出て再生されないのです。
よく考えたら.htaccessを使っている時点で、"deny from all"、"allow from tgws.fromc.jp"でよさそうなものですが・・・・
元々.htaccessを使わずにしようと思っていたのに本末転倒かも・・・・
一応、「その他」→「MIDI」で見に行けます。

「ByteEdit」のHTMLヘルプが完成しました。
このようなHTMLヘルプを利用する最大のメリットは、コンパイルする前のHTMLファイルがそっくりそのままオンラインヘルプとして使えることです。
あとはプログラム本体をHTMLヘルプに対応させるだけです。

またサイト移転するかもしれないです

ローカルサーバーを設置してみました。
これでオフラインでもCGIのテストをすることができます。
というよりは、実はCGIのエラーを調べるために使うことにしたのです。
まあそれにしても、暴走したって止められるから、もうAAA・・・・おっと失礼。
とにかく便利になったということです。

「基礎化学」のテストがありました。
本当は全然自信がなかったのですが、高校でもやったことのある分野が半分以上出ていたり、たとえ計算間違いをしていても内容がわかっているようであれば正解ということにしてくれるそうなので、まあ大丈夫でしょう。

我叫・・・

先生が日本語の名前をうまく読めなかったと言う理由で、全員に中国語名が与えられました。
私は、"ジョンダオチェンシェン"になりました。
そんなときその中国語名を使って出席を取っていて、先生が気になる一言。
先生「B君(プライバシー保護のため本名は伏せます)は何人(なにじん)?」
はて、偶然にも中学校の、変わった名前の友達と同じ名前だなぁ。
B君「在日です」
そういえば父は名前を見てあいつのことを在日じゃないかって言ってたっけな。
バスの中でB君似の人を見かけたけどきっと人違いだったんだろうな。
そう思いながら、名簿を見ると、正真正銘、中学生の頃の私の数少ない友達であったB君ではないですか。

地理の教科書を受け取って、大学で使う教科書はひとまず揃いました。

学校でWebデザインに関する本を少し立ち読みしました。
私はデザインにこだわらないシンプルなページを作っていたので関係ないと思っていたのですが、シンプルなデザインにはシンプルなデザインで役に立つことがあったので、参考になりました。
結局それを買わなかったのはお金がなかったからです。

帰宅途中、電車で降りる駅を間違え、父と同じ電車に乗って帰ることになってしまいました。
まあ、別にいいんですが。

「devkitAdvance IDE」の「全て保存」メニューを作りました。
「ふにゃgba」の開発もそろそろ本格的に始められそうです。
手始めにキー入力クラスを作り始めました(キー入力はそのままでは使いづらい)。

父に頼まれて、仕事用のソフトを作ることになりました。

<前