エックサーバーでLaravelをインストールしてドキュメントルート(希望のURL)で公開する方法

エックスサーバーでcomposerをインストールしたのちに、任意のドメインにLaravelをインストールして、ドキュメントルート(そのドメイン)で公開するまでの流れです。

Laravelをインストール

エックスサーバーにログイン直後のhomeディレクトリにいて
home配下にドメインが設定されていることが前提です。

任意のドメインに移動
cd sample.xsrv.jp
※黄色マーカーの部分はドメインです。

$ ls
とすると以下のようなファイルやフォルダがあります
autoreply htpasswd log mail public_html script xserver_php
※この階層と同じところにLaravelのプロジェクトを作ります。

Laravelをインストールするコマンドを入力
$ composer create-project laravel/laravel test-app
※黄色マーカーはプロジェクト名

無事インストールされれば以下のように表示されます
Application key set successfully.
[sample@sv10011 sample.xsrv.jp]$

作成したプロジェクトに移動
$ cd test-app

一度composerでアップデートし※コンポーネントを最新にしておきます
$ composer update
※これをしないと「php artisan serve」コマンドでエラーが出る場合があります。

プロジェクトの中身を確認すると、以下のようなファイルやフォルダがあると思います
$ ls
README.md artisan composer.json config package.json public routes storage vendor
app bootstrap composer.lock database phpunit.xml resources server.php tests webpack.mix.js

ここで作成したプロジェクトのLaravelのバージョンを確認すると
$ php artisan -V
とすると以下のようのバージョン情報が表示されます。
Laravel Framework 6.20.7
これで問題なくインストールができました。

Laravelのプロジェクトをドキュメントルート(任意のドメイン)で公開する

作成したプロジェクトをURLからアクセスできる様にするために、
ドメインのドキュメントルートとLaravelの公開ディレクトリのひもつけの作業をする必要があります。

エックスサーバーでは『ドメイン名/public_html』というディレクトリが各ドメインのドキュメントルートとして設定されています。
一方でのLaravelは『プロジェクト名/public』がインターネット上への公開ディレクトリとして定められています。

①ドメインのドキュメントルート:『sample.xsrv.jp/public_html』
例)/home/sample/sample.xsrv.jp/public_html
※上記はいずれもSSH接続したホームディレクトリから参照できます

②Laravelの公開ディレクトリ:『test-app/public』
例)/home/sample/test-app/public

何をするのかというと
『①ドメインのドキュメントルート』から『②Laravelの公開ディレクトリ』に対してシンボリックリンクを作成します。
※わかりやすくいうと、エックスサーバーのドキュメントルート(public_html)を読みに行ったときに、Laravelのプロジェクトフォルダのpublicの中のindex.phpを代わりに読み込みさせるということです。

まず、もともとエックスサーバーのドメインのドキュメントルートのpublic_htmlをどこかに回避しておきます。
$ mv /home/sample/sample.xsrv.jp/public_html /home/sample/sample.xsrv.jp/_public_html
↑ mv [現在の場所のフォルダ名]  [新しい場所フォルダ名] 
これで既存のpublic_htmlフォルダを一旦「_public_html」とリネームしておきます。

次にシンボリックリンクを作成します。
$ ln -s /home/sample/test-app/public /home/sample/sample.xsrv.jp/public_html
↑ ln -s [インストールしたLaravelプロジェクトの読みにいかせたい場所] [エックスサーバーの本来の場所]
※Laravelプロジェクトの中のpublicの中と、上記で作ったエックスサーバーのもともとのpublic_htmlをリンクさせます。

ブラウザでLaravelの画面を確認

ここまでできたら、任意のドメインでLaravelの画面が表示されるか確認します。

http://sample.xsrv.jp

無事Laravelのトップページが表示されれば成功です。
お疲れ様でした。

ちなみにシンボリックを解除するには
unlink test-app

test-appフォルダを削除するには
rm -r test-app
※-rをつけるとディレクトリを削除できる

リネームした_public_htmlをもとに戻すには
$ mv /home/sample/sample.xsrv.jp/_public_html /home/sample/sample.xsrv.jp/public_html

コメント

タイトルとURLをコピーしました