ソース反映がFTPでしかできない
iCLUSTAではSSHは使用できない。FTPのみ。
そのため、git clone
やcomposer install
ができないので、
重たいvendorファイルやその他ソースをFTPでアップする必要がある。
当然npmも使えないので、viteの場合はローカルにてnpm run build
した後に、
ビルドされたpublic/buildディレクトリをFTPにてアップロードする。
ビルドファイルを直接アップするので、node_modules
はアップ不要
(重いから上げないほうがいい)
シンボリックリンクが貼れない
SSHは使用できないし、ファイルマネージャーにもシンボリックリンク機能はないので、
以下のようなcgiを設置して使用する必要があった。
https://qiita.com/rdonster/items/e99d1f3db7de280de36d
cronの定期処理について
管理画面上でcron設定は行えるが、
phpコマンドが使えないのでschedule:runが実行できない...
そのためphp artisan schedule:runを実行する
メソッドを別途作成して呼び出す必要があった
- routes/web.phpに以下を追記
Route::get('/run-schedule', function () {
\Illuminate\Support\Facades\Artisan::call('schedule:run');
\Illuminate\Support\Facades\Log::info('schedule:run at '. now()->format('Y.m.d H:i'));
return 'Scheduler run successfully.';
});
- schedule_run.phpをLaravel直下にアップ
#! /usr/local/php81/bin/php
<?php
$url = '{サイトURL}/run-schedule';
$response = file_get_contents($url);
if ($response === false) {
echo 'Error accessing the URL.';
} else {
echo $response;
}
※ 権限は755にする
※ 1行目の! /usr/local/php81/bin/php
は自身のPHPのバージョンに変更する
※ $url
には自身のサイトURLを入れる
- Web > cron設定で上記PHPファイルを指定
{ドメイン名}/schedule_run.php
https://helpcenter.gmocloud.com/iclusta/s/article/ch-2742#02
.envの設定確認
- DB接続情報
データベース > 接続情報で確認
- SMTP情報
メール > 一覧のメールアドレスクリックで確認
通常のsmtp.XXX
をホストにすると証明書エラーが出たので、
2つ目のmail.XXX
を使用した。こんな感じ↓
MAIL_MAILER=smtp
MAIL_HOST=mail.red.shared-server.net
MAIL_PORT=465
MAIL_USERNAME=no-reply@{ドメイン}
MAIL_PASSWORD={パスワード}
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=no-reply@{ドメイン}
MAIL_FROM_NAME="${APP_NAME}"
GMOのiCLUSTAがLaravelに不親切で苦労した忘備録...