- 1. 概要
- 2. 設定
1. 概要
「インストール 7.x Laravel」には、こう書いてあります。
Laravel は常に Web サーバで設定した「Web ディレクトリ」のルートから提供する必要があります。「Web ディレクトリ」のサブディレクトリで Laravel アプリケーションを提供しようと試みてはいけません。そうした試みはアプリケーションの中に存在するセンシティブなファイルを曝してしまう可能性があります。
とは、言ってもだ。
既存のサーバで、既に多くのコンテンツをかかえている場合、すべてのコンテンツを一気に「Laravel」に対応させるというのには、無理があるってもんです。
うまいことやってしまうには、ルートを既存のものにしつつ、サブディレクトリを「Laravel」に対応させて『アプリケーションの中に存在するセンシティブなファイルを曝してしまう可能性』をうまく排除していくしかないと思うのです。
そこんとこ、配慮されていないってところが、多くのフレームワークに欠けていると思うのは、わたしのわがままなのでしょうか?
とりあえず、ドキュメントルート以外で、「Laravel」を動作させることができるかやってみます。
2. 設定
ドキュメントルートを
(「Apache」のデフォルト)
/usr/local/www/apache24/data
「Laravel」のルートを
/usr/local/www/laravel
とします。
「root」ユーザで。
vi /usr/local/etc/apache24/httpd.conf
下記の部分、変更していたものを元に戻します。
DocumentRoot "/usr/local/www/apache24/data"
<Directory "/usr/local/www/apache24/data">
vi /usr/local/etc/apache24/extra/httpd-ssl.conf
下記も、変更していたものを元に戻します。
DocumentRoot "/usr/local/www/apache24/data"
代わりに
vi /usr/local/etc/apache24/Includes/laravel.conf
下記を記述します。
Alias /laravel/ "/usr/local/www/laravel/public/"
<Directory "/usr/local/www/laravel/public/">
Options +ExecCGI -Indexes
AllowOverride All
Require all granted
</Directory>
「Apache」を再起動します。
service apache24 configtest
service apache24 restart
これで、ブラウザから
https://ドメイン名/
で、従来のドキュメントへ
https://ドメイン名/laravel/
で、「Laravel」のドキュメントへアクセスできるようになります。
|