- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Сайт крутился на апаче. Все работало. Решил перевести на Nginx (он тоже стоял).
Выключил апач, создал для сайта конфиг, перезагрузил Nginx - 500 ошибка. Настраивал все как раньше уже много раз. Не пойму что сейчас не так.
Куда копать?
В папке /var/log/nginx в логе сайта вижу запрос к сайту с 500 ошибкой и все.
Роботс сайта по адресу https://site.ru/robots.txt открывается нормально
Роботс сайта по адресу https://site.ru/robots.txt открывается нормально
Значит PHP не работает.
Так info.php открывается же. Включил ошибки - получил "Error: Failed to start application: Failed to start the session"
Так info.php открывается же. Включил ошибки - получил "Error: Failed to start application: Failed to start the session"
А права на создание сессий у nginx есть?
Nginx PHP не выполняет сам и прав никаких у него быть не должно .
Смысл вообще подобное по форумам спрашивать? Ни у кого кроме вас нет доступа к логам/конфигам, никто ни малейшего представления тут не имеет что там происходит.
Все ответы всегда в логах. Если в логах нет, значит не включено (не достаточно детально) включено логирование.
Failed to start the session - более-менее однозначно говорит о том что нету доступа на создание файла сессии... у кого? Нам-то откуда знать?
Видимо у пользователя под которым работает у вас PHP-FPM (или что другое, кто знает).
Скорей всего session.save_path указывает на /tmp и возможно (верней так лучше и делать всегда) на /tmp стоят права типа 000, т.е. никто кроме root'а не может туда ничего писать.
Задайте в php.ini session.save_path куда-то в доступности этого пользователя.
Скорей всего session.save_path указывает на /tmp и возможно (верней так лучше и делать всегда) на /tmp стоят права типа 000, т.е. никто кроме root'а не может туда ничего писать.
Вы ничего не путаете?
На tmp должны быть права 777
По поводу сессий, я имел ввиду это же что вы пишите, что у пользователя под которым работает nginx нет прав на создания сессий.
Ничего не путаю. Ну смотря для чего конечно серверок используется и кем. Но если речь про хостинг сайтов, то нет, не нужно всем пользователями иметь (и разводить там страшную помойку) доступ в общий /tmp.
У каждого свой должен быть. Собственно так и сделано у меня везде много лет уж как.
И, еще раз, пользователю, под которым работает nginx достаточно лишь иметь доступ к файлам сайтов, к статике которую он раздает сам. И больше никуда ему нет надобности иметь доступа.
Хотя если и nginx и php-fpm работают от одного и того же пользователя, то да. Но зачем так делать, это уже отдельный вопрос.
PHP же наверняка запущено от другого пользователя (или нескольких разных), вот он и должен иметь доступ к папке, указанной в session.save_path и причем она может быть отлична от tmp папки пользователя. Т.е. сессии отдельно, темп отдельно.
Если памяти много, пишите сессии в redis. И лучше с сериализацией igbinary.
Я уж и не помню, когда последний раз в фс писал сессии. Разве только для каких-нибудь рукожопных поделок, которые сами путь к сессиям переопределяют...