bookmark_borderWordPressのパーマリンクにindex.phpが入る

いつの間にかブログのURLが “https://enlico.net/index.php/blog” になっていました。
(前は”https://enlico.net/blog”だった)

投稿の各ページも “https://enlico.net/index.php/(ポスト名)” になっている・・・。

設定→パーマリンク設定から確認すると、カスタム構造が選択されており、「index.php/%postname%/」になっている。

他の設定にしたりindex.phpを消すと、なぜかブログページにアクセスした際に404エラーとなってしまう。

なぜ!?
と色々調べて試したところ、無事解決したので記事を残す。


解決に導いてくれたのはこちらの記事。

WordPressのパーマリンクからindex.phpを消す方法

Apacheの設定ファイル、httpd.confを弄るみたい。

まずはhttpd.conf内からWordpressの.htaccessファイルがあるディレクトリのAllowOverrideを探し、NoneからAllに変更する。

私の環境ではWordpressは/var/www/html/に入っているので、

<Directory "/var/www/html">
・・・
  AllowOverride None
・・・
</Directory>

を探して、NoneとなっているところをAllに変更して保存しました。

変更したら、念のためhttpd.confのバックアップを取っておいてから

service httpd restart

でApacheを再起動。

そして再度ブログページを開いてみると、URLが”https://enlico.net/blog”に変わりました!

投稿の各ページも “https://enlico.net/blog/(ポスト名)”になっており、パーマリンク設定も投稿名「https://enlico.net/sample-post/」が選択されていました。

なぜ変わったのか、いつ変わったのか分からないけれど無事に解決して良かった。

bookmark_borderLet’s Encrypt自動更新

定期的に手動で更新してたけど、面倒くさくなったので自動更新を設定した。

参考にしたのはこちらのサイト。

Cronという仕組みを使うらしい。
まずは以下のコマンドを入力して、自動実行の設定ファイルを開く。

vi /etc/crontab

ここに設定を追記することで、コマンドを自動実行してくれるらしい。
参考にしたサイトでは毎日実行するようにしているが、私は毎月実行するように設定することにした。

Cronの日時指定については、このサイトを参考にして作成。

https://www.yoheim.net/blog.php?q=20190902

記入した設定はこちら。

0 3 1 * * root /usr/bin/cetbot renew

おそらくこれで毎月1日 3:00に更新コマンドを実行するはず。

もしこれでできてなかったら、追記します。

bookmark_borderLet’s Encrypt更新

有効期限が残り30日を切ったので、更新しました。

参考にしたサイトは、以前Let’s Encryptを導入した際と同じサイトです。
過去の記事にサイトのリンク貼ってます。

https://knowledge.sakura.ad.jp/10534/

管理者権限でSSHにログインして、下のコマンドを実行。

certbot renew

何行かぶわーっと英文が表示された後、最後はこのような文が表示されました。

 

再度コマンドを実行すると、まだ更新できないよ~といった文の後にこのように表示されました。

今は手動で更新してるけど、いつか自動更新を導入したいところ。
(いつかっていつだろう・・・)

bookmark_borderNode.jsのSSL化

Node.jsで立てたhttpのサーバーをhttpsで接続できるようにするため色々調べたところ、

https://kennejs.com/entry/2019/01/19/074529

このサイトを参考にすることで無事SSL化に成功した。

 

ドメインも取得していたし、SSL証明書もネコでもわかる!さくらのVPS講座 ~第六回「無料SSL証明書 Let’s Encryptを導入しよう」を参考にLet’s Encryptで取得していたので、Node.jsのアプリケーションを修正だけでできた。

 

const https = require('https');
option = {
  key: fs.readFileSync('/etc/letsencrypt/live/(独自ドメイン)/privkey.pem'),
  cert: fs.readFileSync('/etc/letsencrypt/live/(独自ドメイン)/cert.pem'),
  ca: fs.readFileSync('/etc/letsencrypt/live/(独自ドメイン)/chain.pem')
}

まずはこのコードを追記。私の場合「fs」をrequireしていなかったので、この上にさらに

const fs = require('fs');

を追記。

 

const server = http.createServer(app).listen(3000);
let io2 = io.listen(server);

としていたところを

const server = https.createServer(option, app).listen(3000);
let io2 = io.listen(server);

に変更。

 

これで無事にSSL化に成功。

bookmark_borderApache&Node.jsの共存

Apacheを動かしている状態だとNode.jsでサーバーを立ててもNode.js側には接続できず、ApacheをストップするとNode.js側に接続できるという状態が発生した。

どうやら共存させるために手順が必要なようだ。

 

http://note.onichannn.net/archives/2451

上のサイトを参考に、httpd.confのリッスンポートとバーチャルホストのポートを80番以外に避難することで、無事に共存させることができた。

サイト内ではNode.js側はhttp-proxyを導入しているが、この手順は行っていない。

元々ポート80番以外で接続するように設定していたからかな。