エックスサーバーで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
※黄色マーカーはプロジェクト名
composer create-project –prefer-dist laravel/laravel .
というように「. 」(ドット)をつければいい
(ただしlaravelはインストールするフォルダ内が空じゃないとインストールできないです)
無事インストールされれば以下のように表示されます
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』がインターネット上への公開ディレクトリとして定められています。
例)/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/sample.xsrv.jp/test-app/public /home/sample/sample.xsrv.jp/public_html
↑ ln -s [インストールしたLaravelプロジェクトの読みにいかせたい場所] [エックスサーバーの本来の場所]
※Laravelプロジェクトの中のpublicの中と、上記で作ったエックスサーバーのもともとのpublic_htmlをリンクさせます。
ちなみにシンボリックを解除するには
unlink test-app
※public_htmlの後に全角スペースなど入れてシンボリックリンクを作成しないこと!
Laravelをブラウザで確認しようも、404エラーが発生。
パス自体は全て合っているのに何故?と思って試行錯誤するも解決せず。
unlink public_html を打っても「そのようなファイルやディレクトリはありません」と言われ続ける。
もしやと思い、unlink public_html__ (_は全角) とコマンドを打つと解除された。
知らずに全角が入っていて、シンボリックを解除することも出来ずハマった例。
ブラウザでLaravelの画面を確認
ここまでできたら、任意のドメインでLaravelの画面が表示されるか確認します。
http://sample.xsrv.jp
無事Laravelのトップページが表示されれば成功です。
お疲れ様でした。
test-appフォルダを削除するには
rm -r test-app
※-rをつけるとディレクトリを削除できる
リネームした_public_htmlをもとに戻すには
$ mv /home/sample/sample.xsrv.jp/_public_html /home/sample/sample.xsrv.jp/public_html
コメント