سی ام اس نویسسی ام اس نویسیاد بگیر، سیستم خودتو بنویس
مجلهتماس با ما
سی ام اس نویسسی ام اس نویس

CMS نویس مرجعی برای آموزش برنامه نویسی وب و PHP، توسعه افزونه‌های اختصاصی وردپرس، طراحی ورک‌فلو و اتوماسیون با n8n و توسعه CMS های اختصاصی است. هدف ما ارائه آموزش‌های کاربردی و راهکارهای حرفه‌ای برای توسعه‌دهندگان، کسب‌وکارها و علاقه‌مندان به دنیای برنامه‌نویسی است.

پیوندهای سریع
محصولات فیزیکیمحصولات دیجیتالدوره‌های آموزشی
سی ام اس نویس
مجله سی ام اس نویستماس با ماپنل کاربری
سی ام اس نویس — تمامی حقوق برای سی ام اس نویس محفوظ است. © 1406 تماس با ما09307711941
آموزش نصب و Deploy لاراول روی cPanel از صفر تا اجر

آموزش نصب و Deploy لاراول روی cPanel از صفر تا اجر

ممدیر کل سیستم ۲۰ مهر ۱۴۰۵ ۱۴ دقیقه مطالعه ۱ بازدید
آموزش نصب و Deploy لاراول روی cPanel از صفر تا اجر

لاراول یکی از فریم‌ورک‌های محبوب PHP برای توسعه وب‌سایت‌ها و برنامه‌های تحت وب است. پس از تکمیل پروژه، یکی از مراحل مهم، انتقال آن از محیط توسعه به هاست و آماده‌سازی برای استفاده کاربران است.

اگر برای میزبانی سایت خود از هاست مجهز به cPanel استفاده می‌کنید، ممکن است این سؤال برایتان پیش بیاید که چگونه می‌توان Laravel را روی هاست اشتراکی اجرا کرد و چه تنظیماتی برای راه‌اندازی آن لازم است.

در این مقاله، مراحل نصب و استقرار پروژه Laravel روی cPanel را بررسی می‌کنیم؛ از انتخاب نسخه PHP و آماده‌سازی فایل‌ها تا تنظیم پایگاه داده، پیکربندی فایل .env و رفع خطاهای رایج.

آیا می‌توان Laravel را روی هاست اشتراکی نصب کرد؟

بله، بسیاری از پروژه‌های Laravel را می‌توان روی هاست اشتراکی اجرا کرد؛ البته به شرطی که امکانات هاست با نیازمندی‌های پروژه سازگار باشد.

پیش از خرید یا استفاده از هاست، موارد زیر را بررسی کنید:

  • نسخه PHP موردنیاز پروژه
  • امکان فعال‌سازی افزونه‌های PHP موردنیاز
  • دسترسی به Composer یا امکان نصب وابستگی‌ها در محیط دیگری
  • امکان ایجاد پایگاه داده و کاربر MySQL
  • امکان تنظیم Document Root دامنه
  • محدودیت‌های حافظه، زمان اجرا و فضای ذخیره‌سازی
  • دسترسی به Cron Job در صورت نیاز پروژه
  • امکان اجرای Queue Worker یا استفاده از راهکار جایگزین، اگر پروژه به آن نیاز دارد

بعضی از قابلیت‌های موردنیاز پروژه‌های بزرگ، مانند اجرای دائمی فرایندها، ممکن است در هاست اشتراکی در دسترس نباشند. در این شرایط، استفاده از VPS یا سرور اختصاصی می‌تواند انتخاب مناسب‌تری باشد.

مرحله اول: بررسی نسخه PHP در cPanel

ابتدا وارد پنل cPanel هاست خود شوید.

بسته به نسخه cPanel و تنظیمات شرکت میزبانی، بخشی با عنوان‌هایی مانند Select PHP Version، MultiPHP Manager یا MultiPHP INI Editor در دسترس خواهد بود.

نسخه PHP را مطابق نیازمندی‌های پروژه Laravel انتخاب کنید.

برای مثال، اگر پروژه با PHP 8.3 سازگار است، باید نسخه PHP مناسب را برای دامنه خود فعال کنید. نسخه موردنیاز را حدس نزنید؛ فایل composer.json و مستندات نسخه Laravel را بررسی کنید.

همچنین مطمئن شوید افزونه‌های PHP موردنیاز پروژه فعال هستند. این افزونه‌ها بسته به پروژه ممکن است شامل موارد زیر باشند:

  • mbstring
  • openssl
  • pdo_mysql
  • tokenizer
  • xml
  • ctype
  • json
  • curl
  • fileinfo
  • bcmath
  • zip

فهرست بالا نمونه‌ای از افزونه‌های متداول است و نیازمندی‌های دقیق به نسخه PHP و وابستگی‌های پروژه بستگی دارند.

مرحله دوم: آماده‌سازی پروژه Laravel برای انتقال

پیش از انتقال پروژه به هاست، باید وابستگی‌ها و فایل‌های موردنیاز آن را آماده کنید.

در سیستم توسعه، وارد پوشه پروژه شوید و دستور زیر را اجرا کنید:


composer install --no-dev --optimize-autoloader

این دستور وابستگی‌های ثبت‌شده در composer.lock را نصب می‌کند و بسته‌های توسعه‌ای را کنار می‌گذارد.

اگر پروژه از Vite برای مدیریت فایل‌های CSS و JavaScript استفاده می‌کند، فایل‌های فرانت‌اند را نیز بسازید:


npm ci

npm run build

این دستورات باید در محیطی اجرا شوند که Node.js و npm مناسب پروژه نصب شده باشند.

پس از Build، مطمئن شوید فایل‌های تولیدشده، از جمله فایل‌های موردنیاز داخل public/build، همراه پروژه منتقل می‌شوند.

نکته: فایل .env سیستم توسعه را بدون بررسی روی هاست قرار ندهید. تنظیمات محیط Production باید جداگانه و با اطلاعات واقعی سرور تکمیل شوند.

مرحله سوم: انتقال فایل‌های پروژه به هاست

برای انتقال پروژه می‌توانید از File Manager داخل cPanel، ابزار SFTP یا Git استفاده کنید؛ البته دسترسی‌های موجود در هر هاست متفاوت است.

در بسیاری از هاست‌ها، مسیر public_html به‌عنوان پوشه عمومی دامنه اصلی استفاده می‌شود. فایل‌های اصلی Laravel، مانند app، vendor، storage و bootstrap، نباید مستقیماً در معرض دسترسی وب قرار بگیرند.

یک ساختار پیشنهادی به شکل زیر است:


/home/USERNAME/

├── laravel-app/

│   ├── app/

│   ├── bootstrap/

│   ├── config/

│   ├── public/

│   ├── resources/

│   ├── routes/

│   ├── storage/

│   ├── vendor/

│   ├── artisan

│   ├── composer.json

│   └── .env

└── public_html/

در این مثال، فایل‌های اصلی پروژه در پوشه‌ای خارج از public_html قرار می‌گیرند و فایل‌های عمومی از مسیر laravel-app/public ارائه می‌شوند.

USERNAME را با نام کاربری واقعی هاست جایگزین کنید.

این ساختار یک پیشنهاد عمومی است؛ مسیر واقعی پوشه خانگی و امکان تغییر Document Root به تنظیمات هاست بستگی دارد.

مرحله چهارم: تنظیم Document Root دامنه

مهم‌ترین نکته امنیتی هنگام اجرای Laravel روی هاست این است که ریشه وب‌سرور باید پوشه public پروژه باشد.

در cPanel ممکن است بتوانید Document Root دامنه اصلی یا یک دامنه فرعی را از بخش‌هایی مانند Domains تنظیم کنید. امکانات این بخش به نسخه cPanel و سیاست شرکت میزبانی بستگی دارد.

برای مثال، اگر پروژه در مسیر زیر قرار دارد:


/home/USERNAME/laravel-app

مسیر عمومی موردنظر باید چنین باشد:


/home/USERNAME/laravel-app/public

در این حالت، وب‌سرور فایل‌های عمومی را از پوشه public ارائه می‌کند و فایل‌هایی مانند .env و composer.json در ریشه عمومی وب قرار نمی‌گیرند.

اگر امکان تغییر Document Root وجود نداشته باشد چه کنیم؟

اگر هاست اجازه تنظیم Document Root را نمی‌دهد، دو راهکار رایج وجود دارد:

  1. از پشتیبانی هاست بخواهید Document Root دامنه را به پوشه public پروژه تغییر دهد.
  2. در صورت امکان و با رعایت ساختار امن، فایل‌های عمومی را در public_html قرار دهید و مسیرهای لازم را به پوشه اصلی پروژه متصل کنید.

روش دوم نیازمند دقت بیشتری است؛ نباید کل پروژه Laravel را داخل public_html کپی کنید یا با تغییر ساده مسیرها، فایل‌های حساس را در معرض وب قرار دهید.

از راهکارهای مبتنی بر انتقال فایل‌ها یا ساخت لینک نمادین فقط زمانی استفاده کنید که محدودیت‌های دسترسی و پیکربندی وب‌سرور را به‌خوبی می‌شناسید.

مرحله پنجم: ساخت پایگاه داده در cPanel

اگر پروژه از MySQL استفاده می‌کند، باید پایگاه داده و کاربر آن را ایجاد کنید.

در cPanel معمولاً بخشی با عنوان MySQL Databases یا Database Wizard برای این کار وجود دارد.

مراحل کلی عبارت‌اند از:

  1. یک پایگاه داده جدید ایجاد کنید.
  2. یک کاربر پایگاه داده با رمز عبور امن بسازید.
  3. کاربر را به پایگاه داده متصل کنید.
  4. مجوزهای موردنیاز را به کاربر بدهید.

در بسیاری از هاست‌ها، نام پایگاه داده و نام کاربر با پیشوند حساب هاست ساخته می‌شوند. برای مثال، نام واقعی ممکن است به شکل account_example باشد، نه صرفاً example.

اطلاعات نهایی را یادداشت کنید تا در مرحله بعد در فایل .env قرار دهید.

مرحله ششم: تنظیم فایل .env

فایل .env تنظیمات محیط اجرای Laravel را نگهداری می‌کند. این فایل باید در مسیر اصلی پروژه قرار داشته باشد و از طریق وب قابل دسترسی نباشد.

نمونه تنظیمات پایگاه داده:


APP_NAME="Example App"

APP_ENV=production

APP_DEBUG=false

APP_URL=https://example.com



DB_CONNECTION=mysql

DB_HOST=localhost

DB_PORT=3306

DB_DATABASE=account_example

DB_USERNAME=account_example

DB_PASSWORD=YOUR_SECURE_PASSWORD

در این نمونه، example.com و مقادیر پایگاه داده فرضی هستند. آن‌ها را با اطلاعات واقعی خود جایگزین کنید.

در بسیاری از هاست‌های cPanel، مقدار DB_HOST برابر localhost است؛ اما این مقدار همیشگی نیست. اگر شرکت میزبانی آدرس جداگانه‌ای برای پایگاه داده ارائه کرده، همان آدرس را استفاده کنید.

همچنین:

  • مقدار APP_DEBUG باید در Production برابر false باشد.
  • مقدار APP_URL باید با آدرس واقعی سایت هماهنگ باشد.
  • رمز پایگاه داده نباید در کد عمومی یا مخزن عمومی Git قرار بگیرد.
  • اگر پروژه از قبل APP_KEY معتبر دارد، آن را بدون دلیل تغییر ندهید.

اگر پروژه جدید است و هنوز کلید برنامه ندارد، پس از نصب وابستگی‌ها می‌توانید دستور زیر را اجرا کنید:


php artisan key:generate

مرحله هفتم: نصب وابستگی‌های Composer روی هاست

اگر Composer روی هاست در دسترس است، می‌توانید از ترمینال cPanel یا SSH برای نصب وابستگی‌ها استفاده کنید.

ابتدا وارد مسیر اصلی پروژه شوید:


cd ~/laravel-app

سپس دستور زیر را اجرا کنید:


composer install --no-dev --optimize-autoloader

اگر دستور composer در دسترس نیست، باید روش مورد تأیید شرکت میزبانی را بررسی کنید. در برخی هاست‌ها امکان اجرای Composer از طریق ترمینال وجود ندارد یا محدودیت‌هایی برای آن اعمال شده است.

در چنین شرایطی می‌توان وابستگی‌ها را در محیطی سازگار آماده و پوشه vendor را همراه پروژه منتقل کرد؛ اما محیط ساخت باید با نسخه PHP و سیستم مقصد سازگار باشد.

پس از انتقال، مجوزها و کامل‌بودن وابستگی‌ها را بررسی کنید.

مرحله هشتم: اجرای Migrationهای Laravel

پس از تنظیم پایگاه داده و نصب وابستگی‌ها، باید جداول موردنیاز پروژه را ایجاد کنید.

اگر به ترمینال دسترسی دارید، در مسیر پروژه اجرا کنید:


php artisan migrate:status

برای اجرای Migrationهای جدید در محیط Production:


php artisan migrate --force

پیش از اجرای این دستور روی سایت اصلی، تغییرات Migrationها را بررسی کنید و از پایگاه داده نسخه پشتیبان تهیه کنید.

اگر SSH یا Terminal در دسترس نیست، از روش مورد تأیید شرکت میزبانی برای اجرای دستورات Laravel استفاده کنید. بهتر است برای اجرای مکرر فرمان‌های مدیریتی، دسترسی ترمینال یا یک فرایند Deploy استاندارد داشته باشید؛ اجرای فرمان‌های حساس از طریق اسکریپت‌های عمومی وب می‌تواند خطر امنیتی ایجاد کند.

مرحله نهم: تنظیم دسترسی پوشه‌های Laravel

Laravel برای ذخیره گزارش‌ها، فایل‌های کش و برخی داده‌های اجرایی به دسترسی نوشتن نیاز دارد.

دو مسیر مهم عبارت‌اند از:


storage/

bootstrap/cache/

اگر این پوشه‌ها قابل‌نوشتن نباشند، ممکن است خطاهای 500 یا خطاهای مربوط به ثبت گزارش مشاهده کنید.

در هاست اشتراکی، مالکیت فایل‌ها و مجوزهای لازم را بر اساس دستورالعمل شرکت میزبانی تنظیم کنید. مجوزهای موردنیاز به کاربری که PHP را اجرا می‌کند و تنظیمات PHP-FPM یا سایر Handlerهای PHP بستگی دارند.

از تنظیم مجوز 777 برای کل پروژه خودداری کنید. به‌جای آن، حداقل مجوز لازم را فقط برای مسیرهای موردنیاز فراهم کنید.

مرحله دهم: تنظیم کش و بهینه‌سازی Laravel

پس از تنظیم محیط Production، می‌توانید کش‌های Laravel را آماده کنید.

اگر به ترمینال دسترسی دارید، ابتدا در صورت نیاز کش‌های قبلی را پاک کنید:


php artisan optimize:clear

سپس دستورهای بهینه‌سازی را اجرا کنید:


php artisan config:cache

php artisan route:cache

php artisan view:cache

این دستورات برای آماده‌سازی کش تنظیمات، مسیرها و Viewها کاربرد دارند.

اگر پروژه از قابلیت‌هایی استفاده می‌کند که با Route Cache یا Config Cache سازگار نیستند، باید پیش از فعال‌سازی آن‌ها رفتار برنامه را بررسی کنید.

در صورت تغییر فایل .env، ممکن است لازم باشد کش تنظیمات را پاک کرده و دوباره بسازید.

مرحله یازدهم: بررسی اجرای سایت

پس از انجام مراحل نصب، سایت را با دامنه خود باز کنید.

موارد زیر را بررسی کنید:

  • صفحه اصلی بدون خطا باز شود.
  • اتصال به پایگاه داده برقرار باشد.
  • مسیرهای اصلی پروژه کار کنند.
  • فایل‌های CSS و JavaScript بارگذاری شوند.
  • تصاویر و فایل‌های آپلودشده قابل دسترسی باشند.
  • ورود، ثبت‌نام و سایر قابلیت‌های مهم کار کنند.
  • گواهی HTTPS معتبر باشد.
  • گزارش خطاهای Laravel قابل بررسی باشد.

اگر خطای 500 دریافت کردید، ابتدا گزارش‌های داخل storage/logs را بررسی کنید. همچنین تنظیمات فایل .env، دسترسی پوشه‌ها و نسخه PHP را دوباره بررسی کنید.

در هاست اشتراکی، مسیر و دسترسی گزارش‌های وب‌سرور ممکن است فقط در اختیار شرکت میزبانی باشد؛ در این صورت، از پشتیبانی هاست کمک بگیرید.

اجرای Queue و Task Scheduling در cPanel

برخی پروژه‌های Laravel از Queue برای ارسال ایمیل، پردازش فایل یا اجرای کارهای پس‌زمینه استفاده می‌کنند. بعضی دیگر برای اجرای وظایف دوره‌ای به Task Scheduling نیاز دارند.

در cPanel معمولاً می‌توان از بخش Cron Jobs برای اجرای وظایف زمان‌بندی‌شده استفاده کرد.

برای مثال، اگر مسیر PHP و مسیر پروژه مشخص باشند، می‌توان دستور Scheduler را به شکل زیر تعریف کرد:


cd /home/USERNAME/laravel-app && /usr/local/bin/php artisan schedule:run

مسیر PHP در این مثال فرضی است و باید با مسیر واقعی ارائه‌شده توسط شرکت میزبانی جایگزین شود. در بسیاری از سرورها مسیر PHP متفاوت است.

برای Queue Worker، به یاد داشته باشید که اجرای دائمی Worker معمولاً به فرایند مدیریت‌شده نیاز دارد. اگر هاست اجازه اجرای پردازش دائمی نمی‌دهد، باید از امکانات جایگزین مورد تأیید میزبان یا محیطی مانند VPS استفاده کنید.

خطاهای رایج هنگام نصب Laravel روی cPanel

خطای 500 پس از انتقال پروژه

این خطا می‌تواند ناشی از تنظیمات نادرست .env، نسخه ناسازگار PHP، مجوزهای فایل یا نصب ناقص وابستگی‌ها باشد.

ابتدا گزارش Laravel را بررسی کنید و از فعال‌کردن APP_DEBUG روی سایت عمومی خودداری کنید.

خطای اتصال به پایگاه داده

نام پایگاه داده، نام کاربر، رمز عبور و آدرس سرور پایگاه داده را بررسی کنید. فراموش نکنید که در cPanel ممکن است نام واقعی پایگاه داده و کاربر دارای پیشوند حساب هاست باشد.

نمایش صفحه Index یا خطای 403

این مشکل ممکن است به تنظیم نادرست Document Root یا مجوزهای فایل مربوط باشد. مطمئن شوید دامنه به پوشه public پروژه اشاره می‌کند و فایل index.php در آن مسیر وجود دارد.

خطای Vite یا نمایش‌ندادن فایل‌های CSS

اگر پروژه از Vite استفاده می‌کند، باید فایل‌های نهایی Build شده باشند و فایل manifest.json و دارایی‌های موردنیاز در مسیر درست قرار داشته باشند.

در دسترس نبودن Composer

اگر ترمینال یا Composer روی هاست فعال نیست، روش نصب وابستگی‌ها را با پشتیبانی شرکت میزبانی بررسی کنید. برای پروژه‌های پیچیده، هاستی که ابزارهای لازم را در اختیار قرار می‌دهد، فرایند استقرار را ساده‌تر می‌کند.

آیا cPanel برای همه پروژه‌های Laravel مناسب است؟

خیر. برای پروژه‌های ساده و متوسط که نیازمندی‌های آن‌ها با محدودیت‌های هاست سازگار است، cPanel می‌تواند گزینه مناسبی باشد.

اما اگر پروژه به Queueهای سنگین، پردازش دائمی، سرویس‌های متعدد، کنترل کامل تنظیمات سرور یا مقیاس‌پذیری پیشرفته نیاز دارد، استفاده از VPS یا زیرساخت کانتینری ممکن است انتخاب بهتری باشد.

مهم‌ترین معیار، انتخاب محیطی است که بتواند نیازمندی‌های فنی، امنیتی و عملیاتی پروژه را تأمین کند.

جمع‌بندی

برای نصب و Deploy لاراول روی cPanel باید نسخه PHP را با پروژه هماهنگ کنید، فایل‌ها و وابستگی‌ها را آماده سازید، پایگاه داده و فایل .env را تنظیم کنید و مطمئن شوید دامنه به پوشه public اشاره می‌کند.

پس از اجرای Migrationها و تنظیم مجوزهای لازم، سایت را از نظر عملکرد، امنیت و بارگذاری فایل‌ها آزمایش کنید.

به یاد داشته باشید که بالا آمدن صفحه اصلی به‌تنهایی به معنی آماده‌بودن پروژه برای Production نیست. تنظیم HTTPS، مدیریت اطلاعات محرمانه، تهیه نسخه پشتیبان و بررسی وظایف پس‌زمینه نیز از مراحل مهم استقرار محسوب می‌شوند.

سوالات متداول

آیا می‌توان Laravel را مستقیماً داخل public_html نصب کرد؟

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

آیا برای نصب Laravel روی cPanel به SSH نیاز داریم؟

SSH الزامی نیست، اما دسترسی به ترمینال و Composer فرایند نصب و مدیریت پروژه را ساده‌تر می‌کند. بدون آن، باید از امکانات شرکت میزبانی یا روش آماده‌سازی وابستگی‌ها در محیط دیگری استفاده کنید.

آیا Laravel روی هاست اشتراکی اجرا می‌شود؟

بله، اگر نسخه PHP، افزونه‌ها، پایگاه داده و سایر نیازمندی‌های پروژه توسط هاست پشتیبانی شوند. پروژه‌هایی با نیازهای عملیاتی پیچیده ممکن است به VPS نیاز داشته باشند.

آیا می‌توان از Cron Job برای اجرای Scheduler لاراول استفاده کرد؟

بله. در صورت پشتیبانی هاست، می‌توان دستور php artisan schedule:run را طبق بازه زمانی مناسب در Cron Jobs تعریف کرد. مسیر PHP و پروژه باید با محیط واقعی هماهنگ باشند.

بعد از تغییر فایل .env چه کاری باید انجام داد؟

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

نظرات (0)

نظرات پس از تأیید مدیر نمایش داده می‌شوند

هنوز نظری ثبت نشده است؛ اولین نفر باشید!

مقالات مرتبط

ساخت CMS با Laravel 12؛ آموزش ساخت سیستم مدیریت محتوا از صفر

ساخت CMS با Laravel 12؛ آموزش ساخت سیستم مدیریت محتوا از صفر

۲۴ دقیقه
ساخت فروشگاه اینترنتی با Laravel 12؛ آموزش پروژه‌محور از صفر تا طراحی هسته فروشگاه

ساخت فروشگاه اینترنتی با Laravel 12؛ آموزش پروژه‌محور از صفر تا طراحی هسته فروشگاه

۲۲ دقیقه
ساخت Marketplace با Laravel؛ آموزش طراحی فروشگاه چندفروشندگی

ساخت Marketplace با Laravel؛ آموزش طراحی فروشگاه چندفروشندگی

۲۲ دقیقه
مدیریت Queueهای سنگین در Laravel؛ آموزش پردازش کارهای طولانی

مدیریت Queueهای سنگین در Laravel؛ آموزش پردازش کارهای طولانی

۲۲ دقیقه