📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

 
(同じ利用者による、間の14版が非表示)
27行目: 27行目:
Composerをインストールする。<br>
Composerをインストールする。<br>
composer.pharファイルが生成される。<br>
composer.pharファイルが生成される。<br>
  php composer-setup.php --install-dir=<Composerのインストールディレクトリ>
  php composer-setup.php --install-dir=<Composerのインストールディレクトリ> --filename=composer
<br>
<br>
composer.pharファイルのシンボリックリンクを作成する。<br>
composerファイルのバージョンを確認する。<br>
  ln -s composer.phar composer
  composer -V
<br>
<br>
.profileファイル等に、Composerのインストールディレクトリを環境変数<code>PATH</code>に追加する。<br>
.profileファイル等に、Composerのインストールディレクトリを環境変数<code>PATH</code>に追加する。<br>
60行目: 60行目:
  # 例2: メジャーバージョンとマイナーバージョンを指定する場合
  # 例2: メジャーバージョンとマイナーバージョンを指定する場合
  composer create-project laravel/laravel --prefer-dist <Laravelを使用するプロジェクト名> "8.6"
  composer create-project laravel/laravel --prefer-dist <Laravelを使用するプロジェクト名> "8.6"
<br>
<code>composer create-project laravel/laravel <プロジェクト名></code>コマンドにおいて、laravel/laravelの部分は、<ベンダー (開発元) の名前>/<パッケージ名> の形式である。<br>
<br>
例えば、laravel/laravelは<u>Laravelという組織が提供する、Laravelプロジェクトの基本テンプレート</u>という意味になる。<br>
<br>
これは、Laravelの公式スターターキット (プロジェクトテンプレート) を指す。<br>
GitHubでは、https://github.com/laravel/laravel として公開されている。<br>
<br>
Laravelの基本的なプロジェクト構造、設定ファイル、必要なディレクトリ等が含まれている。<br>
<br>
Composerでの扱いにおいては、Composerのパッケージリポジトリ (Packagist) に登録されているパッケージを指定する形式である。<br>
<code>composer create-project</code>コマンドは、このパッケージをテンプレートとして使用して新しいプロジェクトを作成する。<br>
<br>
これは、他のフレームワークやライブラリでも同様の命名規則が使用されている。<br>
* symfony/symfony
* guzzlehttp/guzzle
<br><br>
== VSCode / VSCodiumの拡張 ==
* PHP Extension Pack
* PHP Intelephense
*: コード補完や定義元へのコードジャンプ、クラスインポート等を行う。
*: VSCode標準のPHP言語機能は無効化する必要がある。
*:# [拡張機能]へ移動する。
*:# 検索バーに<u>@builtin php</u>と入力する。
*:# [無効にする]ボタンを選択する。
* PHP import checker
*: 使用していないクラスのインポートをハイライトする。
* PHP DocBlocker
*: メソッドの定義後のPHPDocの作成をサポートする。
*: PHPDocとは、関数やメソッドの上にアノテーションと呼ばれる@から始まる特殊な記法で引数や戻り値の型を補足するものである。
*: 使用方法は、<u>/**</u>と入力した後に[Enter]キーを押下する。
*: タイプヒンティングや戻り値の型指定が存在する場合は、自動で読み取る。
* Laravel Extension Pack
*: Laravel用のオートコンプリート機能を追加してくれる拡張機能である。
*: 主に、ルート名およびパラメータ、ビュー、変数、コンフィグ、バリデーションルールの補完を行う。
* Laravel Intelephense
* Laravel goto Controller
*: Route等で指定しているコントローラーのファイル名を選択することにより、そのコントローラファイルを開く。
* Laravel Blade Spacer
*: Bladeファイルにコードを記述する場合、以下に示すタグに自動でスペースを挿入する。
*:* <nowiki>{{ }}</nowiki>
*:* <nowiki>{!! !!}</nowiki>
*:* <nowiki>{{– –}}</nowiki>
<br><br>
<br><br>


71行目: 115行目:


== 仮想ホストを構築する場合 (推奨) ==
== 仮想ホストを構築する場合 (推奨) ==
外部のクライアントPCからLaravelのプロジェクトに接続する場合、仮想ホストを構築する必要がある。<br>
外部のクライアントPCからLaravelのプロジェクトに接続する場合、仮想ホストを構築すべきである。<br>
<br>
SUSEの場合、以下に示すような仮想ホスト向けの設定ファイルを作成する。<br>
* Apache2
*: /etc/apache2/vhosts.d/
* NginX
*: /etc/nginx/vhosts.d/
<br>
<br>
SUSEの場合、/etc/apache2/vhosts.dディレクトリに、以下のような仮想ホスト向けの設定ファイルを作成する。<br>
ここでは、以下に示すような仮想ホストを設定する。<br>
ここでは、仮想ホスト名を<u>laravel01</u>、ドキュメントルートを<u>~/htdocs/laravel01/public</u>ディレクトリとしている。<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>
<br>
Laravelでは、全てのリクエストをindex.phpにルーティングする。<br>
<br>
NginXでLaravelを使用する場合、<code>location /</code>ディレクティブに<code>try_files</code>ディレクティブが含まれている必要がある。<br>
これにより、Laravelのルーティングが正しく機能する。<br>
<br>
# リクエストは、まず、rootディレクティブに指定されたディレクトリの同名ファイルを探す。
# 見つからない場合は、index.phpにフォールバックして、Laravelのルーティングが処理する。
<br>
# NginXの場合
sudo vi /etc/nginx/vhosts.d/vhost-laravel01.conf
<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;
        try_files  $uri $uri/ /index.php?$query_string;
    }
    # このセクションは、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;
        #proxy_pass  http://127.0.0.1;
        fastcgi_index  index.php;
        include        fastcgi_params;
        fastcgi_param  SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
    }
    # mp3ファイルを設定する場合
    location /mp3 {
        # sendfile関数の使用の有効化 / 無効化
        sendfile  on;
        # 1回のsendfile関数で転送できるデータ量を制限する (大きなサイズのファイルを転送する場合、接続が長時間ブロックされる可能性があるため)
        # この制限が無い場合、1つの高速な接続がワーカープロセスを停止させる可能性がある
        sendfile_max_chunk  1m;  # Limits chunks to 1[MB]
    }
}
</syntaxhighlight>
<br>
# Apache2の場合
  sudo vi /etc/apache2/vhosts.d/vhost-laravel01.conf
  sudo vi /etc/apache2/vhosts.d/vhost-laravel01.conf
<br>
<br>
<syntaxhighlight lang="apache">
  # /etc/apache2/vhosts.d/vhost-laravel01.confファイル
  # /etc/apache2/vhosts.d/vhost-laravel01.confファイル
   
   
207行目: 329行目:
     </Directory>
     </Directory>
  </VirtualHost>
  </VirtualHost>
</syntaxhighlight>
<br>
<br>
次に、サーバ側のPCの/etc/hostsファイルにおいて、以下の設定を追記する。<br>
次に、サーバ側のPCの/etc/hostsファイルにおいて、以下の設定を追記する。<br>
215行目: 338行目:
  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行目: 348行目:
<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行目: 370行目:
*: <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のプロジェクトディレクトリのパーミッションを変更する。
259行目: 383行目:
Webブラウザから、設定したルートドキュメントにアクセスする。<br>
Webブラウザから、設定したルートドキュメントにアクセスする。<br>
Laravelが正常に動作している場合、ページの中央にLaravelのロゴが表示されるデモページが表示される。<br>
Laravelが正常に動作している場合、ページの中央にLaravelのロゴが表示されるデモページが表示される。<br>
<br>
==== Webサーバを構築していない場合 ====
Webサーバを構築していない場合、PHPの組み込み開発サーバを使用することができる。<br>
<br>
<code>--host</code>オプションで指定できるIPアドレスは、127.0.0.1〜127.255.255.254までとなる。<br>
この範囲のIPアドレスは、ローカルループバックアドレスと呼ばれており、ホスト自身で起動しているサービスにアクセスする際に利用することができる。<br>
<br>
また、<code>--host</code>オプションにおいて、<code>0.0.0.0</code>を指定する場合、他のデバイスからLaravelアプリケーションにアクセスすることができる。<br>
これは、例えば、複数人で開発している時に他のメンバーにアプリケーションの作成状況を確認してもらう場合等に利用する。<br>
php artisan serve
            --host <IPアドレス  未指定の場合は、127.0.0.1>  # オプション
            --port <ポート番号  未指定の場合は、8000>      # オプション
<br>
<br>
==== 仮想ホストを構築していない場合 ====
==== 仮想ホストを構築していない場合 ====
278行目: 414行目:
*: <br>
*: <br>
* MCrypt PHP拡張モジュールは動作可能かどうか確認する。
* MCrypt PHP拡張モジュールは動作可能かどうか確認する。
<br>
== エラー関連 ==
==== swiftmailer/swiftmailerライブラリ ====
以下に示すような警告が出力される場合がある。<br>
Package swiftmailer/swiftmailer is abandoned, you should avoid using it. Use symfony/mailer instead.
<br>
この時、swiftmailer/swiftmailerライブラリを削除して、symfony/mailerライブラリをインストールする。<br>
<br>
<u>※注意</u><br>
<u>Laravel 8では、swiftmailer/swiftmailerライブラリを削除することができないことに注意する。</u><br>
composer remove --dev swiftmailer/swiftmailer
composer require --dev symfony/mailer
<br>
シーディング実行して、ライブラリが壊れてないかどうかを確認する。<br>
php artisan db:seed
<br>
==== fzaninotto/fakerライブラリ ====
以下に示すような警告が出力される場合がある。<br>
Package fzaninotto/faker is abandoned, you should avoid using it. No replacement was suggested
<br>
fzaninotto/fakerライブラリはリポジトリが変更されており、現在は、fakerphp/fakerである。<br>
<br>
この時、fzaninotto/fakerライブラリを削除して、fakerphp/fakerライブラリをインストールする。<br>
composer remove --dev fzaninotto/faker
composer require --dev fakerphp/faker
<br>
シーディング実行して、ライブラリが壊れてないかどうかを確認する。<br>
php artisan db:seed
<br>
==== phpunit/phpunitライブラリ ====
以下に示すような警告が出力される場合がある。<br>
Package phpunit/php-token-stream is abandoned, you should avoid using it. No replacement was suggested.
<br>
この時、phpunit/phpunitライブラリをアップデートする。<br>
composer remove --dev phpunit/phpunit
composer require --dev phpunit/phpunit
<br>
もし、アップデートエラーが出力される場合は、依存パッケージも含めてアップデートする。<br>
composer require --dev --with-all-dependencies phpunit/phpunit
./vendor/bin/phpunit --version
<br>
ライブラリが壊れてないかどうかを確認する。<br>
php artisan test
<br><br>
<br><br>


__FORCETOC__
__FORCETOC__
[[カテゴリ:Web]]
[[カテゴリ:Web]]