LINUX.ORG.RU
ФорумAdmin

Кроме index.php, другие php файлы были недоступны для запуска. nginx настройка

 


1

1

Пожалуйста, подскажите как настроить так, что бы php файлы были не доступны для запуска, кроме index.php.
Пытаюсь делать вот так вот:

location ~\.php$ {
  deny all;
}

location ~ ^index.php {
  allow all;
}


В этом случае все файлы в том числе index.php не доступны.
Вообще только стоит прописать один `location` с `deny all;`, как сразу же файлы не доступны и ничего не помогает.

ну и прочти как nginx обрабатывает локейшны (особенно внимательно прочти про то что regex обрабатываются по очереди, сначала верхний, а потом следующие)

Ну и поменяй локейшны местами и будет тебе счастье)

trofk ★★★
()
Ответ на: комментарий от trofk

Думал, на счет редиректа. Но, мне потом надо еще и другие файлы поставить в исключения. Т.е. не только index.php. Но, пока даже с index.php не получается.

zzakirow
() автор топика
Ответ на: комментарий от trofk

Менял местами. Что только не пробовал. Ошибка на мой взгляд где-то в строке:

location ~ ^index.php

Пока не пойму где.

zzakirow
() автор топика
Ответ на: комментарий от getup

Сделал. Запись:

location = /index.php {
  allow all;
}

Выдает 404 ошибку. И не важно записать или нет локейшен deny all.

zzakirow
() автор топика

Посмотрел мануал. А так же getup посоветовал использовать вот эту конструкцию:

location = /index.php {
  allow all;
}
Что бы сайт работал, создал файл phpinfo.php.
Файлы php я НЕ выключал. Т.е. следующей конструкции в конфиге НЕТ:
location ~\.php$ {
  deny all;
}

Просто играюсь с одним файлом.
И вот какая фишка:

location = /phpinfo.php {
  deny all;
}
На этот локейшен сервер выдает - 403 ошибку. Все вроде хорошо и правильно.
Но, на вот это:
location = /phpinfo.php {
 allow all;
}
сервер выдает 404 ошибку...
В чем может быть дело?
nginx/1.2.7
FreeBSD 9.1-RELEASE

zzakirow
() автор топика
Ответ на: комментарий от emulek

ой, я тормоз, думал, что про апач тема. В nginx не помню.

emulek
()
Ответ на: комментарий от getup

user  www;
worker_processes  8;

error_log  /var/log/nginx/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


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

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

server {
	listen   80 default;

	client_max_body_size 100m;

	location / {
		root   /usr/local/www/nginx-dist;
		index  index.html index.htm index.php;
	}
        location ~ \00 {
                deny  all;
        }

	location /phpMyAdmin {
                root /usr/local/www;
                index index.php;
                auth_basic                              "access restricted";
                auth_basic_user_file    htpasswd;
        }
        
        location ~ ^/phpMyAdmin.+\.php$ {
                root /usr/local/www;
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME    /usr/local/www$fastcgi_script_name;
               
		include fastcgi_params;
        }

        location ~ ^/phpMyAdmin.+\.(js|css|png|jpg|jpeg|gif|ico)$ {
                root /usr/local/www;
                expires max;
                log_not_found off;
        }
        location /phpmyadmin {
                rewrite ^/* /phpMyAdmin last;
        }
	
	location ~ \.php$ {
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME    /usr/local/www/nginx-dist$fastcgi_script_name;

                fastcgi_param  QUERY_STRING       $query_string;
                fastcgi_param  REMOTE_ADDR      $remote_addr;
                fastcgi_param  REQUEST_METHOD     $request_method;

                fastcgi_param  CONTENT_TYPE       $content_type;
                fastcgi_param  CONTENT_LENGTH     $content_length;

                fastcgi_param  SCRIPT_NAME      $fastcgi_script_name;
                fastcgi_param  REQUEST_URI      $request_uri;
                fastcgi_param  DOCUMENT_URI       $document_uri;
                fastcgi_param  DOCUMENT_ROOT      $document_root;
                fastcgi_param  SERVER_PROTOCOL    $server_protocol;
                fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
                fastcgi_param  REMOTE_PORT      $remote_port;
                fastcgi_param  SERVER_ADDR      $server_addr;
                fastcgi_param  SERVER_PORT      $server_port;
                fastcgi_param  SERVER_NAME      $server_name;
	}

	location ~ /\.ht {
		deny  all;
	}
}

#
#-------mysite.ru
#
server {
	listen   80;
	server_name www.mysite.ru mysite.ru;
	client_max_body_size 100m;
	access_log /var/log/nginx/mysite/access.log;
	error_log /var/log/nginx/mysite/error.log;
	location / {
		root   /usr/local/www/mysite.ru;
		index  index.html index.htm index.php;
		try_files $uri $uri/ /index.php?q=$request_uri;
	}
        location ~ \00 {
                deny  all;
        }

        location /phpmyadmin {
                rewrite ^/* /phpMyAdmin last;
        }
	




	location ~ \.php$ {
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME    /usr/local/www/mysite.ru$fastcgi_script_name;

                fastcgi_param  QUERY_STRING       $query_string;
                fastcgi_param  REMOTE_ADDR      $remote_addr;
                fastcgi_param  REQUEST_METHOD     $request_method;

                fastcgi_param  CONTENT_TYPE       $content_type;
                fastcgi_param  CONTENT_LENGTH     $content_length;

                fastcgi_param  SCRIPT_NAME      $fastcgi_script_name;
                fastcgi_param  REQUEST_URI      $request_uri;
                fastcgi_param  DOCUMENT_URI       $document_uri;
                fastcgi_param  DOCUMENT_ROOT      $document_root;
                fastcgi_param  SERVER_PROTOCOL    $server_protocol;
                fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
                fastcgi_param  REMOTE_PORT      $remote_port;
                fastcgi_param  SERVER_ADDR      $server_addr;
                fastcgi_param  SERVER_PORT      $server_port;
                fastcgi_param  SERVER_NAME      $server_name;
		
#		deny  all;		
	}



location = /phpinfo.php {
 allow all;
}


#location = / {
#  allow all;
#}


#location = /index.php {
#  allow all;
#}




	location ~ /\.ht {
		deny  all;
	}



	#my rules zufar	
	location /2012-03-20-11-17-17/atom {
		  rewrite ^(.*)$ http://www.mysite.ru/ redirect;
	}

	
	
}

#
#-------mysite2.biz
#
server {
	listen   80;
	server_name www.mysite2.biz mysite2.biz mysite2.ru www.mysite2.ru;
	client_max_body_size 100m;
	access_log /var/log/nginx/mysite2/access.log;
	location / {
		root   /usr/local/www/mysite2.biz;
		index  index.html index.htm index.php;
		try_files $uri $uri/ /index.php?q=$request_uri;
	}
        location ~ \00 {
                deny  all;
        }

	location ~ \.php$ {
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME    /usr/local/www/mysite2.biz$fastcgi_script_name;

                fastcgi_param  QUERY_STRING       $query_string;
                fastcgi_param  REMOTE_ADDR      $remote_addr;
                fastcgi_param  REQUEST_METHOD     $request_method;

                fastcgi_param  CONTENT_TYPE       $content_type;
                fastcgi_param  CONTENT_LENGTH     $content_length;

                fastcgi_param  SCRIPT_NAME      $fastcgi_script_name;
                fastcgi_param  REQUEST_URI      $request_uri;
                fastcgi_param  DOCUMENT_URI       $document_uri;
                fastcgi_param  DOCUMENT_ROOT      $document_root;
                fastcgi_param  SERVER_PROTOCOL    $server_protocol;
                fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
                fastcgi_param  REMOTE_PORT      $remote_port;
                fastcgi_param  SERVER_ADDR      $server_addr;
                fastcgi_param  SERVER_PORT      $server_port;
                fastcgi_param  SERVER_NAME      $server_name;
	}

	location ~ /\.ht {
		deny  all;
	}

}

# ---- dns control

server {
         listen       37073;
         server_name  dcontrol.mysite2.biz;
         access_log /var/log/nginx/dcontrol/access.log;
	location / {
		root   /usr/local/www/dcontrol;
		index  index.html index.htm index.php;
		auth_basic                              "access restricted";
                auth_basic_user_file    htpasswd;
	}
        location ~ \00 {
                deny  all;
        }

	location ~ \.php$ {
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME    /usr/local/www/dcontrol$fastcgi_script_name;

                fastcgi_param  QUERY_STRING       $query_string;
                fastcgi_param  REMOTE_ADDR      $remote_addr;
                fastcgi_param  REQUEST_METHOD     $request_method;

                fastcgi_param  CONTENT_TYPE       $content_type;
                fastcgi_param  CONTENT_LENGTH     $content_length;

                fastcgi_param  SCRIPT_NAME      $fastcgi_script_name;
                fastcgi_param  REQUEST_URI      $request_uri;
                fastcgi_param  DOCUMENT_URI       $document_uri;
                fastcgi_param  DOCUMENT_ROOT      $document_root;
                fastcgi_param  SERVER_PROTOCOL    $server_protocol;
                fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
                fastcgi_param  REMOTE_PORT      $remote_port;
                fastcgi_param  SERVER_ADDR      $server_addr;
                fastcgi_param  SERVER_PORT      $server_port;
                fastcgi_param  SERVER_NAME      $server_name;
	}

	location ~ /\.ht {
		deny  all;
	}
      }

}

zzakirow
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.