Laravelプロジェクトをsourcetreeを使ってエックスサーバーの任意のドメインで公開する方法

Laravelプロジェクトをsourcetreeを使ってエックスサーバーで任意のドメインで公開する方法

手順

1. 自分のPCにLaravelのプロジェクトを作成
2. sourcetreeの設定

sourcetreeのパレットの「ローカル」を選択し「ローカルリポジトリを作成」をクリック。自身のPCのプロジェクトフォルダを指定してOKすると、プロジェクトが開く(この時点ではまだ、プロジェクトフォルダ内のファイル、フォルダはインデックスされてない。コミット&プッシュはまだしない)

3. エックスサーバーでの設定

エックスサーバーにsshログインし、任意の場所にgit/project.gitを作成し、ベアリポジトリ(共有リポジトリ)を作成

4. ローカルリポジトリとリモートリポジトリの連携

sourcetreeを立ち上げ2で作成したローカルリポジトリを開き、右上の設定(歯車マーク) > リモート を選択し、リモートリポジトリのパスのURLを入力すると、ローカルとリモートリポジトリが連携される

5. エックスサーバーでベアリポジトリをクローン

エックスサーバーにログインし、該当のドメインまで移動。(public_htmlなどのフォルダがある場所) もともとのpublic_htmlフォルダはリネームしておき避けておく
$ git clone /home/yourname/git/project1.git project1
で共有リポジトリをドメイン配下のフォルダにクローン

6. フック設定をする 

共有リポジトリ配下のhooksフォルダに移動 vi post-receive でファイルを作成して、指定のテキストを打ち込んで保存し権限を変更する
sourcetreeからコミット&プッシュしてみて、ドメイン配下のプロジェクトフォルダ内にLaravelプロジェクトが生成されてるのを確認

8. シンボリックを作成

$ ln -s /home/sample/sample.xsrv.jp/test-app/public /home/sample/sample.xsrv.jp/public_html 
sample.xsrv.jpがブラウザで確認できるか確認 表示されてたらOK

11. vendor フォルダのインストール

 Fatal error: require(): Failed opening required ‘/project/vendor/autoload.php’ (include_path=’.:’) in ・・・
というエラーが出たら vendor フォルダがエックスサーバーの Laravelにインストールされていないので、composer install を実行する

12. PHPバージョン

Your lock file does not contain a compatible set of packages. Please run composer update.というエラーが出たら、Problem1〜読んでいく。 – laravel/serializable-closure v1.0.5 requires php ^7.3|^8.0 -> your php version (7.2.34) does not satisfy that requirement.と表示されてたらエックスサーバーのPHPのバージョンが古いことが原因。エックスサーバーの管理画面のPHPのverを変更してもターミナルでphp -vしてもバージョンは変わらない。なのでhttps://blog-and-destroy.com/29755でphpのバージョンを7.4に変更インストールPATH を変更

13. PHPバージョン確認

ターミナルを一度閉じて、再度sshログインして、php -vでバージョン確認。バージョンが変わってたら成功したので、プロジェクトフォルダに行き、composer update

14. vendor がインストールされているか確認
15. ブラウザーで表示される確認
16. .envファイルのアップロード

500 SERVER ERROR と表示されていたら、.envファイルが無いことが原因。エックスサーバーでMySQL設定。.envファイルの12〜16行目を編集し、FTPソフトなどを使ってファイルをLaravelプロジェクトフォルダにアップロード

17. ブラウザで確認 

コメント

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