レンタルサーバーでLaravelを構築する必要があったけど、意外とスッといかなかったので、うまくいった方法をメモ代わりに書いておきます。
この記事の順番通りやれば、激古いサーバーとかじゃなければたぶんいけると思います。
ちなみに、今回使用したレンタルサーバーは、ぜろみやイチオシのエックスサーバーです。
目次
エックスサーバーにSSH接続できるようにする
何はともあれ、サーバーにSSH接続できるようにしましょう。
Windowsでの手順なので、Macは若干違うかもしれないです。
Windowsの場合Open SSHを使うと思いますので、こっちの記事も参考にしてみてください
SSHを有効にする
サーバーのコンパネから、「SSH設定」を開き、「ON」にします。
公開鍵認証用鍵ペアの生成
任意でパスワードを入力し、鍵ペアを生成します。
このとき入力したパスワードはあとで使うので、覚えておきましょう。
確認画面へ進み、生成すると鍵ファイル(.key)がダウンロードされますので、ローカルに保存します。
僕は、「ユーザー > .ssh」の中に保存しちゃいました。
ここでは、ファイル名を「hoge.key」にしたとします。ファイル名を「id_rsa」に変えるというTipsもありますが、実はファイル名はそのままで大丈夫です。
エックスサーバー側での操作は以上です。
configファイルの編集
自分のPCの「ユーザー > .ssh」内にあるconfigファイルを編集します。ファイルがなければ作りましょう。「config」というファイル名です。拡張子はいりません。
1 2 3 4 5 |
host hoge HostName [サーバーID].xserver.jp Port 10022 User [サーバーユーザー] IdentityFile ~/.ssh/hoge.key |
1行目「host」は任意です。名前のようなものなので、覚えやすい単語にしましょう。
「Hostname」「Port」「User」にはそれぞれエックスサーバーの情報を、「IdentityFile」には、先ほどダウンロードした鍵ファイル(hoge.key)を指定します。
このconfigファイルが.sshの中にあると、「ssh hoge」とうつだけでSSH接続できるようになります。
めっちゃ楽。
これでconfigファイルを保存し、「ssh hoge」とうつとパスワードを聞かれますので、エックスサーバーで鍵ファイルを生成したときのパスワードを入力し、サーバーにSSH接続できれば準備完了です!
サーバーのPHPのバージョン変更
エックスサーバーのCLIのPHPのデフォルトのバージョンは5らしいです。確かめる前にバージョン変えちゃったんで本当かわからないんですが、サーバーに接続した状態で次のように入力してください。
1 |
php -v |
これでPHPのバージョンを調べられます。
もし、php7.2とかじゃなければ、phpのバージョンを上げちゃいましょう。
1 |
find /opt/php-*/bin -type f -name 'php' |
とうつと、phpのバージョンがずらっと並びますので、その中から最新のphpのシンボリックリンクを作成します。
1 2 |
mkdir $HOME/bin ln -s /opt/php-7.2.6/bin/php $HOME/bin/php |
次に、PATHを通します。
以下はviを使って直接ファイルをいじっていますが、viコマンドがよくわからないときは、FILEZILLAとかのFTPクライアントでファイルを落として編集したほうが早いかもしれません。
viコマンドは使えると便利なので、この際に覚えておいて損はないです。
ちょっとしたポイントとしては、
- 「コマンドモード」と「入力モード」がある。
- 「コマンドモード」から”i”を入力すると「入力モード」になる。
- 「入力モード」でファイルを編集し、”Esc”で「コマンドモード」に戻る。
- 「:w」でセーブ
- 「:q」でvi終了
といったところでしょうか。とりあえずこの辺覚えておけば、簡単な操作ならできる気がします…
さて、本題に戻りましょう
1 2 3 4 |
vi ~/.bash_profile - PATH=$PATH:$HOME/bin + PATH=$HOME/bin:$PATH |
再読み込みします。
1 |
source ~/.bash_profile |
最後に次のコマンドでPHPのバージョンが切り替わっていることが確認できれば成功です!
1 |
php -v |
Node.jsのインストール
nodebrewを使って、Node.jsをインストールしましょう。
nodebrewのセットアップ。
1 2 |
wget git.io/nodebrew perl nodebrew setup |
すると、次のようにPATHを通してねと答えてくれます。
1 2 3 4 5 6 7 8 |
Fetching nodebrew... Installed nodebrew in $HOME/.nodebrew ======================================== Export a path to nodebrew: export PATH=$HOME/.nodebrew/current/bin:$PATH ======================================== |
要するに”.bashrc”というファイルに
“export PATH=$HOME/.nodebrew/current/bin:$PATH”
という1行を追加すればいいみたいなので、そうしましょう。
以下はviを使って一行追加しています。
1 2 3 |
vi ~/.bashrc + export PATH=$HOME/.nodebrew/current/bin:$PATH |
再読み込み
1 |
source ~/.bashrc |
最後に次のように入力し、バージョンが表示されれば成功!
1 |
nodebrew -v |
Laravelのインストール
さぁいよいよ終盤です!
Composerの確認
もう既にComposerは入っていると思うんですが、念のため確認してみましょう。
1 |
composer -v |
もし入ってなかったら、インストールします。
入っている場合は次の「Laravelのインストーラーのダウンロード」まで読み飛ばしてください。
1 2 |
curl -s https://getcomposer.org/installer | /usr/bin/php7.2 php7.2 composer.phar install |
すると次のように言われるかもしれません。
1 |
Composer could not find a composer.json file in /home... |
なんか”composer.json”ってファイルをhomeに置いとかなきゃいけないみたいです。
次のように書いた”composer.json”を作成し、homeに置いて再度installします。
1 2 3 4 5 |
{ "require": { "monolog/monolog": "1.0.*" } } |
Laravelのインストーラーのダウンロード
composerがあれば、以下のコマンドでLaravelのインストーラーをダウンロードできます。
1 |
composer require laravel/installer |
インストーラーをダウンロードできたら、実際にアプリを公開するディレクトリに移動します。
1 |
cd ~/[ドメイン名]/public_html/ |
Laravelアプリを新規作成
ここでは、”sample”という名前のアプリケーションを作成します。
1 |
~/vendor/bin/laravel new sample |
これでsampleという名前のディレクトリが生成され、その中にLaravelのファイルがぶわーっと入っていると思います。
あとは、sampleの中に移動し、下の2つのパーミッションを変更しておきましょう。
1 2 3 |
cd sample chmod -R 777 storage chmod -R 775 bootstrap/cache |
最後に、公開ディレクトリにある”.htaccess”を編集し、リダイレクトをさせます。
1 2 3 4 5 6 7 8 9 10 |
RewriteEngine On RewriteRule ^(.*)/$ /$1 [L,R=301] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{HTTP_HOST} !^\.localhost$ [NC] RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301] RewriteRule ^(.*)$ sample/public/$1 [QSA] |
これで、全ての準備は整ったはず!
おそるおそる公開サイトのURLを叩いてみましょう…!
ヤッター!表示されてる!
というわけで、おしまい。
おまけ
これでレンタルサーバーにLaravel構築したあと、「いちいちサーバーとファイルのやり取りせなあかんやん、開発めちゃめんどくね?」と思ってたんですが、
- Vidual Studio Codeの拡張機能「SFTP」で自動アップロード
- Filezillaの「同期ブラウジング」
で割とサクサクいけてます!
それぞれググると出てくると思いますが、このブログでもそのうち書くかもしれません。
参考サイト
以下のサイトを参考にさせていただきました。ありがとうございます。
この記事でうまくいかないときは、参考にしてみてください