मैं सिर्फ Nginx की स्थापना कर रहे हैं, और मैं इसे उपयोग करने के लिए एक Laravel एप्लिकेशन की मेजबानी के लिए कोशिश कर रहा हूँ, लेकिन मैं 2 समस्याओं में भाग गया।Laravel साथ Nginx मापदंडों खाली
- GET पद्धति के लिए, मैं हमेशा एक अतिरिक्त पैरामीटर मेरी आदानों में मिलता है।
- मेरे परीक्षण करने के लिए पोस्टमैन (क्रोम) का उपयोग करके, मैंने गंतव्य यूआरएल और मेरे वांछित पैरामीटर सेट किए और अनुरोध भेज दिया। उत्पादन है कि मैं पाने के लिए, यह हमेशा
REQUEST_URI
जो ऐसा नहीं होना चाहिए शामिल हैं। उदाहरण आउटपुट:
- मेरे परीक्षण करने के लिए पोस्टमैन (क्रोम) का उपयोग करके, मैंने गंतव्य यूआरएल और मेरे वांछित पैरामीटर सेट किए और अनुरोध भेज दिया। उत्पादन है कि मैं पाने के लिए, यह हमेशा
।
Array (
[/api/user] => // This shouldn't be here
[test] => test
)
- मेरे मानकों (ऊपर) को नष्ट करने के लिए होगा नहीं शो या डाल, बिल्कुल, और पोस्ट के लिए मैं केवल
REQUEST_URI
Nginx vhost (इसके बाद Setting up Laravel w/ Nginx)
server {
server_name local.test.com;
root /var/www/test/public;
location/{
index index.php index.html index.htm;
}
# serve static files directly
location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ {
access_log off;
expires max;
}
# removes trailing slashes (prevents SEO duplicate content issues)
if (!-d $request_filename) {
rewrite ^/(.+)/$ /$1 permanent;
}
# unless the request is for a valid file (image, js, css, etc.), send to bootstrap
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php?/$1 last;
break;
}
# catch all
error_page 404 /index.php;
# The PHP Inclusion Block
# include /etc/nginx/includes/php;
location ~ \..*/.*\.php$ {
# I'm pretty sure this stops people trying to traverse your site to get to other PHP files
return 403;
}
#location ~ \.php$ {
location ~ \.php(.*)$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include /etc/nginx/fastcgi_params;
}
# Deny Any Access to .htaccess Files That May Be Present (not usually in issue in Laravel)
# include /etc/nginx/includes/deny_htaccess;
location ~ /\.ht
{
deny all;
}
error_log /var/www/logs/test-error.log;
}
fastcgi_params:
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_FILENAME $request_filename;
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 SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
#fastcgi_param HTTPS $https;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
nginx.conf केवल 1 बात बदल गया है, और कहा कि 15
65 से keepalive_timeout
है तो मैं पूरी तरह से है कोई सुराग नहीं है, जहां यह सब बात गलत हो जाता है। लेकिन मैं उल्लेख करने के लिए, कि एक और 2 वातावरण मेरे पास है (Lighttpd के साथ एक और Apache2 के साथ अन्य) पर अनुप्रयोग पूरी तरह से काम करता है की क्या ज़रूरत है।
से मैं क्या देखा है, अपने सभी निम्न कोड करने के लिए कम:
# unless the request is for a valid file (image, js, css, etc.), send to bootstrap
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php?/$1 last;
break;
}
किस काम कर देगा ... और अतिरिक्त पैरामीटर
'dd के साथ मेरे लिए काम करता है (इनपुट :: सभी());' यह है कि मैं क्या 'है मीटर outputting ... और नहीं, यह नहीं है 'इनपुट :: सभी()' कि अवांछित पैरामीटर – Alex
ठीक निर्धारित किया है। सुझाए गए कॉन्फ़िगरेशन आज़माएं और मुझे बताएं कि यह ऐसा करता है या नहीं। – Gargron
बस इसे करने की कोशिश की, 'रीराइट नियम युक्त if's टिप्पणी करके, और अब मैं पर मदद के लिए सभी – Alex