下記の記事では、Laravel9に対応したディレクトリ構造の変更法を説明していましたが、Laravel10では利用できなくなったため、Laravel10でのディレクトリ構造の変更方法を説明します。
Laravelのディレクトリ構造を変更する目的とするディレクトリ構造
laravel
というディレクトリにソースを格納し、/var/www/public/
をドキュメントルートとするディレクトリ構造を目指します。
/var/www/
├ logs/ <もともとあるディレクトリなど>
│ ├ ...
│ └ access-yymmdd.log
├ laravel/ <Larabelのソースを格納するディレクトリ>
│ ├ app/
│ ├ bootstrap/
│ ├ config/
│ ├ database/
│ ├ node_modules/
│ ├ resources/
│ ├ routes/
│ ├ storage/
│ ├ tests/
│ ├ vendor/
│ ├ .editorconfig
│ ├ .env
│ ├ .gitattributes
│ ├ .gitignore
│ ├ artisan
│ ├ composer.json
│ ├ composer.lock
│ ├ manifest.json
│ ├ package-lock.json
│ ├ package.json
│ ├ phpunit.xml
│ ├ README.md
│ └ vite.config.js
└ public/ <DocumentRoot>
├ build/
├ .htaccess
├ favicon.ico
├ index.php
└ robots.txt
作業手順
手順といってもファイルの移動、3ファイルの更新で完了します。
ファイルの移動
laravel
のディレクトリを作成し、public
のディレクトリ以外のディレクトリとファイルをlaravel
のディレクトリに移動します。
public/index.phpの書き換え
public/index.php
に記載のあるパス(3か所)にlaravel/
を追記します。
public/index.php
if (file_exists($maintenance = __DIR__.'/../laravel/storage/framework/maintenance.php')) {
require $maintenance;
}
public/index.php
require __DIR__.'/../laravel/vendor/autoload.php';
public/index.php
$app = require_once __DIR__.'/../laravel/bootstrap/app.php';
bootstrap/app.phpの書き換え
bootstrap/app.php
でpublicパスを上書きします。
下記のコードを return $app;
する前に追記します。
bootstrap/app.php
$app->usePublicPath(realpath(base_path('../public')));
viteの変更
vite.config.js
のlaravel-vite-pluginにpublicDirectory
を追加します。
vite.config.js
export default defineConfig({
plugins: [
laravel({
publicDirectory: '../public',
input: ['resources/css/app.css', 'resources/js/app.js'],
refresh: true,
}),
],
});
[AD]