もっと詳しく

ExmentをMixhostにインストール

顧客管理、日報管理、勤怠管理、アドレス帳など、ちょっとした業務用WEBアプリに使えそうで、「なんでも管理できるWEBデータベース」と謳っている国産オープンソースソフトウェア「Exment」(エクスメント)。これを現在使用しているレンタルサーバー「ミックスホスト
」にインストールしてみました。その手順をメモ。

Exmentの動作要件

  • PHP 7.3.0以上
  • MySQL 5.7.8以上、8.0.0未満
    または MariaDB 10.2.7以上

MixhostのcPanelでの作業

サブドメイン作成
通常の公開サイトとは別に、Exment用サイト作る場合、mixhost
のcPanelからサブドメインを作成します。
例) exmple.com → exment.example.com
PHPのバージョンを変更
このページを投稿した時点のExmentのバージョンが v.5.0.0 で、ベースであるPHPフレームワークのLaravelバージョン9を使用し、PHPのバージョンは8.0以上である必要があります。Mixhostのデフォルト設定が7.0系の場合、変更する必要があります。以下のページを参考。
FTPユーザー作成
 
MySQLにデータベースを作成

[cPanel]-[MySQLデータベース]の画面からExment用に新しいデータベースを作成します。
 
作成したデータベースにユーザーを追加
データベースが作成できたら、同じ画面から作成したデータベースにアクセスする新しいMySQLユーザーを作成し、データベースに対して割り当てます。

Laravelをインストール

ExmentはPHPフレームワークのLaravelをベースに作られているので、サーバーにLaravelを入れておく必要があります。mixhost
ではGUIで簡単にインストールできます。

cPanelのLarabelのアイコンをクリック

cPanelからLaravelインストール

メニューに従い、インストールしたいドメインとディレクトリを指定。

インストールフォルダを分けないときはディレクトリの指定は不要。

cPanelからLaravelインストール

mixhost
の場合、Composerは標準でインストールされているので、別途Composerをインストールする必要はありません。

各バージョンを確認

cPnanlのTerminalからExmentに必要な各バージョンを確認。

コマンド

カレントディレクトリを変更

$ cd public_html/対象サイトフォルダ名

PHPのバージョンを確認するコマンド

$ php -v

Composerのバージョンを確認するコマンド

$ conposer -v

Laravelのバージョンを確認するコマンド

$ cd public_html/対象サイトフォルダ名/laravel
$ php artisan -v

Exmentのインストール

ExmentのZIPをダウンロード
解凍してアップロード
解凍したexmentフォルダをLaravelフォルダ直下に置いてみました。公式サイトではexmentフォルダの中身を公開ディレクトリのルート直下に配置すると、外部からデータベースの設定が他人に見られてしまう恐れがあるとのことと、なんとなくフォルダ分けしておきたいのでLaravelフォルダの中にExmentフォルダを配置してみました。
https://example.com/laravel/exment

サイトルート
  └ laravel
     └ exment

Laravelフォルダの下位ではなく、同じ階層に置いた場合でもOKでした。

インストール画面にアクセス

Exmentフォルダ内にあるpublicのパス対してadminを付けてアクセス

https://exment.example.com/laravel/exment/public/admin/
  ↓
https://exment.example.com/laravel/exment/public/admin/install にリダイレクトされる

Exmentインストール画面

データベース接続設定
使用できるデータベース

  • MySQL
  • MariaDB
  • SQL Server

mixhost
の場合、MariaDBを選択。ホスト名:127.0.0.1、ポート:3306はそのままでOK。

Exmentインストール画面 データベース接続情報設定

警告に対処
システム条件の確認で警告が出たら対処します。

Exmentインストール画面 システム要件の確認 動作条件確認

cPanelのMultiPHP INI Editerから各数値の設定を推奨値に変更。

Mixhost cPanel MultiPHP INI Editer

警告 対応名称 変更後の値
メモリ使用量上限 memory_limit 512M
一度にPOSTできる上限数 max_input_vars 3000
タイムアウト時間 max_execution_time 180

[適用]ボタンを押して、再度インストール画面に戻り、システム条件の確認画面で警告が出なければそのまま進みます。

Exmentインストール画面 システム要件の確認 動作条件確認

Composerのインストールが確認できない警告については、既にインストールされていることを確認済みなので無視しました。

インストール実行

Exmentインストール画面

初期設定

インストールが完了すると初期設定画面が表示されるので、サイト名管理者情報を登録します。

https://exment.example.com/laravel/exment/public/admin/initialize

Exment初期設定画面

419 PAGE EXPIRED エラーが出たら

初期設定画面を放置して、後から入力して保存したら、以下のエラー画面が出ました。一旦、初期画面に戻り、F5を押してページを更新し、改めて初期設定を行い保存したら、エラーが出ず保存できました。

419 PAGE EXPIRED エラー

https://exment.example.com/laravel/exment/public/admin/initialize
ダッシュボードが表示されインストール完了

Exmentダッシュボード

ログイン画面

https://exment.example.com/laravel/exment/public/admin/auth/login

Exmentログイン画面

アップデート方法

cPanelのTerminalからコマンドで実行

$ cd public_html/サイトディレクトリ/laravel/exment
$ wget https://exment.net/downloads/cmd/ExmentUpdateLinux.sh
$ chmod 755 ExmentUpdateLinux.sh
$ ./ExmentUpdateLinux.sh

Composerのアップデートに失敗するとき

PHPのバージョンが低いことが原因でアップデートに失敗した場合はPHPのバージョンを指定してからアップデートします。 ./ExmentUpdateLinux.shを実行したときにComposer関連でエラーが出る時も同様です。

エラーの例

[ErrorException]
  Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 8.0.2". You are running 7.4.33.

エラー回避のコマンド例

$ cd public_html/サイトディレクトリ/laravel/exment
$ composer config platform.php 8.0.27
$ composer update

または

$ composer --no-plugins update --no-scripts

それでもエラーが出る場合

Exmentの階層にあるcomposer.jsonconfig項に "platform-check": falseを追記すると解決れできるかもしれません。

"config": {
    "platform-check": false
},

これを行ってかから、再度./ExmentUpdateLinux.shを実行すると無事にExmentのアップデートが正常に終わりました。

最新バージョン表示には時間がかかる

バージョンアップが泥状に終わっても、Exmentの[システム設定]にある「システムバージョン情報」に表示されるバージョンが最新バージョンに変わるまで、数十分以上待たないと変わりません。バージョンアップ作業を裏側でサーバーが残作業ゴリゴリやっているのかもしれません。よって、アップデート後のバージョンの確認は時間を空けてから行ってみてください。

参考ページ