OSSのWebアプリの検証環境(Apache、PHP)~Linux Mint22で行うことにした

Linux

OSSのCMS(コンテンツマネジメントシステム)からは、しばらく遠ざかっていて、WordPress以外は触っていない期間が確実に5年以上は経っています。10年前からCMSやグループウェアなんかをセットアップする機会が無いので、過去に経験したこととか細かいことは忘れてしまっています。

最近、職場で教育系(e-ラーニング)のCMSのニーズが浮上しており、その関係もあってOSSを活用させて貰い経費をかけずに実現出来ないかって話題になっています。そういうこともあって過去に取った杵柄じゃないけど、思い出す機会を設けても良いかなと、Linux環境でWebサーバ、PHP、MySQLなんかを動かしてリハビリしておく事にしました。

とりあえず、Webサーバ上でPHPアプリを動かせる環境構築が第一ステップだと思っているので、使い慣れたApache2、PHP8.3辺りでやってみることにします。基本的に私はサーバーにSSHで接続してコマンドラインから操作をする事に慣れていますが、それだと誰も触れない事になるので、GUI環境(デスクトップOS)を有するLinux環境で、なるだけコマンドを使わない手法で構築していきます。

CMSの検証環境としてLinux Mint 22を選んだ

使おうとしているOSSのCMSが要求する動作環境として、Webサーバ(Apach2)、PHP、MySQL(もしくはMariaDB)という感じなので、WindowsでもLinuxでも構わないのですが、検証目的ということもありお金をかけない方向で進めたい考えでいます。

なぜなら、WindowsはCALという概念があるので、検証環境と言っても接続できるクライアント数に制限があり負荷試験が問題です。ライセンス的な(お金の問題)縛りでライセンス違反という違法な使い方をするのはマズイので制限の無いLinuxを選ぶことにしました。

おそらくここで候補に上がるのは、以前ならCentOSだったところ、現在はAlmaLinux、Rocky Linuxでしょう。私自身もCentOSにはお世話になりいくつかのサーバー構築に使用させていただきました。現在はCentOSは事情が変わっているので先述の二択が有力候補として出てきます。しかし検証環境としてOS要件はそこまでシビアになる必要は無いし正直言って動作が重いと感じているので、現在も使い続けていて慣れているdebian系統で行きたいと考えました。

debian系は基本的に軽くて良いです。Ubuntuは色々な細工をされていてヘビー級ですが・・

さて、debian系でGUI的に簡便なLinuxとなるとUbuntuが筆頭に現れてくる訳ですが、使えるハードウェアの制限もあり、現行のUbuntuは重いのとちょっと古いハードウェアにインストール出来ないという問題もあり、Ubuntu系のLinux Mintを選ぶことにしました。Linux Mintはシンプルでありながら上手く纏められており、アプリ(パッケージ)管理も楽なのでUbuntuよりも好きです。

更に個人的な好みで言うとLinux Mint Debian Edition(LMDE)が使いやすいのですが、LMDEはLinux Mintの特別版という位置づけでもあるので、検証環境としては素直にLinux Mint22を使うことにしました。

Ubuntuがうまくインストール出来ない様な古いPCでも、Linux Mint22は問題なくインストールして起動できたし、動作的な速度も問題ないので重量級のUbuntuよりも用途に合っていると思います。廃棄待ちの古いPCを再利用して検証環境を構築する等にはもってこいのOSでは無いでしょうかね。

Linux MintにApacheをインストール

Linux Mintの場合は、アプリ(パッケージ)のインストールについては、取り立てて難しいことは無いのですが、サーバー用途となると二の足を踏む人もいると思うので、特別難しいことじゃないのを証明する感じで記録しておきます。

旧来の仕組みなら、Linux環境にApacheのパッケージをインストールして、サービスとしてApacheを追加して、Apacheを起動して、ApacheがOS起動時に自動起動する様に登録するという操作等をいちいちコマンドで実行する必要がありました。現在は選んでインストールをクリックするだけという簡単さになっています。

ソフトウェアマネージャーを起動して、検索欄に「Apache2」と入力して検索すると、Apache HTTPサーバが見つかります。右上の緑色の「インストール」をクリックするだけでインストールが始まり、自動的にApacheをサービスとして起動してくれるので誰でもできるでしょう。

Linux Mintを操作して、Webブラウザ(Firefox)を起動して、

http://localhostCode language: JavaScript (javascript)

にアクセスしてみます。下図の様にUbuntuロゴの入ったApache2 Default Pageが表示されれば、無事にWebサーバ(Apache2)が起動しています。

このページのコンテンツはどこにあるのか?という疑問が湧くと思いますが、下図のPATHに存在します。

/var/www/html/Code language: JavaScript (javascript)

実は、/var/wwwはrootが所有者になっていて、一般ユーザーではコンテンツを書き換えることが出来ません。遠い昔に私が初心者だった頃にこのパーミッション(権限)で躓いてしまったのを思い出しました。

早速対処しておきます。

実はLinux Mintだと非常に簡単にGUIで操作出来ます。右クリックして「Rootとして開く」を実行すると、コマンドでいう「sudo」で開いた様な特権状態でアクセス可能になります。

特権で操作するので余計なファイルは触らない様に注意しましょう。赤い帯で警告されるので、目的の操作が終わったら速やかに閉じましょう。

所有者がrootになっているので、自分のユーザー名に変更し、フルアクセスにしておきます。グループはApache2が所属する「www-data」にしておくと後々面倒がありません。CMSはApacheで動作するのでファイルの書き換え等は「www-data」グループの権限が必要ですから書き込み権限を与えておきます。

どうせ検証環境なので、一般ユーザーも書き込み可能にしておきます。いわゆるフルアクセスです。

/var/www/html/index.htmlのファイルアクセス権限もフルアクセス777にしてみました。これで/var/www/はフルアクセスという状態です。(ファイルには実行権限として「プログラムとして実行可能」を有効・無効にする項目があります。)

このファイルをコピーしてバックアップとして保存して置けば、root権限が無くても好き放題内容を書き換えて納得するまで実験できます。まぁHPを持つことがまだ特別だった20年以上昔ならまだしも、今の時代にindex.htmlファイルだけ弄れる様になっても楽しくともなんとも無いですけどね。

Apacheはコレだけじゃない!

一応、Apache2のことについて触れておきます。インストールしただけでWebサーバとして使用可能になってしまう手軽さもありますが、バーチャルホストを使用したり、ユーザーディレクトリを使ったり、SSL(HTTPS)対応させたり、まだまだ色々な機能が備わったとても優秀なWebサーバーアプリです。

もちろんそれらの機能を使いこなす為には、コンフィグファイルをテキストエディタで編集する等して機能が適切に動作する様に設定してやる必要があります。当然ながら知識も必要ですから色々試してみながら学習するしかありません。

昨今では速度的な面で、Nginx(エンジンエックス)の方が優れており使用率が高いと言われていますが、私は慣れ親しんだApacheを使い続けています。ApacheのConfigファイルの操作に慣れているのでそれほど速度を重視していない用途ではNginxじゃなくても良いかなと思っているからです。(Nginxを学習する必要性に迫られてない)

Linux MintにPHP 8.3をインストール

Linux MintだとPHPのインストールも簡単なので拍子抜けするでしょうね。同様にソフトウェアマネージャーを起動して、PHPを検索してインストールボタンをクリックするだけです。勝手にインストールしてくれるので少し待つだけです。

インストールが終わったらWebサーバ上でPHPが動くか動作確認をしておきたいので次に進みます。/var/www/htmlの中にある、index.htmlの隣に新規ファイルを作成し、ファイル名を「phpinfo.php」とでもします。そしてファイルの内容を下記の様にします。phpinfoという関数を実行するだけの記述です。

<?php phpinfo(); ?>Code language: HTML, XML (xml)

実行結果は、Webブラウザで確認できます。

http://localhost/phpinfo.phpCode language: JavaScript (javascript)

下図の様にPHPのバージョンや環境変数の値が表示されれば、PHPがWebサーバ上で動作しているという確認が取れたことになります。

この後のこと

ここまでの操作で、Linux Mint 22上でWebサーバが動作しはじめ、PHPプログラムが動作する環境が出来たわけですが、多分、CMSによってはまだ足りない機能があると思います。

おそらくそれは、MySQL(MariaDB)かPostgreSQLというSQLデータベースアプリになるでしょう。良く使用されるのはMySQLですが、初期セットアップの段階ではコマンドレスとは行かないので、ターミナルからちょっとしたコマンド操作が必要になります。

また、SQLとApacheを連携させるためにモジュールが必要になったり、PHPの拡張モジュール(ライブラリ?)が必要になったりもします。いずれにしてもLinux Mintの場合はソフトウェアマネージャーからインストールできるので、ほぼコマンドレスで追加できます。(Apacheに追加したい機能のモジュールをロードしたりする際にapacheのコマンドが必要になる場合もありますが・・)

しかし、手順さえ分かっていれば別に大した作業ではないので、それらについては次の記事に記そうと思います。PHPアプリを書きたい人はこれで事足りることも多いと思うので、/var/www/html/の中に自分でPHPスクリプトを記して、Webブラウザで動作を確認して開発を進めるのもありですね。

Iroha BoardとMoodleを検証したい

目的は、eラーニング用CMSとして知名度のある、「Iroha Board」と「Moodle」を動かして動作検証したいと考えています。いずれもMySQLが必須なので続きではMySQLをセットアップが必須になります。

CMSの多くは動作デモ的に一部機能を公開して試させてくれていますが、やはり管理画面や学習コンテンツの作成方法や管理機能が試せないと導入に進むのは難しいです。そしてその為には全ての機能を試せる環境が必要なので、今回Linux Mint 22上に環境を準備してみようと思った次第です。

検証して是非使いたいとなれば、レンタルサーバを借りて本格導入へ進むとか、導入からサポートを業者に委託するという段階になります。

今はまだ機能的な検証段階なので(やりたい事を実現できる機能が備わっているのか?)慎重に進めなくてはならないと感じています。

コメント

タイトルとURLをコピーしました