Веб-сайт WordPress моего клиента размещен в Digital Ocean. Я установил разрешения, рекомендованные на этой странице , но столкнулся с проблемами доступа к каталогу example.com на сервере с использованием SSH. Когда я пытаюсь получить доступ к каталогу с помощью cd example.com
, отображается следующее сообщение: -bash: cd: example.com: Permission denied
.
Я выполнил команду stat
в каталоге example.com, и результат приведен ниже.
File: example.com
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: fc01h/64513d Inode: 258961 Links: 5
Access: (0750/drwxr-x---) Uid: ( 33/www-data) Gid: ( 33/www-data)
Я также не могу подключиться через SFTP, используя пользователя SSH, которого я создал при настройке капли. На моем MacBook Pro программа Transmit отображает следующее сообщение: Убедитесь, что у вас есть разрешение на изменение этого файла.
Если я изменю права доступа к каталогу на sudo chown -R example: example /var/www/example.com
SFTP подключается, но установка WordPress работает некорректно.
Что мне нужно изменить, чтобы WordPress, SSH и SFTP работали правильно с соответствующими разрешениями?
Общие разрешения для файлов веб-сайтов:
chown apache:apache -R * # change to the user and owner set for apache
find . -type d -exec chmod 755 {} \; # directory permissions: rwxr-xr-x
find . -type f -exec chmod 644 {} \; # file permissions: rw-r--r--
На странице усиления WP указано:
Все файлы должны принадлежать вашей учетной записи и должны быть доступны для записи вами. Любой файл, которому требуется доступ для записи из WordPress, должен быть доступен для записи веб-сервером, если этого требует ваш хостинг, это может означать, что эти файлы должны принадлежать группе учетной записи пользователя, используемой процессом веб-сервера.
/
Корневой каталог WordPress: все файлы должны быть доступны для записи только вашей учетной записи, кроме .htaccess, если вы хотите, чтобы WordPress автоматически генерировал правила перезаписи для вас. / wp-admin /
Область администрирования WordPress: все файлы должны быть доступны для записи только вашей учетной записи. / wp-includes /
Основная часть логики приложения WordPress: все файлы должны быть доступны для записи только вашей учетной записи. / wp-content /
Пользовательский контент: предназначен для записи вашей учетной записью и процессом веб-сервера. В / wp-content /
вы найдете:
/ wp-content / themes /
Файлы тем. Если вы хотите использовать встроенный редактор тем, все файлы должны быть доступны для записи процессу веб-сервера. Если вы не хотите использовать встроенный редактор тем, все файлы могут быть доступны для записи только вашей учетной записи.
/ wp-content / plugins /
Файлы подключаемых модулей: все файлы должны быть доступны для записи только вашей учетной записи.
Другие каталоги, которые могут присутствовать в / wp-content /
, должны быть задокументированы тем плагином или темой, который их требует. Разрешения могут отличаться.
Итак, cd
в каталог Wordpress и выполните:
chown $USER:$USER -R * # Let your useraccount be owner
chown www-data:www-data wp-content # Let apache be owner of wp-content
Теперь все файлы WP можно обновлять напрямую через ssh и ftp, используя свое имя пользователя.
Это, вероятно, сработает (я использовал свой облачный экземпляр, но у меня нет WP)
Мое личное мнение:
НИКОГДА не обновляйте файлы веб-сервера напрямую, а делайте это косвенно, и пусть система сама выполняет обновление. Если вы загружаете файл в определенный каталог, вы можете загружать все файлы, которые хотите, как ваш пользователь, без необходимости просмотра разрешений.
дублируйте свой веб-сайт, например, / home / $ USER / website /
Используйте эти файлы для edit
Затем создайте сценарий, который делает резервную копию и копирует эти файлы на ваш реальный веб-сайт без изменения разрешений.
Две команды для этого выглядят следующим образом (адаптируйтесь к вашей ситуации; я использовал широкий выбор (т.е. весь веб-сайт)):
tar cvfz / u / backups / "$ (date +"% Y_% m_% d_% I_% M_% p "). tar.gz" / var / www /
sudo cp -rp / home / $ USER / website / / var / www /