PHP - Laravel - Hello World!

クラウディア 
1. 概要
Hello World!

1. 概要

 言語でなく、フレームワークであるため、「Hello World!」への道のりは、長く険しいのだ。  青息吐息で、やっとここまでたどり着きました。  で、「Hello World!」を表示するのもなかなか大変なのだ。  本ページは、下記のサイトを参考にさせていただきました。  (読むには、会員登録が必要です)
Web職人のためのPHPフレームワーク「Laravel」をマスターしよう!~HelloWorldを表示させる (3/3):CodeZine(コードジン)
 以下、ドキュメントルートは

/usr/local/www/laravel/public
 として、ドキュメントルートの親ディレクトリをカレントディレクトリとして記述しています。

2. Hello World!

 ログインユーザで。

vi routes/web.php
 なんじゃこれ。

<?php

use Illuminate\Support\Facades\Route;

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

Route::get('/', function () {
    return view('welcome');
});
 これ全行ですよ。  「<?php」は閉じてないし、ディレクトリのセパレータは、「/」でなく「\」だし。  なんだか気持ち悪いわ。  でもまぁ、仕方ない。  これが、このフレームワークの流儀なのであろうな。  末尾に以下を追加します。

Route::get("/hello", function () {
	print("<h1>Hello World!</h1>");
	return null;
});
 で、「ドメイン/hello」にアクセスすると、「Apache」で「404」になる。  参考サイトをよく読むと「localhost」にアクセスしておるな・・・。  思いついて

php artisan serve --host アドレス
 で、「8000」ポートからのアクセスができるように起動して

http://アドレス:8000/hello
 にアクセスしてみましたらば、
「PHP」「Laravel」-「Hello World!」

 と出ましたがな・・・。

 実際は、パーミッションが必要なディレクトリのオーナを「www:www」にしていたので、またいじる必要がありましたが・・・。

 「Apache」経由だと、サブディレクトリ的なアクセスができないのは、なんでじゃろ。

 でもその前に、さらにその先へ行けるのか確認してみる。

 先ほどのソースに、下記を追加して


Route::get("/hello/hello", function () {
        print("<h1>しつこいわね</h1>");
        return null;
});

http://アドレス:8000/hello/hello
 へアクセスしてみましたらば
「PHP」「Laravel」-「しつこいわね」

 うむ、思いどおり。

 ただし、「Apache」経由でできないのは、なんでかな?

 下記のサイトが参考になりました。

【Laravel】ルーティングをしているはずが404エラー? - Qiita」
「Apacheを使ってLaravelのページを表示できない時の対応方法 - Qiita
 すなわち、「root」ユーザで。

vi /usr/local/etc/apache24/httpd.conf
 下記のコメントをはずして

#LoadModule rewrite_module libexec/apache24/mod_rewrite.so
 下記の「None」を「All」に変えて

    AllowOverride None

service apache24 configtest
service apache24 restart
 これで、「Apache」へのアクセスでも、ルーティング可能になりました。
スポンサーリンクハイスピードプランJETBOY