2013-08-15 4 views
11

मैं nginx नवीनतम निर्माण के साथ मूडल 2.3 (2.5 नहीं) ver सेटअप करने की कोशिश कर रहा हूं। इससे पहले इस साइट पर कुछ सलाह थी। उनमें से एक: Moodle 2.0 with Nginx backendNginx बनाम स्लैश तर्क के साथ मूडल 2.3

स्पष्ट रूप से कोई भी जानता है, मूडल यूआरएल को इस तरह पोस्ट करने के लिए path_info नियमों का उपयोग कर रहा है: http://example.com/moodle/pluginfile.php/26/mod_scorm/content/1/index.html। इस दुःस्वप्न से बचने के लिए, मूडल यूआई में "स्लैश तर्क" अक्षम करने की पेशकश कर रहा है। जो माहान है। लेकिन एससीओआरएम प्लेयर के लिए नहीं जो पिछले विकल्प के बावजूद "स्लैश तर्क" को मजबूर कर रहा है। तो अक्षम "स्लैश तर्क" के साथ सबकुछ काम कर रहा है और सामान्य है। लेकिन मेरा एकमात्र लक्ष्य एससीओआरएम प्लेयर का उपयोग करना है।

rewrite ^(.*\.php)(/)(.*)$ $1?file=/$3 last; 

जो 2.3-2.5 में ver काम नहीं कर रहा:

मैं ऊपर के लिंक से पुनर्लेखन नियम का उपयोग करने की कोशिश की। मुझे लगता है कि यह 1.9 में काम किया। अब Moodle अलग रास्ता उपयोग कर रहा है:

http://example.com/moodle/pluginfile.php/26/mod_scorm/content/1/index.html

nginx नियमों में से कुछ:

location ^~ /moodle { 
    location ~* ^.+\.(?:css|js|htc|xml|jpe?g|gif|png|ico|bmp|svg|swf|pdf|docx?|xlsx?|tiff?|txt|rtf|cgi|bat|pl|dll|aspx?|class|otf|ttf|woff|eot|less)$ { 
     add_header Access-Control-Allow-Origin *; 
     access_log off; 
     expires 30d; 
     tcp_nodelay off; 
     try_files $uri =404; 
    } 
    location ~* ^/moodle/.*\.php$ { 
     include  includes/fastcgi_params.conf; 
     try_files $uri @dynamic; 
     fastcgi_split_path_info ^(.+\.php)(/.+)$; 
     fastcgi_param PATH_INFO  $fastcgi_path_info; 
     fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; 
     fastcgi_read_timeout 1200; 
     fastcgi_keep_conn on; 
     fastcgi_pass 127.0.0.1:9090; 

    } 
    rewrite (^.*\.php)(/.*) $1 last; 
} 

कृपया यह कैसे हल करने के लिए सलाह देते हैं।

+0

आप अपनी खुद की सवाल का जवाब के रूप में समाधान डाल दिया और इसे स्वीकार करना चाहिए। –

+1

इसके अलावा, क्या आप अपनी पूरी nginx कॉन्फ़िगरेशन फ़ाइल पोस्ट कर सकते हैं? यह बहुत मददगार होगा। धन्यवाद! –

उत्तर

2

(।। एक सवाल संपादन में ओपी द्वारा उत्तर दिया एक समुदाय विकी जवाब देने के लिए परिवर्तित देखें Question with no answers, but issue solved in the comments (or extended in chat))

ओपी ने लिखा है:

मैं {location} में नहीं {server} में फिर से लिखने के निर्देश देकर इस हल अनुभाग। मेरे परिदृश्य में मूडल सबफ़ोल्डर के तहत स्थापित है: example.com/moodle

server { 
    server_name example.com www.example.com; 
    rewrite ^/moodle/(.*\.php)(/)(.*)$ /moodle/$1?file=/$3 last; 

    location ^~ /moodle { 
    try_files $uri $uri/ /index.php?q=$request_uri; 
    index index.php index.html index.htm; 

    location ~ \.php$ { 
    fastcgi_split_path_info ^(.+\.php)(/.+)$; 
    fastcgi_pass 127.0.0.1:9090; 
    include  includes/fastcgi_params.conf; 
     } 
     } 
     } 
+0

मान लीजिए कि '.php /' युक्त सभी यूआरएल '? File =' का उपयोग करके पुनः लिखा गया है और ट्रैक के नीचे समस्याएं पैदा कर सकती हैं! 'Pluginfile.php/', आदि पर अधिक विशिष्ट मिलान बनाने के लिए सुरक्षित है ... – FMCorz

संबंधित मुद्दे