Спасибо за то, что нашли время помочь мне с этой проблемой:
У меня был блог Wordpress, размещенный на общей учетной записи хостинга Bluehost. В настоящее время я вручную переношу его на инстанс EC2, созданный AWS Elastic Beanstalk, с помощью AMI Amazon Linux. Используя SSH, я:
На этом этапе индекс блога загрузился совершенно нормально. Однако, когда я попытался щелкнуть по одному из сообщений, в котором ранее использовались довольно постоянные ссылки, Wordpress не смог загрузить его, потому что у меня не было файла .htaccess с использованием mod_rewrite (обратите внимание, что перенос исходного .htaccess не является вариантом) . Итак, я вошел в раздел администратора и в разделе «Настройки»> «Постоянные ссылки» попытался воссоздать файл .htaccess. Однако я получил это сообщение от Wordpress: «Если бы ваш файл .htaccess был доступен для записи, мы могли бы сделать это автоматически, но это не так, это правила mod_rewrite, которые вы должны иметь в вашем файле .htaccess». На этом этапе я создал пустой файл .htaccess с соответствующими разрешениями и повторил попытку, но с тем же результатом.
Я также заметил, что в разделе администратора я не мог загружать изображения в раздел мультимедиа. Отсюда я решил, что это проблема собственности.
Исходя из двух вышеупомянутых проблем, я использовал whoami
через php shell_exec()
чтобы определить, какой пользователь использует Wordpress, и узнал, что пользователь webapp
использовался. Эластичный бобовый стебель создает webapp
пользователь, который будет использоваться для загрузки и развертывания новых версий кода через консоль (однако я вручную загружаю код через SFTP, используя учетную запись пользователя ec2). Отсюда я:
На этом этапе загрузка мультимедиа работала отлично. Однако Wordpress все еще не мог создать / записать в файл .htaccess. Разочарованный на этом этапе, я установил разрешения на 777, чтобы посмотреть, будет ли это работать, но это тоже не сработало.
Любая помощь приветствуется. И еще раз спасибо за ваше время!
Версии Redhat / Centos? В настоящее время SELinux включен по умолчанию и сильно ограничивает процесс веб-сервера. Выход ls -alZ .htaccess
? Только файлы с типом selinux. httpd_sys_rw_content_t
может быть изменен процессом веб-сервера, независимо от старого rwx
разрешения unix. Использовать chcon -t httpd_sys_rw_content_t .htaccess
изменить.