PHP не работает должным образом, как узнать, какой модуль отсутствует?
Я столкнулся с множеством проблем, когда пытался обновить мой PHP с 7.0 до 7.2, я опишу, какие проблемы у меня возникают как можно лучше, не носитель языка, пожалуйста, имейте мой английский.
Мой сервер - Ubuntu16.04, на котором запущены apache2 и mysql5.7.
Прежде всего, если PHP7.2 работает под управлением FastCGI и модуль Apache PHP7.2 включен, файлы PHP будут загружены. Через какой-то поиск я узнал, если я закомментировал RemoveHandler .php
а также php_admin_value engine Off
в конфигурации apache файлы PHP вернутся к выполнению. Однако папки под корнем моего документа стали "недоступными для записи" пользователю www-data
, что приводит к неисправности сайта. Я проверил мод папок, они все либо 644 или 755, как обычно, также www-data
принадлежит к нужной группе пользователей. Я думаю, что стоит упомянуть одну деталь: когда я проверяю информацию PHP из внешнего интерфейса, его обработчик показывает Apache вместо FastCGI. Если я переключу режим PHP exec на Apache, проблема с незаписываемой информацией все равно останется. После нескольких часов борьбы с этой проблемой, я случайно переключил PHP-модуль Apache на PHP7.0, к моему удивлению, все нормализовалось, теперь мне не нужно комментировать эти две директивы, упомянутые выше, и все папки доступны для записи. за www-data
снова. И информация PHP из внешнего интерфейса показывает, что PHP работает под 7.2, и его обработчик fastCGI. Но это кажется очень странным, PHP7.2 работает под FastCGI, зачем ему нужен модуль Apache PHP7.0 для правильной работы? Я чувствую, что, возможно, пропустил какой-то важный модуль для PHP7.2 Apache, и для выполнения своей задачи он должен использовать модуль PHP7.0. Но с чего мне начать, чтобы узнать, чего не хватает? Сейчас уже слишком поздно, завтра я добавлю скриншоты моих включенных модулей и информацию о PHP.
ОБНОВИТЬ:
Мои включенные модули Apache: