Я запускаю 2 приложения Magento на своем веб-сервере, и я случайно установил "chown -R www-data: www-data *" из корня сервера. Это означает, что все файлы принадлежали пользователю root.
Это немедленно вызвало проблемы на сайтах magento, а именно: mysql не подключился, потому что должен был использовать пользователя «mysql».
С тех пор я исправил это и установил, что файлы веб-страниц принадлежат www-data.
Сейчас веб-сайты работают нормально, но когда я пытаюсь завершить заказ, он зависает на минуту, прежде чем истечет время ожидания. Заказ регистрируется в бэк-офисе, но не отображает «страницу успешного выполнения заказа», как предполагалось.
Я запускаю nginx и php-fpm, и журнал php-fpm гласит:
[22-Mar-2013 13:31:24] WARNING: [pool www] child 1791, script '/var/www/website.com/index.php' (request: "POST /index.php") execution timed out (1436.378897 sec), terminating
[22-Mar-2013 13:31:24] WARNING: [pool www] child 1791 exited on signal 15 (SIGTERM) after 1600.011818 seconds from start
[22-Mar-2013 13:31:24] NOTICE: [pool www] child 2717 started
Что творится? Может ли это происходить из-за того, что некоторые файлы не принадлежат их истинному владельцу? Если да, то какие это файлы / папки и какой у них должен быть владелец?
Изменить: это должно быть связано с постфиксом. Обычный php-скрипт, повторяющий «Hello World», отображается нормально, когда я помещаю туда функцию mail (), он зависает.
Предполагая, что вы были root, когда вы это сделали, и он завершил chown (и не был быстро отменен с помощью CTRL-C).
Когда я слышу что-то вроде этого - что команда chown или chmod (или rm -rf) была выполнена рекурсивно для всей файловой системы, я склоняюсь к тому, чтобы начать заново. Вы будете гоняться за проблемами, ну, никогда. Это чрезвычайно разрушительная вещь, которую можно сделать с Linux-системой, и многие из последующих проблем будут менее очевидными в отношении того, что не так (особенно если какой-то другой парень, не знающий о chown -R, приходит и пытается устранить неполадки).
В зависимости от вашего дистрибутива Linux некоторые хранят информацию об исходном владельце и правах доступа к файлам в своей системе упаковки. Возможно, удастся «сбросить» права доступа к тому состоянию, в котором они были установлены менеджером пакетов. Эта ссылка, например, говорит о том, как это сделать в дистрибутивах на основе RPM: http://www.cyberciti.biz/tips/reset-rhel-centos-fedora-package-file-permission.html
В конце концов, я бы действительно порекомендовал начать все сначала, если это вообще возможно. 'chown -R' on * на один шаг выше 'rm -rf *', но конечный результат может быть таким же - проще начать заново.
Если вы запустили эту команду на /, все файлы принадлежат пользователю вашего веб-сервера (www-data), а не root. Я полагаю, что без дополнительного контекста в вашей системе система, подключенная к вашему приложению, не может писать в свой файл. Постфикс запущен?
Вам, вероятно, не понравится этот ответ, но лучшее решение - переделать систему, переустановить приложения и просто указать их в той же базе данных.
В системе Linux существует множество важных разрешений, и простое исправление минимума, необходимого для работы вашего приложения, может оставить серьезные проблемы с безопасностью. Например, прямо сейчас ваш веб-сервер может писать в ваш файл / etc / shadow.