💭

Laravelアプリをロリポップで動かしたメモ

2021/03/28に公開

記事の概要

Homesteadで開発していたLaravelのアプリをレンタルサーバのロリポップで動かした時の自分なりの作業記録になります。
*アプリ概要
-Bitbucketプライベートリポジトリでバージョン管理
-Laravel5.8

あてにしていたサーバのphpバージョンが低すぎた

アプリが完成して、いざアップしよう!と思っていたところ、当初の目的にしていたレンタルサーバhetemlのphpバージョンが低すぎたため諦めざるを得ない状況に。(このためにLaravel5.8にしたのに…!)
途方にくれましたが、そういえばロリポップのアカウントを放置していて(ライトプランでメールアドレスだけズルズル使っていた)そこでもLaravelが設置できると聞き検討してみる事にしました

ロリポおじさん復活していた

ロリポップサーバですが、ちょっと見ない間にプランが色々増えてて
上位プランはマルチドメイン対応でデータベースが無限に作れたり、さらにはクラウドなどもやってて驚きました。少し前はあったチカッパというブランドもロリポップに吸収されて上位とされるhetemlよりもコスパが良くなっているようです。
ロリポおじさんもいつの間にか復活してたんですね…
https://lolipop.jp/pelolincho/

使用していたのはライトプランでしたがSSHが使えない。という事でコスパの良さそうなハイスピードプランを選択しました。(なぜかスタンダードと値段が変わらない)入金後、即反映されました。
https://lolipop.jp/pricing/

SSHで接続

git cloneでプロジェクトをもってきたいので設定します。

$ ssh lolipop

まずこれでログインできるように。参考記事
https://wave-tech.site/2017/11/07/lolipopのレンタルサーバにパスフレーズ無しでログイ/

BitbucketのSSH鍵に関してはこの記事
https://resowork.com/wordpress-theme-git

参考にさせていただきました。
接続確認コマンド

$ ssh -T bitbucket.org

どちらの接続も確認出来たので、Laravelをインストールするための下準備をしていきます。

composerインストールとパスを通す作業

ロリポップにsshログイン後、コンポーザーをインストールする

参考記事
https://31navi.com/lolipop-laravel

独自ドメイン設定の前提なので、任意のディレクトリを作りそこで下記を実行しました。
web直下でも良かったのかも?そもそもcomposerも最初から入っていた?
記事では/usr/local/php/7.3/bin/phpでしたが、サーバ設定が7.4になっていましたので

$ /usr/local/php/7.4/bin/php -r "eval('?>'.file_get_contents('https://getcomposer.org/installer'));"
$ export PATH="$PATH:/usr/local/php/7.4/bin"

php -v も composer -v も表示されるようになりました。
いよいよ、自分のプロジェクトをcloneします

$ git clone git@bitbucket.org:xxxxxxxxxx.git

clone出来たら
cd/リポジトリ名
でLaravelのルートに入り、

$ composer install

完了!今の所順調です

$ chmod -R 777 storage
$ chmod -R 775 bootstrap/cache

特定フォルダのパーミッション変更。

.envファイルを変更。

$ vi .env

dbなどの設定箇所を十分に確認して保存したら

$ php artisan key:generate
Application key set successfully.

最後に

$ php artisan migrate

これでdb接続の確認できればひとまず完了!

$ php artisan storage:link 

シンボリックリンクを貼ります

参考記事
https://blog.rie-k.com/2020/07/12/ヘテムルにlaravelをデプロイする方法-laravel5-8/

コントロールパネルで独自ドメイン設定

あとはロリポップのコントロールパネルから取っておいた独自ドメインの設定をするだけですが少し迷ったのでメモしておきます
例としてpwdコマンドで出した下記のフォルダを公開フォルダにしたい時、どこのパスなのか?という問題です

/home/users/2/サーバ名/web/hogehoge/laravel/public

ズバリ、
/home/users/2/サーバ名/web/
以下の部分です。上の例でいうと

hogehoge/laravel/public

がコントロールパネルで指定する公開フォルダです。FTPで入れる領域以下という事ですね。
これで無事に公開されました。

メンテナンスモードにしておく

動作確認できましたが、まだコンテンツが入っていないのでメンテナンスモードにします。

php artisan down --message=“本公開までしばらくお待ちください”

ひとまず、これにて完了。

追記:ハイスピードプランについて

画像をアップしたけど画像が全く表示されないので色々やってみたのですがうまくいかず、サポートに問い合わせ。

ご質問いただいた内容について、ハイスピードプランの
Litespeedサーバーでは、セキュリティの仕様としてドキュメントルート外の
ファイルに対するシンボリックリンクに対して直接アクセスができないようになっています。
ご希望に添えず誠に申し訳ございませんが、
シンボリックリンクするのではなくハードリンクしていただく方法をご検討いただけますようお願いいたします。

ということで、独自ドメインでLaravelアプリを使いたい方はシンボリックリンク、storage:linkが効かないのでご注意ください。

Discussion