[PaaS のみ]{class="badge informative" title="Adobe Commerce on Cloud プロジェクト(Adobeが管理する PaaS インフラストラクチャ)およびオンプレミスプロジェクトにのみ適用されます。"}

ファイルの所有権と権限の設定

このトピックでは、Adobe Commerceをインストールする前に、web サーバーグループに対する読み取り/書き込み権限を設定する方法について説明します。 これは、コマンドラインがファイルシステムにファイルを書き込めるようにするために必要です。

使用する手順は、共有ホスティング ​を使用し、1人のユーザーを持っているか、​ プライベートサーバーを使用し、2人のユーザーを持っているかによって異なります。

共有ホスティングで1人のユーザーの権限を設定する

この節では、アプリケーションサーバーにweb サーバーも実行するのと同じユーザーとしてログインする場合のプリインストール権限の設定方法について説明します。 このタイプの設定は、共有ホスティング環境では一般的です。

アプリケーションをインストールする前に権限を設定するには:

  1. アプリケーションサーバーにログインします。

  2. 共有ホスティングプロバイダーが提供するファイルマネージャーアプリケーションを使用して、書き込み権限が次のディレクトリに設定されていることを確認します。

    • vendor (Composerまたは圧縮アーカイブのインストール)
    • app/etc
    • pub/static
    • var
    • generated
    • その他の静的リソース
  3. コマンドラインアクセスがある場合は、次のコマンドを次の順序で入力します。

    code language-shell
    cd <app_root>
    
    code language-shell
    find var generated vendor pub/static pub/media app/etc -type f -exec chmod u+w {} +
    
    code language-shell
    find var generated vendor pub/static pub/media app/etc -type d -exec chmod u+w {} +
    
    code language-shell
    chmod u+x bin/magento
    

    オプションで1行にすべてのコマンドを入力するには、アプリケーションが/var/www/html/magento2にインストールされていると仮定して、次のように入力します。

    code language-shell
    cd /var/www/html/magento2 && find var generated vendor pub/static pub/media app/etc -type f -exec chmod u+w {} + && find var generated vendor pub/static pub/media app/etc -type d -exec chmod u+w {} + && chmod u+x bin/magento
    
  4. まだ実行していない場合は、次のいずれかの方法でアプリケーションを取得します。

  5. ファイルシステムの所有権と権限を設定したら、​ アプリケーションをインストール ​

NOTE
アプリケーションのインストール後に権限をさらに制限するには、umaskを設定できます。

2人のユーザーの所有権と権限を設定する

この節では、独自のサーバーまたはプライベートホスティング設定の所有権と権限を設定する方法について説明します。 この種類の設定では、通常、はWeb サーバーユーザーとしてログインしたり、Web サーバーユーザーに切り替えたりすることはできません。 通常、1人のユーザーとしてログインし、別のユーザーとしてweb サーバーを実行します。

2 ユーザーシステムの所有権と権限を設定するには:

次のタスクを次の順序で実行します。

共有グループについて

Web サーバーがファイルシステムにファイルやディレクトリを書き込み、ファイルシステム所有者が​ 所有権 ​を維持できるようにするには、両方のユーザーが同じグループに属している必要があります。 これは、両方のユーザーがファイル(管理者またはその他のweb ベースのユーティリティを使用して作成されたファイルを含む)へのアクセスを共有できるようにするために必要です。

この節では、ファイルシステム所有者を作成し、そのユーザーをweb サーバーのグループに入れる方法について説明します。 必要に応じて、既存のユーザーアカウントを使用できます。セキュリティ上の理由から、ユーザーには強力なパスワードを使用することをお勧めします。

NOTE
既存のユーザーアカウントを使用する予定がある場合は、Web サーバーユーザーグループ ​にスキップします。

ファイルシステムの所有者を作成し、ユーザーに強力なパスワードを付与します

この節では、ファイルシステム所有者の作成方法について説明します。 (ファイルシステム所有者は、コマンドラインユーザー​の別の用語です)。

CentOSまたはUbuntuでユーザーを作成するには、root権限を持つユーザーとして次のコマンドを入力します。

adduser <username>

ユーザーにパスワードを付与するには、root権限を持つユーザーとして次のコマンドを入力します。

passwd <username>

画面の指示に従って、ユーザーのパスワードを作成します。

WARNING
アプリケーションサーバーにroot権限がない場合は、別のローカルユーザーアカウントを使用できます。 ユーザーが強力なパスワードを持っていることを確認し、Web サーバーグループにファイルシステム所有者を配置します。

例えば、magento_userという名前のユーザーを作成し、そのユーザーにパスワードを付与するには、次のように入力します。

sudo adduser magento_user
sudo passwd magento_user
WARNING
このユーザーを作成する目的は、セキュリティを強化することなので、強力なパスワード ​を作成してください。

Web サーバーのユーザーグループを見つける

Web サーバーユーザーのグループを見つけるには:

  • CentOS:

    code language-shell
    grep -E -i '^user|^group' /etc/httpd/conf/httpd.conf
    

    または

    code language-shell
    grep -Ei '^user|^group' /etc/httpd/conf/httpd.conf
    

通常、ユーザー名とグループ名はどちらもapacheです。

  • Ubuntu: ps aux | grep apacheを使用してApache ユーザーを検索し、次にgroups <apache user>を使用してグループを検索します。

通常、ユーザー名とグループ名はどちらもwww-dataです。

Web サーバーグループにファイルシステムの所有者を配置する

Web サーバーのプライマリグループにファイルシステム所有者を配置するには(CentOSおよびUbuntuの一般的なApache グループ名を想定)、root権限を持つユーザーとして次のコマンドを入力します。

  • CentOS: usermod -a -G apache <username>
  • Ubuntu: usermod -a -G www-data <username>
NOTE
-a -G オプションは、apacheまたはwww-dataを​セカンダリ グループとしてユーザーアカウントに追加し、ユーザーの​プライマリ グループを保持するため、重要です。 ユーザーアカウントにセカンダリグループを追加すると、​ ファイルの所有権と権限を制限して、共有グループのメンバーが特定のファイルのみにアクセスできるようにします。

例えば、ユーザーmagento_userをCentOSのapache プライマリグループに追加するには、次の手順を実行します。

sudo usermod -a -G apache magento_user

ユーザーがweb サーバーグループのメンバーであることを確認するには、次のコマンドを入力します。

groups magento_user

次のサンプル結果は、ユーザーのプライマリ (magento)およびセカンダリ (apache) グループを示しています。

magento_user : magento_user apache
NOTE
通常、ユーザー名とプライマリグループ名は同じです。

タスクを完了するには、web サーバーを再起動します。

  • Ubuntu: service apache2 restart
  • CentOS: service httpd restart

ソフトウェアを入手

まだ実行していない場合は、次のいずれかの方法でソフトウェアを入手します。

共有グループの所有権と権限の設定

アプリケーションをインストールする前に、所有権と権限を設定するには:

  1. ファイルシステム所有者としてアプリケーションサーバーにログインするか、ファイル所有者に切り替えます。

  2. 次のコマンドを次の順序で入力します。

    code language-shell
    cd <app_root>
    
    code language-shell
    find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +
    
    code language-shell
    find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +
    
    code language-shell
    chown -R :<web server group> .
    
    code language-shell
    chmod u+x bin/magento
    

オプションで1行にすべてのコマンドを入力するには、アプリケーションが/var/www/html/magento2にインストールされ、web サーバーグループ名がapacheであると仮定して、次のように入力します。

cd /var/www/html/magento2 && find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} + && find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} + && chown -R :apache . && chmod u+x bin/magento

イベント ファイル システムの権限が正しく設定されておらず、ファイル システムの所有者が変更できない場合は、次のコマンドをroot権限を持つユーザーとして入力できます。

cd /var/www/html/magento2 && sudo find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} + && sudo find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} + && sudo chown -R :apache . && sudo chmod u+x bin/magento

ファイルシステムの所有者に切り替える

このトピックの他のタスクを実行した後、次のいずれかのコマンドを入力して、そのユーザーに切り替えます。

  • Ubuntu: su <username>
  • CentOS: su - <username>

以下に例を挙げます。

su magento_user
recommendation-more-help
0f8e7db5-0e9c-4002-a5b8-a0088077d995