まえおき
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が有効化されたら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 ~]$ php
-bash: php: コマンドが見つかりません
おっと、パスは通っていないようです。調べてみると
ロリポップのサーバーでは/usr/local/php/7.4/bin/
にphpが居るようなので、ちょっと試してみます。
$ /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に移動して
$ cd ~
ユーザー領域直下にcomposerをインストールするのもどうかと思うのでbin
ディレクトリを作りまして
$ mkdir bin
exment公式にしたがってcurl -sS https://getcomposer.org/installer | php -- --install-dir=$HOME/bin/
を実行、composerをインストール(ダウンロード)します。
$ 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
確認します。
/usr/local/php/7.4/bin/php ./bin/composer.phar -v
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
/_/
Composer version 2.3.7 2022-06-06 16:43:28
composerがインストールされました。
一応公式の言うとおりcomposerの名前を変更しておきましょう。
mv bin/composer.phar bin/composer
exmentのインストール(ダウンロード)
laravel(exmentプロジェクト)をいれるフォルダを作成します。
$ mkdir laravel
laravel(exmentプロジェクト)を入れるフォルダに移動します。
$ cd laravel
exmentのコードをダウンロードします。
$ wget https://exment.net/downloads/ja/exment.zip
exment.zipがダウンロードできましたら、解凍します。
$ unzip exment.zip
解凍ができたので、ZIPファイルは削除します。
$ rm exment.zip
参考に、今ディレクトリ構成がこんな感じになっています。
|- bin
|- laravel
|- web
laravel
- exment
- publicほか
なってなかったらどっか間違えてるので、やり直したり移動したりしましょう。
公開ディレクトリにexmentへのシンボリックリンクを作る。
exmentはweb配下
のディレクトリではなく、ホームディレクトリに配置しました。
したがって外部からアクセスできません。正しい方法です。
逆にアクセスできてしまうと、MySQLのパスワードが記載された.env
ファイルとかが漏れてしまいます。
外部からアクセスできないとなるとLaravelとして機能しませんね。
なので、シンボリックリンク(ショートカット)を作って、Laravelの中のpublicフォルダだけは外部に公開します。
ということで、
公開ディレクトリにlaravel/exment/public
のシンボリックリンク(ショートカット)を作成します。
$ ln -s $HOME/laravel/exment/public $HOME/web/exment/public
ln: シンボリックリンク `/home/users/X/your.user-name/web/exment/public' の作成に失敗しました: そのようなファイルやディレクトリはありません
ディレクトリを作っていなかったので怒られました。web/exment
を作成して再チャレンジします。
$ mkdir $HOME/web/exment
$ ln -s $HOME/laravel/exment/public $HOME/web/exment/public
できたようです。
アクセスして確認してみます。
http://{your.lolipop.domain}/exment/public/index.php
exmentのadmin画面/admin
にアクセスしてみます。
きちっと/admin/install
へリダイレクトされ、インストール画面が表示されました!
ここまで結構素直に行きました。
MySQLとの接続
データベースが作成できたら、その接続情報をSSHで接続したexment本体に書き込みます。
DB_CONNECTION=mysql
DB_HOST=mysqlXXX.phy.lolipop.lan
DB_PORT=3306
DB_DATABASE=LAAXXXXXXX-createdDatabaseName
DB_USERNAME=LAAXXXXXXX
DB_PASSWORD="yourpassword"
では、admin/install
から先に進んでみます。次へを押すと、接続されていない場合は警告が出ます。。。
緊張しました。
DBの接続が完了しました。
あとはインストールできるかどうかですね。
このあとにでもPHPのモジュール不足で、コケそうな気がしますが(汗)
インストール前の警告の除去
とりあえず警告表示を剥がしていかないとはじまりません。
.htaccessの設定でphp.ini設定を上書きしていきます。
まずは.htaccessでの上書き設定を有効化します。
次に、/exment/public/.htaccess
の</IfModule>
のとじカッコが終わった後にphp_value
の上書きを追記します。
</IfModule>
php_value memory_limit 512M
php_value max_execution_time 240
php_value max_input_vars 3000
あとはcomposerだけです。
composerの警告の除去
/exment/.env
にEXMENT_COMPOSER_PATH
の設定を書き込みます。どこでもいいですけど末尾とかにしましょう。
EXMENT_COMPOSER_PATH=/home/users/X/your.user-name/bin/composer
これでcomposerへのPATHが通りましたね!
警告が出たまま・・・・・・!!!
ということに1時間ほど費やしました。
が、公式によると
Composerインストール
︙
※実際にcomposerがインストールされているにも関わらず、警告が表示される場合があります。これは、Webサーバーを動作させるユーザーからcomposerのパスが通っていない、権限が足りないなどの理由があります。
composerが正常にインストールされており、実際にアップデートを実施するユーザーが実行可能な場合は、この警告は無視してください。
※composerのパスを通すためには、一度こちらの「composerのパスを通すには」をご検証ください
とあります。
めっちゃ怖いですが、警告は無視する ことにしました。
時間がかかります。実験兼ねてモジュール版にせずCGI版で動かしていることもあって時間がかかります。。。
飲み物でも飲んで待っていると良いでしょう。
動きました。
ここまでくればまぁほぼ動くでしょう。
ビビってましたが、LiteSpeedは全然関係ありませんでした。
お疲れ様でした。
Laravelのexmentはロリポップでも動く
ちょっと半泣きで作業していましたが、無事動くところまでたどり着くことができました。
動かない的なWeb情報を探していましたが、実験した甲斐がありました。ロリポップ様も進化し続けているようです。
今回ドメインはつけていませんが、そのあたりは何も問題ないでしょうし、疲れたのでこのへんで記事を終わりたいと思います。
追記:メールの設定
これがないと始まらない感じがするので、動いて感動しているついでに残り書きます。
ロリポップで新しいメールアドレスを作成します。
そのSMTP情報をそのままExmentに書くだけですぐ動きました。
保存したらテスト送信。
すぐ届きました。
おすすめです。
紹介