3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ロリポップサーバーでLaravelのデータベースソフトExmentを動かす

Last updated at Posted at 2022-06-20

まえおき

Ubuntuで作業しています(あまり関係ありませんが)。
作業記録ですが、実験的な意味合いと、この作業記録が誰かの役に立てばと思っています。

事前に終わっている準備

  • ロリポップの契約(スタンダードプラン)

ロリポップの懸念点

  • WebサーバーがApacheでもnginxでもなく、LightSpeedらしい、という点。
  • ziparchiveなど、Exmentに必要なPHPモジュールがコントロールパネルの設定項目からは有効化できなさそう。

これから先も公式が動作確認の対象としていない以上、安定インストールはしにくいと思う。
過去に断念した人は、MySQLのバージョンが追いついていなかったことが原因だったそう。
自分はたまたま運がいいのか、ロリポップが頑張っているのか、要件は揃えられそうなので、頑張ってみる。

必要な環境の用意

2022年6月22日時点でのExment v4.4.0の必要な要件を整理します。

  • PHP7.3~7.4
  • MySQL 5.7.8以上8.0.0未満(MariaDB 10.2.7以上)

動きそうだと判断した。

SSHで接続してみる

ロリポップではSSHは有効化しないと初期では接続できないので、会員メニューから有効化を行う。

ssh_enable.png

SSHが有効化されたらTerminalからポート番号を指定して接続。
普通SSHといえば22番ですが、僕の環境のロリポップでは2222番のでした。
ssh ユーザー名@ホスト名 -p ポート番号で接続できるので、接続。

~
$ ssh your.user-name@ssh.lolipop.jp -p 2222

いつもの聞かれるやつはYes、知ってるホストです。

~
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

パスワードを聞かれるので会員メニューからコピペして入力

~
ユーザー名@ssh.lolipop.jp's password: 

入るだけなら結構普通に入れるんですね。

[your.user-name@stdXXX ~]
[your.user-name@stdXXX ~]$
[your.user-name@stdXXX ~]
[your.user-name@stdXXX ~]$ php
-bash: php: コマンドが見つかりません

おっと、パスは通っていないようです。調べてみると
ロリポップのサーバーでは/usr/local/php/7.4/bin/にphpが居るようなので、ちょっと試してみます。

[your.user-name@stdXXX ~]
$ /usr/local/php/7.4/bin/php -v
PHP 7.4.30 (cli) (built: Jun 10 2022 15:02:01) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with the ionCube PHP Loader + ionCube24 v11.0.1, Copyright (c) 2002-2022, by ionCube Ltd.
    with Zend OPcache v7.4.30, Copyright (c), by Zend Technologies

phpが居ることが確認できました。

composerのインストール

homeにはすでにいますが、homeに移動して

[your.user-name@stdXXX ~]
$ cd ~

ユーザー領域直下にcomposerをインストールするのもどうかと思うのでbinディレクトリを作りまして

[your.user-name@stdXXX ~]
$ mkdir bin

exment公式にしたがってcurl -sS https://getcomposer.org/installer | php -- --install-dir=$HOME/bin/を実行、composerをインストール(ダウンロード)します。

[your.user-name@stdXXX ~]
$ curl -sS https://getcomposer.org/installer | /usr/local/php/7.4/bin/php -- --install-dir=$HOME/bin/
︙
︙
Composer (version 2.3.7) successfully installed to: /home/users/X/your.user-name/bin/composer.phar

確認します。

[your.user-name@stdXXX ~]
/usr/local/php/7.4/bin/php ./bin/composer.phar -v
   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 2.3.7 2022-06-06 16:43:28

composerがインストールされました。

一応公式の言うとおりcomposerの名前を変更しておきましょう。

[your.user-name@stdXXX ~]
mv bin/composer.phar bin/composer

exmentのインストール(ダウンロード)

laravel(exmentプロジェクト)をいれるフォルダを作成します。

[your.user-name@stdXXX ~]
$ mkdir laravel

laravel(exmentプロジェクト)を入れるフォルダに移動します。

[your.user-name@stdXXX ~]
$ cd laravel

exmentのコードをダウンロードします。

[your.user-name@stdXXX ~/laravel]
$ wget https://exment.net/downloads/ja/exment.zip

exment.zipがダウンロードできましたら、解凍します。

[your.user-name@stdXXX ~/laravel]
$ unzip exment.zip

解凍ができたので、ZIPファイルは削除します。

[your.user-name@stdXXX ~/laravel]
$ rm exment.zip

参考に、今ディレクトリ構成がこんな感じになっています。

|- bin
|- laravel
|- web
laravel
  - exment
    - publicほか

なってなかったらどっか間違えてるので、やり直したり移動したりしましょう。

公開ディレクトリにexmentへのシンボリックリンクを作る。

exmentはweb配下のディレクトリではなく、ホームディレクトリに配置しました。
したがって外部からアクセスできません。正しい方法です。
逆にアクセスできてしまうと、MySQLのパスワードが記載された.envファイルとかが漏れてしまいます。

外部からアクセスできないとなるとLaravelとして機能しませんね。
なので、シンボリックリンク(ショートカット)を作って、Laravelの中のpublicフォルダだけは外部に公開します。

ということで、
公開ディレクトリにlaravel/exment/publicのシンボリックリンク(ショートカット)を作成します。

[your.user-name@stdXXX ~]
$ ln -s $HOME/laravel/exment/public $HOME/web/exment/public
ln: シンボリックリンク `/home/users/X/your.user-name/web/exment/public' の作成に失敗しました: そのようなファイルやディレクトリはありません

ディレクトリを作っていなかったので怒られました。web/exmentを作成して再チャレンジします。

[your.user-name@stdXXX ~]
$ mkdir $HOME/web/exment
[your.user-name@stdXXX ~]
$ ln -s $HOME/laravel/exment/public $HOME/web/exment/public

できたようです。
アクセスして確認してみます。
http://{your.lolipop.domain}/exment/public/index.php

入ることができました。
lolipop.index.php.png

exmentのadmin画面/adminにアクセスしてみます。
lolipop.index.php.admin.png

きちっと/admin/installへリダイレクトされ、インストール画面が表示されました!

ここまで結構素直に行きました。

MySQLとの接続

まずはデータベースを作成します。
create_database.png

データベースが作成できたら、その接続情報をSSHで接続したexment本体に書き込みます。

.env
DB_CONNECTION=mysql
DB_HOST=mysqlXXX.phy.lolipop.lan
DB_PORT=3306
DB_DATABASE=LAAXXXXXXX-createdDatabaseName
DB_USERNAME=LAAXXXXXXX
DB_PASSWORD="yourpassword"

では、admin/installから先に進んでみます。次へを押すと、接続されていない場合は警告が出ます。。。
connecting_db.png

緊張しました。

connected_db.png

DBの接続が完了しました。

あとはインストールできるかどうかですね。
このあとにでもPHPのモジュール不足で、コケそうな気がしますが(汗)

インストール前の警告の除去

とりあえず警告表示を剥がしていかないとはじまりません。

.htaccessの設定でphp.ini設定を上書きしていきます。
まずは.htaccessでの上書き設定を有効化します。

php_settings.jpg

次に、/exment/public/.htaccess</IfModule>のとじカッコが終わった後にphp_valueの上書きを追記します。

.htaccess
</IfModule>

php_value memory_limit 512M
php_value max_execution_time 240
php_value max_input_vars 3000

composer以外の警告が消えました。
left_composer.png

あとはcomposerだけです。

composerの警告の除去

/exment/.envEXMENT_COMPOSER_PATHの設定を書き込みます。どこでもいいですけど末尾とかにしましょう。

.env
EXMENT_COMPOSER_PATH=/home/users/X/your.user-name/bin/composer

これでcomposerへのPATHが通りましたね!

left_composer.png

警告が出たまま・・・・・・!!!
ということに1時間ほど費やしました。

が、公式によると

Composerインストール

※実際にcomposerがインストールされているにも関わらず、警告が表示される場合があります。これは、Webサーバーを動作させるユーザーからcomposerのパスが通っていない、権限が足りないなどの理由があります。
composerが正常にインストールされており、実際にアップデートを実施するユーザーが実行可能な場合は、この警告は無視してください。
※composerのパスを通すためには、一度こちらの「composerのパスを通すには」をご検証ください

とあります。

めっちゃ怖いですが、警告は無視する ことにしました。

時間がかかります。実験兼ねてモジュール版にせずCGI版で動かしていることもあって時間がかかります。。。
飲み物でも飲んで待っていると良いでしょう。

戻ると、そこには感動の画面が待ち受けてくれていました。
complete!.png

動きました。
ここまでくればまぁほぼ動くでしょう。

ビビってましたが、LiteSpeedは全然関係ありませんでした。

お疲れ様でした。

Laravelのexmentはロリポップでも動く

ちょっと半泣きで作業していましたが、無事動くところまでたどり着くことができました。
動かない的なWeb情報を探していましたが、実験した甲斐がありました。ロリポップ様も進化し続けているようです。

今回ドメインはつけていませんが、そのあたりは何も問題ないでしょうし、疲れたのでこのへんで記事を終わりたいと思います。

追記:メールの設定

これがないと始まらない感じがするので、動いて感動しているついでに残り書きます。

ロリポップで新しいメールアドレスを作成します。

そのSMTP情報をそのままExmentに書くだけですぐ動きました。
メール設定.png
保存したらテスト送信。
テスト送信.png
すぐ届きました。
おすすめです。

紹介

参考

exment公式マニュアル

3
4
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
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?