ファイルの所有権と権限の設定
ここでは、Adobe Commerceをインストールする前に、web サーバーグループに読み取り/書き込み権限を設定する方法について説明します。 これは、コマンドラインがファイルをファイルシステムに書き込めるようにするために必要です。
使用する手順は、 共有ホスティングを使用して 1 人のユーザーが存在するか、 プライベートサーバーを使用して 2 人のユーザーが存在するかによって異なります。
共有ホスティングでの 1 人のユーザーに対する権限の設定
この項では、Web サーバーも実行するユーザーと同じユーザーとしてアプリケーション・サーバーにログインする場合に、インストール前の権限を設定する方法について説明します。 このタイプの設定は、共有ホスティング環境で一般的です。
アプリケーションをインストールする前に権限を設定するには、次の手順に従います。
-
アプリケーションサーバーにログインします。
-
共有ホスティング プロバイダが提供するファイル マネージャ アプリケーションを使用して、書き込みアクセス許可が次のディレクトリに設定されていることを確認します。
vendor
(Composer または圧縮アーカイブのインストール)app/etc
pub/static
var
generated
- その他の静的リソース
-
コマンドラインでアクセスできる場合は、次のコマンドを表示されている順序で入力します。
code language-bash cd <app_root>
code language-bash find var generated vendor pub/static pub/media app/etc -type f -exec chmod u+w {} +
code language-bash find var generated vendor pub/static pub/media app/etc -type d -exec chmod u+w {} +
code language-bash chmod u+x bin/magento
必要に応じてすべてのコマンドを 1 行に入力するには、アプリケーションが
/var/www/html/magento2
にインストールされている場合は、次のように入力します。code language-bash 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-bash grep -E -i '^user|^group' /etc/httpd/conf/httpd.conf
または
code language-bash 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-bash cd <app_root>
code language-bash find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +
code language-bash find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +
code language-bash chown -R :<web server group> .
code language-bash 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