Intereting Posts
Увеличьте категорию / срок описания слова count_many_users_posts, кроме текущего зарегистрированного пользователя? Как сохранить дополнительные пользовательские данные как часть процесса регистрации? Как сделать виджет категории «боковая панель» (запас) отображающим общее количество сообщений, в том числе в подкатегориях? Как использовать Yoast SEO backend на английском языке, даже если переменная WPLANG не является английской? Неустранимая ошибка при загрузке их Категория nicename внутри цикла в wordpress Получение заметки с изображением для показа только если заполнено Добавить новую вкладку в WordPress Plugin install Листинг Если одна таксономия содержит тот же термин, что и другой, то отображается сообщение Где подходящее место для регистрации / размещения сценариев и стилей Конфликт между mathax и wp-Typography Крюк / действие после WP_Query получает сообщения для запроса пользовательских таблиц для метаданных wp-cron.php – тайм-аут Multisite Subdomain с использованием дополнительных ресурсов, чем другие?

Необходимый пользователь, группа и разрешения для основных обновлений

Какой пользователь, группа и разрешения файлов и папок мне нужны для основных обновлений?

Тестирование

Я попробовал все, что рекомендовал мне пособие . Вот некоторые тестовые настройки, которые я использовал, установка была рекурсивно использована при установке WordPress.

  • Случай A: Владелец имеет права на чтение / запись.
  • Случай B: у владельца и группы есть права на чтение / запись.

Каждое указанное выше разрешение было опробовано со следующей настройкой пользователя и группы.

  1. Владелец: Apache | Группа: Модераторы
  2. Владелец: Apache | Группа: Модераторы
  3. Владелец: FTPuser | Группа: Модераторы
  4. Владелец: FTPuser | Группа: Модераторы

Результаты теста

  • :

    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, я хотел бы прояснить это, давайте найдем общее решение! Установка размещена на сервере CentOS 6.6, работающем с DirectAdmin.

РЕДАКТИРОВАТЬ:

Конфигурация в 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); 

Yeahh! Я наконец нашел решение!

Хитрость заключалась в том, чтобы установить все файлы и папки в их собственность и группу пользователю apache. Убедитесь, что у вас есть каталог для временного хранения, и вам также нужен каталог ../wp-content/upgrade/ . Чем в вашем wp-config.php это единственное, о чем я не знаю о совместимости. Но вам понадобится постоянный набор FS_METHOD чтобы direct как предлагалось @TheDeadMedic.

Чтобы упростить жизнь, я создал скрипт 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.
    • 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 

СОВЕТ . Чтобы сделать его доступным повсюду в системе, просто поместите его в / usr / local / bin /, когда это будет сделано, вы сможете просто запустить $ <script name> **$1 $2** . Убедитесь, что имя сценария уникально.