min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

Laravel で httpd.conf の Alias設定してると404エラーが出る(DocumentRootをpublicにしてとりあえず解決)

ハピタス登録で1,000円分になるURL

その買うを、もっとハッピーに。|ハピタス

 

参考にしてる本はコレ。

Laravel入門

 

routeは、アクセスしてきたアドレスと処理を紐づけるらしい。

 

$ vim routes/web.php

 

20行目から下を追記。

 

fedoraローカルのfirefoxからアクセスしてみるとうまく表示される

 

しかし家の外からだとエラーだ。

なんかおかしいな。

 

httpd.conf の Aliasが原因だった → DocumentRoot 修正で治る

こうやってAlias「myL01」を設定している状態で

$ sudo vim /etc/httpd/conf/httpd.conf

myL01 には確かにアクセスできるけど

その下の hello に行こうとしても 404 になってしまう。

やむをえないので DocumentRoot を Laravelフォルダにしちゃう。

$ sudo vim /etc/httpd/conf/httpd.conf

 

そうすると当然Alias「myL01」なしでも(DocumentRoot直下として)Laravelフォルダにたどり着けるわけで

hello も動くわけだ。

hello2 も動く

hello と hello2 の本体はLaravelフォルダ/routes/web.php

DocumentRootはあんまり変えたくなかったんだが、まあこれからLaravelでの開発をメインに学ぶわけなので、とりあえずこれで色々作ってみよう。

 

Ruby on Railsの場合

※ ちなみに Ruby on Rails ではAliasで困った記憶がない。ちょっと比較してみる。

ポート3000 でRuby on Rails内蔵サーバPumaを動かして…

httpdApache)のポート3000でアクセスすると正常にアクセスできる

Rootへのアクセスはヨシ。緑の地球が表示された。

 

Root直下のbooksアプリへのアクセスもOK

 

wireguardのVPN親(192.168.3.190)経由で、目的のサーバ(192.168.3.11)にアクセスできている。

これと同じことが Laravelの内蔵サーバ php artisan serveでもできてほしいわけだ。

 

Laravelフォルダにて php artisan serve --port=9000

やってみよう。ポート9000でLaravel内蔵サーバを起動。

$ cd myLaravelPrj01

$ php artisan serve --port=9000

httpdApache)のポート9000でアクセスしてみるが…エラーになってしまった。

ここがRuby on RailsのPumaとの決定的な違いだな。