Я на RHEL6 и пытаюсь сделать автоматическое обновление на WordPress, но соединения ftp и sftp не работают. Я подозреваю, что это как минимум проверка соединения изнутри сервера, что не разрешено моим брандмауэром.
Я добавил эту строку в /etc/sysconfig/iptables, но это все равно не сработало. Есть идеи?
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
решение1
Все соединения с одним и тем же хостом будут осуществляться через lo
интерфейс (loopback), который по умолчанию не ограничен и разрешен путем помещения строки в начало правил:
-A INPUT -i lo -j ACCEPT
Автоматическое обновление Wordpress обычно работает без доступа по FTP, если нет - должно быть, на веб-сервере/php есть очень-очень строгие ограничения безопасности. Обычно Wordpress проверяет дисковое пространство и разрешения с помощью каких-то уродливых функций (насколько я помню, было что-то, связанное с проверкой inode (СТРАННО)).
Для работы автоматического обновления необходимо соблюдение как минимум двух критериев:
(a) владение файлами: все ваши файлы WordPress должны принадлежать пользователю, под которым работает ваш веб-сервер. Другими словами, владелец ваших файлов WordPress должен совпадать с пользователем, под которым работает ваш веб-сервер. Пользователь веб-сервера (с именем "apache", "web", "www", "nobody" или каким-то подобным) не обязательно является владельцем ваших файлов WordPress. Обычно файлы WordPress принадлежат пользователю ftp, который загрузил исходные файлы. Если нет соответствия между владельцем ваших файлов WordPress и пользователем, под которым работает ваш веб-сервер, вы получите диалоговое окно с запросом "сведения о подключении", и вы обнаружите, что независимо от того, что вы введете в этом диалоговом окне, вы не сможете автоматически обновиться.
(б) права доступа к файлам: все ваши файлы WordPress должны быть либо доступны для записи владельцу, либо группе пользователя, под которым работает ваш сервер Apache.
На общих хостах файлы WordPress НЕ должны принадлежать веб-серверу. Если в установке владеют разными файлами несколько пользователей (например, из-за изменений, внесенных путем удаления и повторной загрузки файлов через разные учетные записи), права доступа к файлам должны быть доступны для записи группе (например, 775 и 664, а не 755 и 644 по умолчанию). Права доступа к файлам (в целом) должны быть скорректированы в соответствии с серверной средой (например, общий хост RackSpace CloudSites рекомендует 700 и 600 для одного пользователя ftp или 770 и 660 для нескольких пользователей ftp). Подробнее см. в разделе прав доступа к файлам (некоторые файлы и папки требуют более строгих прав доступа).
(с)http://codex.wordpress.org/Updating_WordPress#Автоматическое_обновление
Проверьте наличие разрешений и т.д.
Если вы все же хотите сделать это с помощью FTP - убедитесь, что он также прослушивает локальный адрес netstat -anp|grep 21
.
SFTP? Серьёзно? Вы не хотите этого делать. Поверьте мне.
решение2
Вы на правильном пути, но здесь нужно немного магии Wordpress. По опыту могу сказать, что FTPS все еще пытается использовать порт 21, а не SSH (порт 22). Я не помню точной процедуры, которой я следовал, чтобы включить обновление SSH, но другая ее версия здесь:http://wp.tutsplus.com/articles/tips-articles/quick-tip-upgrade-your-wordpress-site-via-ssh/. См. раздел «Метод 2». Если это не привело вас туда, куда нужно, поиск в Google по запросу «обновление wordpress ssh» должен дать вам несколько полезных URL-адресов — извините, но я не могу найти тот, который использовал.