2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Linuxサーバー(RHEL9)にa-blog cmsをインストールしてみた

Last updated at Posted at 2024-11-04

こんにちは。今回は、自宅のサーバーにa-blog cmsを導入してみました。
公式ドキュメントにはインストールの方法が詳細に掲載されていましたが、ApacheやMySQLなどミドルウェア周りの設定方法は載っておらず、手探りで設定していました。
つまづいた部分もありますので、手順を共有します。

a-blog cmsとは?という方はこちらをご参照ください。

環境

  • OS:Red Hat Enterprise Linux release 9.4
  • Apache:Apache/2.4.57
  • PHP:v8.0.30
  • MySQL:Ver 8.0.36

サーバーは、自宅PCにVirtualBOXをインストールし、その上に建てました。VirtualBOXをインストールしたのは昔過ぎて手順を忘れてしまったので、別の記事をご参照ください。別の方が書かれた記事ですが、以下の記事などが参考になると思います。

また、RHELなのでサブスクリプションマネージャーは登録しておきます。これがないとyumでパッケージがインストールできません。こちらは以下の記事が参考になると思います。

手順

それでは、構築手順を紹介します。以下の手順で行っていきます。

  1. 必要なパッケージのインストール
  2. 各種パッケージの設定
  3. OSの設定
  4. a-blog cmsのインストール

必要なパッケージのインストール

a-blog cmsを使うには、Webサーバ(Apache or Nginx)・PHP(バージョン指定に注意)・データベース(Mysql or MariaDB)が必要です。今回はApachePHPMySQLを使いました。なお、Ver.3.0以前ではionCube Loaderも必要になるそうなので、バージョンによってはそちらもインストールしてください。
a-blog cmsのバージョンによってミドルウェアのバージョン指定がありますので、詳しくは公式の動作条件をご確認ください。

必要なパッケージを、yumでインストールします。

インストール
# yum -y install http* mysql* php*

後述しますがPHPは拡張モジュールが必要なので、ワイルドカードで一気にインストールしてしまいました。インストールしたら起動しましょう。

起動
# systemctl start httpd php-fpm mysqld
# systemctl enable httpd php-fpm mysqld

各種パッケージの設定

インストールした各種パッケージの設定を行っていきます。

Apacheの設定

Apacheではhtaccessを使うため、以下の2つの設定が必要になります。

  • RewriteEngineの有効化
  • htaccessの利用許可(AllowOverride)

RewriteEngineの有効化

RewriteEngineのモジュールがインストールされているかと、有効化がされているか確認しましょう。

モジュールの確認
# find / | grep mod_rewrite.so
/usr/lib64/httpd/modules/mod_rewrite.so

もし出力がなければ、yumでインストールしましょう。
モジュールが有効化されているかどうかは、Apacheのコンフィグファイルを確認しましょう。私の環境では、有効化モジュールは00-base.confにまとまていました。

有効化の確認
# cat /etc/httpd/conf.modules.d/00-base.conf | grep mod_rewrite.so
LoadModule rewrite_module modules/mod_rewrite.so

もし出力がなければ、本ファイルに追記してください。そもそもこのファイルがなければ、httpd.confに追記しましょう。

htaccessの利用許可(AllowOverride)

続いて、AllowOverrideの有効化です。こちらはhttpd.confを書き換えます。httpd.confに、以下の記載があると思いますので、 "AllowOverride None
"
を、 "AllowOverride All" に書き換えましょう。書き換えた後は忘れずにApacheを再起動しましょう。

AllowOverrideの有効化
# vi /etc/httpd/conf/httpd.conf

<Directory "/var/www/html">
~中略~
    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    #
    AllowOverride All  //ここを"None"から"All"に変更
~中略~
</Directory>

# systemctl restart httpd

ここで注意点です。AllowOverrideはディレクトリーごとに分かれています。今回はドキュメントルートである"/var/www/html"を使用するので、<Directory "/var/www/html"></Directory> で囲まれたブロックの設定を変更しましょう。

PHPの設定

PHPに特別な設定は不要ですが、いくつかの拡張モジュールが必要です。インストール時にワイルドカードを指定したのですべてインストールされているとは思いますが、念のため確認しておきましょう。

拡張モジュールの確認
# php -m
[PHP Modules]
apcu
// 以下略

たくさん出力があると思いますが、公式の動作条件に記載のあるモジュールが出力されていればオッケーです。なければyumでインストールしましょう。

MySQLの設定

続いてMySQLです。MySQLでは、いくつかの権限を持ったユーザーを作成しておく必要があります。DBやテーブルは、ユーザーさえ存在すればa-blog cmsインストール時に自動で作成してくれます。実はユーザーもrootを使うようにすれば作成の必要はないのですが、せっかくなので作成しておきましょう。

MySQLの設定
# mysql -u root -p
mysql> create user ablogcms@localhost identified by '任意のパスワード';
mysql> grant all privileges on *.* to ablogcms@localhost;
mysql> quit;

今回は、ablogcmsというユーザーを作成し、グローバルで全権限を与えました。権限を必要なものに絞ったり、先にDBを作成してDBにのみ権限を与えることもできますので、要件に合わせてやってみてください。

OSの設定

ミドルウェアの設定が終わったら、OSの設定も行います。
やるべきことは、SELINUXの無効化と、ドキュメントルートの権限設定です。

SELINUXの無効化

a-blog cmsのセットアップ中、PHPがインストーラーをダウンロードしてくるのですが、SELINUXが有効化されているとダウンロードできないため、無効化が必要です。コンフィグファイルを修正し、設定反映のためにOSを再起動しましょう。

SELINUXの無効化
# vi /etc/selinux/config
SELINUX=disabled //enforcing → disabledに変更

# shutdown -r now

ドキュメントルートの権限

前述の通り、a-blog cmsのセットアップ中にPHPがインストーラーをダウンロードしてきます。ダウンロードされたZIPファイルはドキュメントルートに格納され、解凍やリネームまで自動で行ってくれます。そのため、apacheユーザーにドキュメントルートの書き込み権限が必要です。今回は777権限を与えちゃいましょう。

ドキュメントルートの権限設定
# chmod -R 777 /var/www/html/
# ll /var/www/
合計 0
drwxr-xr-x. 2 root root  6  8月  6 22:10 cgi-bin
drwxrwxrwx. 2 root root 91 11月  4 17:03 html

a-blog cmsのインストール

設定が終わったので、いよいよインストールです。インストール方法は公式ドキュメントに詳しく載っています。今回は "簡単セットアップ" を使う方法でインストールしました。
こちら(公式ドキュメント)の下部にある"簡単セットアップ"をダウンロードし、ZIPを解凍し、 "setup.php" だけサーバのドキュメントルート(今回は"/var/www/html")に格納します。
"setup.php" の中身は特に編集不要ですが、インストールしたいバージョンを指定する場合は、最上部の変数 "$ablogcmsVersion" のコメントアウトを外し、任意のバージョンに設定すれば良いみたいです。

setup.php
// ------------------------------
// a-blog cms 3.1.x 簡単セットアップ
//       last update 2024/05/17
// ------------------------------

$ablogcmsVersion = '3.1.0';  //ここをダウンロードしたいバージョンにする

// ERROR になる場合や個別に 3.0.x系のバージョンを
// 指定したい場合には、バージョンを設定してください。
//
// 2.x のバージョンについては 2.x系の簡単セットアップをご利用ください。

その後、ブラウザでこのファイルにアクセスします。任意のブラウザで "http://***(サーバのIPアドレス)/setup.php" を入力し、アクセスしましょう。ここまでの設定ができていれば、セットアップの画面が出てくるはずです。

image.png

「セットアップ開始」をクリックし、あとは公式ドキュメントのセットアップ手順通り進めていけばOKです。途中、データベースのユーザー・パスワードを指定する欄がありますが、先ほど作成したユーザーの情報を入力しましょう。

ハマったポイント

構築でハマったポイントを2つ共有します。

①SELINUXの無効化

最初、SELINUXを無効化せずに進めていました。そうすると、setup.phpを開いたときに以下のようなエラーが発生しました。
image.png

PHPは触ったことがなかったのですが、手探りでソースコードを読んだりしていろいろ調べていくと、PHPがa-blogcmsのインストールパッケージをダウンロードする部分でエラーになっていることが分かりました。
バージョンごとのダウンロードURLを指定してそこからダウンロードするコードになっていたのですが、ダウンロードに失敗しているようです。

  • URLが間違ってるのかな?と思いブラウザでアクセスしたら問題なくダウンロード可能
  • OSのFWの問題か?と思いcurlを叩いてみるも通信可能。
  • wgetしてみても問題なくダウンロードできている。

何が原因なのか・・・と小一時間格闘し、SELINUXがダウンロードを封じていたことに気が付きました。
SELINUXは色々悪さをするという噂を聞いていましたが、、それを身をもって実感できる良い経験でした。

②AllowOverrideの有効化

先ほども記述しましたが、httpd.confの設定項目 "AllowOverride" はディレクトリーごとに分かれています。今回はドキュメントルートである"/var/www/html"を使用するので、<Directory "/var/www/html"></Directory> で囲まれたブロックの設定が必要ですが、私はこれを <Directory /></Directory> のブロックだけ設定してしまっていました。
そのため、htaccessが有効化されておらず、セットアップ完了後にサイト自体にはつながるけど、/loginのページにつながらないという現象が発生しました。
image.png
httpd.confの設定を正しく修正したところ、問題なくログインページにもアクセスできるようになりました。

まとめ

今回は、a-blog cmsのインストールをしてみました。Linuxサーバーにインストールする手順は探しても昔の記事しか見つからず、手探りでしたが何とかインストール完了しました。
この記事が皆さんのお役に立てば幸いです。

最後まで読んでいただき、ありがとうございました。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?