【Laravel】レンタルサーバーでLaravelを動かす(さくらのレンタルサーバ+SSH+FTP)
ドリリウムは移転しました。
約5秒後に自動的にリダイレクトします。
Laravelを勉強しています。
Webアプリケーションに関しては趣味でPHPを使った程度の知識しかなく、環境もレンタルサーバー+FTPという最も初歩的?な環境です。
長らくFFFTPを愛用しているような初心者ユーザーです。
当然Laravelを始めとしたフレームワークなど使ったこともなかったのですが、気が向いて勉強を始めてみました。
ローカル環境での勉強でも十分楽しむことが出来たのですが、実際に本番環境に設置してみたいと思うようになりました。
なお、私が使用しているのはさくらのレンタルサーバ (スタンダードプラン)です。
1.サーバーにLaravelをインストールする
始めにサーバーにLaravelをインストールします。
この工程を無視して、すべてのプロジェクトファイル(Laravelでプロジェクトを作ると自動生成される大量のファイル)をFTPでアップロードしても動くらしいですが、大抵どこかでエラーが起きるのでおとなしくこの手順でインストールすることをオススメします。
さて、LaravelをインストールするにはSSHという方法でサーバーにアクセスする必要があります。
SSHなんてさっぱりな私はこちらのさくらインターネットのヘルプページを参考にしながら以下のように接続することができました。
①SSHクライアントのインストール
まずはお使いのパソコンにSSHクライアントをインストールします。
色々と種類があるみたいですが、私はTeraTermを使用することにしました。理由はなんとなく聞いたことがあったから。それだけです。
こちらからダウンロードして、インストールしてください。
②SSH接続
TeraTermを起動すると接続に関する設定画面が表示されます。
ここでは「ホスト」のみ変更します。
ご自身のホストはさくらインターネット サーバコントロールパネルのメニューから「サーバの情報の表示」>「サーバに関する情報」を選択すると一番上に「ホスト名」として表示されるものです。
OKを押下して進むとユーザー名とパスワードの入力画面が表示されます。
ユーザー名にはホストを確認した際に表示した画面にある「FTPアカウント」、パスワードにはサーバーパスワードを入力してOKを押下します。
入力内容に誤りがなければ接続完了です。
③Composerのインストール
Laravelをローカル環境でインストールされた方なら記憶にあるかもしれませんが、LaravelをインストールするためにまずはComposerをインストールします。
私はこちらを参考にしながらインストールを行いました。
基本的にローカルでインストールした時と同様の手順です。
SSHクライアントの画面はコマンドプロンプトのように自身がどのディレクトリにいるか不明瞭ですが、初期位置はルートディレクトリです。
そのためLaravelをインストールするフォルダへcdコマンドで移動します。
cd /home/アカウント名/www
次にComposerをダウンロードします。
FTPソフトなどで確認するとwwwフォルダの下にcomposer.pharというファイルが出来たことが確認できるはずです。
curl -sS https://getcomposer.org/installer | php
最後にComposerをインストールします。
php composer.phar
2.Laravelのプロジェクトを作成する
ここまで準備が出来ればあとはLaravelのプロジェクトを作成することができます。
ローカルでコマンドプロンプトを使って作業していた時と同じです。
例えば「drereum」というプロジェクトを作成したいのであれば以下のようなコマンドを入力します。
php composer.phar create-project laravel/laravel drereum
少し時間がかかりますが、drereumプロジェクトが作成されます。
FTPソフトやファイルマネージャーなどで確認するとwwwの下にdrereumというディレクトリが作成されていることが確認できるはずです。
3.作成したファイルをアップロードする
ローカルで作成したプロジェクトをアップロードします。
ここの手順は何が正しいのかいまいちわからないのですが、長らくレンタルサーバー+FTPソフトで育ってきた私にはFTPソフト(FFFTP)を使う方法が一番しっくりときました。
FTPソフトで確認すると、サーバー上に作成したプロジェクトはローカルと全く同じ構成をしています。
appやpublic、routes、resourcesなど新規作成・変更したファイルのみをアップロードしました。
正しい方法だったかどうかわからないのですが、これで問題なくサーバー上で動作させることが出来ました。