Digitalocean VPS上のLEMPスタック。
Public(または "Other")が実行許可、つまり757または777を持っていない限り、 "wp core update"を動作させることができませんでした。
それ以外の場合は、毎回 "エラー:ディレクトリを作成できませんでした"がスローされます。
私はwordpressのインストールを所有しているユーザーが "wp core update"を実行しているのと同じユーザーであることを確認しました
私がこれまでに試みたことは775にパーミッションを設定することです、www-data:www-dataをchownし、wp-cliファイルを移動します。
私は、このドロップレット/サーバー上で複数のWebサイトを実行していますが、それぞれ同じ問題が発生します。
それで、パーミッションを757に設定し、更新し、755ディレクトリに戻すようにcronjobを設定したとしましょう。644ファイル660 wp-config.php
それは比較的安全ですか?私のクライアントのサイトをかなり危険にさらすことになるでしょうか。
自動的にパーミッションをオン/オフにするようにcronジョブを設定することは、極端な回避策になるかもしれません。その他の問題.
これは私にとって良いリソースです - https://codex.wordpress.org/Hardening_WordPress 。
これは私にとっても素晴らしいリソースです - https://www.digitalocean.com/community/tutorials/how-to-install-wordpress-with-lemp-on-ubuntu-16-04
これらは、WebサーバーとしてNGINXを使用して、WordPressおよびプラグインのUbuntuドロップレットの自動/ wp-cli更新を可能にするために使用したステップです。
推奨ファイルとフォルダのアクセス許可を設定します。
750 for Directories
640 for Files
except for wp-config.php, this should be 440.
ディレクトリに対してこれを行うには:
find /srv/www/your-site/ -type d -exec chmod 750 {} \;
とファイル:
find /srv/www/your-site/ -type f -exec chmod 640 {} \;
そしてwp-config.php:
Sudo chmod 440 your-site/wp-config.php
所有者とグループを webに設定します。www-data ここで、 web はSudoユーザー権限を持つroot以外のユーザーです。
Sudo chown -R web:www-data /srv/www/your-site
このコマンドはNGINXがどんなユーザー/グループNGINXの下で動いているかに関するより多くの情報をあなたに与えるでしょう:
ps -eo pid,comm,euser,supgrp | grep nginx
https://superuser.com/questions/398833/how-to-determine-the-user-and-group-of-a-deamon-in-ubuntu
私の場合、グループはwww-dataです。
すべての新しいファイルが親ディレクトリのグループを継承するようにsetgidビットを設定します。
Sudo find /srv/www/your-site -type d -exec chmod g+s {} \;
グループにwp-contentディレクトリへの書き込みアクセス権を付与します。
Sudo chmod g+w /srv/www/your-site/wp-content
グループにプラグイン、テーマ、およびアップロードディレクトリへの書き込みアクセス権を与えます。
Sudo chmod -R g+w /srv/www/your-site/wp-content/themes
Sudo chmod -R g+w /srv/www/your-site/wp-content/plugins
Sudo chmod -R g+w /srv/www/your-site/wp-content/uploads
必要に応じて、最初にステップ2で所有者としてcore updateコマンドを実行していることを確認してください。
su web
wp core update