「インストール - Laravel」の版間の差分

ナビゲーションに移動 検索に移動
71行目: 71行目:


== 仮想ホストを構築する場合 (推奨) ==
== 仮想ホストを構築する場合 (推奨) ==
外部のクライアントPCからLaravelのプロジェクトに接続する場合、仮想ホストを構築する必要がある。<br>
外部のクライアントPCからLaravelのプロジェクトに接続する場合、仮想ホストを構築すべきである。<br>
<br>
<br>
SUSEの場合、/etc/apache2/vhosts.dディレクトリに、以下のような仮想ホスト向けの設定ファイルを作成する。<br>
SUSEの場合、以下に示すような仮想ホスト向けの設定ファイルを作成する。<br>
ここでは、仮想ホスト名を<u>laravel01</u>、ドキュメントルートを<u>~/htdocs/laravel01/public</u>ディレクトリとしている。<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>
次に、外部のクライアント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>もし、Laravelのプロジェクトディレクトリに対して、ユーザ名やグループ名をApache2のものに変更する時、</u><br>
<u>特に、パッケージ管理システムからPHPおよびWebサーバをインストールした場合、Laravelのプロジェクトディレクトリ下のファイルおよびディレクトリにおいて、</u><br>
<u>SUSEの場合、Apache2のユーザ名およびグループ名は<code>www</code>である。</u><br>
<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 "${USER}"</code>
*: <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 "${USER}":www storage bootstrap/cache</code>
*: <code>sudo chown -R "$USER":www storage bootstrap/cache</code>
*: <br>
*: <br>
*: ユーザとWebサーバの両方に対して、パーミッションを変更する。
*: ユーザとWebサーバの両方に対して、パーミッションを変更する。
246行目: 317行目:
*: <br>
*: <br>
* 方法 2
* 方法 2
*: まず、ユーザを<code>wwwrun</code>グループに追加する。
*: まず、ユーザを<code>www</code>グループに追加する。
*: <code>sudo usermod -aG www "${USER}"</code>
*: <code>sudo usermod -aG www "$USER"</code>
*: <br>
*: <br>
*: 次に、Laravelのプロジェクトディレクトリにあるstorageディレクトリのグループ名を変更する。
*: 次に、Laravelのプロジェクトディレクトリにあるstorageディレクトリのグループ名を変更する。
*: <code>sudo chown -R "${USER}":www <Laravelのプロジェクトディレクトリ></code>
*: <code>sudo chown -R "$USER":www <Laravelのプロジェクトディレクトリ></code>
*: <br>
*: <br>
*: LaravelのプロジェクトディレクトリにあるLaravelのプロジェクトディレクトリのパーミッションを変更する。
*: LaravelのプロジェクトディレクトリにあるLaravelのプロジェクトディレクトリのパーミッションを変更する。

案内メニュー