
今回はConoHaWINGでLaravelアプリケーションを公開するっていうことをやっていきたいと思います。ただ情報があまりなくて手探り状態でやるっていうのが正直なところ。
無駄な部分もあるかもしれないけど、ConoHaWINGでLaravelで作成したアプリケーションを公開したい方は参考にしてみてください。
ローカルでLaravelアプリケーションを作成して、それをConoHaWINGにアップロードして公開するっていう流れでやっていきます。
目次
使用するConoHa WINGのプラン
今回使うConoHa WINGのプランはWINGパックのベーシックプラン。
ConoHaWINGは初期費用もなく使えるのがいいですよね。ちなみに時間単位で使うことのできる通常プランもあるから、サクッと試したいぐらいだったらそっちの方が良いかもしれない。
PHPのバージョン確認
Laravel使うにはPHPが必要だからPHPの使えるバージョンを確認しておこう。管理画面からバージョンを切り替えることができる。
ただ注意点としてPHPのバージョンの切り替えは各ドメイン単位じゃなくてサーバー単位で行われるから、全てのドメインに影響がある。
サーバー単位での切替になるため、サーバーに登録されたすべてのドメインに影響があります。
今回はPHP8.0でやりたいからPHPのバージョンは8.0にしておきます。
Laravelアプリケーションをローカルで作成する
まずはローカルでLaravelアプリケーションを作成します。Dockerを使って作るけど、nginxとphp、mysqlの構成でいきます。
phpのimageはphp:8-fpm、mysqlはmysql:5.7です。立ち上げたDockerコンテナの中に入ってLaravelのバージョンを確認すると8.74.0でした。
- Webサーバー・・・nginx
- データベース・・・mysql5.7
- phpのimage・・・php:8-fpm
- Laravel・・・8.74.0
アプリケーションは超適当で/drinksページでデータベースのdrinksテーブルから飲み物の名前を取得して表示するっていうだけのやつ。
こんなゴミみたいなアプリケーションを公開することはないだろうけど、今回はLaravelアプリケーションをConoHaWINGで動かすっていうのが目的だからこれでいきます。
データベースとユーザーの作成
ConoHaWINGの管理画面からデータベースとユーザーを作ることができるから両方作成しましょう。
DB接続情報の変更
今作ったデータベースに接続するようにコードも書き換えないといけないので書き換えましょう。今回は.envで接続情報を管理しているので、ConoHaWINGで作成したデータベースに合うように値を変更します。
DB_HOST=〇〇.conoha.ne.jp
DB_PORT=3306
DB_DATABASE=作成したデータベース名
DB_USERNAME=作成したユーザー名
DB_PASSWORD=作成したパスワード
ConoHaWINGにSSH接続する
SSH接続したいのでConoHaWINGの管理画面からSSH Keyを取得します。
取得したら秘密鍵がダウンロードされるからそれを使ってSSH接続する。SSH接続で使う情報はKeyを作成すると見ることができる。
これらの情報を使ってSSH接続できるか確認してみよう。
実行してConoHaWINGのサーバーに入れたらOKです。
FTPソフトでアプリケーションをConoHaWINGにアップロードする
今回はCyberduckを使ってConoHaWINGにアプリケーションのコードをアップロードするけど、使い慣れているものでOKです。ConoHaWINGのCyberduckの設定に設定方法が書かれているけど、FTP接続だけしか書かれていないですね。。
SFTPでやります。
接続したらLaravelのアプリケーションを公開したいドメイン配下にアップロードしておく。
migrateしてテーブル作成
アップロードしたらSSH接続してmigrateを実行します。アップロードしたLaravelアプリケーションのディレクトリでphp artisan migrate。データベースの接続情報が合っていればmigrateされると思います。
migrateを実行したら必要なデータはseederやphpmyadminから入れておくといいでしょう。
シンボリックリンクを貼る
そのままだと作成したアプリケーションの画面が表示されないので、シンボリックリンクを貼っておきます。エックスサーバーでも同じようなことやったけど、そのノリでいける気がする。
〇〇の部分は以下などから見ることができます。
.htaccessを編集する
アクセスした時にLaravelで作成したアプリケーションのページを表示させたいので、.htaccessを少し編集します。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [QSA,L]
</IfModule>
アプリケーションの.htaccessのmultiviews部分をコメントアウト
Laravelで作成したアプリケーションのpublicディレクトリ配下に.htaccessがあると思うんだけど、以下の部分をコメントアウトしないとエラーが起きて表示できませんでした。
#以下をコメントアウト
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
うーんエックスサーバーでやった時にはこんなことしなくても動いた記憶があるんだけどなあ。
ドメインにアクセスして確かめる
これでドメインにアクセスしてみると作ったものが表示されました。
データベースからも情報を取得して表示できていますね。
ConoHaWINGでもLaravelアプリケーションを公開できた
ConoHa WINGでLaravelアプリケーションを公開するっていうことをやってみたけど、一応サイトを表示することはできました。何かインターネットに公開したいものがある時には使ってみるといいかもしれませんね。