إنجن إكس - يعامل PHP كما ثنائي
سؤال
ونحن ادارة إنجن إكس + FastCgi بوصفها الخلفية لموقع دروبال لدينا. يبدو أن كل شيء يعمل كما يرام، وفيما عدا هذا الرابط واحد. HTTP: ///sites/all/modules/tinymce/tinymce/jscripts/tiny_mce/plugins/smimage/index.php
(ونحن نستخدم وحدة محرر TinyMCE في دروبال، ويتم استدعاء رابط أعلاه عند يحاول المستخدم تحميل صورة)
وعندما كنا باستخدام أباتشي، كان كل شيء على ما يرام. ومع ذلك، إنجن إكس يعامل التي فوق رابط ثنائي ويحاول تحميله. (لقد تحققت من أن أشار الملف من قبل عنوان الموقع هو ملف PHP صالح)
وأي فكرة عما يمكن أن يكون الخطأ هنا؟
واعتقد انها تفعل شيئا مع التكوين إنجن إكس، ولكن لست متأكدا تماما ما هي.
وهي موضع تقدير أي مساعدة.
والتكوين: وفيما يلي مقتطف من ملف التكوين إنجن إكس:
root /var/www/;
index index.php;
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php?q=$1 last;
}
error_page 404 index.php;
location ~*
\.(engine|inc|info|install|module|profile|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)$|^(code-style\.pl|Entries.*|Repository|Root|Tag|Template)$
{
deny all;
}
location ~* ^.+\.(jpg|jpeg|gif|png|ico)$ {
access_log off;
expires 7d;
}
location ~* ^.+\.(css|js)$ {
access_log off;
expires 7d;
}
location ~ .php$ {
include /etc/nginx/fcgi.conf;
fastcgi_pass 127.0.0.1:8888;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
}
location ~ /\.ht {
deny all;
}
المحلول
تأكد أنه
location ~ \.php$ {
وبدلا من
location ~ .php$ {
نصائح أخرى
إذا لم تفعل ذلك، يكون أيضا من أن لديك fastcgi يعمل على المنفذ 8888. ويمكنك التحقق من ذلك مع:
netstat -la | grep :8888
وأنت بخير إذا كنت تحصل على رد مثل:
tcp 0 0 localhost:9000 *:* LISTEN
وأو محاولة ما يلي والبحث عن المنفذ الذي يتم الاستماع على:
netstat -la | grep LISTEN
وربما الملف فب يعمل بل في ملف ثنائي. وهذا السيناريو توليد صورة؟ من الصعب أن أقول من دون رؤية بعض التكوين.