さくらのレンタルサーバにLaravelアプリ公開したいんだけどできる?
やってみましょう。
今回はさくらのレンタルサーバにLaravelアプリを公開するっていうことをやっていきます。
この記事でやること
- ドメインの追加
- さくらのレンタルサーバのPHPバージョンの変更
- Composerをインストール
- Laravelアプリをさくらのレンタルサーバにアップロード
- DBを作成
- .envの編集
- .htaccessの編集
- ブラウザからアクセス!!
さくらのレンタルサーバ にLaravelアプリケーションを公開してみたい方は多少参考になるかもしれません。
Laravelアプリ公開していきましょう。
公開するアプリケーション
今回公開するアプリケーションはこれです。画面ではデータベースからtodoを引っ張ってきて表示しています。
環境としてはこう。
$ php -v
PHP 8.1.0 (cli) (built: Nov 30 2021 06:20:01) (NTS)
$ php artisan -V
Laravel Framework 9.31.0
$ composer -v
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
/_/
Composer version 2.1.14 2021-11-30 10:51:43
これをさくらのレンタルサーバに公開していきますよ。
さくらのレンタルサーバにLaravelアプリを公開する手順
Laravelアプリを公開していくんですが、こういう手順でいきたいと思います。
- ドメインの追加
- さくらのレンタルサーバのPHPバージョンの変更
- Composerをインストール
- Laravelアプリをさくらのレンタルサーバにアップロード
- DBを作成
- .envの編集
- .htaccessの編集
- ブラウザからアクセス!!
長いね・・・
まあしょうがないですね・・・
アプリケーションにはDBからデータを取得しているので、さくらのレンタルサーバでDBの作成もします。
やっていきましょう。
ドメインの追加
アプリケーションを公開するドメインを追加します。
以下の記事でお名前.comで取得したドメインをさくらのレンタルサーバで使えるようにする設定を書いているので、よかったら参考にしてみてください。
-
お名前.comで取得したドメインをさくらのレンタルサーバーで使う方法
2022/9/28
この記事ではお名前.comで取得したドメインをさくらのレンタルサーバーで使う方法を書いていきます。 ...
SSH接続する
サーバーにSSH接続して作業をしていくんですが、SSH接続の方法が分からなければ以下の記事を参考にしてみて下さい。
-
さくらのレンタルサーバでSSH接続する方法!【パスワード認証・公開鍵認証】
2022/9/28
この記事ではさくらのレンタルサーバでSSH接続する方法について書いていきます。 さくらのレンタルサー ...
さくらのレンタルサーバのPHPバージョンを変更する
さくらのレンタルサーバでは管理画面から言語のバージョン設定を行うことができます。
PHPバージョンを変更したいんですが、できればローカルのLaravelアプリのPHPバージョンと同じものにしたいです。なかったらできるだけ近いものにします。
[スクリプト設定→言語のバージョン設定]と進みましょう。
PerlとPHPのバージョン設定ができるけど、今回はPHPを変更したいのでPHPの設定を変更します。
設定で好きなバージョンのPHPにすることができますよ。
また、モードはモジュール版とCGI版を選べますが以下のように書かれていますね。
動作不良等がなければ「モジュール版」の利用をおすすめします。PHPの実行パフォーマンスが大幅に改善されます。
8.0がこの記事を書いている現在だと一番新しいですね。
Composerをインストールする
Composerも入れます。Composerのサイトを参照しつつインストールします。
Composerのバージョンも実際にアプリケーションで使っているバージョンを入れるといいです。(下記は特にバージョン指定していませんが--versionで指定することができます。)
$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$ php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
$ php composer-setup.php
$ php -r "unlink('composer-setup.php');"
インストールしたら移動させます。
$ mkdir -p .config/composer/vendor/bin/
$ mv composer.phar .config/composer/vendor/bin/composer
.bash_profileに移動させたパスを追加します。
$ vi ~/.bash_profile
PATH=$HOME/.config/composer/vendor/bin:$HOME/bin:$PATH
$ source ~/.bash_profile
これで確認するとComposerがインストールされました。
$ composer -v
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
/_/
Composer version 2.4.2 2022-09-14 16:11:15
Laravelアプリをさくらのレンタルサーバにアップロードする
SFTP接続する
アップロードはFTPソフトを使ってやっていきます。
FTPソフトでさくらのレンタルサーバに接続する方法は以下の記事で書いているので、よかったら参考にしてみてください。
-
さくらのレンタルサーバでFTP/SFTP接続する方法を紹介します。
2022/9/30
そんな疑問を解消するためにこの記事では、さくらのレンタルサーバでFTP接続する方法を書いていきます。 ...
公開するフォルダを作成する
Laravelアプリのvendor以外をアップロードします。
公開する場所はさくらのレンタルサーバで設定できるWEB公開フォルダです。
もし作成していなかったらここのフォルダを作成しておきましょう。
Laravelアプリをアップロードする
作成したLaravelアプリをWEB公開フォルダにアップロードします。
DBの作成をする
Laravelアプリで使うデータベースをさくらのレンタルサーバで作成します。
新規作成をクリック。
データベース名を入力してデータベースの作成をしましょう。
すると作成したデータベースが表示されました。
.envを編集する
.envを編集します。
APP_NAME=MyApp
APP_ENV=production
APP_DEBUG=false
APP_URL=https://自分のドメイン
APP_KEY=
DB_CONNECTION=mysql
DB_HOST=データベースサーバー名
DB_PORT=3306
DB_DATABASE=作成したデータベース名
DB_USERNAME=作成したユーザー名
DB_PASSWORD=作成したパスワード
DB_PASSOWORDがわからなかったら、[管理画面からデータベースパスワードの変更]をすることができるのでするといいでしょう。
ちなみに設定するDB情報はこれです。
APP_KEYの作成
$ composer update
$ php artisan key:generate
バージョンが合わずにエラーが起きたので、composer update後に実行しました。(composerとPHPのバージョンによるエラーだった)
Migrate実行
migrateを実行してテーブルを作成します。
$ php artisan migrate
データも必要なら入れておこう
表示に必要なデータがあるなら、それをSeederか何かで入れておくといいでしょう。
作るのが面倒なら管理画面からphpmyadminが使えるのでそこからいじっていれることもできます。
.htaccessの作成
そのままだとLaravelの画面を表示できないので、.htaccessをいじります。今回WEB公開フォルダをwww/ドメイン名にしているので、ドキュメントルート配下になります。
- ドキュメントルート・・・/home/ユーザー名/www/ドメイン名
ただこれだとLaravelアプリケーションの表示をするのができません。.htaccessをいじって向き先を変更します。
.htaccessを編集する
# /home/ユーザー名/www/ドメイン名
$ vim .htaccess
<Ifmodule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ app/public/$1 [QSA,L]
</IfModule>
RewriteRule ^(.*)$ app/public/$1 [QSA,L]のappは自分のアプリケーションフォルダ名にしてください。今回はappっていう名前だからそうしているだけです。
cacheコマンドを実行する
Laravelのページにデプロイプロセスの中で実行するように書かれているので、実行します。
アプリケーションをプロダクションへデプロイする場合、デプロイプロセスの中で、確実に
config:cache
Artisanコマンドを実行してください。多くのルートを持つ大きなアプリケーションを構築した場合、デプロイプロセス中に、
route:cache
Artisanコマンドを確実に実行すべきでしょう。実機環境へアプリケーションをデプロイする場合は、その手順の中で
Laravel9.xデプロイview:cache
Artisanコマンドを実行すべきでしょう。
$ php artisan config:cache
$ php artisan route:cache
$ php artisan view:cache
ブラウザから確認する
ここまでやったらブラウザから確認してみましょう。無事表示されましたね。
環境を確認する
$ php -v
PHP 8.0.21 (cli) (built: Jul 20 2022 21:19:09) ( NTS )
Copyright (c) The PHP Group
$ php artisan -V
Laravel Framework 9.33.0
$ composer -v
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
/_/
Composer version 2.4.2 2022-09-14 16:11:15
途中でComposerのバージョン合わなくてcomposer updateしたおかげでローカルにあったLaravelアプリとLaravelのバージョンが新しくなってしまいましたね。
Composerもバージョン気にせずにインストールしてしまったので、インストール時にバージョン指定してやるべきでした。
できるだけローカルのアプリとバージョン合わせられるように頑張りましょう。
まとめ
さくらのレンタルサーバにLaravelアプリを公開するっていうことをやりましたが、やったこととしては以下です。
- ドメインの追加
- さくらのレンタルサーバのPHPバージョンの変更
- Composerをインストール
- Laravelアプリをさくらのレンタルサーバにアップロード
- DBを作成
- .envの編集
- .htaccessの編集
- キャッシュの削除
- ブラウザからアクセス!!
手順としては長いけど、順番にやっていけばできなくはないです。ちょっと面倒だな・・・とは思いますが。とはいえ指定したドメインで見ることができたので、試してみたい方はさくらのレンタルサーバでやってみるといいかもしれませんね。