13,005
回編集
71行目: | 71行目: | ||
== 仮想ホストを構築する場合 (推奨) == | == 仮想ホストを構築する場合 (推奨) == | ||
外部のクライアントPCからLaravelのプロジェクトに接続する場合、仮想ホストを構築すべきである。<br> | |||
<br> | <br> | ||
SUSEの場合、以下に示すような仮想ホスト向けの設定ファイルを作成する。<br> | |||
* Apache2 | |||
*: /etc/apache2/vhosts.d/ | |||
* NginX | |||
*: /etc/nginx/vhosts.d/ | |||
<br> | |||
ここでは、以下に示すような仮想ホストを設定する。<br> | |||
* 仮想ホスト名 | |||
*: <u>laravel01</u> | |||
* ドキュメントルート | |||
*: <u>~/htdocs/laravel01/public/</u> | |||
<br> | <br> | ||
<u>※注意</u><br> | <u>※注意</u><br> | ||
<u>Laravelのプロジェクトディレクトリにあるpublicディレクトリがドキュメントルートであるため、このディレクトリをアクセスするように設定する。</u><br> | <u>Laravelのプロジェクトディレクトリにあるpublicディレクトリがドキュメントルートであるため、このディレクトリをアクセスするように設定する。</u><br> | ||
# NginXの場合 | |||
sudo vi /etc/nginx/vhosts.d/vhost-laravel01.conf | |||
# Apache2の場合 | |||
sudo vi /etc/apache2/vhosts.d/vhost-laravel01.conf | sudo vi /etc/apache2/vhosts.d/vhost-laravel01.conf | ||
<br> | <br> | ||
<syntaxhighlight lang="nginx"> | |||
# /etc/nginx/vhosts.d/vhost-laravel01.confファイル | |||
# 仮想ホスト laravel01の設定 | |||
server { | |||
listen 80; | |||
server_name laravel01; | |||
access_log log/laravel01.access.log main; | |||
error_page 404 /404.html; | |||
location = /404.html { | |||
root /home/<ユーザ名>/htdocs/laravel01/public; | |||
} | |||
# redirect server error pages to the static page /50x.html | |||
# | |||
error_page 500 502 503 504 /50x.html; | |||
location = /50x.html { | |||
root /home/<ユーザ名>/htdocs/laravel01/public; | |||
} | |||
location / { | |||
root /home/<ユーザ名>/htdocs/laravel01/public; | |||
index index.php index.html index.htm; | |||
} | |||
# このセクションは、NginxからPHP-FPMの通信はUnixドメインソケット通信でlistenしているFastCGIサーバにPHPスクリプトを渡すために使用される | |||
location ~ \.php$ | |||
{ | |||
root /home/<ユーザ名>/htdocs/laravel01/public; | |||
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; | |||
#fastcgi_pass 127.0.0.1:9000; | |||
fastcgi_index index.php; | |||
include fastcgi_params; | |||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; | |||
#fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; | |||
# proxy_pass http://127.0.0.1; | |||
} | |||
location /mp3 { | |||
# sendfile関数の使用の有効化 / 無効化 | |||
sendfile on; | |||
# 1回のsendfile関数で転送できるデータ量を制限する (大きなサイズのファイルを転送する場合、接続が長時間ブロックされる可能性があるため) | |||
# この制限が無い場合、1つの高速な接続がワーカープロセスを停止させる可能性がある | |||
sendfile_max_chunk 1m; # Limits chunks to 1[MB] | |||
} | |||
} | |||
</syntaxhighlight> | |||
<br> | |||
<syntaxhighlight lang="apache"> | |||
# /etc/apache2/vhosts.d/vhost-laravel01.confファイル | # /etc/apache2/vhosts.d/vhost-laravel01.confファイル | ||
207行目: | 276行目: | ||
</Directory> | </Directory> | ||
</VirtualHost> | </VirtualHost> | ||
</syntaxhighlight> | |||
<br> | <br> | ||
次に、サーバ側のPCの/etc/hostsファイルにおいて、以下の設定を追記する。<br> | 次に、サーバ側のPCの/etc/hostsファイルにおいて、以下の設定を追記する。<br> | ||
215行目: | 285行目: | ||
127.0.0.1 laravel01 | 127.0.0.1 laravel01 | ||
<br> | <br> | ||
次に、外部のクライアントPCの/etc/hostsファイルにおいて、以下の設定を追記する。<br> | |||
sudo vi /etc/hosts | sudo vi /etc/hosts | ||
<br> | <br> | ||
225行目: | 295行目: | ||
<br> | <br> | ||
<u>※注意</u><br> | <u>※注意</u><br> | ||
<u> | <u>特に、パッケージ管理システムからPHPおよびWebサーバをインストールした場合、Laravelのプロジェクトディレクトリ下のファイルおよびディレクトリにおいて、</u><br> | ||
<u> | <u>ユーザ名およびグループ名をNginX / Apache2のものに変更が必要な場合がある。</u><br> | ||
<u>SUSEの場合、NginX / Apache2のユーザ名およびグループ名は、それぞれ<code>wwwrun</code>、<code>www</code>である。</u><br> | |||
<br> | <br> | ||
変更方法は、以下に示す2種類ある。<br> | 変更方法は、以下に示す2種類ある。<br> | ||
* 方法 1 (推奨) | * 方法 1 (推奨) | ||
*: まず、ユーザを<code>www</code>グループに追加する。 | *: まず、ユーザを<code>www</code>グループに追加する。 | ||
*: <code>sudo usermod -aG www "$ | *: <code>sudo usermod -aG www "$USER"</code> | ||
*: <br> | *: <br> | ||
*: 次に、Laravelのプロジェクトディレクトリにあるstorageディレクトリのグループ名を変更する。 | *: 次に、Laravelのプロジェクトディレクトリにあるstorageディレクトリのグループ名を変更する。 | ||
*: <code>cd <Laravelのプロジェクト></code> | *: <code>cd <Laravelのプロジェクト></code> | ||
*: <code>sudo chown -R "$ | *: <code>sudo chown -R "$USER":www storage bootstrap/cache</code> | ||
*: <br> | *: <br> | ||
*: ユーザとWebサーバの両方に対して、パーミッションを変更する。 | *: ユーザとWebサーバの両方に対して、パーミッションを変更する。 | ||
246行目: | 317行目: | ||
*: <br> | *: <br> | ||
* 方法 2 | * 方法 2 | ||
*: まず、ユーザを<code> | *: まず、ユーザを<code>www</code>グループに追加する。 | ||
*: <code>sudo usermod -aG www "$ | *: <code>sudo usermod -aG www "$USER"</code> | ||
*: <br> | *: <br> | ||
*: 次に、Laravelのプロジェクトディレクトリにあるstorageディレクトリのグループ名を変更する。 | *: 次に、Laravelのプロジェクトディレクトリにあるstorageディレクトリのグループ名を変更する。 | ||
*: <code>sudo chown -R "$ | *: <code>sudo chown -R "$USER":www <Laravelのプロジェクトディレクトリ></code> | ||
*: <br> | *: <br> | ||
*: LaravelのプロジェクトディレクトリにあるLaravelのプロジェクトディレクトリのパーミッションを変更する。 | *: LaravelのプロジェクトディレクトリにあるLaravelのプロジェクトディレクトリのパーミッションを変更する。 |