অ্যাপাচি: ম্যাক ওএস 10.5-এ অ্যাপাচি httpd এ সিমলিংক বা উপন্যাস স্থাপনের জন্য chmod 755 যথেষ্ট নয়?


15

আমার ম্যাক ওএস 10.5 মেশিনে, আমি http: // লোকালহোস্ট / foo হতে ~/Documentsচাই ~/Documents/foo/htmlএমন একটি সাবফোল্ডার সেট আপ করতে চাই ।

আমি প্রথমে যে কাজটি করতে ভেবেছিলাম তা হ'ল আলিয়াসকে নীচে ব্যবহার করা:

Alias /foo /Users/someone/Documents/foo/html

<Directory "/Users/someone/Documents/foo/html">
    Options Indexes FollowSymLinks MultiViews

    Order allow,deny
    Allow from all
</Directory>

এটি আমার কাছে 403 নিষিদ্ধ। ত্রুটি_লগে আমি পেয়েছি:

[error] [client ::1] (13)Permission denied: access to /foo denied

প্রশ্নে থাকা সাবফোল্ডারটির chmod 755 অ্যাক্সেস রয়েছে। আমি http: //localhost/foo/test.php এর মতো পছন্দগুলি উল্লেখ করার চেষ্টা করেছি , তবে এটিও কার্যকর হয়নি। এরপরে, আমি সিমিলিংক রুটটি চেষ্টা করেছি।

.ুকেছে /Library/WebServer/Documentsএবং এতে একটি সিমিলিংক তৈরি করেছে ~/Documents/foo/html। ডকুমেন্টের মূলটি রয়েছে

Options Indexes FollowSymLinks MultiViews

এটি এখনও আমাকে 403 নিষিদ্ধ করেছে:

Symbolic link not allowed or link target not accessible: /Library/WebServer/Documents/foo

এটি সেট আপ করার জন্য আমার আর কী দরকার?

সমাধান :

$ chmod 755 ~/Documents

সাধারণভাবে, ফোল্ডারটি ভাগ করতে হবে এবং এর পূর্বসূরি ফোল্ডারগুলির সকলটি wwwপরিষেবা ব্যবহারকারীর দ্বারা দেখার দরকার ।


এই সমাধানটি পোস্ট করার জন্য অনেক ধন্যবাদ - এটি উত্তর খুঁজে বার্ধক্য অতিবাহিত করার পরে সত্যই আমাকে সাহায্য করেছে
টোম্বা

@ তোম্বা কোন সমস্যা নেই
ইউজিন ইয়োকোটা

উত্তর:


24

আমি বাজি ধরছি যে আপনি অ্যাক্সেস করতে চান তার উপরের কিছু ডিরেক্টরিতে অ্যাপাচিকে এটি অতিক্রম করার অনুমতি দেওয়ার অনুমতি নেই। ব্যবহারকারী হয়ে উঠুন যে অ্যাপাচি ( sudo -i -u apacheবা যাই হোক না কেন) হিসাবে চলছে , তারপরে আগ্রহের ডিরেক্টরিতে lsএটির ডিরেক্টরিতে পরিবর্তন করার চেষ্টা করুন । যদি আপনি (আশানুরূপ হিসাবে) না পারেন তবে তারপরে ডিরেক্টরিগুলি একের পর এক প্রবেশ করার চেষ্টা করুন, যতক্ষণ না কেউ আপনাকে প্রবেশ করতে দেয় that সেটির উপ-ডিরেক্টরিটি হ'ল এটি o+xসেট করা দরকার। প্রয়োজন মতো লেদার, ধুয়ে ফেলুন, পুনরাবৃত্তি করুন।


1
হ্যাঁ, যদি 'সাইটস' কাজ করে থাকে তবে আপনার সম্ভবত নথিতে একটি সঠিক সমস্যা আছে, যদি 'সাইট' কাজ না করে তবে আপনার ব্যবহারকারী ডিরেক্টরিতে সম্ভবত এটির সঠিক সমস্যা রয়েছে (এটি ফাইলভোল্টের সাথে সংযোজন করতে পারে)
ব্যাসার্ধ

1
Doc / ডকুমেন্টস ছিল 700.
ইউজিন ইয়োকোটা

আমি যদি sudo -i -u _wwwওএস এক্সে চালিত করি (যেহেতু অপাচি ব্যবহারকারী ওএস এক্সে ডিফল্ট অ্যাপাচি কনফিগারেশনে _www লিখেছেন), তবে আমি করি whoami, আমি এখনও আমার ব্যবহারকারীর নামটি পাই, _www নয়
জেসন এস

সুডোর সাথে অন্য কোনও ব্যবহারকারীকে পুরোপুরি পরিবর্তন করতে, আমি নিজেই '-' ব্যবহার করি: sudo - www-data(উবুন্টুর জন্য)।
অ্যালেক্সিস উইল্ক 22

2

ব্যবহার +FollowSymlinks

Alias /foo /Users/someone/Documents/foo/html

<Directory "/Users/someone/Documents/foo/html">
    Options +Indexes +FollowSymLinks +MultiViews

    Order allow,deny
    Allow from all
</Directory>

Httpd.apache.org/docs/2.0/en/mod/core.html#options অনুসারে , "অপশন নির্দেশের সমস্ত বিকল্প যদি একটি + বা - চিহ্ন দ্বারা পূর্ববর্তী হয়, তবে বিকল্পগুলি একত্রিত করা হবে।" কীভাবে এটি to / ডকুমেন্টগুলি 700 হিসাবে সহায়তা করবে?
ইউজিন ইওকোটা

AFAIK ফলোসিমলিংকগুলি বিকল্পটি সক্ষম করে না, কেবল এটি ডিরেক্টরি হায়ারার্কির নীচের স্তরে সক্রিয় করতে দেয়।
ডেভ চেনি

1
এটি আমার জন্য সঠিক উত্তর ছিল। আমি কনফিড ফাইলটি / etc / apache2 / ব্যবহারকারীদের মধ্যে পরিবর্তন করেছি এবং অনুসরণসিমলিংকগুলিকে অনুমতি প্রদান করেছি (+ ব্যতীত)। পুনরায় চালু করতে ভুলবেন না।
সুপারলুমিনারি

1

ফাইলের ভল্টটি সক্ষম নয় তা নিশ্চিত করতে পরীক্ষা করুন। আমারও একই সমস্যা ছিল। আমি খুঁজে পেতে পারে অন্য সব চেষ্টা। কিছুই কাজ হয়নি। তবে এটি বের করার চেষ্টা করার এক ঘন্টা পরে, আমি স্মরণ করিয়ে দিয়েছি যে আমি ফাইলটি ভল্ট সক্ষম করেছি।

এটি অক্ষম করা সমস্যার সমাধান করেছে।


1

সিমলিংকের মালিকানা পরীক্ষা করুন। যেহেতু আপনি ম্যাক ওএস এক্সে রয়েছেন, তারপরে সিমলিংক মালিকদের পরিবর্তন করা যেতে পারে। ইন /Library/WebServer/DocumentsDols -l

যদি আপনার সিএমলিংক কল করা ~/Documents/foo/htmlহয় fooএবং এর মতো অনুমতি রয়েছে

lrwxr-xr--  1 root  wheel 27  2 Nov 17:00 foo -> /Users/username/Documents/foo/html

তারপরে ওএস এক্স এ ডিফল্টরূপে অ্যাপাচি _www ব্যবহারকারী এবং _www গ্রুপ হিসাবে চালিত হয়, সুতরাং উল্লিখিত ক্ষেত্রে এটি সিমলিংকে এতে প্রবেশ করতে সক্ষম হবে না ~/Documents/foo/html

man 8 chownআপনার সিস্টেম টার্মিনালে চালান , বা এটি অনলাইন ম্যান ক্লাউনটি দেখুন

আপনি দেখতে পাবেন যে -hবিকল্পটি ব্যবহার করা সিমলিংকের মালিকানা বদলে দেবে, পরিবর্তে ফাইলটি (এটি উত্স) দেখায়। তাহলে আপনি এর মতো কিছু করতে পারেন

sudo chown -h :_www foo 

এটি সিমলিঙ্কটি এতে পরিবর্তন করবে

lrwxr-xr--  1 root  _www 27  2 Nov 17:02 foo -> /Users/username/Documents/foo/html

এবং অ্যাপাচি _www গ্রুপটি লিঙ্কটি অতিক্রম করতে সক্ষম হবে।


0

আপনার ব্যবহারকারীর (কারও) অধিকার দেখতে আপনার / ব্যবহারকারী ডিরেক্টরি (এলএস-এল / ব্যবহারকারী) পরীক্ষা করুন।
এছাড়াও 'সাইটস' ডিরেক্টরিটি লোকালহোস্ট / ~ কেউ সঠিকভাবে উপলব্ধ?


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