laravel12.laravel_002
R e i - D r e a m
for Laravel
TOP > Laravel Ver.12 > Laravel 環境構築 ②
Guest
login

最終投稿日:2026年2月3日

Laravel インストール
composerからインストール
インストールしたいディレクトリを作成し、作成したディレクトリの直上からターミナルを開きます。
 ※ [C:\myProject\hoge\main\{インストール先}]の場合は[main]でターミナルを開く
以下コマンドを叩きます。
  composer create-project laravel/laravel {インストールしたいディレクトリ名}
○ 確認
{インストールしたいディレクトリ名}へターミナルを移動し以下を叩きます。
  php artisan serve --port=4000
その後ブラウザから「localhost:4000」へアクセスします。
[Laravel12]の画像が見えれば成功です。
また以下を叩けばバージョン情報が確認できます。
  php artisan --version
 ⇒ Laravel Framework 12.19.3
ディレクトリ構造を変更する
必要性は未知数ですが、Laravelデフォルトのディレクトリ構造を変更してみます。
○ デフォルト構造
[laravel12]
   |
   +----- [app等]
   +----- [public]
         |
         +----- [index.php]
デフォルトでは{public}を【WEBROOT】に設定しアプリを起動させます。
しかし、複数のコンテキストを同一サーバで運用したい場合は、以下の様な構造にしたいと思います。
○ 複数運用構造
[main]
  |
  +----- [laravel_12]
  |      |
  |      +----- [app等]
  +----- [webroot]
        |
        +----- [laravel_12] ※ [public]内のファイルを全て移行する
        |      |
        |      +----- [index.php]
        +----- [hogeApp]
               |
               +----- [index.php]
この様な構造にすれば、{webroot}を【WEBROOT】に設定する事で例えば、
[localhost/hogeApp/index.php]とすれば、まったく違うアプリを起動できます。
○ 複数運用構造
ディレクトリ構造を変更するには、以下ファイルを編集する必要があります。
index.php

<?php
$CHANGE = '/../../laravel_12';

use Illuminate\Foundation\Application;
use Illuminate\Http\Request;

define('LARAVEL_START', microtime(true));

if (file_exists($maintenance = __DIR__.'/../storage/framework/maintenance.php')) {
    require $maintenance;
}

#require __DIR__.'/../vendor/autoload.php';
require __DIR__. $CHANGE . '/vendor/autoload.php';

/** @var Application $app */
#$app = require_once __DIR__.'/../bootstrap/app.php';
$app = require_once __DIR__ . $CHANGE . '/bootstrap/app.php';

$app->handleRequest(Request::capture());

「$CHANGE」を定義し、3か所を修正します。
 ※ {laravel_12}は、コンテキスト名となるので適宜読み替えてください。
vendor\laravel\framework\src\Illuminate\Foundation\Application.php

public function publicPath($path = '')
{
    #return $this->joinPaths($this->publicPath ?: $this->basePath('public'), $path);
    return $this->joinPaths($this->publicPath ?: $this->basePath('laravel_12'), $path);
}

ポイント

上記2ファイルを修正しますが、フレームワークの処理で稀にエラーとなるケースが発生します。
症状は『publicディレクトリがないよ~』という内容です。
[public]ディレクトリは既に[laravel_12]へリネームしているため、正確な内容は以下です。
『[webroot]である[laravel_12]が、パス[~\app]直下にありません』

この事象は「npm」コマンド等で、中間モジュールをインストールしたりすると発生したりします。
回避策としては、[~\app\laravel_12]を本当に作成する事ですが、ここを[webroot]には出来ません。

従って【シンボリックリンク】を設定する事で回避します。
パス[~\app]のあるディレクトリで『管理者権限』でターミナルを立ち上げ、以下を叩きます。
  mklink /D {参照するパス} {実際に存在するパス}
例)
  mklink /D laravel_12 C:\MyProject\hoge\webroot\laravel_12

ルーティングの設定をしよう
ルーティングとは、クライアントからのリクエストを受け付け、その内容によって処理を振り分けることです。
ルーティング情報は『routes\web.php』ファイルに記述します。
例)
Route::get('/hoge', [App\Http\Controllers\HogeController::class, 'index'])->name('hoge.index');
コードの内容は以下となります。
・『get』アクションにより『localhost/~/hoge』にアクセスでできます。
・『HogeController::class』が発火し、関数『index』がコールされます。
・『name』をメソッドチェーンで繋ぎ、このルートの名前を付ける事ができます。
その他以下の様な設定が可能です。
web.php

// [get][post]アクションを許容する
Route::match(['GET', 'POST'], '/', [App\Http\Controllers\HogeController::class, 'index']);
// パラメータを「hoge」「foo」を渡す(※パラメータは必須となる)
Route::get('/index/{hoge}/{foo}', [App\Http\Controllers\HogeController::class, 'index']);
// パラメータを「hoge」「foo」を渡す(※パラメータは任意となる)
Route::get('/index/{hoge?}/{foo?}', [App\Http\Controllers\HogeController::class, 'index']);
// パラメータに条件を付ける
Route::get('/index/{hoge}', [App\Http\Controllers\HogeController::class, 'index'])->where(['hoge' => '[0-9]+']);

コントローラを作ろう
先ほど『ルーティングの設定をしよう』で紹介した、以下ルート設定に対応したコントローラを作成します。
 Route::get('/hoge', [App\Http\Controllers\HogeController::class, 'index'])->name('hoge.index');
~\app\Http\Controllers\HogeController.php

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;


class HogeController extends Controller {
    public function index(Request $request) {
        return view('hoge/index', []);
    }
}

『return』で返却している「hoge/index」はメソッド名とは関係なく、
 画面を表示するためのパスとテンプレート名です。
ビューを作ろう
先ほど『コントローラを作ろう』で設定した『hoge/index』画面を作成します。
~\resources\views\hoge\index.blade.php

<html>
    <head>
        <title>ららべる</title>
    </head>
    <body>
        Hoge!!
    </body>
</html>

まずはパスである『hoge』に対応するビューのディレクトリ『hoge』を作成します。
次に画面名『index』に対応する『index.blade.php』を作成します。
結果を確認しよう
これまでの内容で、アクセスするためのURLは以下となっているハズです。
○ ディレクトリ構造がそのままの場合
localhost/hoge
○ ディレクトリ構造を変更した場合
localhost/laravel_12/hoge
いかがでしたか?
『 Hoge!!』とブラウザに表示されれば成功です!!
ログインしてコメントを残そう!!


レンズモード 【新規購入限定用】
きっぷる