Nuro光について - mt.uqunie.com

Nuro光は事実上の固定IPアドレスだった

Nuro光は、事実上の固定IPアドレスでした。ルーターを再起動しても同じIPアドレスが割り当てられていました。ルーターを交換するとIPアドレスが変わりました。その他、事業者側の都合で変わることがあるようですが、ほとんど変わりません。5〜6年は同じIPアドレスで使えてました。

固定IPアドレスは、自宅サーバーをインターネット経由で利用したい人にとっては大変助かりました。

ところが、この状況はNuro光の仕様変更「MAP-E」によって絶望的になります。

MAP-E

「MAP-E」については各自で調べて頂くとして、これが実施されるとルーターのポートマッピングが使えなくなります。つまり、80番ポートの開放ができないということです。

回避策

「DDoS Shield」というサービスがあり、これを使うとVPN経由でポート解放ができるそう。

https://zenn.dev/2b2t/articles/89f2ec72131634

ドキュメント・ルートとは?!

ドキュメント・ルートとは、そのドメインを公開しているディレクトリーのことです。

具体的には、https://example.comというドメインを/var/www/htdocs/で公開した場合、/var/www/htdocs/がドキュメント・ルートになります。 ドキュメント・ルートは、HTML上では/で表すことができます。

ドキュメント・ルート・パス

HTML上のリンクを/から記述する記法をドキュメント・ルート・パスと言います。

具体的には、トップページヘのリンクを<a href="/">トップ</a>と記述する事ができます。

ドキュメント・ルート・パスを使うと、ドメイン名の省略ができるので、テスト環境のURLhttps://test.example.com/top.htmlと本番環境https://example.com/top.htmlといった、ドメイン名の違いを吸収することができます。

また、CSSのリンクを相対パスで記述する <link type="text/css" href="../../css/index.css" /> ←このような記述をしなくても済みます。

MySQL 8.0のインストール時に、以下のコマンドを入力してMySQLを初期化しようとしましたが失敗しました。

sudo /opt/local/lib/mysql8/bin/mysqld --initialize --user=_mysql

以下のようなログが出力されています。

2020-12-31T04:19:51.070483Z 0 [System] [MY-013169] [Server] /opt/local/lib/mysql8/bin/mysqld (mysqld 8.0.22) initializing of server in progress as process 65161
2020-12-31T04:19:51.071361Z 0 [ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it. Aborting.
2020-12-31T04:19:51.071367Z 0 [ERROR] [MY-013236] [Server] The designated data directory /opt/local/var/db/mysql8/ is unusable. You can remove all files that the server added to it.
2020-12-31T04:19:51.071409Z 0 [ERROR] [MY-010119] [Server] Aborting
2020-12-31T04:19:51.071510Z 0 [System] [MY-010910] [Server] /opt/local/lib/mysql8/bin/mysqld: Shutdown complete (mysqld 8.0.22)  Source distribution.

OSの入れ替え時に、HDD上にデータディレクトリが残っていた為でした。データディレクトリを移動して解決しました。

sudo mv /opt/local/var/db/mysql8 /opt/local/var/db/_mysql8

スキーマレスURLとは?

スキーマレスURLとは、スキーマ(スキーム)の無い(レス)URLの事です。

そもそもスキーマとは??

スキーマは、schemeと書きます。http、https、ftp、sshなど、プロトコルをURLの先頭で指定する事です。

HTMLでは、<a href="http://example.com">とURLを記述しますが、ここのhttpやhttpsの事です。これを省略する(記述しない)記法をスキーマレスURLと言います。

URLのhttpやhttpsって省略できるの?!

できます!

具体的には以下のように書きます。 スキーマレスURLの記法のポイントは、URLの先頭を//(ダブルスラッシュ・スラッシュ2つ)で始めることです。 実際に自分で書いてアクセスしてみて下さい。リンクは有効です。

<a href="//example.com">example.com</a>

疑問!スキーマを指定しなかった場合は、httpになる?httpsになる?

httpになるか、httpsになるかは、現在表示しているページがhttpかhttpsかに寄ります。現在のページのプロトコルを踏襲(引き継ぎ)します。つまり、httpのページならhttp、httpsのページならhttpsでアクセスします。

疑問!それに何のメリットがあるの?

httpsとhttpのプロトコルが混じるのが防げます!

httpsのページにhttpが混じると問題なの?

httpsのページ内で、httpの通信を行うと、ブラウザが安全ではないと警告します。例えば、HTMLのページはhttpsで暗号化していても、JSやCSSや画像でhttpの通信を行った場合は、情報が漏れる可能性があります。単純なところでは、Cookieが閲覧可能な状態で送受信されます。

SEO上も不利に働くかもしれません。

macOS 26 Tahoeは非常にバギーです。(不具合が多い)

auひかりでは問題がないのに、Nuro光に繋ぐと、特定のドメインだけに繋がらなくなります。(githubなど)

原因はどうやら、DNSにあるようです。

「システム設定」→「Wi-Fi」から、利用するWi-FIの「詳細...」をクリックすると、下図のようなダイアログが開きます。DNSサーバーに8.8.8.8を追加することで接続ができるようになります。

image.png

Bitcoinのビルド - mt.uqunie.com

Bitcoinのソースコードをダウンロードする

git clone https://github.com/bitcoin/bitcoin.git

bitcoind のビルド

autogen.shconfigure は初期設定です。 make でビルドします。 make check でビルドをチェックします。


./autogen.sh
./configure --without-gui
make -j4
make check

--without-guiは、QTで作成されたウォレットアプリの作成をしないオプションです。 -j4は、ジョブ数を4つに増やすオプションです。この数字は、一般的にCPUのコア数に対して2倍が良いと言われています。 問題なければ src ディレクトリに bitcoind が作成されています。 src/bitcoind --version

SELinuxを設定した後、PHPからメールが送れない。 /var/log/maillogを確認すると、以下のようなエラーが出ているはず。

Mar 3 18:11:59 php postfix/sendmail[2237]: fatal: setrlimit: Permission denied

以下のコマンドでSELinuxの設定を確認できます。

sudo getsebool httpd_can_sendmail
httpd_can_sendmail --> off

以下のコマンドで、offからonに変更します。

sudo setsebool -P httpd_can_sendmail on

Eclipseで入力補完(コンテンツ・アシスト)が効かなくなった場合の対処方法は、環境設定から、PHP → Editor → Content Assist → Enable auto Activation を有効化する。

環境設定→PHP→Editor→Content Assist→Enable auto Activation

MacPortsだと全てのバージョンのMySQLを実行できます。

/opt/local/etc/mysql8/macports-default.cnfskip-networking が設定されているからです。

これは、TCP/IPによる通信ではなく、UNIXドメインソケット(ファイルシステムを使ったプロセス間通信)を利用しているからです。

これは、.sockファイルのパスを変えることで、複数バージョンの起動を可能にする手法です。

TCP/IPでは待ち受けポート(リスニングポート)番号は重複できません。(当然!)

逆に言うと、ポート番号を変えれば複数バージョンの起動も可能ですし、同一バージョンを複数起動する事も可能です!

CORS - Cross-Origin Resource Sharing

クロスオリジンとは、異なるドメイン間でJavaScriptなどのAjaxを行う方法です。

JavaScript側の設定

スクリプトの読み込みを行うタグで crossorigin="anonymous" を付ける。

<script src="http://example.com/js/ajax.js" crossorigin="anonymous"></script>
サーバー側の設定

JavaScriptファイルの送信ヘッダーに Access-Control-Allow-Origin ヘッダーを付加します。

<?php header("Access-Control-Allow-Origin: *"); ?>