Scribble at 2020-07-16 10:44:05 Last modified: 2020-07-16 10:47:27

本日の早朝に、弊社のコーポレート・サイトを移設した。とは言っても、同じ SAKURA インターネットの「マネージド・プラン」で運用していたサーバからクラウドで建てたインスタンスのサーバへ移しただけである。理由は幾つかあって、もともとマネージド・プランのサーバへ移設した当初は僕の管理工数がかかるのを減らして受託案件の開発に割り当てるといった目的があったのだけれど、今月から僕は(もともと一人部署だが)「情報システム部」という部署の部長になったため、やってることは何も変わらないのだが、コーポレート・サイトの運営も正式に管掌として受け持つこととなって、マネージドで月額20,000円の費用をかけるよりも自力で安いサーバを運用した方がいいだろうということにした。他にもメール・サーバを G Suite へ移行したという事情があったので、マネージド・プランの容量だと各メール・アカウントにクォータを 1 GB ずつ割り当てても良かったのだが、メールを使わなくなればディスク・サイズとしてもオーバー・スペックである。

ということで、新しくクラウドのインスタンスを最小構成(CPU が1コアでメモリも 1 GB)で作ってから、あらかじめ scp over ssh で旧サーバからコンテンツをコピーしておき、本日の7:00頃に DNS の A レコードを更新すると同時に Let's Encrypt の SSL サーバ証明書を新しい方のサーバで作成したというわけである(もちろんマネージド・プランでも Let's Encrypt の証明書を使っていたので、コントロール・パネルから鍵をダウンロードして新しいウェブ・サーバへコピーしてもいいのだが、新規で取り直すことにした)。そして、移設にあたって少しばかり調べながらサーバの構築を済ませてから、本日の作業とした。なぜなら、クラウドで建てたウェブ・サーバは今回から CentOS 8.1 としていて、これは実際に建ててみるとわかってきたのだが、CentOS 7 までとは色々と違っていることがあるからだ。(ちなみにマネージド・プランのサーバは SAKURA インターネットが得意としている FreeBSD である。僕もどちらかと言えば UNIX の方を会社のテスト・サーバでも使っているので、Linux よりはこちらの方が使いやすいのだが、コーポレート・サイトや受託案件では下請けの制作会社との共同作業が発生する可能性があるため、いまどきの40代以下はコーディングで贅沢にも Macbook Pro を使ったりするくせに、殆ど UNIX は使えないことを知っているから、CentOS というのが現実的な選択になる。いや、本当に Macbook に仮想化ソフトを入れてゲストに CentOS 入れてたりするんだよな。)

まず CentOS 8.x 系統では yum コマンドを使わずに dnf を使う。これは、そもそも CentOS 8.x ではディフォールトのミドルウェアとして yum がベースにしている Python 2.x 系統ではなく dnf がベースにしている Python 3.x 系統が入るからだ。yum というコマンドそのものは dnf の wrapper として残るので、[# yum] と打ち込んでも動くことは動くわけだが、裏の仕組みで起きている変化に気づかないまま wrapper を使い続けるのは危険である。それから FW は CentOS 7.x 以降は iptables ではなく firewalld (firewall-cmd) を使う方が標準的な実務になっているが、これも CentOS 8.x では iptables が nftables に代わっているため、いま CentOS 6.x 系統でサーバを運用している方は、これから CentOS の知識をアップデートする際には、まず firewalld の方に慣れておいた方が融通は利くだろう。

そして、ウェブ・サーバとしての用途でサーバを使う時に CentOS 8.x で特に注意したいのが、PHP も CGI 版が標準になっているということだ。これは、バージョンが最初から 7.x 系統になっていることよりも大きな変更点だと思う(はっきり言って、PHP 5.x 系統でしか動かないようなコードを書くプロジェクトなんて、ベンダーでもないウェブ制作会社が受託するレベルのアプリケーションでは殆どないと言っていい)。この変更は、httpd のマルチ・プロセスに対応して、php-fpm という CGI 版の実行環境が必須となっているからだ。したがって、httpd を MPM で動かさないように設定すれば、従来のモジュール版も使える(実際、最新の Apache とモジュール版の PHP を Windows のローカル環境で動かしている人は多いだろう)。なお、PHP の公式サイトでは、まだ「Apache2 の MPM マルチスレッドモードを実運用環境で使用することは推奨されません。 代わりに prefork MPM を使ってください」と書かれてはいるのだが。そして、php-fpm を導入すると、これ自体が単独のプロセスとなっているので、httpd のプロセスだけを実行しても php-fpm のプロセスをスタートさせない限り PHP は(httpd 経由では)動作しない。なので、php-fpm も開始させて、[# systemctl enable php-fpm] しておかないといけない。

ともあれ、他にも変更点があるため、僕も CentOS 8.x についてはこれから少しずつ調べていくことにしている。

  1. もっと新しいノート <<
  2. >> もっと古いノート

冒頭に戻る


※ 以下の SNS 共有ボタンは JavaScript を使っておらず、ボタンを押すまでは SNS サイトと全く通信しません。

Twitter Facebook