بهترین روشهای تنظیم دسترسیها در لاراول با سرور لایتاسپید
لاراول یکی از محبوبترین فریمورکهای PHP است که برای اجرا نیازمند تنظیمات خاصی است، بهویژه هنگامی که روی یک سرور اختصاصی یا مجزا با وبسرور لایتاسپید نصب....
لیست مطالب
لاراول یکی از محبوبترین فریمورکهای PHP است که برای اجرا نیازمند تنظیمات خاصی است، بهویژه هنگامی که روی یک سرور اختصاصی یا مجزا با وبسرور لایتاسپید نصب میشود. یکی از مهمترین مراحل، تنظیم صحیح دسترسیها (Permissions) برای فایلها و دایرکتوریهای لاراول است. این تنظیمات تضمین میکند که برنامه بهدرستی کار کرده و از مشکلات امنیتی جلوگیری میشود.
در این مقاله، مراحل نصب و تنظیم دسترسیها برای لاراول در لینوکس با استفاده از سرور لایتاسپید و دامنه ebrasha.ir توضیح داده خواهد شد.
پیشنیازها
قبل از شروع، مطمئن شوید که موارد زیر را آماده کردهاید:
- یک سرور لینوکسی با دسترسی root یا کاربری با سطح دسترسی sudo.
- وبسرور لایتاسپید نصبشده بر روی سرور.
- دامنه پیکربندیشده (در این مثال ebrasha.ir).
- لاراول نصبشده در مسیر
/usr/local/lsws/ebrasha.ir/html
. - دسترسی SSH به سرور برای اجرای دستورات.
چرا تنظیم دسترسیها مهم است؟
- امنیت: دسترسیهای نادرست میتوانند منجر به نفوذ مهاجمان شوند.
- عملکرد صحیح برنامه: لاراول نیاز به دسترسی به فایلهای خاصی مانند
storage
وbootstrap/cache
دارد. اگر دسترسی به این فایلها بهدرستی تنظیم نشده باشد، ممکن است برنامه شما از کار بیفتد. - مدیریت سادهتر: تنظیم دسترسیها مطابق با استانداردها، نگهداری و اشکالزدایی سرور را سادهتر میکند.
دستورالعمل تنظیم دسترسیها
1. تغییر مسیر به دایرکتوری لایتاسپید
ابتدا باید وارد دایرکتوری وبسرور شوید:
cd /usr/local/lsws/
2. تنظیم دسترسی کلی برای دامنه
دسترسی کلی به دایرکتوری اصلی پروژه تنظیم میشود:
sudo chmod -R 775 ebrasha.ir
توضیح: سطح دسترسی 775 به این معناست که کاربر و گروه میتوانند بخوانند، بنویسند و اجرا کنند، اما کاربران دیگر تنها میتوانند بخوانند و اجرا کنند.
3. تغییر مالکیت فایلها
مالکیت فایلها و پوشهها را به کاربر وبسرور تغییر دهید:
sudo chown -R www-data:www-data /usr/local/lsws/ebrasha.ir/html
توضیح: در سرورهای لینوکس، کاربر www-data
معمولاً بهعنوان کاربر وبسرور استفاده میشود.
4. تنظیم دسترسی فایلها و پوشهها
ابتدا وارد دایرکتوری پروژه شوید:
cd /usr/local/lsws/ebrasha.ir/html
سپس دسترسیها را بر اساس نوع فایل تنظیم کنید:
sudo find . -type d -exec chmod 755 {} \;
sudo find . -type f -exec chmod 644 {} \;
توضیح:
- دایرکتوریها باید دارای سطح دسترسی 755 باشند (اجازه خواندن و اجرا برای همه، اما نوشتن فقط برای مالک).
- فایلها باید دارای سطح دسترسی 644 باشند (اجازه خواندن برای همه، اما نوشتن فقط برای مالک).
5. تنظیم دسترسی پوشههای خاص لاراول
پوشههای storage
، bootstrap
و bootstrap/cache
نیاز به دسترسیهای خاصی دارند:
chmod -R 777 ./storage ./bootstrap ./bootstrap/cache ./public
توضیح: سطح دسترسی 777 به این پوشهها اجازه نوشتن و اجرا توسط همه را میدهد. این دسترسیها برای عملکرد درست لاراول ضروری است.
6. تنظیم فایل .env
فایل .env
حاوی اطلاعات حساس است و باید بهدرستی تنظیم شود:
sudo chown www-data:www-data /usr/local/lsws/ebrasha.ir/html/.env
sudo chmod 777 /usr/local/lsws/ebrasha.ir/html/.env
توضیح: این تنظیمات تضمین میکند که فایل بهراحتی توسط لاراول قابل خواندن و نوشتن باشد.
نسخه کامل اسکریپت برای تنظیم دسترسیهای لاراول روی لینوکس با سرور لایتاسپید
#!/bin/bash
# -------------------------------------------------------------------
# Programmer : Ebrahim Shafiei (EbraSha)
# Email : [email protected]
# Description : Laravel permissions configuration for LightSpeed server
# -------------------------------------------------------------------
# Define project directory and domain
PROJECT_DIR="/usr/local/lsws/ebrasha.ir/html"
DOMAIN="ebrasha.ir"
# Ensure LightSpeed server directory exists
if [ ! -d "/usr/local/lsws/$DOMAIN" ]; then
echo "Error: Domain directory /usr/local/lsws/$DOMAIN does not exist."
exit 1
fi
# Change to LightSpeed root directory
cd /usr/local/lsws/ || { echo "Error: Unable to access /usr/local/lsws/. Exiting."; exit 1; }
# Set general permissions for the domain directory
echo "Setting permissions for domain directory..."
sudo chmod -R 775 $DOMAIN
sudo chown -R www-data:www-data "/usr/local/lsws/$DOMAIN/html"
# Navigate to project directory
cd $PROJECT_DIR || { echo "Error: Unable to access $PROJECT_DIR. Exiting."; exit 1; }
# Set permissions for files and directories
echo "Setting permissions for files and directories..."
sudo find . -type d -exec chmod 755 {} \; && sudo find . -type f -exec chmod 644 {} \;
# Set permissions for Laravel specific directories
echo "Setting permissions for Laravel storage and bootstrap/cache..."
sudo chmod -R 777 ./storage ./bootstrap ./bootstrap/cache ./public
# Set permissions for .env file
echo "Setting permissions for .env file..."
if [ -f ".env" ]; then
sudo chown www-data:www-data "$PROJECT_DIR/.env"
sudo chmod 777 "$PROJECT_DIR/.env"
else
echo "Warning: .env file not found. Ensure it exists and has correct permissions."
fi
# Summary
echo "Laravel permissions configuration completed for domain $DOMAIN."
# End of script
exit 0
توضیحات اسکریپت:
-
بررسی مسیرها: اگر مسیر تعریفشده برای دامنه وجود نداشته باشد، اسکریپت به شما هشدار میدهد و از اجرای ادامه دستورات جلوگیری میکند.
-
دسترسیهای کلی: برای کل دایرکتوری دامنه (
/usr/local/lsws/ebrasha.ir
) دسترسی 775 تنظیم شده و مالکیت آن بهwww-data
تغییر داده میشود. -
دسترسی فایلها و پوشهها: فایلها با دسترسی 644 و پوشهها با دسترسی 755 تنظیم میشوند تا امنیت بهینه حفظ شود.
-
پوشههای حساس لاراول: پوشههای
storage
وbootstrap/cache
با دسترسی 777 تنظیم میشوند که برای عملکرد صحیح لاراول ضروری است. -
فایل
.env
: فایل.env
بهعنوان یکی از فایلهای حساس پروژه بررسی و تنظیم میشود. -
امنیت و پیامها: هر مرحله شامل پیامهای اطلاعرسانی است تا کاربر از وضعیت اجرای اسکریپت مطلع شود.
نحوه اجرا:
اسکریپت را با نامی مناسب ذخیره کنید، مثلاً: set_permissions.sh
.
دسترسی اجرایی به اسکریپت بدهید:
chmod +x set_permissions.sh
اسکریپت را اجرا کنید:
sudo ./set_permissions.sh
دیدگاه های مربوط به این مقاله (برای ارسال دیدگاه در سایت حتما باید عضو باشید و پروفایل کاربری شما تکمیل شده باشد)
تعداد 4 دیدگاه ثبت شده
سلام و عرض ادب خدمت شما پروفسور شفیعی عزیز امیدوارم در بهترین حالتت باشی من همیشه دارم مطالب این سایتو دنبال میکنم و لذت میبرم و هروقت بهتون پیام میدم یا سوالی ازتون می پرسم بازم لذت میبرم ازتون واقعا خیلی خوشحالم از این بابت بازم مزاحمتون شدم برای عرض ادب خدمت شما و سوالی بود که میخواستم بپرسم ازتون
1- من سال هست که با شما اشنا شدم و بسیار ازتون انگیزه گرفتم خیلی بهم برنامه نویسی علاقه دارم به شدت ولی متاسفانه مشکل خیلی بزرگ دارم این که نمیتونم حوزه مورد نظرمو پیدا کنم هر دفعه یک تصمیم میگیرم و میرم دنبالش اما باز رهاش میکنم توی اموزش گیرم کردم و نمیتونم درست برنامه نویسی یاد بگیرم انگیزه یاد گیری از بین رفته چطور میتونم از این مرحله بیام بیرون و بتونم حوزه مورد نظرمو پیدا کنم شما چه پیشهاد دارید در این رابطه چطور میتونم این کلا برنامه نویسی رو یاد بگیرم و حوزه مورد نظرمو انتخاب کنم و سف وسخت پیش برم و رهاش نکنم و کلا بهترین روش یادگیری چی هست که بتونم خودمو نجات بدم و برای همیشه یاد بگیرم و حوزه مورد نظر رو انتخاب کنم
سلام و عرض ادب خدمت شما دوست گرامی.
بسیار خوشحالم که مطالب من رو دنبال میکنید و اینکه برای من افتخار بزرگیه که میتونم شما رو راهنمایی کنم.
در مورد سوالی که مطرح کردید، باید عرض کنم که انگیزه زمانی در زندگی ما پایدار میشه که هدفهای مشخص و معناداری داشته باشیم. وقتی هدفتون واضح و دقیق باشه، این خودش به شما انرژی میده که پای اون بایستید و برای رسیدن بهش تلاش کنید. این که احساس میکنید حوزه خاصی رو نمیتونید پیدا کنید یا وسط کار دلسرد میشید، نشونه اینه که شاید هنوز تعریف دقیقی از هدفها و انتظاراتتون ندارید یا به شیوهی مناسبی پیش نمیرید.
پیشنهادم به شما اینه که برای شروع، ابتدا یک هدف کوتاهمدت و دستیافتنی در نظر بگیرید. مثلاً، یادگیری یک زبان برنامهنویسی مشخص (مثل Python یا JavaScript) و پیادهسازی چند پروژه کوچک در اون حوزه.
اما یک نکته کلیدی که به نظرم خیلی میتونه برای شما موثر باشه اینه که همراهی یک استاد قوی رو پیدا کنید. استاد میتونه نقش راهنما رو داشته باشه، مسیر درست رو به شما نشون بده، اشتباهات شما رو اصلاح کنه و از همه مهمتر انگیزهی شما رو زنده نگه داره. بهتنهایی یاد گرفتن در برنامهنویسی ممکنه زمان زیادی از شما بگیره و باعث بشه ناامید بشید، اما با یک مربی خوب میتونید هم مسیرتون رو کوتاهتر کنید و هم بهرهوری خودتون رو افزایش بدید.حتما با استاد برید جلو ،با این شیوه ای که شما دارید می رید جلو در واقع فقط دارید وقتتون رو تلف می کنید .
مهمتر از همه، پشتکار و استمرار در یادگیریه. حتی اگه روزهایی احساس خستگی یا ناامیدی کردید، فقط ادامه بدید. این استمرار خودش به مرور زمان به شما انگیزه و توان بیشتری میده.
منتظر موفقیتهای شما هستم . 💪
بله درسته کاملا و منم با شما موافق هستم حتما استاد باید در کنار ما باشه تا بتونیم مسیر رو درست انتخاب کنیم و پیش بریم و باید همچین استادی پیدا کنم چون سخت پیدا میشه و باید زیاد تحقیق کنم ان شا الله که پیدا بشه بازم ممنونم از شما پروفسور شفیعی که وقت گذاشتید و بنده رو راهنمایی کردید تشکر
🤙🙏❤️