ファイルの所有権と権限の設定
このトピックでは、Adobe Commerceをインストールする前に、web サーバーグループに対する読み取り/書き込み権限を設定する方法について説明します。 これは、コマンドラインがファイルシステムにファイルを書き込めるようにするために必要です。
使用する手順は、共有ホスティング を使用し、1人のユーザーを持っているか、 プライベートサーバーを使用し、2人のユーザーを持っているかによって異なります。
共有ホスティングで1人のユーザーの権限を設定する
この節では、アプリケーションサーバーにweb サーバーも実行するのと同じユーザーとしてログインする場合のプリインストール権限の設定方法について説明します。 このタイプの設定は、共有ホスティング環境では一般的です。
アプリケーションをインストールする前に権限を設定するには:
-
アプリケーションサーバーにログインします。
-
共有ホスティングプロバイダーが提供するファイルマネージャーアプリケーションを使用して、書き込み権限が次のディレクトリに設定されていることを確認します。
vendor(Composerまたは圧縮アーカイブのインストール)app/etcpub/staticvargenerated- その他の静的リソース
-
コマンドラインアクセスがある場合は、次のコマンドを次の順序で入力します。
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 -
まだ実行していない場合は、次のいずれかの方法でアプリケーションを取得します。
-
ファイルシステムの所有権と権限を設定したら、 アプリケーションをインストール
2人のユーザーの所有権と権限を設定する
この節では、独自のサーバーまたはプライベートホスティング設定の所有権と権限を設定する方法について説明します。 この種類の設定では、通常、はWeb サーバーユーザーとしてログインしたり、Web サーバーユーザーに切り替えたりすることはできません。 通常、1人のユーザーとしてログインし、別のユーザーとしてweb サーバーを実行します。
2 ユーザーシステムの所有権と権限を設定するには:
次のタスクを次の順序で実行します。
共有グループについて
Web サーバーがファイルシステムにファイルやディレクトリを書き込み、ファイルシステム所有者が 所有権 を維持できるようにするには、両方のユーザーが同じグループに属している必要があります。 これは、両方のユーザーがファイル(管理者またはその他のweb ベースのユーティリティを使用して作成されたファイルを含む)へのアクセスを共有できるようにするために必要です。
この節では、ファイルシステム所有者を作成し、そのユーザーをweb サーバーのグループに入れる方法について説明します。 必要に応じて、既存のユーザーアカウントを使用できます。セキュリティ上の理由から、ユーザーには強力なパスワードを使用することをお勧めします。
ファイルシステムの所有者を作成し、ユーザーに強力なパスワードを付与します
この節では、ファイルシステム所有者の作成方法について説明します。 (ファイルシステム所有者は、コマンドラインユーザーの別の用語です)。
CentOSまたはUbuntuでユーザーを作成するには、root権限を持つユーザーとして次のコマンドを入力します。
adduser <username>
ユーザーにパスワードを付与するには、root権限を持つユーザーとして次のコマンドを入力します。
passwd <username>
画面の指示に従って、ユーザーのパスワードを作成します。
root権限がない場合は、別のローカルユーザーアカウントを使用できます。 ユーザーが強力なパスワードを持っていることを確認し、Web サーバーグループにファイルシステム所有者を配置します。例えば、magento_userという名前のユーザーを作成し、そのユーザーにパスワードを付与するには、次のように入力します。
sudo adduser magento_user
sudo passwd magento_user
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>
-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
タスクを完了するには、web サーバーを再起動します。
- Ubuntu:
service apache2 restart - CentOS:
service httpd restart
ソフトウェアを入手
まだ実行していない場合は、次のいずれかの方法でソフトウェアを入手します。
共有グループの所有権と権限の設定
アプリケーションをインストールする前に、所有権と権限を設定するには:
-
ファイルシステム所有者としてアプリケーションサーバーにログインするか、ファイル所有者に切り替えます。
-
次のコマンドを次の順序で入力します。
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