この記事ではさくらのレンタルサーバでLaravelアプリケーションをデプロイするっていうことをやってみたいと思います。
- Laravelアプリを公開するドメインを追加する
- PHPバージョンを確認・変更する
- Composerをインストールする
- Laravelをインストールする
- .htaccessの編集をする
- ブラウザからアクセスして確認する
Laravelアプリケーションをさくらのレンタルサーバでどう公開できるのか、どんな風にやれるのか気になる方は見てみてください。
使用するさくらのレンタルサーバーのプランはスタンダード
契約しているさくらのレンタルサーバのプランはスタンダードです。
このスタンダードプランでLaravelアプリを公開するっていうことをやっていきます。スタンダードならSSH接続もできるので、SSH接続して作業していきます。
もしこれからさくらのレンタルサーバを使うっていう場合は、スタンダードかプレミアムがおすすめです。もしよければ以下の記事を見てみてください。
さくらのレンタルサーバにLaravelアプリケーションを公開する流れ
Laravelアプリケーションをさくらのレンタルサーバに公開するまでの流れとしては以下です。
- Laravelアプリを公開するドメインを追加する
- PHPバージョンを確認・変更する
- Composerをインストールする
- Laravelをインストールする
- .htaccessの編集をする
- ブラウザからアクセスして確認する
結構やることは多いけど、ある程度レンタルサーバーに備わっている機能を使うことができるので楽な部分は楽です。
ちょっと面倒な部分もあるけどやっていきましょう。
Laravelアプリを公開するドメインを追加する
Laravelアプリケーションを公開するドメインを登録しないといけないので、まずはそこからです。
ドメインをさくらのレンタルサーバに追加していない場合は以下の記事でお名前.comを使ったドメインの追加方法を書いているので、よかったら見てみてください。
さくらのレンタルサーバのPHPバージョンを確認・変更する
管理画面からPHPバージョンの確認と変更を行うことができます。
選べるバージョンは限られているけど、できるだけ公開したいアプリケーションのPHPバージョンに近いものにしておくといいです。
変更した後にSSH接続してphp -v
とかすると設定したバージョンに切り替わっているのが確認できると思います。
Composerをインストールする
ComposerはComposerのサイトにインストール方法が掲載されているので、それを参考に入れます。
$ 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');"
ディレクトリを作成してcomposerを移動させておきます。
$ mkdir -p .config/composer/vendor/bin/
$ mv composer.phar .config/composer/vendor/bin/composer
パスを通して完了です。
$ vi ~/.bash_profile
PATH=$HOME/.config/composer/vendor/bin:$HOME/bin:$PATH
$ source ~/.bash_profile
$ composer -v
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
/_/
Composer version 2.4.2 2022-09-14 16:11:15
これでComposerのインストールが完了したので、Laravelアプリケーションを作成していきましょう。
Laravelをインストールする
composerコマンドを使ってLaravelプロジェクトを作成します。
今回は/www/yellow-glass.siteでLaravelアプリケーションの作成コマンドを打ちます。
要はWEB公開フォルダとLaravelプロジェクトのディレクトリ位置を合わせたいだけです。
$ cd ~/www/yellow-glass.site
$ composer create-project laravel/laravel .
実行するとLaravelアプリケーションが生成されます。
.htaccessを編集する
LaravelはWebサーバーからpublicフォルダに接続されると画面が表示されるようになっています。さくらのレンタルサーバは、ドメインにアクセスされた際はWEB公開フォルダが参照されるようになっています。
本当はWebサーバーの設定をいじりたいけど、レンタルサーバーであるさくらのレンタルサーバではそこまではできません。
WEB公開フォルダではなく、publicフォルダにアクセスして欲しいので.htacecssを作成して向き先を変更します。
$ vim /home/xxxwww/yellow-glass.site/.htaccess
<Ifmodule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [QSA,L]
</IfModule>
これでドメインにアクセスされたら直下のpublicフォルダを参照するようになりました。
この辺りはどこにLaravelアプリを作成したかなどのディレクトリ構造によって変わってくるので、自分のアプリケーションに合うように編集するといいです。
Laravelアプリケーションにアクセスする
ブラウザからドメインにアクセスしてみるとLaravelの画面が表示されました。
ここまでで表示はOKですが、データベースとの接続もしたいのでやっていきましょう。
データベースを作成する
データベースはさくらのレンタルサーバの管理画面から作成することができるので作成します。
必要な情報を入力していきます。
作成するボタンを押すとデータベースが作成されます。
初回作成時にデータベースサーバーへの接続の際のパスワードが設定されるので、そのパスワードが他のデータベース作成時にも適用されます。
試しに2つデータベースを作ってみてみるとこんな感じで同じデータベースサーバーに作成したデータベースがありますね。
$ mysql -u ユーザー名 -h データベースサーバー名 -p
データベース接続情報を変更する
作成したデータベースに接続できるようにLaravelアプリケーションの.envを編集します。
DB_CONNECTION=mysql
DB_HOST=データベースサーバー名
DB_PORT=3306
DB_DATABASE=作成したデータベース名
DB_USERNAME=ユーザー名
DB_PASSWORD=設定したパスワード
赤い線を引いた部分が接続情報になるので、それらを.envに記載しておきましょう。
migrationファイルを作成する
migrationファイルを作成してmigrateしてみます。
$ php artisan make:migration create_todos_table
INFO Migration [2022_12_15_030654_create_todos_table] created successfully.
public function up()
{
Schema::create('todos', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->timestamps();
});
}
これでmigrateするとちゃんとできましたね。
これで作成したデータベースとの接続もできたので、あとはコードを書いてDBにデータを挿入したり引っ張ってきて表示したりということができるはずです。
まとめ
さくらのレンタルサーバでLaravelをインストールするっていうことをやってみたけど、インストールして動くところまでできましたね。今回やったことは以下です。
- Laravelアプリを公開するドメインを追加する
- PHPバージョンを確認・変更する
- Composerをインストールする
- Laravelをインストールする
- .htaccessの編集をする
- ブラウザからアクセスして確認する
データベースとの接続も確認できたので、EloquentやDBファサード使ってデータの取得などもできるはず。もしローカルで開発したLaravelアプリケーションを公開してみたかったら試してみるといいでしょう。