আমার এনগিনেক্স ওরফে কাজ করছে না কেন?


10

আমি একটি উপনাম স্থাপন করার চেষ্টা করছি যাতে যখন কেউ অ্যাক্সেস করেন /phpmyadmin/, এনজিনেক্স এটিকে /home/phpmyadmin/সাধারণ নথির মূলের চেয়ে বরং এটিকে টানবে । যাইহোক, আমি যখনই ইউআরএলটি টানি, ততক্ষণে এটি আমাকে ফাস্টসকির মাধ্যমে টানা না থাকা সমস্ত আইটেমগুলিতে একটি 404 দেয়। ফাস্টসিজি মনে হচ্ছে ঠিকঠাক কাজ করছে, তবে বাকিটা নেই। straceআমাকে বলছে যে এটি নথির মূল থেকে অন্য সব কিছু টেনে আনার চেষ্টা করছে, তবুও আমি কেন তা বুঝতে পারি না। কেউ কি কিছু অন্তর্দৃষ্টি দিতে পারেন?

আমার কনফিগারেশনের প্রাসঙ্গিক অংশটি এখানে:

            location ~ ^/phpmyadmin/(.+\.php)$
            {
                    include fcgi.conf;
                    fastcgi_index index.php;
                    fastcgi_pass  unix:/tmp/php-cgi.sock;
                    fastcgi_param SCRIPT_FILENAME /home$fastcgi_script_name;
            }

            location /phpmyadmin
            {
                    alias /home/phpmyadmin/;
            }

দীর্ঘকালীন অ্যাপাচি ব্যবহারকারী হিসাবে এনজিএনএক্স, আমি এটিকে সত্যিই অদ্ভুত এবং অযথা জটিল বলে মনে করি। আমি বুঝতে চেষ্টা করার জন্য ডকুমেন্টেশনের মাধ্যমে বেশ কয়েক ঘন্টা ব্যয় করেছি। কেউ দয়া করে এই আচরণটি ব্যাখ্যা করতে পারেন? উপাধিগুলি কেবল এটিই হওয়া উচিত - কোনও অবস্থানের একটি উপাস।
ইনস্টল করুন মনিকা-ডোর দুহ

যতদুর আমি এটা বুঝতে হিসাবে, alias লেখা "শুধু যে", যদিও নোট করুন আপনি যদি চিহ্ন বাদ হয় /ওরফে মধ্যে এবংlocation নির্দেশক, অনুরোধ /phpmyadminfileআসলে আপনি পাবেন /home/phpmyadminfile। কেন প্রশ্নটির কনফিগারেশনটি কাজ করে না, এটি আমার কাছে সঠিক দেখাচ্ছে, তাই আমি সন্দেহ করি যে অন্য কোনও locationনির্দেশিকাও দেখানো হয়নি যা উদ্দেশ্যযুক্ত নয় তখন মিলছে। এই ক্ষেত্রে, উপসর্গের aliasশেষ হিসাবে location, nginx ডক্স root /home;পরিবর্তে ব্যবহার করার পরামর্শ দেয়
স্কট স্টিভেন্স

উত্তর:


12

একটি উপায় খুঁজে বের করা। আমি এটি সেরা কিনা তা নিশ্চিত নই, তবে অবশ্যই এটি এখনই কাজ করছে।

আমি যা করেছি তা এখানে:

        location ~ ^/phpmyadmin/(.*)$
        {
                alias /home/phpmyadmin/$1;
        }

2

আমি নিশ্চিত নই তবে আপনি কি এটি এইভাবে লেখার চেষ্টা করেছেন:

location /phpmyadmin/
        {
                alias /home/phpmyadmin/;
        }

এছাড়াও, আপনি যে ইউআরআই থেকে এটি অ্যাক্সেস করার চেষ্টা করছেন তা কী?

আমি যতদূর বুঝতে পেরেছি, আপনাকে ইউআরআই ব্যবহার করতে হবে

/home/phpmyadmin/

এবং না শুধুমাত্র

/phpmyadmin/

আপনি এটি সম্পর্কে এখানে আরও পড়তে পারেন: http://wiki.nginx.org/HttpCoreModule


কমপক্ষে একটি উত্তরের জন্য আপনাকে ধন্যবাদ। কিন্তু হ্যাঁ. আমি চেষ্টা করেছি। একই জিনিস.
রব

হতে পারে আপনাকে অন্য জায়গায় উপন্যাসটি যুক্ত করতে হবে। আপনি নিজের কনফিগারেশনটি সেখানকারগুলির সাথে তুলনা করতে পারেন: সার্ভারসফল্ট
কালো-পিক্সেল

1

চেষ্টা

location ^~ /phpMyAdmin/
{
    alias /home/phpmyadmin/;

    location ~ \.php$
    {
        include fcgi.conf;
        fastcgi_index index.php;
        fastcgi_pass  unix:/tmp/php-cgi.sock;
        fastcgi_param SCRIPT_FILENAME /home$fastcgi_script_name;
    }
}

1

এটি কাজ না করার কারণটি হ'ল সার্ভারটি রেজেক্স ভিত্তিক অবস্থানটি বেছে নিচ্ছে এবং উপসর্গের উপসর্গটি নেই it

এটি কেবল একটি বেছে নেবে। একটি অপারেটর রয়েছে যা আপনি একটি রেজেক্সকে আউটরেঙ্ক করতে একটি উপসর্গ ভিত্তিক অবস্থান পেতে ব্যবহার করতে পারেন তবে আপনি পিএইচপি কাজ করবেন না তা খুঁজে পাবেন। সমাধানটি কার্ভিনের উত্তরের মতো হবে যেখানে পিএইচপি রেজেক্সের উপরের নির্দেশের সাহায্যে লোকেশনের ভিতরে বাসা বাঁধে।

আমি সন্দেহ করি তবে তার SQLT_FILENAME সেটিংটি সেখানে কাজ নাও করতে পারে কারণ URL এবং অ্যালাইজড ডিরেক্টরিতে আলাদা আলাদা মূলধন রয়েছে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.