Joomla! をインストールします。

Joomla!のインストールから設定までを記述いたします。
centos7にnginx、MariaDB、php、php-fpmがインストールおよび設定がなされているものとします。設定につきましてはすべて記事としてサイト内にあるのでよろしければ参考にしてください。それでは作業を行いましょう。
https://downloads.joomla.org/ja/cms
にアクセスします。目的にあったバージョンを選択していきます。途中で「ファイルの表示」をおせばダウンロードのリンクにたどり着けます。


現時点で3.9.15が最新版でしたのでそれをインストールします。
wgetを使用してダウンロードします。ファイルのリンクは目的のファイルを右クリックしてリンクのアドレスをコピーにて得られます。

wget https://downloads.joomla.org/ja/cms/joomla3/3-9-15/Joomla_3-9-15-Stable-Full_Package.tar.gz?format=gz

ファイルは/tmp/jmというディレクトリにダウンロードしました。
新しいディレクトリを作成し、そこに解凍することをお勧めします。ファイル・ディレクトリが混在したものが作成されるので解凍されたものを判別できるようにするため。
tarコマンドにオプションをつけるやり方は忘れたので今回は事前にフォルダを作成しました。
ファイルを解凍します。

tar zxvf Joomla_3-9-15-Stable-Full_Package.tar.gz?format=gz

中身は画像のようになっています。ダウンロードしたファイルは不要なので削除します。

rm Joomla_3-9-15-Stable-Full_Package.tar.gz?format=gz

デフォルトでは公開ディレクトリが/usr/share/nginx/html/になっているが、/var/www/にフォルダごと移動します。(今回の場合jmごと)
理由は、Unix、Linuxのディレクトリ構成の規約を纏めているFHS3.0で明示されているからです。

mv /tmp/jm /var/www/

これでディレクトリ事移動したので移動先に行きます。

cd /var/www/

このディレクトリの所有権をnginxにし実行できるようにします。

chown -R nginx:nginx jm

joomulaのphp-fpm構成ファイルの設定を行います。/etc/php-fpm.d/にあるwww.confを修正します。

vi /etc/php-fpm.d/www.conf

変更するところは以下のようになります。
php-fpm.sockというファイルはphp-fpmをインストールし起動・再起動することにより作成される。最初はないが/var/run/php-fpm/に作成されるので確認してもらいたい。
ポート番号と.sockファイルの記述があるがどちらか一方でよく、listen = 127.0.0.1:9000は私の環境では記述していないです。
その場合あとで示す仮想ホスト構成ファイルもこれに合わせて記述します。
なにかエラーが出たら/var/log/nginx/error.logにて原因を探す。

listen = 127.0.0.1:9000
user = nginx
group = nginx
listen = /var/run/php-fpm/php-fpm.sock
listen.owner = nginx
listen.group = nginx
pm = ondemand
pm.max_children = 50
pm.process_idle_timeout = 10s
pm.max_requests = 500

今度はjoomulaのNginx仮想ホスト構成ファイルを/etc/nginx/conf.dに作成します。
/var/www/jmにjoomulaのファイルがあるのでjm.confとします。

vi /etc/nginx/conf.d/jm.conf

confファイルの中身に次を記述して保存します。
server_nameはまだドメインの用意ができてないなどの理由がある場合、IPアドレスの直打ちにを記述します。

server {
    listen   80;
    server_name  your_server_ip;

    # note that these lines are originally from the "location /" block
    root   /var/www/jm;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /var/www/jm;
    }

    location ~ .php$ {
        try_files $uri =404;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

ここまで再起動してないのでnginx、php-fpmを再起動します。

systemctl restart php-fpm
systemctl restart nginx

ブラウザでhttp://ipアドレス/
ここでエラー発生。
failed to start the session
というエラーだ。なんかしらのセッションに失敗したということです。
.confファイルやphp.iniの内容を見直し、ようやく解決方法が見つかりました。
どうやらjoomulaが/var/lib/php/sessionにアクセスを試みているということです。
そこでコマンドls -lなどで所有権などを調べるとroot、apacheになっていた。


次の作業にてこのディレクトリの所有権などをnginxに変更をしてみます。
(yumによるアップデートで変更が戻る可能性がある。)

chown -R nginx:nginx /var/lib/php/session

以上を修正しjoomulaのセットアップ画面がブラウザに表示されました。


せっかくなのでこのまま作業を行います。
必要な項目を入力して次に進むとデータベース入力画面になります。

データベースを作成してなかったのでMariaDBにて作成します。
データベース名:testdb
ユーザー名:testuser
パスワード:password
として作業していきます。
ログインしてます。

mysql -u root -p

データベースの作成。

CREATE DATABASE testdb DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

ユーザーを作成しパスワードを与える。

CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'password';

このデータベースに対するすべての権限をこのユーザーに与え、反映する。

GRANT ALL PRIVILEGES ON testdb.* TO 'mamushiuser'@'localhost';
FLUSH PRIVILEGES;

ブラウザのjoomulaのデータベース画面にてこれらを入力して指示に従います。
正しいことが入力できていれば次に進むことができます。

記事内容通りすんなりすすむことはないと思いますがぜひチャレンジしてみてはいかがでしょうか。実際にデータベースに接続する時パスワードの間違いに気づかずかなり時間をとりました。

教育

Posted by admin