Welcome! Log In Create A New Profile

Advanced

Проблема выполнения конкретного php-скрипта

Posted by vo-one 
Проблема выполнения конкретного php-скрипта
May 10, 2011 04:16PM
Есть сервер, описанный следующим конфигом:
(привожу весь конфиг, т.к. не могу определить источник проблемы)

user www;
worker_processes 5;
pid /var/run/nginx.pid;

events {
worker_connections 1024;
}

http {
include mime.types;
default_type application/octet-stream;

log_format main
'[$time_local] remote_addr - $remote_user'
'URI: - $request_uri'
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"'
' $uid_got $uid_set'
' $http_remote_host $request_uri';

server {
listen 80;
server_name xxxx.no-ip.org;
access_log /var/www/logs/access_log_site main;
error_log /var/www/logs/error_log_site error;

root /var/www/xxxx.no-ip.org;
index index.php;

location ~ \.php$ {
set $script_root /var/www/xxxx.no-ip.org;
include phpexec;
}

}


}

Содержимое файла phpexec:

fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $script_root/$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $script_root;
include fastcgi_params;

Ситуация следующая:
Есть директория /var/www/www.xxxxx.org, с php-скриптами
При обращении к скриптам отрабатывают все, кроме одного, с именем register.php
При запросе вида http://www.xxxxx.org/register.php файл не интерпретируется, а отдается текстовым файлом.
Стоит переименовать его в reg.php - скрипт корректно отрабатывает.
Стоит обратиться так - http://www.xxxxx.org/register.php? - работает
Стоит обратиться так - http://www.xxxxx.org/register.php - скачиваем файл

Примечательно то, что ни в access_log, ни в error_log не падает обращение с запросом xxxx.org/register.php

Пробовал бросать return 503; в location ~ \.php$: по всем скриптам отдается 503, по register.php - скачиваем текстовый файл.

Это говорит о том, что запрос '/register.php' не попадает под регулярное выражение \.php$ ?
Почему так происходит?

Nginx 1.0.1, OS FreeBSD 8.1
как вариант: русские "р" вместо "p" в расширении

2011/5/10 vo-one <nginx-forum@nginx.us>

> Есть сервер, описанный следующим
> конфигом:
> (привожу весь конфиг, т.к. не могу
> определить источник проблемы)
>
> user www;
> worker_processes 5;
> pid /var/run/nginx.pid;
>
> events {
> worker_connections 1024;
> }
>
> http {
> include mime.types;
> default_type application/octet-stream;
>
> log_format main
> '[$time_local] remote_addr - $remote_user'
> 'URI: - $request_uri'
> '"$request" $status $body_bytes_sent '
> '"$http_referer" "$http_user_agent"'
> ' $uid_got $uid_set'
> ' $http_remote_host $request_uri';
>
> server {
> listen 80;
> server_name xxxx.no-ip.org;
> access_log /var/www/logs/access_log_site main;
> error_log /var/www/logs/error_log_site error;
>
> root /var/www/xxxx.no-ip.org;
> index index.php;
>
> location ~ \.php$ {
> set $script_root /var/www/xxxx.no-ip.org;
> include phpexec;
> }
>
> }
>
>
> }
>
> Содержимое файла phpexec:
>
> fastcgi_pass 127.0.0.1:9000;
> fastcgi_index index.php;
> fastcgi_param SCRIPT_FILENAME $script_root/$fastcgi_script_name;
> fastcgi_param DOCUMENT_ROOT $script_root;
> include fastcgi_params;
>
> Ситуация следующая:
> Есть директория /var/www/www.xxxxx.org, с
> php-скриптами
> При обращении к скриптам отрабатывают
> все, кроме одного, с именем register.php
> При запросе вида http://www.xxxxx.org/register.php
> файл не интерпретируется, а отдается
> текстовым файлом.
> Стоит переименовать его в reg.php - скрипт
> корректно отрабатывает.
> Стоит обратиться так -
> http://www.xxxxx.org/register.php? - работает
> Стоит обратиться так -
> http://www.xxxxx.org/register.php - скачиваем файл
>
> Примечательно то, что ни в access_log, ни в
> error_log не падает обращение с запросом
> xxxx.org/register.php
>
> Пробовал бросать return 503; в location ~ \.php$: по
> всем скриптам отдается 503, по register.php -
> скачиваем текстовый файл.
>
> Это говорит о том, что запрос '/register.php'
> не попадает под регулярное выражение
> \.php$ ?
> Почему так происходит?
>
> Nginx 1.0.1, OS FreeBSD 8.1
>
> Posted at Nginx Forum:
> http://forum.nginx.org/read.php?25,197061,197061#msg-197061
>
>
>как вариант: русские "р" вместо "p" в расширении
Я уже несколько раз его переименовывал.
Странно, но после полной перезагрузки машины (перезапуск nginx ничего не дал), все заработало.

На всякий случай скажу, что pcre - штатная, которая стала вместе с ОС.
Конфигурировался nginx без ключей. На выходе ./configure сказал:
Configuration summary
+ using system PCRE library
+ OpenSSL library is used
+ md5: using system md library
+ sha1 library is not used
+ using system zlib library

Очень странно. Если есть предположения, почему так получалось, я с радостью их услышу.
Здравствуйте, vo-one.

Вы писали 12 мая 2011 г., 21:46:25:

> Очень странно.. Если есть предположения,
> почему так получалось, я с радостью их
> услышу.

Открой для себя debug log

--
С уважением,
Dmitry mailto:php-fpm-ru@sadok.spb.ru
Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 103
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready