আমি কিভাবে WWW- রুট অধীনে সংরক্ষিত সিজিআই-স্ক্রিপ্ট অ্যাক্সেস করবেন না?


0

CGI-Executables ডিরেক্টরি www-root ফোল্ডারের উপরে থাকলে আমি ব্রাউজার থেকে CGI স্ক্রিপ্টগুলি কীভাবে অ্যাক্সেস করব? আমি কিছু ব্যবহার করতে চান না মত ../. আমি localhost / cgi-bin ব্রাউজ করার চেষ্টা করেছি / কিন্তু এটি একটি ত্রুটি দিয়েছে। এটা অনুমতি অস্বীকার করেন।

আমি কিভাবে এই সেটিংস কনফিগার করতে পারি? এছাড়াও / ~ ব্যবহারকারী নাম নাম aliases চালানো যাবে CGI-স্ক্রিপ্ট?

উত্তর:


3

যদি আপনি মূল Apache2 কনফিগারেশন ফাইলটি দেখতে চান, /etc/apache2/httpd.conf আপনি দেখতে পাবেন যে লাইব্রেরী / ওয়েব সার্ভার / CGI- এক্সিকিউটেবলগুলিকে অনুমতি দেওয়ার জন্য দুটি জিনিস আছে যা CGI ফাইলগুলি ধারণ করে।

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

দ্বিতীয়ত, এটি একটি "স্ক্রিপ্টএলিয়াস" কমান্ডের প্রয়োজন যা সার্ভারকে নির্দেশ করে যে কোন URL এটি নির্দেশ করার জন্য ব্যবহার করা হবে যাতে সার্ভার ফাইলটি খুঁজে পায় এবং এটি চালানোর অনুমতি দেয়।

ScriptAliasMatch ^/cgi-bin/((?!(?i:webobjects)).*$) \
"/Library/WebServer/CGI-Executables/$1"

এটি মূলত বলে "আপনি হোস্টনামটি মুছে ফেলার পরে যে কোনও URL যেটি" / cgi-bin / "শুরু করে এবং পাঠ্যের টুকরা দিয়ে চলতে থাকে, তারপরে পরবর্তী সময়ের সাথে মেলে এমন একটি ফাইলের সাথে পাঠ্যটির অন্য অংশে ডিরেক্টরি "" / লাইব্রেরি / ওয়েব সার্ভার / CGI- এক্সিকিউটেবল / $ 1 "

আপনি যদি আপনার ব্যবহারকারী ডিরেক্টরিগুলির মধ্যে একটিতে CGI ফাইল রাখতে চান তবে আপনাকে একটি ভিন্ন কনফিগারেশন ফাইলে কিছু পরিবর্তন করতে হবে। প্রতিটি ব্যবহারকারীর জন্য কনফিগার ফাইল সহ / etc / apache2 / ব্যবহারকারীদের মধ্যে ব্যবহারকারীর ভাগের জন্য কনফিগার ফাইলটি পাবেন। এখানে একটি উদাহরণ:

<Directory "/Users/jessica/Sites/">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

এর জন্য আপনাকে "বিকল্প" লাইনটিতে "ExecCGI" যুক্ত করতে হবে যাতে আপনার সাইটস ডিরেক্টরিতে যে কোনও জায়গায় CGI ফাইল থাকতে পারে বা আপনার সিজিআই ফোল্ডারের জন্য একটি নতুন ডিরেক্টরি ব্লক যুক্ত করুন বা যোগ করুন। এটা এই মত দেখতে হবে: -

<Directory "/Users/jessica/Sites/CGI">
    Options ExecCGI
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

যেহেতু এই অধীনে আমাদের DocumentRoot আমরা ScriptAliasMatch ব্যবহার করতে হবে না।

(দ্বিতীয় বিকল্পটি আরো নিরাপদ।)


1

আমি সাধারণত এই কাজ ঘৃণা কিন্তু কিছু পরীক্ষা সঙ্গে আমি figured কিভাবে সমস্যা সমাধানের জন্য।

  1. CGI- এক্সিকিউটেবল / ফোল্ডারে একটি স্ক্রিপ্ট যোগ করুন এবং 755 এর জন্য এটির অনুমতি সেট করুন (chmod 755 ./file-name।

  2. আপনি যদি এই কনফিগারেশনটি পরিবর্তন করতে চান, $ cd / etc / apache2 / এবং httpd.conf ফাইলটি সম্পাদনা করুন। আমি ফাইল থেকে এই snippit সঙ্গে, এই সেটিং পরিচালনার সঠিক অবস্থান নিশ্চিত করতে সক্ষম হয়েছিল।

ScriptAliasMatch ^ / cgi-bin / ((?! (? I: webobjects))। * $)   "/ লাইব্রেরি / ওয়েবসার্ভার / সিজিআই-এক্সেকিউটেবল / $ 1"

আমি নিশ্চিত নই যে এটি ঠিক কি, তবে আমি চরিত্রগুলি থেকে নিশ্চিত হতে পারি যে এটি সিজিআই-বিহীন সিজিআই-এক্সিকিউটেবলগুলির জন্য একটি উপনাম হিসাবে cgi-bin তৈরি করে। তাই ফোল্ডার হিসাবে এটি সংশোধন করতে, কেবল এই সেটিংটি এখানে অন্য একটি অবস্থানে পরিবর্তন করুন।

আমি এখনও একটি ~ / ব্যবহারকারী নাম ডিরেক্টরি জন্য একটি cgi-bin সেট আপ সম্পর্কে নিশ্চিত না, যদি কেউ যে সাহায্য করতে পারেন


সত্যিকারের সুরক্ষিত ওয়েব পরিষেবাদির জন্য আপনার CGI ফাইলগুলির মালিককে পরিবর্তন করুন _www এবং অনুমতি 700 এ পরিবর্তন করুন। (তারপরে আপনার সম্পূর্ণ ডকুমেন্টের গাছটির মালিকানা থাকা উচিত এবং 600 এর অনুমতি থাকতে হবে।)
Tony Williams
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.