سؤال

يمكنني استخدام التكوين التالي لـ NGINX: http://gist.github.com/340956

ومع ذلك ، فإن هذا التكوين يسبب أ No input file specified خطأ مع PHP. الطريقة الوحيدة التي تمكنت من حلها هي عن طريق تغيير هذا الخط:

fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;

لاحظ "/" بين $document_root و $fastcgi_script_name. أُبلغت أن هذا هو التكوين الخاطئ ولكن لم يتمكن أحد من إخباري بالضبط لماذا يتطلب تكوين بلدي هذا المقطع الإضافي.

كيف يمكنني التخلص من هذا القطع الإضافية؟

هل كانت مفيدة؟

المحلول

فقط واجهت نفس المشكلة (في تثبيت REMI لـ NGINX+PHP-FPM على خادم RHEL6) ، يمكنك حلها عن طريق إضافة السطر التالي في/etc/nginx/fastcgi_params

fastcgi_param  SCRIPT_FILENAME    $request_filename;

لقد وجدت هذا الخط مفقودًا في Rhel ، بينما كان موجودًا في Debian Nginx يعمل تمامًا.

نصائح أخرى

هل البارم PATH_TRANSLATED الحصول على URI الصحيح؟ أعتقد أنه التسلسل الفوري للمتغيرات في ملف CONF الذي لا يحسب. عند إضافة مائلة بينهما ، ربما يتم تفسيرها بشكل صحيح.

عندما تحصل على الخطأ No input file specified, ، تحقق من السجل الخاص بك لمعرفة ما تم طلب URI.

إزالة try_files $uri index.php$uri; في السطر 3.

مسألة التفضيل. طالما أنك ثابت ، فإن كلتا الحالتين على ما يرام.

إما إضافة القطع المائلة في ملف التكوين ، وتأكد من عدم وجود مائل إضافي في النهاية وبدء جذر المستند واسم البرنامج النصي على التوالي أو العكس.

ماذا يحدث عندما تضيف بشكل صريح توجيهًا جذريًا مثل ذلك:

location ~ \.php$ {
    # fastcgi_split_path_info ^(.+\.php)(.*)$;
    include fastcgi.conf;

    root /var/www/my_webroot;

    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top