- 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
にアクセスしてみましたらば、

と出ましたがな・・・。
実際は、パーミッションが必要なディレクトリのオーナを「www:www」にしていたので、またいじる必要がありましたが・・・。
「Apache」経由だと、サブディレクトリ的なアクセスができないのは、なんでじゃろ。
でもその前に、さらにその先へ行けるのか確認してみる。
先ほどのソースに、下記を追加して
Route::get("/hello/hello", function () {
print("<h1>しつこいわね</h1>");
return null;
});
http://アドレス:8000/hello/hello
へアクセスしてみましたらば
うむ、思いどおり。
ただし、「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」へのアクセスでも、ルーティング可能になりました。
|