nginx и php-fpm и чистые URL

Поскольку mailx ожидает полную инфраструктуру SMTP, которая не настроена по умолчанию. Какой сервер SMTP, если таковые имеются, Вы имеете установленными (т.е. постфикс, exim, sendmail, qmail)?

0
задан 31 May 2012 в 16:16
2 ответа
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

Итак, вы видите в журналах именно то, что вы настроили. Возможно, вам понадобится что-то вроде:

fastcgi_param SCRIPT_FILENAME /path/to/your/script.php;
0
ответ дан 5 December 2019 в 16:17

Вы неправильно сконфигурировали try_files . Как вы можете видеть в журнале php-fpm, точный URL-адрес передается на сервер PHP, который затем пытается получить файл с этим именем, которого, конечно, не существует.

Что вам нужно сделать, так это либо переписать, либо просто изменить переданный файл, а затем обработать данный URL в этом скрипте.

Адаптировано из моей собственной конфигурации nginx:

try_files $uri $uri/ index.php;


location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass unix:/tmp/php5-fpm.sock;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include fastcgi_params;
}

Эта конфигурация перенаправит все файлы .php в php_fpm. Если вы предпочитаете, чтобы файлы .php были вообще недоступны напрямую, вам нужно использовать internal , который скроет их от внешнего мира, хотя в большинстве случаев вам это не нужно.

При использовании этой конфигурации все запросы будут перенаправлены на index.php . Чтобы извлечь данные о странице, которую хочет просмотреть пользователь, посмотрите PHP $ _ SERVER ['REQUEST_URI'] . Если вы будете разбивать эту строку на / , имейте в виду, что первая запись массива будет пустой.

0
ответ дан 5 December 2019 в 16:17

Теги

Похожие вопросы