مهدی همیلی
مهدی همیلی
  • 2025/04/10
  • 2 دقیقه برای خواندن

در این مقاله، به صورت گام‌به‌گام آموزش خواهیم داد که چگونه یک پروژه Laravel یا Lumen را در محیط هاست اشتراکی (cPanel) بدون دسترسی SSH و تنها با استفاده از GitHub Actions و FTP، به صورت خودکار (CI/CD) دیپلوی کنیم. این روش برای توسعه‌دهندگانی مناسب است که از هاست ارزان‌قیمت استفاده می‌کنند یا به هر دلیلی دسترسی به SSH ندارند.

استک تیم، به عنوان یک ارائه‌دهنده حرفه‌ای Team as a Service (TaaS)، آماده است تا چنین فرایندهایی را به شکلی استاندارد و در ابعاد بزرگ‌تر برای استارتاپ‌ها و شرکت‌های نرم‌افزاری پیاده‌سازی کند.

البته توصیه میکنم از داکر برای دیپلوی اپ های لاراولی استفاده شود

مقدمه


در دنیای توسعه نرم‌افزار، هر چه فرایند دیپلوی و به‌روزرسانی سریع‌تر و خودکارتر باشد، توسعه روان‌تر خواهد بود. با اینکه اکثر توسعه‌دهندگان برای استقرار پروژه‌های خود به سراغ VPS یا سرورهای ابری می‌روند، اما هنوز هم هاست اشتراکی (Shared Hosting) به دلایل اقتصادی و سادگی محبوبیت بالایی دارد. مشکل اصلی این نوع هاست، عدم دسترسی SSH است که معمولاً توسط شرکت‌های میزبانی غیرفعال می‌شود.

اما جای نگرانی نیست؛ با کمی خلاقیت و استفاده از GitHub Actions و FTP، می‌توان سیستم CI/CD را حتی روی این نوع از هاست‌ها پیاده‌سازی کرد. این مقاله دقیقاً همین فرایند را آموزش می‌دهد.

گام‌به‌گام با ما همراه باشید


1. ورود به cPanel و فعال‌سازی ترمینال

ابتدا وارد cPanel خود شوید. به بخش Advanced رفته و گزینه Terminal را باز کنید. این بخش به شما اجازه می‌دهد برخی تنظیمات پایه را بدون SSH انجام دهید.

2. تنظیم محیط هاست و تعریف alias برای composer

دستور زیر را با جایگزینی CPANEL_USERNAME با نام کاربری هاست خود اجرا کنید:

echo 'alias composer="php -d allow_url_fopen=On /home/CPANEL_USERNAME/composer.phar"' >> ~/.bashrc
source ~/.bashrc
3. نصب Composer در هاست

دو دستور زیر را اجرا کنید تا Composer نصب شود:

curl -k -O https://getcomposer.org/installer
php -d allow_url_fopen=On installer
4. آپلود کد پروژه و اجرای دستورات لاراول

کد پروژه خود را در پوشه موردنظر (مثلاً public_html) آپلود کنید. سپس با استفاده از ترمینال به روت پروژه بروید و دستورات زیر را اجرا نمایید:

composer install
php artisan key:generate
php artisan migrate
chmod -R 775 storage
php artisan db:seed

اگر درباره ساخت دیتابیس، کاربر و تنظیم .env اطلاعات دارید، به مرحله بعد بروید. در غیر این صورت، تیم استک تیم می‌تواند به شما مشاوره یا خدمات مستقیم ارائه دهد.

5. ساخت فایل YAML برای GitHub Actions

در پوشه .github/workflows فایل جدیدی به نام cicd.yml ایجاد کنید و محتوای زیر را در آن قرار دهید:

name: Laravel/Lumen CI/CD
on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  web-deploy:
    name: Deploying
    runs-on: ubuntu-latest
    steps:
      - uses: shivammathur/setup-php@15c43e89cdef867065b0213be354c2841860869e
        with:
          php-version: '8.1.21'
      - uses: actions/checkout@v2.3.2
      - name: Copy .env
        run: php -r "file_exists('.env') || copy('.env.example', '.env');"
      - name: Install Dependencies
        run: composer update --ignore-platform-reqs
      - name: Generate key
        run: php artisan key:generate
      - name: Directory Permissions
        run: chmod -R 775 storage
      - name: 📂 Sync files
        uses: SamKirkland/FTP-Deploy-Action@4.0.0
        with:
          server: ${{ secrets.SERVER }}
          username: ${{ secrets.USERNAME }}
          password: ${{ secrets.PASSWORD }}
          server-dir: ./api.minimarketapp.ir/
6. تنظیم اطلاعات محرمانه در GitHub Secrets

برای امنیت بیشتر، اطلاعات دسترسی به FTP را داخل کد قرار ندهید. وارد تنظیمات ریپازیتوری خود در GitHub شوید، به بخش:

Settings → Security → Secrets and variables → Actions

رفته و متغیرهای SERVER، USERNAME و PASSWORD را تعریف کنید.

پایان، اما شروع مسیر CI/CD شما!


از این پس، هر بار که کدی در شاخه main پوش شود یا Pull Request انجام گیرد، سیستم CI/CD شما به صورت خودکار اجرا شده و پروژه در هاست بارگذاری می‌شود.

💡 نکته: در اولین اجرا ممکن است فرایند کمی طول بکشد، اما دفعات بعدی بسیار سریع‌تر خواهد بود.

جمع بندی


این روش، یک راه‌حل خلاقانه و مؤثر برای پیاده‌سازی CI/CD در پروژه‌های PHP/Laravel است، حتی بدون دسترسی SSH. اگر تیم یا استارتاپ شما در حال توسعه یک محصول نرم‌افزاری است، استک تیم با ارائه خدمات Team as a Service می‌تواند تمام نیازهای شما در حوزه برنامه‌نویسی، DevOps، طراحی سیستم، مستندسازی و راه‌اندازی CI/CD را پوشش دهد.


استک تیم یک ارائه‌دهنده حرفه‌ای خدمات Team as a Service است که با بهره‌گیری از تیم‌های تخصصی در حوزه طراحی و توسعه نرم‌افزار، می‌تواند صفر تا صد پروژه‌های شما را از ایده تا اجرا برعهده گیرد.

🔹 طراحی و توسعه اپلیکیشن و وب‌سایت 🔹 پیاده‌سازی CI/CD و DevOps 🔹 توسعه مقیاس‌پذیر با معماری میکروسرویس 🔹 توسعه پروژه‌های مبتنی بر Laravel، Golang، Node.js و ...

🎯 رزرو جلسه مشاوره رایگان، اولین قدم موفقیت اپلیکیشن شما

شماره تماس های سریع ما، تماس و واتساپ :

📞 ایران :‌ 09120186223 📞 دبی : +971581554476


اگر دوست داری مقاله‌های بیشتری درباره CI/CD، لاراول و توسعه حرفه‌ای نرم‌افزار بخونی، با استک تیم همراه باش!

مهدی همیلی
مهدی همیلی
Co-funder at Stackteam

من مهدی همیلی هستم؛ برنامه‌نویس و عاشق ساختن چیزهایی که واقعاً کار می‌کنن! سال‌هاست توی دنیای کدنویسی می‌چرخم و با زبان‌هایی مثل PHP، Go و JavaScript کلی پروژه ساختم. به‌عنوان Co-founder استک تیم، تمرکزم روی ساخت تیم‌های فنی منسجم و چابکه که بتونن پروژه‌های پیچیده رو سریع و دقیق جلو ببرن. معتقدم کد خوب فقط یه سری خط نیست؛ یه راه حله برای خلق آینده.

Dubai/UAE

آخرین مقالات

معرفی MCP (Model Context Protocol): انقلابی در اتصال مدل‌های هوش مصنوعی به دنیای واقعی
  • 10 April 2025
  • 2 min read
پیاده‌سازی CI/CD برای Laravel و Lumen با Github Actions در هاست اشتراکی cPanel (بدون SSH
  • 10 April 2025
  • 2 min read
راهنمای جامع راه‌اندازی استارتاپ SaaS در سال ۲۰۲۵: ۱۰ ایده نوآورانه با پتانسیل بالا
  • 08 April 2025
  • 1 min read
راهنمای کامل Twitter Meta Tags برای توسعه‌دهندگان وب
  • 08 April 2025
  • 1 min read
راهنمای کامل Open Graph برای توسعه‌دهندگان وب
  • 08 April 2025
  • 1 min read
Contact Information

Theodore Lowe, Ap #867-859
Sit Rd, Azusa New York

We're Available 24/7. Call Now. (888) 456-2790 (121) 255-53333
Find us here