We have a Magento 2 website. For some reason our Nginx/PHP-FPM is unable to read files from MAGEROOT/pub/ folder other than index.php.
We are getting the following error in Nginx Log "Unable to open primary script: /home/goodprice/public_html/releases/current/pub/get.php (No such file or directory)" and the browser shows No input file specified.
Here is the partial Nginx config file.
# Run Magento (behind Varnish)
server {
listen 8088;
server_name {{website name}}.com.au www.{{website name}}.com.au m2.{{website name}}.com.au;
set $MAGE_ROOT /home/goodprice/public_html/releases/current;
index index.php;
root $MAGE_ROOT/pub;
set $code default;
location /sitemap.xml {
root $MAGE_ROOT/pub/media;
autoindex off;
}
# Rewrites for edm
include /etc/nginx/global/rewrites.conf;
location / {
try_files $uri $uri/ /index.php?$args;
}
# Serve media under /pub/media/
location /pub/ {
location ~ ^/pub/media/(downloadable|customer|import|theme_customization/.*\.xml) {
deny all;
}
alias $MAGE_ROOT/pub/;
add_header X-Frame-Options "SAMEORIGIN";
}
# Rewrite signed static files
rewrite ^/static/(version\d*/)?(.*)$ /static/$2 last;
# Static assets
location ~ ^/static/(version\d*/)?(.*)$ {
tcp_nodelay on;
# Images, CSS, JS
location ~* \.(jpg|jpeg|png|gif|svg|js|css|ico|txt)$ {
expires max;
log_not_found off;
access_log off;
add_header ETag "";
add_header Access-Control-Allow-Origin "*";
add_header Cache-Control "public";
try_files $uri $uri/ @static;
}
# Fonts
location ~* \.(swf|eot|ttf|otf|woff|woff2)$ {
expires max;
log_not_found off;
access_log off;
add_header ETag "";
add_header Access-Control-Allow-Origin "*";
add_header Cache-Control "public";
try_files $uri $uri/ @static;
}
# Catch all
try_files $uri $uri/ @static;
}
# Media assets
location /media/ {
tcp_nodelay on;
autoindex off;
# Images, CSS, JS
location ~* \.(jpg|jpeg|png|gif|svg|js|css|ico|txt)$ {
expires max;
log_not_found off;
access_log off;
add_header ETag "";
add_header Access-Control-Allow-Origin "*";
add_header Cache-Control "public";
try_files $uri $uri/ @media;
}
# Fonts
location ~* \.(swf|eot|ttf|otf|woff|woff2)$ {
expires max;
log_not_found off;
access_log off;
add_header ETag "";
add_header Access-Control-Allow-Origin "*";
add_header Cache-Control "public";
try_files $uri $uri/ @media;
}
# Catch all
try_files $uri $uri/ @media;
}
# Password paths
location /media/order_attachments {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/htpasswd;
}
location /media/convert {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/htpasswd;
}
# Below prescriptions dir does not contain actual prescriptions
#location /media/prescriptions {
# auth_basic "Restricted";
# auth_basic_user_file /etc/nginx/htpasswd;
#}
location /media/webforms {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/htpasswd;
}
location /media/raveinfosys/exporter {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/htpasswd;
}
location @static { rewrite /static/(version\d*/)?(.*)$ /static.php?resource=$2 last; }
location @media { try_files $uri $uri/ /get.php$is_args$args; }
# PHP entry point for setup application
location ~* ^/setup($|/) {
root $MAGE_ROOT;
location ~ ^/setup/index.php {
fastcgi_pass fastcgi_backend;
fastcgi_param PHP_FLAG "session.auto_start=off \n suhosin.session.cryptua=off";
fastcgi_param PHP_VALUE "memory_limit=756M \n max_execution_time=600";
fastcgi_read_timeout 300s;
fastcgi_connect_timeout 300s;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ ^/setup/(?!pub/). {
deny all;
}
location ~ ^/setup/pub/ {
add_header X-Frame-Options "SAMEORIGIN";
}
}
# PHP entry point for update application
location ~* ^/update($|/) {
root $MAGE_ROOT;
location ~ ^/update/index.php {
fastcgi_split_path_info ^(/update/index.php)(/.+)$;
fastcgi_pass fastcgi_backend;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
include fastcgi_params;
}
# Deny everything but index.php
location ~ ^/update/(?!pub/). {
deny all;
}
location ~ ^/update/pub/ {
add_header X-Frame-Options "SAMEORIGIN";
}
}
# Main PHP
location ~ (index|get|static|report|404|503|health_check|deploy_clear_opcache)\.php$ {
try_files $uri =404;
fastcgi_pass fastcgi_backend;
fastcgi_param PHP_FLAG "session.auto_start=off \n suhosin.session.cryptua=off";
fastcgi_read_timeout 300s;
fastcgi_connect_timeout 300s;
# fastcgi_param MAGE_MODE $MAGE_MODE;
fastcgi_param MAGE_RUN_CODE $code;
fastcgi_param MAGE_RUN_TYPE store;
# Increase fastcgi buffer size to stop nginx errors on large posts
fastcgi_buffers 32 256k;
fastcgi_buffer_size 512k;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_hide_header 'X-Powered-By';
}
# Return 503 if the maintenance flag is found
# if (-f $MAGE_ROOT/var/.maintenance.flag) {
# return 503;
# }
#
# # Custom 503 error page
# error_page 503 @maintenance;
#
# location @maintenance {
# root /home/goodprice/public_html/maintenance;
# rewrite ^(.*)$ /503.html break;
# }
# Use Magento 403 404 page
error_page 403 404 /errors/404.php;
# Banned locations (only reached if the earlier PHP entry point regexes don't match)
location ~* (\.php$|\.htaccess$|\.git) {
deny all;
}
}
This causes a few problems. One is Magento 2 can't serve the place holder image as it need to execute get.php. It's not a permission issue as index.php is being executed. Can anybody help fix the problem in the above mentioned Nginx config? Any help will much appreciated.
ls -la from pub dir following
drwxr-xr-x 6 goodprice goodprice 4096 Nov 24 16:16 .
drwxr-xr-x 16 goodprice goodprice 4096 Nov 30 12:11 ..
-rw-rw-r-- 1 goodprice goodprice 1038 Nov 11 01:12 cron.php
-rwxrwxr-x 1 goodprice goodprice 102 Nov 10 23:04 deploy_clear_opcache.php
drwxrwxr-x 3 goodprice goodprice 4096 Nov 11 01:12 errors
-rw-rw-r-- 1 goodprice goodprice 2775 Nov 24 16:16 get.php
-rw-rw-r-- 1 goodprice goodprice 3329 Nov 11 01:12 health_check.php
-rw-rw-r-- 1 goodprice goodprice 6206 Nov 11 01:12 .htaccess
-rw-r--r-- 1 goodprice goodprice 1360 Nov 12 11:49 index.php
-rw-rw-r-- 1 goodprice goodprice 169 Jan 10 2021 info.php
drwxrwxr-x 67 goodprice goodprice 4096 Nov 29 00:01 media
drwxrwxr-x 3 goodprice goodprice 4096 Nov 11 01:12 opt
drwxr-xr-x 4 goodprice goodprice 4096 Nov 30 13:12 static
-rw-rw-r-- 1 goodprice goodprice 445 Nov 11 01:12 static.php
-rw-rw-r-- 1 goodprice goodprice 101 Nov 11 01:12 .user.ini
Php Fpm conf.d file extract users and groups.
group = "goodprice"
listen.group = "nobody"
listen.mode = 0660
listen.owner = "goodprice"
user = "goodprice"
nginx.conf as following
include /etc/nginx/conf.d/modules/*.conf;
user nobody;
worker_processes 1;
worker_rlimit_nofile 16384;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/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 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/conf.d-custom/*.conf;
}

所有评论(0)