Laravelを導入するだけで丸1日潰れた。でも、先輩方がサイトで記録を残してくれているので、こんな僕でもなんとか独学で!参考にするのなら、他のサイトがおすすめ!
#参考サイト様
下記様、大変にお世話になりました。ありがとうございます!
tanidaiz.com様
@haessal様
@t_mitarai様
#はじめに
無料レンタルサーバーは XREA様
方法は、XREAに、
・ teraTarmを使って、ローカルで作成したLaravelをアップロードする方法
XREAのファイルマネージャーでもZIPをあげられる
#SSH登録と許可
説明 | |
---|---|
XREA無料版の登録 | XREAにログインして無料版を申し込む |
SSH登録 | alue-domain GMO管理画面・コントロールパネル ↓ サーバー/XREA ↓ コントロールパネル/ウェブ ↓ FTP設定で「SSH登録」を選択 |
SSH許可 | XREA ↓ サイト設定 ↓ ツール/セキュリティ ↓ SSH接続IP許可 |
#SSH接続
teraTermの場合なら
teraTerm起動
・ ドメイン(IPアドレス)
・ ユーザー(FTP設定のアカウント)
・ パスフレーズ(FTPのパスワード)
を入力
説明 | |
---|---|
ドメイン | alue-domain GMO ↓ コントロールパネル ↓ アカウント@サーバー/「IPアドレス XXX.XXX.XXX.XXX」のIPアドレス |
UserとPass | XREA ↓ サイト設定 ↓ FTP設定」 ↓ アカウントとパスワード |
#composerの導入
説明はこちら-> composer installation
XREAでは、phpコマンドはCLI版を使うそうです。
導入するlaravelで用いるPHPのversionを確認しましょう。
XREAのPHP、laravelのPHP、コマンドに使うPHP($ php72cli)の各PHP versionは揃えましょう!
teraTarmで、root直下(/virtual/UserAccount/)に入って、下記を実行するんだコレ!
$ php72cli -r "copy('...
$ php72cli -r "if(...
$ php72cli composer-setup.php
$ php72cli -r "unlink(...
###composerを起動
そして、composerをインストした階層で下記を実行するんだコレ!
$ php72cli composer.phar
// ↓
// COMPOSERのかっこいいのが表示される
composer.jsonもいれとこか
$ php72cli composer.phar init
#Laravelの導入
##ダウンロード
参考にさせていただきました
/virtual/UserAccount/laravel に移動して
php72cli -d register_argc_argv=1 ~/composer.phar create-project lar
avel/laravel myProject "6.0.2" --prefer-dist --no-dev
(version laravel 6.0.2)
myProject下に移動して
npm install
そしたら次節のkey:generateから以降を
myProject下で
php72cli artisan migrate
##ローカルで開発したlaravelをXREAにUPロード!
・ laravelファイルをZIPなどで圧縮
・ アップローダーでZipをアップ!
teraTarmならクリックドロップ!
XREAのファイルマネージャーなら、ZIP形式でアップロードを選択!
(これだとアップロード時に解凍してくれる!)
・ 不要なファイル(phpunit)を削除!
teraTarm で zip を解凍するのは
$ unzip myProject.zip
そしたら次に myProject に移動してから
artisan key:generate します
// myprojectに入って以下を行います
$ php72cli artisan key:generate
同じところで
php72cli artisan migrate
これでエラーが出たら修正
そしたら
myProject/publicを、public_html(DocumentRoot)に移動します。
/virtual/UserAccount/public_html -- index.php
|- .htaccess
|- favicon.ico
|- robots.txt
って感じにします。
そしたらindex.phpを変更します。
このままだと、index.php の require ./autoload.php で require されずに 500 エラーになります。
##index.htmlの変更
/public_html/index.php を以下のように修正
// ↓ require __DIR__.'/../vendor/autoload.php';
require '/virtual/UserAccount/laravel/myProject/vendor/autoload.php';
// ↓ $app = require_once __DIR__.'/../bootstrap/app.php';
$app = require_once '/virtual/UserAccount/laravel/myProject/bootstrap/app.php';
これで大丈夫かな?
http://UserAcount.xxx/
でアクセス!
#Error
##Whoops, looks like something went wrong
phpのバージョンが違っているので、表示できません、っていうエラー?。
Whoops, looks like something went wrong.
(1/1) FatalThrowableError
Parse error: syntax error, unexpected '?', expecting variable (T_VARIABLE)
in Translator.php line 91
XREAで使っているPHPバージョンと、導入したlaravelで使ってるPHPバージョンがあってなかった、ってことでした。
ローカルのlaravel XREAのlaravel XREAのphp teraTermのphp の各レベルは合わせるのが吉かな?
##laravel導入時に、phpunit系のエラーが出て中断
php72cli -d register_argc_argv=1 composer.phar create-project --no-dev --prefer-dist laravel/.....
--no-devでインストールしないように指定したんだけれど、
Your requirments could not be resolvel to an installable set of packages
Problem 1
-phpunit/phpunit ...
...
というレッドエラーが出た。
すべてphpunitエラーなので、今回はインストールで--no-devは指定せず、エラー発生後にディレクトリーからphpunitを削除して、再インストールすることにしたよ。
削除方法はいろいろあるけれど、今回は、
XARE - サイト設定 - FTP設定 - ファイルマネージャー - laravelホルダ - phpunit 削除
で、他のファイルを確認しながら削除してみました。
再インストールね!
$ php72cli -d register_argc_argv=1 composer.phar update
http://www.UserDomain/myProject
無事に
##導入したLaravelファイルが見当たらない! No such file or directory
これは迷いました!
調べてたら、転送する時の文字コードが違うのでは(エンコード)?とか出てきましたが、最終的にLaravelプロジェクトの名前がよくなかったよう。当初は laravel01
というプロジェクト名をアップしたら、実際にファイルはアップされているのですが、teraTarmでは認識されませんでした。プロジェクト名を laravelapp
とか、数字の入ってないのに変更したらOKだった!
##DocumentRootにindex.phpを配置 500Error
composerでlaravelを導入すると、vedorディレクトリはcomposerと同じ階層に作成されるのだけれど、laravelを他のディレクトリに移したり、vendorディレクトリを移動させると、エラーになってしまう。初歩的なミスをしてました。
これに関しては↓を参照
##vendorフォルダがない
composerをインストールするとvendorフォルダがなかった。
php72cli composer.phar updateでvendorを作ってもうまくいかなかった。
なのでローカルで作成したLaravelのvendorを入れてみた。置く場所は
/virtual/UserAccount/laravel/myProject/vendor
でlaravelのmyProject/publi/index.phpのindex.phpを書き換えます。
// ↓ require __DIR__.'/../vendor/autoload.php';
require '/virtual/UserAccount/laravel/myProject/vendor/autoload.php';
// ↓ $app = require_once __DIR__.'/../bootstrap/app.php';
$app = require_once '/virtual/UserAccount/laravel/myProject/bootstrap/app.php';
下記調査
Symfony\Component\Debug\Exception\FatalThrowableError
Class 'App\Oldcat' not found
#Xreaのドメイン削除と再登録
管理画面からドメインを削除する
↓
[契約サーバーがありません]
↓
最初の登録メールにある[ドメインとサーバーを利用する]
↓
[サーバー利用登録・購入]
↓
[Xrea(エクスリア)の利用・申し込み]
↓
[Xrea(無料)を取得]
↓
[無料アカウントを作成]
↓
[Xreaアカウントの取得・作成画面はこちら]