Laravel9 で public_html を公開する

Laravelの公開ディレクトリは “public” がメインになっていますが、XServer 等は “public_html” 固定になっています。そこで、public_html に変更する方法を検討しました。

git が噛んでいる場合は、git 経由でリネームします。

git mv public public_html

app/Providers/AppServiceProvider.php の boot 関数に定義を追加。

    public function register()
    {
        //
        $this->app->bind('path.public', function() {
            return realpath(base_path().'/public_html');
        });
    }

config/filesystem.php のディレクトリを修正。

    'disks' => [
        'public' => [
            'driver' => 'local',
            'root' => storage_path('app/public_html'), // ←ここ
            'url' => env('APP_URL').'/storage',
            'visibility' => 'public',
            'throw' => false,
        ],
    ],

// 最後の行
    'links' => [
        public_path('storage') => storage_path('app/public_html'),
    ],

vite.config.js に追加

export default defineConfig({
    plugins: [
        laravel({
            publicDirectory: 'public_html', // ←ここ
            input: [
                'resources/sass/app.scss',
                'resources/js/app.js',
            ],
            refresh: true,
        }),
    ],
});

Laravel6 の頃と比べると修正量が大分減りました。

投稿者について
みのしす

小さいときは科学者になろうとしたのに、その時にたまたま身に着けたプログラミングで未だに飯を食っているしがないおじさんです。(年齢的にはもうすぐおじいさん)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です