অ্যাপাচি হোম ডিরেক্টরিতে অনুরূপ - অনুমতি ত্রুটি


15

আমার বাড়ির ফোল্ডারের ভিতরে /var/www/একটি নতুন Webrootডিরেক্টরিতে আমার সিলেট করার ক্ষেত্রে কিছু সমস্যা হচ্ছে । আমি লিনাক্স অনুমতি সম্পর্কে আমার বোঝার অভাব থেকে এই স্টেমটি মনে করি।

যতদূর আমি অবহিত, সিমলিংকগুলি আপনাকে যে ডিরেক্টরিটি সংযুক্ত করতে চান এবং যে ডিরেক্টরিতে আপনি লিঙ্ক করতে চান তা রূপ নিতে হবে, তাই আমার ক্ষেত্রে, আমি দৌড়েছি:

sudo ln -s ~/Webroot/* /var/www/

এই সাজানোর, কাজ করে থাকে তাহলে আমি দৌড়াই lsউপর /var/www/আমি আমার ফাইল সব দেখতে পারেন Webrootডিরেক্টরি।

যখনই আমি আমার Webrootফোল্ডারে থাকা কোনও ফাইল চালানোর চেষ্টা করি , আমি 403 অনুমতি ত্রুটি পাই, এটি আমার ওয়েবরুট ডিরেক্টরিতে থাকা ফাইলগুলি আমার দ্বারা তৈরি করা হয়েছিল, এবং অ্যাপাচি উদাহরণটি www-ডেটা হিসাবে চালিত হচ্ছে?

যদি এটি হয় তবে এর অর্থ কি এটি চালানোর জন্য আমার তৈরি প্রতিটি ফাইলের অনুমতিগুলি পরিবর্তন করা দরকার?

আমি পূর্বে লোকাল অ্যাপাচি ইনস্ট্যান্সটি চালিয়েছি আমার Webrootফোল্ডারে আমার ডিফল্ট vhost এর ডিরেক্টরি মূলটি নির্দেশ করে , এই পরিস্থিতিতে আমার কোনও অনুমতি পরিবর্তন করার প্রয়োজন হয়নি। কোন সাহায্য প্রশংসা করা হবে।


আপনি কি নিশ্চিত হয়ে গেছেন যে সিমলিংকগুলি অনুসরণ না করার জন্য অ্যাপাচি কনফিগার করা হয়নি ... আমার একবার এই সমস্যা হয়েছিল। অন্য ফোরামে সম্পর্কিত থ্রেডটি এখানে থাকতে পারে: linuxforums.org/forum/servers/…
রোবটহুমানস

উত্তর:


15

এটি একটি ভাল অনুশীলন নয়, আমি ওয়েওয়েডের সাথে একমত। তবে এই লক্ষ্য অর্জনের একটি সহজ উপায় রয়েছে।

1 দেখুন)। অ্যাপাচি ইউজারডির মডিউল সক্ষম করুন।

sudo  a2enmod userdir

এটি অ্যাপাচি ইউজারডির মডিউলটি সক্ষম করবে। এখন আপনি নিজের ওয়েবসাইট ~/Webroot/ডিরেক্টরিতে বা যে কোনও কিছুতে ওয়েবসাইটের সামগ্রী রাখতে পারেন ।

দ্রষ্টব্য: ডিফল্ট ফোল্ডারটি হ'ল ~/public_html

2)। প্রয়োজনীয় পরিবর্তন করুন /etc/apache2/mods-enabled/userdir.conf

3)। অ্যাপাচি পুনরায় চালু করুন

sudo /etc/init.d/apache2 restart

এখন আপনি নিজের ব্রাউজারটিকে http: // ip-address / ~ ব্যবহারকারীর নেভিগেট করে সাইট অ্যাক্সেস করতে পারেন । আপনি এই সাইটের জন্য একটি ভার্চুয়াল হোস্ট সেট করতে পারেন।

আপনি যদি পিএইচপি ফাইল চালাতে চান তবে আপনার আরও একটি পদক্ষেপ করা দরকার do

সম্পাদনা করুন /etc/apache2/mods-enabled/php5.confএবং নিম্নলিখিত লাইন মন্তব্য:

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

তারপরে অ্যাপাচি পুনরায় চালু করুন।

এটাই. তুমি পেরেছ.

সূত্র: HTTPS: //wiki.ubuntu.com/UserDirectoryPHP

আশাকরি এটা সাহায্য করবে. আপনি যদি কোনও সমস্যার মুখোমুখি হন তবে নির্দ্বিধায় এটি পোস্ট করুন।


7

আপনি যা চান তা অর্জন করা এটি একটি ভাল অনুশীলন নয়।

আপনি যদি পিএইচপি ব্যবহার করে থাকেন তবে আপনি suexec , suphp বা php- fpm এবং fastcgi এ একবার দেখতে চান


আপনি আপনার ইস্যু সম্পর্কে ঠিক বলেছেন, এটি আপনার Webrootফাইলগুলির চেয়ে আলাদা ব্যবহারকারীর দ্বারা মালিকানাযুক্ত এমন একটি অনুমোদিত সমস্যা www-data

আপনার সমস্যার সমাধানের জন্য এখানে খুব খারাপ কোনও সমাধান নয়। নোট করুন যে আপনার সম্ভবত sudo ব্যবহার করতে হবে বা রুট হিসাবে লগইন করতে হবে। আপনি যে আদেশগুলি সম্পাদন করছেন তা আপনি পুরোপুরি বুঝতে পেরেছেন তা নিশ্চিত করুন !!

Webrootগ্রুপ মালিকানা সেট করতে www-dataএবং যথাযথ অনুমতিগুলি সেট করতে আপনার ফোল্ডার এবং সাবফোল্ডার এবং ফাইলগুলি পরিবর্তন করুন :

# set the group ownership to be www-data
chgrp -R www-data /path/to/home/Webroot/
# make sure www-data has read & write permissions (change it to `g=r` if you want to only give read-only access)
chmod -vR g=rw /path/to/home/Webroot/
# make sure www-data can access the folders by adding the group execute bit field to directories
find /path/to/home/Webroot/ -type d -print0 | xargs -0p chmod -v g+x

সম্পাদনা করুন: নোট করুন যে আপনি যদি আপনার নিয়মিত ব্যবহারকারীর অ্যাকাউন্ট ব্যবহার করে ফাইল / ফোল্ডার যুক্ত করেন তবে আপনাকে অবশ্যই সেই আদেশগুলি আবার চালাতে হবে।


2

আমি ডেবিয়ান লেনির সাথে একই জিনিসটি করেছি, তবে আমি নন-হ্যাক্স মোডে পরিবর্তিত হয়েছি, আমি অ্যাপাচি সঠিকভাবে কনফিগার করেছি। তবে সিমিলিংক সহ:

$ ll /home
drwxr-xr-x  8 root   root   4,0K nov 14 14.59 .
drwxrwxrwx  7 root   root   4,0K nov 14 21.24 www -> /var/www

আমার মনে হয় আপনার ~ এবং ~ / ওয়েবরূটের পার্মিশনটি পরীক্ষা করা উচিত , আমি মনে করি আপনার দির (~) সুরক্ষিত পড়েছেন, আমি আপনাকে বোঝাতে চাইছি:

$ ls -la /home

ডান পার্মিসিনন সেট করতে, ব্যবহার করুন:

# chmod 755 /home
# chmod 755 /home/<YOURNAME>
# chown <YOURNAME>:www-data -R /home/<YOURNAME>/Webroot
# chmod 775 -R /home/<YOURNAME>/Webroot

আমি মনে করি, এটি সাহায্য করা উচিত, তবে আমাকে এই সম্পর্কে আরও তথ্য দিন। আমি আপনাকে পরামর্শ দিচ্ছি, আপনার দির থেকে ওয়েবরুট বের করার জন্য, প্রাক্তন। থেকে / হোম আমার মত , কারণ এটি নিরাপত্তাজনিত সমস্যা হতে পারে।

"#" এর অর্থ রুট পার্সিসন , প্রাক্তন। কমান্ডের আগে sudo লিখুন ; "$" অর্থ একক ব্যবহারকারীর অনুমতি iss


0

আপনাকে অবশ্যই আপনার গন্তব্য সম্পর্কে নয়, এর বাবা-মায়েরও অনুমতি পরীক্ষা করতে হবে।


কেন? এটি কি অ্যাপাচি সীমাবদ্ধতা বা কোনও ফাইল সিস্টেমের সীমাবদ্ধতা?
ফ্লিম

দুঃখিত। আমি তথ্যটি পরীক্ষা করে দেখিনি, এটি কেবলমাত্র একটি ব্যক্তিগত অভিজ্ঞতার ভিত্তিতে।
zVictor

0

আমি এই সমস্যার মুখোমুখি হয়েছিলাম। তবে আমি আমার হোম ডিরেক্টরি ডিরেক্টরিটি www-ডেটাতে পরিবর্তন করতে চাই না। ভার্চুয়ালহোস্টের জন্য কনফিগারেশন ফাইলটি সংশোধন করে এই সমস্যার সমাধান করা যেতে পারে। এগুলি অন্তর্ভুক্ত করার জন্য কেবল ডিরেক্টরি ট্যাগটি কনফিগার করুন

<Directory "your directory here">
   Order allow,deny
   Allow from all
   Require all granted
</Directory>

Require all grantedএকটি নতুন বৈশিষ্ট্য আমি নয়; একটি ডিফল্ট মান আছে denied

রেফারেন্সের জন্য এই পৃষ্ঠাটি দেখুন: http://httpd.apache.org/docs/current/mod/core.html# ডিরেক্টরি

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