Access denied nginx html

Почему nginx + passenger + phpmyadmin = Access denied?

Уже не знаю что и делать, изначально сервером был апач2, потом сменил на nginx + php-frm.

И вечно для phpmyadmin и майлера вижу только:

#user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events < worker_connections 1024; >http < passenger_root /usr/local/rvm/gems/ruby-1.9.3-p484/gems/passenger-4.0.35; passenger_ruby /usr/local/rvm/gems/ruby-1.9.3-p484/wrappers/ruby; client_max_body_size 150m; 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 logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server < listen 80; server_name localhost; location / < alias /home/prog/someapp/public; passenger_enabled on; rails_spawn_method smart; rails_env production; >location /phpmyadmin/ < alias /var/www/html/phpMyAdmin/; passenger_enabled off; index index.php; >location /mail/ < alias /var/www/html/roundcube/; passenger_enabled off; index index.php; >#charset koi8-r; #access_log logs/host.access.log main; #location / < # root html; # index index.html index.htm; #>#error_page 404 /404.html; # redirect server error pages to the static page /50x.html # # error_page 500 502 503 504 /50x.html; # location = /50x.html < # root html; #># proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ < #aliassxy_pass http://127.0.0.1; #># pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ < alias html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename;# scripts$fastcgi_script_name; include fastcgi_params; >#location ~ .php$ < alias html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; include fastcgi_params; ># deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht < # deny all; #>> # another virtual host using mix of IP-, name-, and port-based configuration # #server < # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / < # root html; # index index.html index.htm; # >#> # HTTPS server # #server < # listen 443; # server_name localhost; # ssl on; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_timeout 5m; # ssl_protocols SSLv2 SSLv3 TLSv1; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # location / < # root html; # index index.html index.htm; # >#> >

limit_extensions = .php .php3 .php4 .php5 .html

Читайте также:  Форма ввода в HTML5

php.ini to 1 cgi.fix_pathinfo — не помогает

2014/01/19 19:25:01 [error] 5354#0: *11 FastCGI sent in stderr: «Access to the script ‘/opt/nginx/html’ has been denied (see security.limit_extensions)» while reading response header from upstream, client: *, server: localhost, request: «GET /phpmyadmin/index.php HTTP/1.1», upstream: «fastcgi://127.0.0.1:9000», host: «»

Хотя я же менял, и сервер перезагружал, что не так, не пойму.

Источник

Fix “access denied” error when parsing HTML as PHP with Nginx

If you are attempting to get files with a .html extension parsed as PHP with Nginx + php-fpm, you might get an “access denied” error in your browser, and the error message “Access to the script ‘…’ has been denied (see security.limit_extensions)” in your Nginx error log. This post shows how to allow html files to be parsed successfully as PHP with Nginx + php-fpm.

Nginx configuration block

Your Nginx configuration block will look something like this to parse HTM files as PHP:

Error message

And yet when you access e.g. somefile.html you get “Access denied” in the browser.

You check the Nginx error log and see this:

2015/04/25 07:38:28 [error] 5942#0: *108814 FastCGI sent in stderr: “Access to the script ‘/path/to/somefile.html’ has been denied (see security.limit_extensions)” while reading response header from upstream, client: 192.168.1.54, server: www.example.com, request: “GET / HTTP/1.1”, upstream: “fastcgi://unix:/var/run/php5-fpm.sock:”, host: “www.example.com”

The fix needed is suggested in the error message: “see security.limit_extensions”

Set security.limit_extensions

On Debian 7 Wheezy, the configuration file to edit this setting is at /etc/php5/fpm/pool.d/www.conf; on other distributions it may be in a different place.

Then search for security.limit_extensions. It should look something like this in the file by default:

; Limits the extensions of the main script FPM will allow to parse. This can ; prevent configuration mistakes on the web server side. You should only limit ; FPM to .php extensions to prevent malicious users to use other extensions to ; exectute php code. ; Note: set an empty value to allow all extensions. ; Default Value: .php ;security.limit_extensions = .php .php3 .php4 .php5

If the security.limit_extensions has been set already, then add .html to it; if it hasn’t then add it in with all the extensions you need to allow, e.g.:

security.limit_extensions = .php .html

Is it safe to do this?

When enabling this myself, my first thought was “Is this safe” and “Can a regular HTML file suddenly be parsed as PHP” and then obviously “Will this cause security issues with any WordPress blogs installed on my server?”

As far as I can tell, it shouldn’t cause any issues, because you still have to allow .html files to be parsed through php-fpm in the Nginx config. If you haven’t done that, then they won’t.

If I am wrong, please add a comment below.

Источник

Почему nginx + passenger + phpmyadmin = Access denied?

Уже не знаю что и делать, изначально сервером был апач2, потом сменил на nginx + php-frm.

И вечно для phpmyadmin и майлера вижу только:

#user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events < worker_connections 1024; >http < passenger_root /usr/local/rvm/gems/ruby-1.9.3-p484/gems/passenger-4.0.35; passenger_ruby /usr/local/rvm/gems/ruby-1.9.3-p484/wrappers/ruby; client_max_body_size 150m; 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 logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server < listen 80; server_name localhost; location / < alias /home/prog/someapp/public; passenger_enabled on; rails_spawn_method smart; rails_env production; >location /phpmyadmin/ < alias /var/www/html/phpMyAdmin/; passenger_enabled off; index index.php; >location /mail/ < alias /var/www/html/roundcube/; passenger_enabled off; index index.php; >#charset koi8-r; #access_log logs/host.access.log main; #location / < # root html; # index index.html index.htm; #>#error_page 404 /404.html; # redirect server error pages to the static page /50x.html # # error_page 500 502 503 504 /50x.html; # location = /50x.html < # root html; #># proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ < #aliassxy_pass http://127.0.0.1; #># pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ < alias html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename;# scripts$fastcgi_script_name; include fastcgi_params; >#location ~ .php$ < alias html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; include fastcgi_params; ># deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht < # deny all; #>> # another virtual host using mix of IP-, name-, and port-based configuration # #server < # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / < # root html; # index index.html index.htm; # >#> # HTTPS server # #server < # listen 443; # server_name localhost; # ssl on; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_timeout 5m; # ssl_protocols SSLv2 SSLv3 TLSv1; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # location / < # root html; # index index.html index.htm; # >#> >

limit_extensions = .php .php3 .php4 .php5 .html

php.ini to 1 cgi.fix_pathinfo — не помогает

2014/01/19 19:25:01 [error] 5354#0: *11 FastCGI sent in stderr: «Access to the script ‘/opt/nginx/html’ has been denied (see security.limit_extensions)» while reading response header from upstream, client: *, server: localhost, request: «GET /phpmyadmin/index.php HTTP/1.1», upstream: «fastcgi://127.0.0.1:9000», host: «»

Хотя я же менял, и сервер перезагружал, что не так, не пойму.

Источник

Решение проблем, связанных с ошибкой NGINX «403 Forbidden»

« 403 Forbidden » — наиболее распространенная ошибка при работе с NGINX . В этой статье мы расскажем о причинах возникновения 403 forbidden NGINX , а также о том, как найти ее причину и исправить основную проблему.

Об ошибке

« 403 Forbidden » — это универсальная ошибка NGINX , которая указывает на то, что вы запросили что-то, а NGINX ( по ряду причин ) не может это предоставить. « 403 » является кодом состояния HTTP , который означает, что веб-сервер получил и понял ваш запрос, но не может предпринять никаких дальнейших действий.

Поиск файла конфигурации NGINX

По умолчанию файлы конфигурации NGINX находятся в папке /etc/nginx . Если вы просмотрите этот каталог, то найдете несколько конфигурационных файлов для различных модулей сервера.

Главный файл конфигурации — /etc/nginx/nginx.conf . Он содержит основные директивы для NGINX и является аналогом файла httpd.conf для Apache .

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

CentOS 7: sudo nano /etc/nginx/conf.d/test.example.com.conf Ubuntu 16.04: sudo nano /etc/nginx/sites-available/test.example.com.conf

Некорректный индексный файл

Одна из наиболее распространенных причин ошибки 403 forbidden NGINX — некорректная настройка индексного файла.
nginx.conf указывает, какие индексные файлы должны загружаться, и в каком порядке. Например, приведенная ниже строка указывает NGINX искать index.html , затем index.htm , затем index.php :

index index.html index.htm index.php;

Если ни один из этих трех файлов не будет найден в каталоге, NGINX вернет ошибку « 403 Forbidden ».

Примечание . Имена файлов чувствительны к регистру. Если nginx.conf указывает index.html , а файл называется Index.html , это приведет к ошибке « 403 Forbidden ».

Если вы хотите использовать имя индексного файла, которое ваш веб-сервер NGINX не распознает, отредактируйте nginx.conf и добавьте имя файла в строку конфигурации индекса.

Например, чтобы добавить index.py в список распознаваемых индексных файлов, отредактируйте эту строку следующим образом:

index index.html index.htm index.php index.py;

Сохраните изменения, а затем перезапустите NGINX командой:

Автоиндекс

Альтернативным решением является разрешение индекса директории. Индекс директории означает, что если индексный файл не найден, сервер отобразит все содержимое директории.

По соображениям безопасности индекс директории в NGINX по умолчанию отключен.

При « 403 forbidden NGINX », если вы хотите показать индекс директории в ситуациях, когда NGINX не может найти ( идентифицировать ) файл, отредактируйте nginx.conf , как описано выше, и добавьте в него две следующие директивы:

Autoindex on; Autoindex_exact_size off;

Эти директивы должны быть добавлены в блок location . Можно либо добавить их в существующий блок location/ , либо добавить новый. Окончательный результат должен выглядеть так:

Также можно активировать индексирование директории в определенной папке, если не хотите, чтобы она была доступна для всего сайта:

Сохраните изменения в файле, затем перезапустите NGINX командой:

Источник

Оцените статью