অ্যাপাচি আমার হোম ডিরেক্টরিতে ফোল্ডার অ্যাক্সেস করতে পারে না


29

আমি আমার হোম ডিরেক্টরিতে কোনও ফোল্ডারের দিকে ইঙ্গিত করতে অ্যাপাচি কনফিগারেশন পরিবর্তন করেছি:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /home/dbugger/html

    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /home/dbugger/html/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

এমনকি আমি আমার /home/dbugger/htmlঅনুমতিও 77 777 দিয়েছি But তবে আমি এখনও একই ত্রুটি বার্তাটি পেয়ে যাচ্ছি http://localhost: "403 নিষিদ্ধ"

আমি কী মিস করছি সেটা কী?


/home/dbuggerঅনুমতি সম্পর্কে কি ?
এরিক কারভালহো

আপনার মানে আমার পুরো হোম ফোল্ডারটি 777 করা উচিত? এটি অত্যধিক মনে হয়। এমনকি 77 the7 টি এইচটিএমএল তৈরি করা নিরাপদ সমাধান নয়। আমি সমস্যার মূলটি সনাক্ত করার চেষ্টা করার জন্য এটি করছি।
এনরিক মোরেনো তাঁবু

1
অ্যাপাচি ব্যবহারকারীর www-ডেটা হিসাবে চলে। যদি সেই ব্যবহারকারীর আপনার বাড়িতে মৃত্যুদন্ড কার্যকর করার অনুমতি না থাকে তবে অ্যাপাচি কোনও ফাইল পড়তে সক্ষম হবে না।
এরিক কারভালহো

হোম ফোল্ডারে সম্পূর্ণ অ্যাক্সেস দেওয়ার জন্য www-ডেটাতে আমার হোম ডিরেক্টরিটির একটি সাবফোল্ডার যুক্ত করার উপায় নেই? এই যুক্তিটি অনুসরণ করার পরে মনে হচ্ছে যে আমাকে সমস্ত হোম ফোল্ডারেও অ্যাক্সেস দিতে হবে, কেননা আমাকে এটিকে / বাড়িতে অ্যাক্সেস দিতে হবে। এটি খুব বেশি মনে হচ্ছে
এনারিক মোরেনো তাঁবু

উত্তর:


25

এটি আমার পক্ষে কাজ করেছে

<Directory />
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Require all granted
    Allow from all
</Directory>

গুরুত্বপূর্ণ বিট ছিল পরিবর্তন

Order allow, deny

থেকে

Require all granted 

আপনি আমার সময় বাঁচান, আমাকে অনুমতি পরিবর্তন করতে হবে না
খালেদ_ভেদেব

হাই আমি আনন্দিত যে এটি আপনাকে সহায়তা করেছে
সায়দান

3
আমি "সমস্ত মঞ্জুর করা দরকার" কী ছিল তা অনুসন্ধান করার স্বাধীনতা নিয়েছিলাম এবং খুঁজে পেয়েছি যে এটি অ্যাপাচিAllow from all ২.৪ এর পর থেকে "নতুন সমতুল্য" - সার্ভারফল্ট.কোশনস
প্রোগ্রামারস্টের

8
না, পুরো রুটে অ্যাক্সেস দেওয়া কখনই ভাল ধারণা নয়!
বুজুনিক্স

9
আপনার মূল ডিরেক্টরিতে সেট AllowOverrideকরা বেপরোয়া! বিশদের জন্য httpd.apache.org/docs/2.4/mod/core.html#allowoverride দেখুন । All
বোম্বে

19

userdirমডিউল সক্ষম করুন :

sudo a2enmod userdir 

ব্যবহারকারী ডিরেক্টরিতে পিএইচপি এক্সিকিউশন সক্ষম করুন:

sudo nano /etc/apache2/mods-available/php5.conf  

(বা যদি php7.0 ব্যবহার করে থাকেন, উদাহরণস্বরূপ)

sudo nano /etc/apache2/mods-available/php7.0.conf

এই অংশটি মন্তব্য করুন ( #প্রতিটি লাইনের শুরুতে দেওয়া):

#<IfModule mod_userdir.c>
#    <Directory /home/*/public_html>
#        php_admin_flag engine Off
#    </Directory>
#</IfModule>

সংরক্ষণ করতে Ctrl+ টিপুনX

ডিরেক্টরি তালিকা সক্ষম করুন:

sudo nano /etc/apache2/apache2.conf

এটি যুক্ত করুন:

<Directory /home/*/public_html/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

সংরক্ষণ করতে Ctrl+ টিপুনX


অ্যাপাচি পুনরায় চালু করুন ( sudoএখানেও প্রয়োজনীয়):

sudo service apache2 restart

এখন আপনার পিএইচপি ফাইলগুলি /home/yourname/public_htmlডিরেক্টরিতে রাখুন এবং
http://localhost/~yournameআপনার ওয়েব ব্রাউজার থেকে যান ।


11

অ্যাপাচি ব্যবহারকারী হিসাবে চালায় www-data। আপনার বাড়িতে যদি মৃত্যুদন্ড কার্যকর করার অনুমতি না থাকে তবে অ্যাপাচি কোনও ফাইল পড়তে সক্ষম হবে না।

আপনার বাড়ির গোষ্ঠীটি এতে পরিবর্তন করুন www-data:

chgrp www-data /home/dbugger

এবং কেবলমাত্র আপনার হোম ডিরেক্টরিকে অতিক্রম করার অনুমতি দিন:

chmod g+x /home/dbugger

আপনি এর অনুমতিগুলিও সীমাবদ্ধ করতে পারেন /home/dbugger/html:

chgrp www-data /home/dbugger/html
chmod 750 /home/dbugger/html

আমি কি এটি করতে পারি, তবে /home/dbuggerব্যবহারের পরিবর্তে /home/dbugger/html?
এনরিক মোরেনো তাঁবু

আপনি সেই অনুমতিটি /home/dbugger/html777 এর পরিবর্তে প্রয়োগ করতে পারেন , তবে আপনাকে মনে রাখতে হবে যে যদি ব্যবহারকারী www-ডেটা cdআপনার বাড়িতে না পারে তবে এটি কোনও ফাইল বা সাবফোল্ডার অ্যাক্সেস করতে সক্ষম হবে না। সুতরাং, যদি আপনার বাড়ির অনুমতি থাকে তবে rwx------ dbugger:dbuggerঅ্যাপাচি আপনার বাড়ির অভ্যন্তরে কোনও ফাইল অ্যাক্সেস করতে সক্ষম হবে না। আপনি যদি অল্প অ্যাক্সেসকে সীমাবদ্ধ রাখতে না চান তবে আপনি কেবল মৃত্যুদন্ড কার্যকর করার অনুমতি দেওয়ার চেষ্টা করতে পারেন ( chmod g+x /home/dbugger), আমি নিশ্চিত নই, তবে আমি মনে করি এটি কার্যকর হয়েছে।
এরিক কারভালহো

দুঃখিত তবে এর সমাধানগুলির কোনওটিই কার্যকর হয়নি :(
এনরিক মোরেনো তাঁবু

chgrp www-data /home/dbugger@DavidGreene পদ্ধতি সঙ্গে একযোগে এটা আমার জন্য কাজ পেয়েছিলাম
লরেন্ট

অ্যাপাচি ব্যবহারকারী (www-ডেটা) এর সাথে আপনার ব্যবহারকারী গ্রুপ যুক্ত করাও সম্ভব sudo usermod -a -G dbugger www-data, এরপরে আপনাকে অ্যাপাচি পুনরায় চালু করতে হবে।
21 শে 18:18 এ টিআইআইন্ডার

1

আপনি যদি আপনার বাড়ির ডিরেক্টরিটি বিকাশের পরিবেশকে হোস্ট করার জন্য ব্যবহার করতে চান তবে অনুমতিগুলির পরিবর্তন করার দরকার নেই, কমপক্ষে কিছু অ্যাপ্লিকেশনের জন্য আপনাকে লেখার অনুমতি প্রয়োজন। ভার্চুয়াল হোস্টগুলি ব্যবহারের জন্য আপনার নিজের / সিম তৈরির প্রয়োজন মোড ইউজারডির মডিউলটি ব্যবহার করার জন্য আপনার অ্যাপাচি মোড_উসারডির মডিউল প্রয়োজন এবং আপনি এই হোমটি / হোম / ব্যবহারকারীর নাম / পাবলিক_এইচটিএমএল / * এ অ্যাক্সেস করতে পারেন : //domain.local/~user_name/dir_name/ * এর মতো লিঙ্ক:

$ sudo ln -s /etc/apache2/mods-available/userdir.conf /etc/apache2/mods-enabled/
$ sudo ln -s /etc/apache2/mods-available/userdir.load /etc/apache2/mods-enabled/
$ sudo service apache2 restart

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