رفع مشکل سطوح دسترسی در دایرکت ادمین و CentOS به کمک ماژول mod_ruid2

در این مقاله می خواهم روش راه اندازی و اصلاح سطح دسترسی ها را در دایرکت ادمین توضیح دهم. روشی که خودم به کار بردم را در این جا می نویسم که شامل استفاده از mod_ruid2 می باشد.

من اخیرا مشغول کار با یک سرور لینوکسی بودم و می خواستم آن را با دایرکت ادمین راه اندازی کنم به گونه ای که مناسب هاستینگ و فروش فضا و Reseller و ... باشد.
مدیریت یک سرور لینوکس و راه اندازی و پیکربندی آن نیاز به دانش نسبتا متوسط به بالایی دارد. در برخی مواقع، موقع خرید VPS ، از قبل آن را برای مشتری پیکربندی می کنند و تحویل می دهند که در این صورت مشتری هم مشکلی نخواهد داشت و می تواند با دایرکت ادمین به راحتی کار کند.
اما در برخی مواقع، پشتیبانی شرکت ضعیف است و سرور را پیکربندی نمی کنند یا آن را به اشتباه پیکربندی می کنند و بلد هم نیستند که مشکلات آن را برطرف کنند. در این شرایط لازم می شود که خود شما اقدام به پیکربندی سرور کنید.

مشکلی که من داشتم این بود که برای نصب یک سیستم مدیریت محتوا، اعم از دروپال، جوملا یا هر چیز دیگری، معمولا لازم است که برخی پوشه ها یا فایل ها توسط وب سرور قابل خواندن بانشد. و به علت پیکربندی نادرست سیستم، برای این کار لازم بود که فایل های مورد نظر را با مجوز 777 نگهداری کنم. و از طرف دیگر هم، وقتی که به یک فایل مجوز 777 می دادم، فایل توسط سایر کاربران هم قابل دسترسی می شد.

برای این مشکل، قدری تحقیق کردم و به این نتیجه رسیدم که چون پروسه ی وب سرور، تحت کاربر apache و گروه apache اجرا می شود، لذا به فایل ها دسترسی ندارد و برای این که دسترسی داشته باشد، باید به فایل مجوز Other را بدهیم.

البته حالت فوق، در حقیقت، حالت پیش فرض لینوکس است و طبیعی می باشد. اما برای یک هاست اشتراکی این حالت مطلوب نیست. در یک سرور اشتراکی باید فایل ها در هیچ شرایطی توسط سایر کاربران قابل دسترسی نباشند.

و همچنین در یک سرور اشتراکی، فایل ها باید مجوز 644 و پوشه ها 755 داشته باشند. برای حل این مشکل، کافی است که از ماژول mod_ruid2 استفاده کنیم.

این ماژول سبب می شود که پروسه ی وب سرور، به جای این که تحت کاربر apache اجرا شود، تحت سطح دسترسی صاحب فایل اجرا می شود. به این معنی که آپاچی هر فایلی را اجرا کند، سطح دسترسی Owner فایل را خواهد داشت. به این ترتیب آپاچی به همه ی فایل ها دسترسی دارد و لازم نیست که فایل ها 777 باشند

به غیر از mod_ruid2 روش دیگری هم وجود دارد که عبارت است از نصب suPhp. این مورد را من آزمایش نکردم.

منابع:

http://www.directadmin.com/forum/showthread.php?t=37467&page=1

دسته بندی‌ها: 

دیدگاه‌ها

با سپاس از توضیحات شما
1 ) من از جوملا 2.5 استفاده می کنم و به تازگی از سی پنل به دایرکت ادمین مهاجرت کرده ام
و مشکل آپلود عکس، نصب افزونه و تغییر در برخی تنظیمات مدیریت جوملا رو دارم
در صورتی که با ارائه دهنده هاست صحبت کنم و پیشنهاد نصب mod_ruid را بدهم آیا فکر می کنید این مشکلات برطرف شود؟
2 ) ضمنا mod_rewrite در تنظیمات جوملای من فعال هست، این ربطی به قضایای بالا دارد؟
با تشکر فراوان

سلام
این مطلبی که من نوشتم تعدادی اشکال املایی و ... داشت که ناشی از بی دقتی بوده و اصلاح شد.
ربطی به ماژول mod_rewrite ندارد و فقط راجع به ماژول mod_ruid2 می باشد.
بعید می دانم که برای شما mod_ruid2 را نصب کنند (ولی شاید برایتان suPHP را نصب کنند)
به هر حال با شناختی که از هاست های اشتراکی دارم، توصیه می کنم مشکل را پشتیبانی هاستتان در میان بگذارید و اگر نتوانستند شما را راهنمایی کنند، حتما همیشه با آن ها مشکل خواهید داشت! و بهتر است که یک هاست دیگر بگیرید!
با این حال، برای این که سریع مشکل شما برطرف شود، پیشنهاد می کنم مجوز پوشه هایی که قرار است در آن ها فایل آپلود شود را به 777 تغییر دهید!
در برخی جاها هم به عکس است و اگر 777 بگذارید کار نمی کند و حتما باید دقیقا 755 باشد!
به هر حال اگر خطای php که مشاهده می کنید را برای من بفرستید، ممکن است بتوانم بهتر شما را راهنمایی کنم. موفق باشید.

I love Drupal

با سلام؛
میدونم این پست خیلی قدیمی هست ولی به قول معروف تیری تو تاریکیه.
من دایرکت ادمین راه اندازی کردم و تمام قسمت ها از جمله ایمیل و دیتابیس و فایروال همه و همه درست کار می کنند ولی مشکل دقیقا همین جاست که موقع نصب جوملا به مشکل بر می خورم که پیام غیرقابل ویرایش بودن فایل configure.php را موقع نصب میده تمام مراحل لینک منبع را هم به صورت کامل و بدون خطا اجرا کردم ولی مشکلم حل نشد ، لطفا راهنمایی کنید.

با تشکر و سپاس

سلام.
سعی کنید با استفاده از اکانت root در سرور لاگین کنید و ببینید که owner فایل مورد نظر، با کاربری که php در آن اجرا می شود یکسان است یا نه.
بعدش هم سعی کنید که مجوز فایل را 777 کنید و ببینید مشکل حل می شود یا خیر. اگر نشد، مجوز های 664 و 644 را هم تست کنید.

از این گذشته من توصیه می کنم directadmin را در حالت fastcgi نصب کنید. خیلی از مشکلات مجوزدهی به خاطر نصب در حالت mod_php پیش می آید.

موفق باشید

I love Drupal

سلام
ممنون از اینکه پاسخ مطلب را دادید.
واقعیت اینه که من در هاست خریداری شده از شرکت این مشکل را ندارم ولی سروری که خودم راه اندازی کردم این مشکل بر خوردم. مجوز فایل ها را هم عوض کردم ولی باز هم همین پیام را نشون میده.آدرس نمونه سایت را قرار میدم برای شما لطفا خودتون موقع نصب پیام را مشاهده کنید.
http://honc.ir/
با تشکر

اگر دسترسی root به شل سرور بدهید، ممکن است بتوانم مشکل را بررسی کنم و راه حلی پیدا کنم.
توصیه می کنم بررسی کنید که owner فایل چیست و این که php تحت چه حساب کاربری اجرا می شود.

ضمنا اگر می خواهید هاست دایرکت ادمین با کیفیت داشته باشید، ما هاست با کیفیت فوق العاده عالی داریم. در صورت نیاز اعلام کنید.

I love Drupal

افزودن دیدگاه جدید