初めてレンタルサーバでデプロイしてみました。
いろんなブログを参考に進めたのですがかかなり詰まったので自分用に残すメモ。
今回は元々作ってGithub上に置いていたものをクローンしました。
色々ブログを参考にやってみたけど結局これ。
Laravelプロジェクトのpublicからシンボリックリンクを貼れば問題なく動くのだと思う。
ln -s /home/{FTPアカウント名}/{laravelプロジェクト名}/public /home/{FTPアカウント名}/www/{シンボリックリンク名}
ローカル環境でシンボリックリンクはつかったことあったのですがコマンドで入力が初めて。
シンボリックリンクが何なのかもわかっておらずまた、さくらサーバー上では無効なリンクと表示されるのでできているかどうかがわからなかった。
手順
さくらのレンタルサーバのサーバコントロールパネルからデータベースを作成
Tera TermにSSHでログイン。
必要な情報はさくらインターネットのレンタルサーバ申し込みをした際に、さくらインターネット側から届く「仮登録完了のお知らせ」というタイトルのメールの中に記載されています。
pwd
/home/{アカウント名}
mkdir laravel
laravelフォルダの中にLaravelプロジェクトのデータを取り込む
cd laravel
git clone https://something.git
composerをインストール。
curl -sS https://getcomposer.org/installer | php
php composer.phar
composerを使って/vendor/のデータをインストールする
php composer.phar install
.envを作成。
vim .env
.envに情報を入力する。できたらキーを作成。
php artisan key:generate
マイグレーション
php aritsan migrate
ここからいろんな方のブログや記事を参考に公開フォルダ(www)に新しくフォルダを作り、laravelプロジェクトのpublicの中身のコピーしたのですが。こんな感じ↓
cp -r /home/アカウント名/Laravelプロジェクト名/public/* /home/アカウント名/www/フォルダ名
そしてindex.phpを修正したのですが。こんな感じ↓
require __DIR__.'/../../Laravelプロジェクト名/vendor/autoload.php';
$app = require_once __DIR__.'/../../Laravelプロジェクト名/bootstrap/app.php';
このやり方だとGit pullしてもwww/フォルダ名の中にあるCSSやJSへgit上での変更は読み込まれません。なのでサーバコントロールパネルのファイルマネージャーから手動で書き換える必要がありました。
また、画像を読み込ませたくてもローカルで動いていたコードの書き方だとviewに反映せず、ずっと詰まってました。。
下のようにシンボリックリンクを貼ってみたところ動いた。
ln -s /home/{FTPアカウント名}/{laravelプロジェクト名}/public /home/{FTPアカウント名}/www/{シンボリックリンク名}
# sakuraという名前のシンボリックリンクがwww下につくられます。
ln -s /home/{FTPアカウント名}/{laravelプロジェクト名}/public /home/{FTPアカウント名}/www/sakura
フォルダのコピーとかせずにただpublicからリンクを貼ればよかったぽいです。
シンボリックリンクは公開するフォルダの中にsymlink()を書いたPHPファイルを作ってweb上で読み込ませることでも作成できます。
かなり時間がかかった。
サーバーは全然わからないことだらけで勉強になりましたーー。
作ったもの。
https://kasihkasih.net/