انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: خلاصی از دردسر دسترسی به مسیر www  (دفعات بازدید: 1880 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین sonic69

  • Sr. Member
  • *
  • ارسال: 376
  • جنسیت : پسر
پاسخ : خلاصی از دردسر دسترسی به مسیر www
« پاسخ #15 : 11 آبان 1399، 02:19 ب‌ظ »
اقا جان من راهنمایی کنید :(( یکم کلافه کننده هس که من هر سری بخوام کار کنم (بعد از خاموش و روشنشدن سیستم). بخوام کدهای پست اول رو بزنم.

من الان کل کارهای روی مسیر زیر هست
/var/www/html


الان با تابع php دارم سعی می کنم محتویات یه فایل رو بخونم. خطای زیر رو میده
failed to open stream: Permission denied

که اگر کد های پست اول رو بزنم همه چی حل میشه .


برای حل شدن ریشه ای این باید چیکار کنم دقیقا؟

آفلاین مرتضی . م

  • High Hero Member
  • *
  • ارسال: 1121
پاسخ : خلاصی از دردسر دسترسی به مسیر www
« پاسخ #16 : 11 آبان 1399، 04:00 ب‌ظ »
یه sudo بزار اول دستور

آفلاین M!lad

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1757
پاسخ : خلاصی از دردسر دسترسی به مسیر www
« پاسخ #17 : 11 آبان 1399، 05:07 ب‌ظ »
تنها راه این هست که دقیق سطوح دسترسی رو مطالعه کنید و مطابق نیازتان و راهنمایی ویکی آپاچی روی دایرکتوری‌های لازم اعمال کنید.
..I feel no fault for the fault I feel..

آفلاین sonic69

  • Sr. Member
  • *
  • ارسال: 376
  • جنسیت : پسر
پاسخ : خلاصی از دردسر دسترسی به مسیر www
« پاسخ #18 : 16 آبان 1399، 05:11 ب‌ظ »
ممنونم میلاد.

داداشم شما وظیفه ای به جواب دادن نداری و اینکه محبت می کنی جواب میدی از لطف و محبت تو هست.

اما مگه چه دسترسی خاصی و متفاوتی برای این پوشه بین سایر کاربرها هست؟

مسلما همه تو این مسیر اسکریپت های php رو سوار می کنند. وهر اسکریپت ممکن دسترسی به ایجاد و حذف و ... نیاز داشته باشه

من احساس می کنم منو انداختی زمین که دور خودم گردش کنم :)

آفلاین D

  • Newbie
  • *
  • ارسال: 2
پاسخ : خلاصی از دردسر دسترسی به مسیر www
« پاسخ #19 : 16 آبان 1399، 06:08 ب‌ظ »
سلام
معمولا برای دسترسی راحت‌تر مسیر پیشفرض آپاچی رو تغییر میدن. نمی‌دونم دلیل خاصی برای این کار دارید یا نه، اما اگر خواستید بدون مشکل روی لوکال کار کنید باید تغییرات زیر رو انجام بدین (در حال حاضر لمپ روی سیستمم نصب نیست، اما قبلا به این شکل حل می‌شد):

فایل زیر رو باز کنید و بعد مسیر پیشفرض رو در خط DocumentRoot /var/www/html تغییر بدید:
/etc/apache2/sites-available/000-default.conf
برای نمونه:
/home/myusername/projects
بعد فایل زیر رو باز کنید:
/etc/apache2/apache2.conf
در بخش زیر مسیر پیشفرض رو تغییر بدید:
<Directory /var/www/html/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

برای نمونه:
/home/myusername/projects
یوزر جاری سیستم رو به گروه www-data اضافه کنید:
sudo adduser YourUserName www-data
سرویس آپاچی رو ری‌استارت کنید:
sudo service apache2 restart
برای اینکه از کار کردنش مطمئن بشین، مجوز دایرکتوری جدید رو به 777 تغییر بدید، بعد از صحت عملکرد، به دسترسی مناسب برگردونید.

[اضافه شد]
برای دسترسی و ایجاد فولدر در مسیر پیشفرض آپاچی، بعد از اضافه کردن کاربر جاری به گروه www-data و root، مالکیت و گروه فولدر html رو از root به www-data تغییر بدید:
sudo chown -R www-data:www-data /var/www/html
« آخرین ویرایش: 17 آبان 1399، 01:29 ق‌ظ توسط جیم »

آفلاین M!lad

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1757
پاسخ : خلاصی از دردسر دسترسی به مسیر www
« پاسخ #20 : 16 آبان 1399، 07:02 ب‌ظ »
ممنونم میلاد.

داداشم شما وظیفه ای به جواب دادن نداری و اینکه محبت می کنی جواب میدی از لطف و محبت تو هست.

اما مگه چه دسترسی خاصی و متفاوتی برای این پوشه بین سایر کاربرها هست؟

مسلما همه تو این مسیر اسکریپت های php رو سوار می کنند. وهر اسکریپت ممکن دسترسی به ایجاد و حذف و ... نیاز داشته باشه

من احساس می کنم منو انداختی زمین که دور خودم گردش کنم :)

سطوح دسترسی مورد نظر شما برای اعمال روی var/www/html/ امن نیست. شما باید مطابق نیاز اسکریپت شاخه‌های مختلف رو تنظیم کنید تا به درستی قابل نگارش و... باشند. اینکه سطوح دسترسی خود var/www/html/ رو به طور کلی تغییر بدید که هر اسکریپتی هر جا خواست چیزی بتونه بنویسه کار درستی نیست.

به همین خاطر هست که من یک کد کلی قرار نمی‌دم که var/www/html/ رو تغییر بده. قطعا در اسکریپت شما مشخص هست کدوم شاخه باید قابل نگارش باشه. می‌تونید به راحتی مطابق صفحه ویکی آپاچی دسترسی‌های لازم رو اعمال کنید تا اسکریپت شما به درستی کار کنه.

ضمن اینکه این روزها تصور می‌کنم استفاده از Docker برای داشتن یک کارساز وب منطقی‌تر باشه.
..I feel no fault for the fault I feel..

آفلاین فاراب

  • High Hero Member
  • *
  • ارسال: 1352
  • آزادی
    • پروفایل لینکداین
پاسخ : خلاصی از دردسر دسترسی به مسیر www
« پاسخ #21 : 16 آبان 1399، 09:54 ب‌ظ »
مشکل شما رو من هم داشتم.
متاسفانه جواب های دوستان مشکل شمارو حل نمیکنه
در واقع این مشکل اصلا ارتباطی به آپاچی نداره
مشکل اینجاست که با وجودی که پرمیشن صحیح بصورت بازگشتی به کل شاخه و زیرشاخه های www داده شده، همچنین یوزر ایشون هم مجوز دسترسی دارند، زمانی که فریم ورک یا اسکریپت پوشه یا فایل جدیدی رو میسازه، فایل یا پوشه جدید با دسترسی پیشفرض ایچاد میشه.
مورد من که هنوز هم نتوسنتم راه حلی براش پیدا کنم مربوط به فریم ورک لاروال میشه که فایل های کشی که ایجاد میکنه با دستور پاک کردن عدای کش لاراول که دستور زیر باشه پاک نمیشه:
php artisan cache:clear

چرا که همونطور که توضیح دادم، فایل های کش هر بار توسط فریم ورک ساخته میشن و دسترسی پیشفرض برای روت دارند.
راه حل گذاشتن sudo قبل از دستور فوق هست اما مطمئنا باید دستوری برای ایجاد دسترسی پیشفرض برای فایل هایی که اسکریپت یا فریم ورک میسازند در شاخته ای که دسترسی روت داره مثل www وجود داشته باشه.
ممنون میشم اگر کسی راه حلی داره راهنمایی کنه
Godisnowhere

آفلاین M!lad

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1757
پاسخ : خلاصی از دردسر دسترسی به مسیر www
« پاسخ #22 : 16 آبان 1399، 11:30 ب‌ظ »
به طور کلی مشکل هر دوی شما در سطوح دسترسی اشتباه نهفته هست. اگر فایل‌های cache دسترسی ریشه دارند یعنی قطعا اشتباهی در تنظیم سطوح دسترسی رخ داده.

ویکی آپاچی کاملا از روی سناریوی مورد نظر sonic69 نوشته شده و اگر مراحل رو به درستی طی کنند مشکلی نخواهند داشت. من از همون صفحه برای راه‌اندازی و تست لاراول ۸ روی آپاچی جهت بررسی حالت‌های ممکن مشکل ساز استفاده کردم و بدون مشکل میشه کش رو پاک کرد.

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

۴ - ۵ سالی بود به لاراول دست نزده بودم... دارم وسوسه می‌شم یکم توش بچرخم.
« آخرین ویرایش: 16 آبان 1399، 11:33 ب‌ظ توسط M!lad »
..I feel no fault for the fault I feel..

آفلاین D

  • Newbie
  • *
  • ارسال: 2
پاسخ : خلاصی از دردسر دسترسی به مسیر www
« پاسخ #23 : 16 آبان 1399، 11:34 ب‌ظ »
مشکل شما رو من هم داشتم.
متاسفانه جواب های دوستان مشکل شمارو حل نمیکنه
در واقع این مشکل اصلا ارتباطی به آپاچی نداره
مشکل اینجاست که با وجودی که پرمیشن صحیح بصورت بازگشتی به کل شاخه و زیرشاخه های www داده شده، همچنین یوزر ایشون هم مجوز دسترسی دارند، زمانی که فریم ورک یا اسکریپت پوشه یا فایل جدیدی رو میسازه، فایل یا پوشه جدید با دسترسی پیشفرض ایچاد میشه.
مورد من که هنوز هم نتوسنتم راه حلی براش پیدا کنم مربوط به فریم ورک لاروال میشه که فایل های کشی که ایجاد میکنه با دستور پاک کردن عدای کش لاراول که دستور زیر باشه پاک نمیشه:
php artisan cache:clear

چرا که همونطور که توضیح دادم، فایل های کش هر بار توسط فریم ورک ساخته میشن و دسترسی پیشفرض برای روت دارند.
راه حل گذاشتن sudo قبل از دستور فوق هست اما مطمئنا باید دستوری برای ایجاد دسترسی پیشفرض برای فایل هایی که اسکریپت یا فریم ورک میسازند در شاخته ای که دسترسی روت داره مثل www وجود داشته باشه.
ممنون میشم اگر کسی راه حلی داره راهنمایی کنه

برام جالب بود این مشکل، به هم دلیل لمپ رو نصب کردم. البته من همیشه مسیر پیشفرض آپاچی رو به یه پوشه در /home/user تغییر میدم، و مشکلی در این مورد نداشتم. اما برای این مورد که در مسیر پیشفرض آپاچی هست من ابتدا کاربر جاری رو به دو گروه root و www-data اضافه کردم، و بعد مالکیت دایرکتوری html را تغییر دادم. مشکلی نبود و دایرکتوری ایجاد شد.
sudo chown -R www-data:www-data /var/www/html
کد پی‌اچ‌پی:
<?php mkdir("TESTDIR"0777); ?>
اگر چیزی هست که متوجه نشدم یا اشتباهی کردم توضیح بدید ممنون میشم.
« آخرین ویرایش: 17 آبان 1399، 12:01 ق‌ظ توسط جیم »

آفلاین فاراب

  • High Hero Member
  • *
  • ارسال: 1352
  • آزادی
    • پروفایل لینکداین
پاسخ : خلاصی از دردسر دسترسی به مسیر www
« پاسخ #24 : 17 آبان 1399، 07:36 ب‌ظ »
با تشکر از پاسخ شما،
ظاهرا دقیق متوجه نشدید. هر پرمیشنی که شما به فایل یا پوشه ای که وجود دارد میتوانید بدهید. کارهایی که شما گفتید بدیهی هستند و قبلا انجام شده اند.

مشکل زمانی پیش می آید که فایل یا پوشه ای جدید توسط اسکریپت یا فریم ورکی که الزاما در مسیر www باید باشد، ایجاد میشود و آن فایل یا پوشه، سطح دسترسی پیشفرض روت را دارد.
Godisnowhere

آفلاین M!lad

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1757
پاسخ : خلاصی از دردسر دسترسی به مسیر www
« پاسخ #25 : 17 آبان 1399، 07:56 ب‌ظ »
خوب نباید سطح دسترسی به گونه‌ای باشه که صاحب فایل‌های جدید کاربر ریشه بشه. اگر اینطور هست یعنی به درستی  سطوح دسترسی اعمال نشده و یا کاربری صحیح کارساز و اسکریپت رو اجرا نمی‌کنه.

برای مثال cache که فرمودید. صاحب دایرکتوری cache باید کاربر کنونی باشه و گروه اون، کاربر کارساز. صاحب فایل‌های ایجاد شده در این دایرکتوری هم کاربری که کارساز را اجرا می‌کنه. نهایتا هم شما چون صاحب دایرکتوری والد هستید بدون مشکل باید بتونید cache:clear بزنید.

چیزی که من تست کردم و بدون مشکل چند بار فایل‌ها رو کارساز ایجاد و من clear کردم.

دیگه در بدترین و پیچیده‌ترین حالت‌ها ACL می‌تونه کمک کنه.
..I feel no fault for the fault I feel..

آفلاین دانیال بهزادی

  • ناظر انجمن
  • *
  • ارسال: 19724
  • جنسیت : پسر
  • Urahara Kiesuke
    • وبلاگ
پاسخ : خلاصی از دردسر دسترسی به مسیر www
« پاسخ #26 : 30 آبان 1399، 06:06 ب‌ظ »
این‌جا رو ببین: https://wiki.ubuntu.ir/wiki/Apache
اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. به جاش تو هم به جامعهٔ آزادت کمک کن