#Symbolic linkをつかってレンタルサーバのディレクトリ変更を最小限でおさえてアップロードする。
Nov 6, 2018にアップしたこちらの動画をありがたいことに、いまだに見てくださっておられる方々がいてまして、文面にあげておこうかと思いました。とても勇気がわきます、ありがとうございます。
Laravelを簡単にレンタルサーバにアップする方法
##Hard link との違い
Hard link は、Hard link を削除することで参照先ファイル・ディレクトリが削除される。
Symbolic link は、Symbolic link を通じての参照先ファイル・ディレクトリの削除はできない。
######こちら@att55さま、『貼ろうよ Symbolic link』を参照させて頂いております。
とういうことなので、Symbolic Linkを使用しております。
#使用環境
####ハード
GoDaddy(cPanel)
Windows
PuTTy
Dosコマンド
####ソフト
Bush
PSCP
#目的
レンタルサーバとLaravelのバージョンが違っていたり、ローカル側の環境をレンタルサーバ側にスタティックに合わせてからアップしなくてもよいように、最初のコミットだけで次回から一連の決まった方法でレンタルサーバに更新できるようにしたい。
#方法
####何もやっていないレンタルサーバで一からLaravel環境を整備
Laravelの準備
ls /***ディレクトリの中身を確認***/
wget https://getcomposer.org/installer /***Composerをダウンロード***/
ls /***「installer」ファイルがあることを確認***/
php installer --check /***Laravelのバージョンチェック←CorrectとでればOK***/
php installer /***composer.phar*と.composer/ができる***/
rm -f installer /***いらなくなったインストーラーを削除***/
テスト用にプロジェクトをつくる
php composer.phar create-project laravel/laravel laraelTestRun
SymlinkをはってディフォルトのPublicをLaravelに変更
(symlinkをはってLaravelのpublicを、あたかもレンタルサーバディフォルトのpublic_htmlであるかのように見せる。)
mv public_html public_htmlBK /***名前変更してWWW直下のパブリックを無効にする。***/
ln -s laravelTestRun/public public_html
ls /***public_html@という新しいディレクトリができていることを確認***/
ブラウザから確認できればOK
####ローカルからLaravelプロジェクトをアップロードする
- 普通に圧縮したファイルをレンタルサーバのコンソール画面からアップロードします。
- コンソール画面からZIPファイルを解凍します。(結局この方法が一番早くローカルのLaravelを移せました)
- 先にテストしたLaravelプロジェクトのSymlinkをunlinkします。
unlink public_html
もし同じプロジェクトであった場合には、以下のように解凍する前に古い方を再帰的に削除してください。
rm -rf laravelTestRun
- もう一度、アップロードしたプロジェクトのために、SymlinkをはってディフォルトのPublicに変更
####アップロード後の作業
######Dosから、PSCPをつかって環境ファイルやイメージファイルをアップロードします。
環境ファイル
C:\User\neko>pscp c:\savefiles\.env neko@ssh.laravelTestRun.com:/home/neko/laravelTestRun/
イメージファイル(ブログで/storage/app/public/に入るようにしてます)
C:\Users\neko>pscp -r c:/storage/app/public/ neko@ssh.laravelTestRun.com:/home/neko/laravelTestRun/storage/app/public/
- プロジェクトの中のstorageを削除してartisanでsymlinkをつくる(アップロードするたびに必要)
cd laravelTestRun/public
rm -r storage
cd laravelTestRun
php artisan storage:link
*注:/home/neko/laravelTestRun/storage/app/public/の階層にあるstorageのイメージファイルを、artisanでlaravelTestRun/publicの階層へSymlinkをはってやるため、最初からあったlaravelTestRun/public/storageを削除しています。なのでディレクトリに気を付けてください。
以上です。
動画はこちらです。
ありがとうございました。
beerneko テック動画集はこちらです。