Входной файл не указан с помощью [email protected] и httpd (brew)Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Гость
 Входной файл не указан с помощью [email protected] и httpd (brew)

Сообщение Гость »


У меня очень странная проблема с настройкой Apache + php-fpm в OSX Ventura.

Я использую Brew, несколько месяцев назад я установил httpd (apache) и несколько версий php (7.3, 7.4, 8.0, 8.1 и несколько недель назад 8.2). Все работало нормально. Несколько дней назад я обновил узел через Brew, и все эти службы перестали работать.

Я переустановил httpd и весь PHP, и все, кроме одной версии (7.4), работает нормально. Но я могу заставить работать версию 7.4.

Мои настройки:

httpd.conf

https://pastebin.com/gEjnH6Tf

vhosts.conf

DocumentRoot "/Проекты" Имя сервера php74.localhost ErrorLog "/opt/homebrew/var/log/httpd/php.localhost-error_log" CustomLog "/opt/homebrew/var/log/httpd/php.localhost-access_log" Общий ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9074/Projects/$1 Разрешить переопределить все Требовать все предоставленные php-fpm.d/www.conf
; Запустите новый пул с именем «www». ; переменная $pool может использоваться в любой директиве и будет заменена ; имя пула (здесь «www») [www] ; Префикс для каждого пула ; Это применимо только к следующим директивам: ; - 'access.log' ; - «медленный журнал» ; - «слушать» (unixsocket) ; - 'хрут' ; - 'чдир' ; - 'php_values' ; - 'php_admin_values' ; Если он не установлен, вместо него применяется глобальный префикс (или /opt/homebrew/Cellar/[email protected]/7.4.33_2). ; Примечание. Эта директива также может относиться к глобальному префиксу. ; Значение по умолчанию: нет ;prefix = /path/to/pools/$pool ; Пользователь Unix/группа процессов ; Примечание: Пользователь является обязательным. Если группа не задана, используется группа пользователей по умолчанию. ; будет использован. пользователь = martin.bezdek группа = персонал ; Адрес, по которому принимаются запросы FastCGI. ; Допустимые синтаксисы: ; 'ip.add.re.ss:port' - для прослушивания сокета TCP определенного адреса IPv4 на ; конкретный порт; ; '[ip:6:addr:ess]:port' - для прослушивания сокета TCP определенного адреса IPv6 на ; конкретный порт; ; «порт» — прослушивать TCP-сокет для всех адресов ; (сопоставление IPv6 и IPv4) на определенном порту; ; '/path/to/unix/socket' — для прослушивания сокета unix. ; Примечание. Это значение является обязательным. слушать = 127.0.0.1:9074 ; Установить очередь прослушивания(2). ; Значение по умолчанию: 511 (-1 во FreeBSD и OpenBSD). ;listen.backlog = 511 ; Установите разрешения для сокета unix, если он используется. В Linux чтение/запись ; разрешения должны быть установлены, чтобы разрешить соединения с веб-сервера. Много ; Системы, основанные на BSD, разрешают соединения независимо от разрешений. Владелец ; и группу можно указать либо по имени, либо по их числовым идентификаторам. ; Значения по умолчанию: пользователь и группа устанавливаются как работающий пользователь. ; режим установлен на 0660 ;listen.owner = _www ;listen.group = _www ;listen.mode = 0660 ; Если поддерживаются списки управления доступом POSIX, вы можете установить их с помощью ; для этих параметров значение представляет собой список имен пользователей/групп, разделенных запятыми. ; Если установлено, Listen.owner и Listen.group игнорируются. ;listen.acl_users = ;listen.acl_groups = ; Список адресов (IPv4/IPv6) клиентов FastCGI, которым разрешено подключение. ; Эквивалент переменной среды FCGI_WEB_SERVER_ADDRS в оригинале. ; PHP FCGI (5.2.2+). Имеет смысл только с сокетом прослушивания TCP. Каждый адрес ; необходимо отделять запятой. Если это значение оставить пустым, соединения будут ; принимается с любого IP-адреса. ; Значение по умолчанию: любое ;listen.allowed_clients = 127.0.0.1 ; Укажите приоритет nice(2), который будет применяться к процессам пула (только если он установлен) ; Значение может варьироваться от -19 (самый высокий приоритет) до 20 (низкий приоритет). ; Примечание. - Это будет работать только в том случае, если главный процесс FPM запущен от имени пользователя root. ; - Процессы пула наследуют приоритет главного процесса. ; если не указано иное ; Значение по умолчанию: не установлено ; процесс.приоритет = -19 ; Установите флаг возможности дампа процесса (PR_SET_DUMPABLE prctl), даже если пользователь процесса ; или группа отличается от пользователя главного процесса. Это позволяет создать процесс ; дамп ядра и ptrace процесса для пользователя пула. ; Значение по умолчанию: нет ; процесс.dumpable = да ; Выберите, как менеджер процессов будет контролировать количество дочерних процессов. ; Возможные значения: ; static — фиксированное количество (pm.max_children) дочерних процессов; ; динамический — количество дочерних процессов задается динамически на основе ; следующие директивы. При таком управлении процессом будет ; всегда минимум 1 ребенок. ; pm.max_children — максимальное количество детей, которые могут ; быть живым в то же время. ; pm.start_servers — количество дочерних серверов, создаваемых при запуске. ; pm.min_spare_servers — минимальное количество детей в режиме ожидания ; состояние (ожидание обработки). Если число ; «простаивающих» процессов меньше этого ; число, то будут созданы некоторые дочерние элементы. ; pm.max_spare_servers — максимальное количество детей в режиме ожидания ; состояние (ожидание обработки). Если число ; «простаивающих» процессов больше, чем это ; число, то некоторые дети будут убиты. ; ondemand — при запуске дочерние элементы не создаются. Дети будут разделены, когда ; новые запросы будут подключаться. Используются следующие параметры: ; pm.max_children — максимальное количество детей, которые ; может быть одновременно живым. ; pm.process_idle_timeout — количество секунд, по истечении которых ; простаивающий процесс будет уничтожен. ; Примечание. Это значение является обязательным. вечер = динамический ; Количество дочерних процессов, которые будут созданы, если для параметра pm установлено значение «статический», а ; максимальное количество дочерних процессов, когда для pm установлено значение «динамический» или «по требованию». ; Это значение устанавливает ограничение на количество одновременных запросов, которые будут ; служил. Эквивалент директивы ApacheMaxClients с mpm_prefork. ; Эквивалент переменной среды PHP_FCGI_CHILDREN в исходном PHP. ; Компьютерная графика. Приведенные ниже значения по умолчанию основаны на сервере с небольшим количеством ресурсов. Не ; забудьте настроить pm.* в соответствии со своими потребностями. ; Примечание. Используется, когда для параметра pm установлено значение «статический», «динамический» или «по требованию». ; Примечание. Это значение является обязательным. pm.max_children = 5 ; Количество дочерних процессов, созданных при запуске. ; Примечание. Используется только в том случае, если для параметра pm установлено значение «динамический». ; Значение по умолчанию: (min_spare_servers + max_spare_servers) / 2 pm.start_servers = 2 ; Желаемое минимальное количество простаивающих серверных процессов. ; Примечание. Используется только в том случае, если для параметра pm установлено значение «динамический». ; Примечание. Обязательно, если для параметра pm установлено значение «динамический». pm.min_spare_servers = 1 ; Желаемое максимальное количество простаивающих серверных процессов. ; Примечание. Используется только в том случае, если для параметра pm установлено значение «динамический». ; Примечание. Обязательно, если для параметра pm установлено значение «динамический». pm.max_spare_servers = 3 ; Количество секунд, по истечении которых простаивающий процесс будет завершен. ; Примечание. Используется только в том случае, если для параметра pm установлено значение «ondemand». ; Значение по умолчанию: 10 с. ;pm.process_idle_timeout = 10 с; ; Количество запросов, которые должен выполнить каждый дочерний процесс перед возрождением. ; Это может быть полезно для устранения утечек памяти в сторонних библиотеках. Для ; бесконечная обработка запросов укажите «0». Эквивалент PHP_FCGI_MAX_REQUESTS. ; Значение по умолчанию: 0 ;pm.max_requests = 500 ; URI для просмотра страницы состояния FPM. Если это значение не установлено, URI не будет ; распознается как страница состояния. Он показывает следующую информацию: ; пул – название пула; ; менеджер процессов – статический, динамический или по требованию; ; время начала – дата и время запуска FPM; ; start с - количество секунд с момента запуска FPM; ; Accepted conn — количество запросов, принятых пулом; ; очередь прослушивания - количество запросов в очереди ожидания ; соединения (см. отставание в Listen(2)); ; max Listen Queue - максимальное количество запросов в очереди ; ожидающих соединений с момента запуска FPM; ; Listen Queue len — размер очереди сокетов ожидающих соединений; ; простаивающие процессы - количество простаивающих процессов; ; активные процессы – количество активных процессов; ; всего процессов — количество простаивающих + активных процессов; ; max activeprocesss - максимальное количество активных процессов с момента FPM ; начал; ; max детей достигнуто - сколько раз был достигнут лимит процесса, ; когда pm пытается запустить больше детей (работает только для ; pm «динамический» и «по требованию»); ; Значения обновляются в режиме реального времени. ; Пример вывода: ; бассейн: www ; менеджер процессов: статический ; время начала: 01.07.2011:17:53:49 +0200 ; начало с: 62636 ; принятое соединение: 190460 ; очередь прослушивания: 0 ; максимальная очередь прослушивания: 1 ; очередь прослушивания len: 42 ; холостые процессы: 4 ; активных процессов: 11 ; всего процессов: 15 ; максимальное количество активных процессов: 12 ; максимальное количество детей: 0 ; ; По умолчанию вывод страницы состояния форматируется как текстовый/обычный. Прохождение либо ; «html», «xml» или «json» в строке запроса вернут соответствующий ; синтаксис вывода. Пример: ; http://www.foo.bar/status ; http://www.foo.bar/status?json ; http://www.foo.bar/status?html ; http://www.foo.bar/status?xml ; ; По умолчанию страница состояния выводит только краткий статус. Прохождение «полного» в ; Строка запроса также вернет статус для каждого процесса пула. ; Пример: ; http://www.foo.bar/status?full ; http://www.foo.bar/status?json&full ; http://www.foo.bar/status?html&full ; http://www.foo.bar/status?xml&full ; Статус «Полный» возвращается для каждого процесса: ; pid — PID процесса; ; state — состояние процесса (Idle, Running,...); ; время начала – дата и время запуска процесса; ; start с — количество секунд с момента запуска процесса; ; запросы — количество запросов, обслуженных процессом; ; длительность запроса – длительность запросов в мкс; ; метод запроса – метод запроса (GET, POST, ...); ; URI запроса — URI запроса со строкой запроса; ; длина контента — длина контента запроса (только с POST); ; user — пользователь (PHP_AUTH_USER) (или «-», если не установлен); ; script - основной вызываемый скрипт (или '-', если не установлен); ; последний запрос процессора - % процессора, использованного последним запросом ; всегда 0, если процесс не находится в состоянии ожидания ; потому что расчет ЦП выполняется, когда запрос ; обработка прекращена; ; Память последнего запроса — максимальный объем памяти, использованный последним запросом. ; всегда 0, если процесс не находится в состоянии ожидания ; потому что расчет памяти выполняется, когда запрос ; обработка прекращена; ; Если процесс находится в состоянии ожидания, то информация относится к ; последний запрос, который обслужил процесс. В противном случае информация относится к ; текущий обслуживаемый запрос. ; Пример вывода: ; ************************ ; идентификатор: 31330 ; состояние: Работает ; время начала: 01.07.2011:17:53:49 +0200 ; начало с: 63087 ; запросов: 12808 ; продолжительность запроса: 1250261 ; метод запроса: GET ; URI запроса: /test_mem.php?N=10000 ; длина контента: 0 ; пользователь: - ; скрипт: /home/fat/web/docs/php/test_mem.php ; последний запрос процессора: 0,00 ; память последнего запроса: 0 ; ; Примечание. Доступен образец веб-страницы мониторинга состояния FPM в реальном времени. ; Он доступен по адресу: /opt/homebrew/Cellar/[email protected]/7.4.33_2/share/php/fpm/status.html. ; ; Примечание. Значение должно начинаться с косой черты (/). Значение может быть ; что угодно, но использовать расширение .php или его ; может конфликтовать с реальным файлом PHP. ; Значение по умолчанию: не установлено ;pm.status_path = /статус ; URI ping для вызова страницы мониторинга FPM. Если это значение не установлено, нет ; URI будет распознан как страница проверки связи. Это можно использовать для тестирования извне ; что FPM жив и реагирует, или ; - создать график доступности FPM (rrd или типа того); ; - удалить сервер из группы, если он не отвечает (балансировка нагрузки); ; - запускать оповещения для операционной бригады (24/7). ; Примечание. Значение должно начинаться с косой черты (/). Значение может быть ; что угодно, но использовать расширение .php или его ; может конфликтовать с реальным файлом PHP. ; Значение по умолчанию: не установлено ;ping.path = /пинг ; Эту директиву можно использовать для настройки ответа на запрос ping. ; ответ форматируется как текстовый/обычный с кодом ответа 200. ; Значение по умолчанию: понг ;ping.response = понг ; Файл журнала доступа ; По умолчанию: не установлено ;access.log = журнал/$pool.access.log ; Формат журнала доступа. ; Допускается следующий синтаксис ; %%: персонаж ; %C: % ЦП, используемый запросом. ; он может принять следующий формат: ; - %{user}C только для пользовательского процессора ; - %{system}C только для системного процессора ; - %{total}C для пользователя + системный процессор (по умолчанию) ; %d: время, необходимое для обслуживания запроса ; он может принять следующий формат: ; - %{секунд}d (по умолчанию) ; - %{миллисекунды}д ; - %{мили}д ; - %{микросекунды}д ; - %{микро}д ; %e: переменная среды (такая же, как $_ENV или $_SERVER) ; он должен быть связан с объятиями, чтобы указать имя окружения ; переменная. Некоторые примеры: ; - особенности сервера, например: %{REQUEST_METHOD}e или %{SERVER_PROTOCOL}e ; – Заголовки HTTP, например: %{HTTP_HOST}e или %{HTTP_USER_AGENT}e. ; %f: имя файла сценария ; %l: длина содержимого запроса (только для запроса POST) ; %m: метод запроса ; %M: пик памяти, выделенной PHP. ; он может принять следующий формат: ; - %{bytes}M (по умолчанию) ; - %{килобайт}М ; - %{кило}М ; - %{мегабайт}М ; - %{мега}М ; %n: имя пула ; %o: выходной заголовок ; он должен быть связан с объятиями, чтобы указать имя заголовка: ; - %{Content-Type}o ; - %{X-Powered-By}o ; - %{Transfert-Encoding}o ; - .... ; %p: PID дочернего процесса, обслужившего запрос. ; %P: PID родителя дочернего элемента, обслужившего запрос. ; %q: строка запроса ; %Q: '?' символ, если строка запроса существует ; %r: URI запроса (без строки запроса, см. %q и %Q). ; %R: удаленный IP-адрес ; %s: статус (код ответа) ; %t: время сервера, когда был получен запрос ; он может принимать формат strftime(3): ; %d/%b/%Y:%H:%M:%S %z (по умолчанию) ; Формат strftime(3) должен быть инкапсулирован в тег %{}t. ; например для строки времени в формате ISO8601 используйте: %{%Y-%m-%dT%H:%M:%S%z}t ; %T: время записи журнала (запрос завершен) ; он может принимать формат strftime(3): ; %d/%b/%Y:%H:%M:%S %z (по умолчанию) ; Формат strftime(3) должен быть инкапсулирован в тег %{}t. ; например для строки времени в формате ISO8601 используйте: %{%Y-%m-%dT%H:%M:%S%z}t ; %u: удаленный пользователь ; ; По умолчанию: "%R - %u %t \"%m %r\" %s" ;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" ; Файл журнала для медленных запросов ; Значение по умолчанию: не установлено ; Примечание: медленный журнал является обязательным, если установлен request_slowlog_timeout. ;slowlog = журнал/$pool.log.slow ; Тайм-аут для обслуживания одного запроса, после которого будет выполняться обратная трассировка PHP. ; сбрасывается в файл «slowlog». Значение «0» означает «выключено». ; Доступные единицы: с (секунды) (по умолчанию), м (минуты), час (наши) или дни (дни). ; Значение по умолчанию: 0 ;request_slowlog_timeout = 0 ; Глубина трассировки стека медленных журналов. ; Значение по умолчанию: 20 ;request_slowlog_trace_глубина = 20 ; Таймаут обслуживания одного запроса, по истечении которого рабочий процесс будет ; быть убитым. Эту опцию следует использовать, когда опция ini 'max_execution_time' ; по какой-то причине не останавливает выполнение скрипта. Значение «0» означает «выключено». ; Доступные единицы: с (секунды) (по умолчанию), м (минуты), час (наши) или дни (дни). ; Значение по умолчанию: 0 ;request_terminate_timeout = 0 ; Тайм-аут, установленный параметром ini 'request_terminate_timeout', не используется после ; приложение вызывает «fastcgi_finish_request» или когда приложение завершило работу и ; вызываются функции завершения работы (зарегистрированные через Register_shutdown_function). ; Эта опция позволит безоговорочно применять ограничение по времени ожидания. ; даже в таких случаях. ; Значение по умолчанию: нет ;request_terminate_timeout_track_finished = нет ; Установите rlimit дескриптора открытого файла. ; Значение по умолчанию: значение, определенное системой. ;rlimit_files = 1024 ; Установите максимальный размер ядра rlimit. ; Возможные значения: «неограниченно» или целое число, большее или равное 0. ; Значение по умолчанию: значение, определенное системой. ;rlimit_core = 0 ; Chroot в этот каталог в начале. Это значение должно быть определено как ; абсолютный путь. Если это значение не установлено, chroot не используется. ; Примечание. Вы можете использовать префикс «$prefix», чтобы выполнить chroot для префикса пула или одного из них. ; из его подкаталогов. Если префикс пула не установлен, глобальный префикс ; вместо этого будет использоваться. ; Примечание. chrooting — отличная функция безопасности, и ее следует использовать всякий раз, когда ; возможный. Однако все пути PHP будут относиться к chroot. ; (журнал_ошибок, сеансы.путь_сохранения, ...). ; Значение по умолчанию: не установлено ;корень = ; Перейдите в этот каталог в начале. ; Примечание. Можно использовать относительный путь. ; Значение по умолчанию: текущий каталог или / при chroot. ;chdir = /var/www ; Перенаправление рабочих stdout и stderr в основной журнал ошибок. Если не установлено, стандартный вывод и ; stderr будет перенаправлен на /dev/null в соответствии со спецификациями FastCGI. ; Примечание. В высоконагруженной среде это может вызвать некоторую задержку страницы. ; время процесса (несколько мс). ; Значение по умолчанию: нет ;catch_workers_output = да ; Украсьте выходные данные работника префиксом и суффиксом, содержащим информацию о ; дочерний элемент, который записывает в журнал, и используется ли stdout или stderr, а также ; уровень журнала и время. Эти параметры используются только в том случае, если catch_workers_output имеет значение «да». ; Если установлено значение «нет», данные будут выводиться в том виде, в каком они записаны на стандартный вывод или стандартный поток ошибок. ; Значение по умолчанию: да ;decorate_workers_output = нет ; Чистая среда среди работников FPM ; Предотвращает попадание произвольных переменных среды в рабочие процессы FPM. ; очистив среду рабочих перед переменными окружения, указанными в этом ; добавлена ​​конфигурация пула. ; Установка значения «нет» сделает все переменные среды доступными для кода PHP. ; через getenv(), $_ENV и $_SERVER. ; Значение по умолчанию: да ;clear_env = нет ; Ограничивает расширения основного скрипта, которые FPM позволяет анализировать. Это может ; предотвратить ошибки конфигурации на стороне веб-сервера. Вам следует ограничить только ; Расширения FPM в .php, чтобы предотвратить использование злоумышленниками других расширений для ; выполнить PHP-код. ; Примечание. Установите пустое значение, чтобы разрешить все расширения. ; Значение по умолчанию: .php ;security.limit_extensions = .php .php3 .php4 .php5 .php7 ; Передайте переменные среды, такие как LD_LIBRARY_PATH. Все $VARIABLE взяты из ; текущая среда. ; Значение по умолчанию: очистить среду. ;env[ИМЯ ХОСТА] = $ИМЯ ХОСТА ;env[ПУТЬ] = /usr/local/bin:/usr/bin:/bin ;env[TMP] = /tmp ;env[TMPDIR] = /tmp ;env[TEMP] = /tmp ; Дополнительные определения php.ini, специфичные для этого пула воркеров. Эти настройки ; перезапишите значения, ранее определенные в php.ini. Директивы – это ; то же, что PHP SAPI: ; php_value/php_flag — вы можете установить классические ini-определения, которые могут ; быть перезаписан вызовом PHP «ini_set». ; php_admin_value/php_admin_flag — эти директивы не будут перезаписаны ; PHP-вызов «ini_set» ; Для php_*flag действительные значения: включено, выключено, 1, 0, true, false, да или нет. ; Определение «расширения» загрузит соответствующее общее расширение из ; каталог_расширения. Определение «disable_functions» или «disable_classes» не будет ; перезаписать ранее определенные значения php.ini, но добавит новое значение ; вместо. ; Примечание: параметры INI пути могут быть относительными и будут расширены префиксом. ; (пул, глобальный или /opt/homebrew/Cellar/[email protected]/7.4.33_2) ; Значение по умолчанию: по умолчанию ничего не определено, кроме значений в php.ini и ; указывается при запуске с аргументом -d ;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f [email protected] ;php_flag[display_errors] = выключено ;php_admin_value[error_log] = /var/log/fpm-php.www.log ;php_admin_flag[log_errors] = включено ;php_admin_value[ограничение_памяти] = 32M
Когда я переключаю версию в файле vhost.conf на прокси-сервер на порт 9073, например (php 7.3), все работает нормально. Но эта конфигурация прокси для 7.4 не работает.

Я получаю сообщение об ошибке:

Входной файл не указан

В журнале ошибок httpd я вижу:

[Пн, 22 мая 10:33:18.162681 2023] [proxy_fcgi:error] [pid 827] [клиент 127.0.0.1:49259] AH01071: получена ошибка «Сообщение PHP: Предупреждение PHP: Неизвестно: не удалось открыть поток: Операция не разрешена в Неизвестно в строке 0. Невозможно открыть основной скрипт: /Projects/index.php (Операция не разрешена)». Может ли кто-нибудь помочь? Спасибо!

Я пробовал полностью удалить Apache (httpd), [email protected], перезапустить, проверить разрешения, переключить версии... но ничего не помогло.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»