質問: コアアップデートに必要なユーザー、グループ、および権限 コアアップデートに必要なファイルおよびフォルダのユーザー、グループ、およびアクセス許可テスト設定私はすべて マニュアル を私に勧めてみました。これが私が使ったいくつかのテストセットアップで、セットアップはwordpressのインストールで再帰的に使われました。 ケースa:所有者は読み取り/書き込み権限を持っています。 ケースb:所有者とグループは読み取り/書き込み権限を持っています。 上記のすべての許可ケースは、次のユーザーとグループの設定で試行されました。 所有者:アパッチ|グループ:apache 所有者:アパッチ|グループ:ftpuser 所有者:ftpユーザー|グループ:ftpuser 所有者:ftpユーザー|グループ:apache 試験結果 1a: could not create directory. 1b: could not create directory 2a: could not create directory. 2b: the update cannot be installed because we will be unable to copy some files. this is usually due to inconsistent file permissions.: wp-admin/includes/update-core.php 3a: warning: touch(): unable to create file /home/ftpuser/domains/domain.name/public_html/wordpress/wp-content/uploads/wordpress-4.tmp because permission denied in /home/ftpuser/domains/domain.name/public_html/wordpress/wp-admin/includes/file.php on line 155 warning: unlink(/home/ftpuser/domains/domain.name/public_html/wordpress/wp-content/uploads/wordpress-4.tmp): no such file or directory in /home/ftpuser/domains/domain.name/public_html/wordpress/wp-admin/includes/file.php on line 457 download failed.: destination directory for file streaming does not exist or is not writable. 3b: warning: touch(): unable to create file /home/ftpuser/domains/domain.name/public_html/wordpress/wp-content/uploads/wordpress-4.tmp because permission denied in /home/ftpuser/domains/domain.name/public_html/wordpress/wp-admin/includes/file.php on line 155 warning: unlink(/home/ftpuser/domains/domain.name/public_html/wordpress/wp-content/uploads/wordpress-4.tmp): no such file or directory in /home/ftpuser/domains/domain.name/public_html/wordpress/wp-admin/includes/file.php on line 457 download failed.: destination directory for file streaming does not exist or is not writable. 4a: warning: touch(): unable to create file /home/ftpuser/domains/domain.name/public_html/wordpress/wp-content/uploads/wordpress-4.tmp because permission denied in /home/ftpuser/domains/domain.name/public_html/wordpress/wp-admin/includes/file.php on line 155 warning: unlink(/home/ftpuser/domains/domain.name/public_html/wordpress/wp-content/uploads/wordpress-4.tmp): no such file or directory in /home/ftpuser/domains/domain.name/public_html/wordpress/wp-admin/includes/file.php on line 457 download failed.: destination directory for file streaming does not exist or is not writable. 4b: the update cannot be installed because we will be unable to copy some files. this is usually due to inconsistent file permissions.: wp-admin/includes/update-core.php これらのアップデートは常にwordpressにとって大きな問題でした。これを明確にしてみましょう。インストールは、directadminを実行しているcentos 6.6サーバーでホストされています。編集:これらのテストに使用したwp-config.phpのカスタム設定には、次のものが含まれています。$root='public_html'; define('ftp_user','username'); define('ftp_pass','password'); $addr=$_server['server_addr']; $name=$_server['server_name']; $host=$_server['http_host']; $https=$_server['https']; $protocol=(!empty($https)&&$https!=='off'||$_server['server_port']===443)?'https://':'http://'; $abspath=(strpos(getcwd(),'/wp-admin')!==false)?substr(getcwd(),0,strrpos(getcwd(),'/wp-admin')):getcwd(); $relpath=substr($abspath,strrpos($abspath,$root)+strlen($root)); define('wp_home',$protocol.$host.$relpath); define('wp_siteurl',$protocol.$name.$relpath); define('fs_chmod_dir',(02755&~umask())); //for case a define('fs_chmod_file',(0664&~umask())); //for case a define('fs_chmod_dir',(02775&~umask())); //for case b define('fs_chmod_file',(0664&~umask())); //for case b define('fs_method','ftpext'); define('ftp_base',$abspath); define('ftp_host',$addr);
回答: うん!私はついに解決策を見つけました!トリックは、すべてのファイルとフォルダの所有権とグループをapacheユーザーに設定することでした。一時記憶用のディレクトリがあること、および../wp-content/upgrade/ディレクトリも必要であることを確認してください。あなたのwp-config.phpよりもこれが私がそれの互換性について知らない唯一のものです。しかし、@ thedeadmedicが推奨するように、定数fs_methodをdirectに設定する必要があります。使いやすくするためにbashスクリプトを作成しました。これは、wp-config.phpを除いて、すべて自分でこのファイルに追加する必要があります。// some static information, so fill this in correctly. $root='public_html'; define('ftp_user','<username>'); define('ftp_pass','<password>'); // this is dynamically configured. you won't have to edit. $addr=$_server['server_addr']; $name=$_server['server_name']; $host=$_server['http_host']; $https=$_server['https']; $protocol=(!empty($https)&&$https!=='off'||$_server['server_port']===443)?'https://':'http://'; $abspath=(strpos(getcwd(),'/wp-admin')!==false)?substr(getcwd(),0,strrpos(getcwd(),'/wp-admin')):getcwd(); $relpath=substr($abspath,strrpos($abspath,$root)+strlen($root)); $tmppath=substr($abspath,0,-(strlen($relpath)+strlen($root))).'tmp'; define('wp_home',$protocol.$host.$relpath); define('wp_siteurl',$protocol.$name.$relpath); define('fs_chmod_dir',(02755&~umask())); define('fs_chmod_file',(0644&~umask())); define('wp_temp_dir', $tmppath); define('fs_method','direct'); define('ftp_base',$abspath); define('ftp_host',$addr); bashスクリプトよりも、これは次のように機能します。bash script.sh$ 1 $ 2 $ 1:実行するアクションを選択してください help:このスクリプトの使い方を見せてください。 config:既存のwpインストールを正しく設定し、currentディレクトリにインストールされているものを1つ設定します。 new:新しいwp cmsをcurrentディレクトリにインストールしてから、正しく設定してください。 $ 2:パブリックディレクトリの名前なので、ファイルがプライベートである場所から検出できます。デフォルトであり、最も一般的なのはpublic_htmlです。サーバーがこれもデフォルトとして使用する場合は、このパラメーターを空のままにしてください。 そして今bashスクリプト自体! :d# if requested install wp if [ "$1" = new ]; then wget https://wordpress.org/latest.tar.gz tar -xvf latest.tar.gz mv -f wordpress/* . rm -rf wordpress/ latest.tar.gz fi if [[ "$1" = help || -z "$1" ]]; then echo "usage: install.sh \$1 \$2" echo "\$1: default=config, new=install new wp." echo "\$2: default=public_html, *=root folder (must be a parent)." else # define root directory if [ ! -z "$2" ]; then root=$2 else root='public_html' fi # define root path dir=`pwd -p` tmp=${dir%%$root*}"tmp" # define apache user apache_user=$(ps axho user,comm|grep -e "httpd|apache"|uniq|grep -v "root"|awk 'end {if ($1) print $1}') # create missing directories if [ ! -d "$tmp" ]; then mkdir "$tmp" chown -r "$apache_user":"$apache_user" "$tmp" fi if [ ! -d wp-content/upgrade ]; then mkdir -p wp-content/upgrade fi # setup group and ownership for the installation chown -r "$apache_user":"$apache_user" wp-* index.php xmlrpc.php .htaccess # make sure the chmoding is correct find wp-* index.php xmlrpc.php .htaccess -type f -exec chmod 644 {} \; find wp-* -type d -exec chmod 755 {} \; # remove unwanted wp files rm -f license.txt readme.html fi tip:システムのいたるところで利用できるようにするには、それを/ usr/local/bin /に置くだけです。 $ <script name> **$1 $2**を実行するだけです。 「スクリプト名」が一意であることを確認してください。