گسترش دادن برنامه های وب PHP با استفاده از Laravel Forge
توسعه دهندگان دوست دارند همه چیز را خودکار کنند. در هر فرآیند بین توسعه و تولید، آن ها مشتاق هستند که اسکریپتی داشته باشند که جریان کارشان را آسان تر کند. این امر در مورد استقرار نیز صادق است. در ادامه آموزش های php و لاراول می خواهیم به گسترش دادن برنامه های وب PHP با استفاده از Laravel Forge بپردازیم.
نحوه گسترش دادن برنامه های وب PHP با استفاده از Laravel Forge
روند فشار آوردن به ساخت نهایی و استقرار برنامه باید به سادگی فشردن دکمه Deploy now باشد، اما بیشتر اوقات اتفاق نمی افتد. ما در نهایت زمان و منابع خود را برای پیکربندی سرور، راه اندازی محیط، جابجایی فایل هایی که فکر می کردیم برای ساخت محصولات مرتبط نیستند و غیره سرمایه گذاری می کنیم.
برخی از ما ترجیح می دهیم فایل ها را به صورت دستی با استفاده از FTP به سرور ارسال کنیم یا کد را در repo GitHub قرار دهیم، در حالی که برخی دیگر ابزار استقرار را برای سهولت روند ترجیح می دهند. Laravel Forge یکی از این ابزارهاست که استقرار PHP را به یک نسیم تبدیل می کند.
اجازه ندهید نام تجاری Laravel شما را گمراه کند. به غیر از لاراول، می توانید از این سرویس برای میزبانی وردپرس، Symphony ،Statamic یا هر پروژه وب دیگری به شرط PHP استفاده کنید. شخصاً، من Laravel Forge را به خاطر سادگی اش دوست دارم.
ما در این آموزش می خواهیم مراحل را برای اتصال Laravel Forge به AWS و کشف آن چه که ارائه می دهد، به صورت کامل و مرحله به مرحله بپردازیم. با ما همراه باشید.!
بررسی اجمالی
Laravel Forge به شما امکان می دهد سرورهای ابری را بچرخانید و فرآیندهای استقرار را با استفاده از Git و برخی از ارائه دهندگان سرور محبوب موجود مدیریت کنید. فرآیند در زیر توضیح داده شده است:
ابتدا، باید AWS یا هر ارائه دهنده ابری دیگر را به حساب Forge خود متصل کنید. سپس، کنترل منبع خود مانند GitHub را به Forge پیوند دهید. اکنون می توانید سرور ایجاد کنید. مخزن کنترل منبع خود را روی سرور نصب کنید. در نهایت، دکمه استقرار را فشار دهید. به اندازه کافی آسان است، درست است؟
سرورهای مجهز به Laravel Forge با پشته زیر ارسال می شوند:
- اوبونتو 16.06
- Nginx
- PHP 7.2/7.1/7.0/5.6
- MySQL/MariaDB/Postgres
- ردیس
- متصل شده
پس از ایجاد سرور، می توانید موارد بیشتری را پیکربندی کنید.
هنگام ثبت نام، می توانید بین برنامه های مختلفی که آن ها ارائه می دهند، یکی را انتخاب کنید. من برنامه اصلی 12 دلار در ماه را انتخاب کردم. با این حال، شما یک دوره آزمایشی رایگان با دسترسی به همه چیز در لیست به مدت پنج روز دریافت خواهید کرد.
پس از ورود به سیستم، در زیر چیزی شبیه به این تصویر را مشاهده خواهید کرد.
برای ارائه دهنده خدمات می توانید بین یکی از شرکت های که سرور مجازی ارائه میدهند، یکی را انتخاب کنید. متناوبا، می توانید از Forge با VPC سفارشی نیز استفاده کنید. در مورد کنترل منبع، Forge از GitHub ،GitLab و Bitbucket پشتیبانی می کند. در این آموزش، من قصد دارم مبانی پیکربندی AWS را برای کار با Forge و GitHub برای کنترل منبع مورد بحث قرار دهم. پس از اتمام کار، می توانید هر تعداد سرور ایجاد کرده و در اختیار آن ها قرار دهید.
اگر از ارائه دهنده خدمات دیگری در لیست استفاده می کنید، می توانید این مرحله را رد کرده و بعداً پس از پیکربندی AWS و Laravel Forge با ما تماس بگیرید.
راه اندازی Laravel Forge و AWS
برای راه اندازی Forge و AWS، مراحل زیر را باید دنبال کنید.
1. وارد Laravel Forge شوید
وارد Laravel Forge شده و AWS را به عنوان ارائه دهنده خدمات انتخاب کنید. از شما یک کلید دسترسی (کلید) و یک کلید دسترسی مخفی (مخفی) از شما خواسته می شود. شما باید یک کاربر خاص IAM با خط مشی ایجاد کنید که دسترسی کافی به Laravel Forge را فراهم می کند. IAM روش نگاشت مجوزهای هر کاربر توسط آمازون است، بنابراین اگر مشکلی پیش آمد می توانید دسترسی را لغو کنید.
2. یک کاربر جدید IAM ایجاد کنید
وارد AWS Console شوید و یک کاربر IAM جدید ایجاد کنید.
یک نام معنی دار برای کاربر بگذارید و کادر مربوط به آن را که دسترسی برنامه ای است را علامت بزنید.
3. سیاست مناسب را انتخاب کنید.
مجوز مناسب را برای کاربر laravel-forge IAM تنظیم کنید. یک گروه کاربری جدید ایجاد کنید. زیرا گروه های کاربری برای مدیریت مجوزها ایده آل هستند. questionال طبیعی این است که “کاربر جعلی باید به چه سیاست هایی دسترسی داشته باشد؟” اگرچه می توانید آن را با AdministratorAccess ارائه دهید، اما نباید انجام دهید.
اگر برای ایجاد و ارائه سرورها از طرف شما به Forge نیاز دارید، باید دو خط مشی اضافه کنید:
- AmazonEC2FullAccess
- AmazonVPCFullAccess
4. اعتبارنامه ها را ذخیره کرده و تأیید کنید.
حساب IAM را تأیید کنید و در صفحه بعد کلید دسترسی و کد مخفی را پیدا خواهید کرد.
به صفحه Laravel Forge رفته و آن ها را در آن جا بچسبانید. خودشه.
5. حساب GitHub خود را به Forge پیوند دهید.
اگر قبلاً این کار را نکرده اید، حساب GitHub/Bitbucket خود را به Forge وصل کنید. هنگام ایجاد سرور، Forge یک کلید عمومی به حساب شما اضافه می کند. اگر نیاز به ارائه دهنده خدمات جدید و/یا به روز رسانی کنترل منبع دارید، آن گزینه ها را در نمایه خود دارید.
ایجاد سرور جدید
برای افزودن سرور جدید به صفحه ایجاد سرور بروید.
اگر از رده رایگان AWS استفاده می کنید t2.micro با 1 گیگابایت رم را انتخاب کنید. در مورد سایر تنظیمات، من می خواهم با پیش فرض ها کار کنم. این شامل MySQL برای پایگاه داده و PHP نسخه 7.2 است. بعداً می توانید نام پایگاه داده را سفارشی کنید. برای ساده نگه داشتن مسائل، من تصمیم گرفته ام از یک بالانس کننده بار استفاده نکنم. اگر در مورد دستور العمل پس از تولید فکر می کنید، من در انتهای این آموزش به آن پرداخته ام.
ایجاد سرور ممکن است پنج دقیقه طول بکشد. اعتبار دسترسی sudo به شما داده می شود. آن ها را در مکانی امن نگهداری کنید تا بتوانید در آینده از آن ها استفاده کنید. برای مشاهده عملکرد مطابق انتظار، به آدرس IP سرور بروید و باید خروجی phpinfo () را روی صفحه خود مشاهده کنید.
رابط مدیریت سرور
رابط کاربری که پس از ایجاد سرور مشاهده می کنید داشبورد مدیریت سرور است.
در اینجا می توانید کارهای زیادی انجام دهید، مانند:
- مدیریت سایت
- افزودن کلیدهای SSH
- پیکربندی پایگاه داده
- به روز رسانی تنظیمات PHP
- برنامه ریزی یک کار
- شروع یک شیطان
- مدیریت شبکه و پیکربندی فایروال
- نظارت بر برنامه با استفاده از Blackfire یا Papertail
- پیکربندی تنظیمات متا
بسیاری از ویژگی های موجود و مهم در بالا آورده شده است. بیایید با مدیریت سایت شروع کنیم. طبق اسناد Forge:
سایت ها هر “دامنه” را در سرور شما نشان می دهند. سایت “پیش فرض” با هر سرور تازه تهیه شده گنجانده شده است. با این حال، هنگامی که آماده راه اندازی سایت تولید خود هستید، باید آن را حذف کرده و یک سایت جدید با نام دامنه معتبر ایجاد کنید.
همان طور که می بینید، Forge قبلاً یک سایت پیش فرض برای ما راه اندازی کرده است. می توانید هر تعداد سایت ایجاد کرده و آن ها را به زیر دامنه های خود هدایت کنید. به منظور این آموزش، من به سایت پیش فرض پایبند هستم. فهرست وب به طور پیش فرض روی / عمومی تنظیم شده است. به این ترتیب باید برای Laravel و اکثر برنامه های وب دیگر پیکربندی شود.
اگر روی یک سایت خاص کلیک کنید، رابط مدیریت سایت را مشاهده خواهید کرد. از این جا می توانید سایت های فردی را مدیریت، استقرار و پیکربندی کنید.
رابط مدیریت سایت
در این جا ظاهر رابط کاربری در ابتدا نشان داده شده است.
می توانید از مخزن Git نصب کنید یا وردپرس را نصب کنید. به منظور این آموزش، من یک نمونه برنامه تماس با ما ایجاد کرده ام که می توانید به حساب خود اضافه کنید. می توانید نام پروژه و Branch را مشخص کنید. پس از اتمام کار، باید کنترل های استقرار برنامه خود را داشته باشید.
من یک تور (جستجوی) سریع در مورد گزینه های موجود به شما می دهم.
تور استقرار در حال حاضر و استقرار سریع
برای استقرار، می توانید به صورت دستی با استفاده از دکمه Deploy now مستقر شوید. متناوبا، می توانید گزینه Quick Deploy را فعال کنید، که وقتی کد را به شاخه اصلی repo انتخابی GitHub منتقل می کنید، به طور خودکار پروژه را مستقر می کند.
اسکریپت استقرار
اسکریپت استقرار پیش فرض کد را از مخزن خارج می کند، وابستگی ها را نصب می کند، سرور را راه اندازی می کند و هر بار که برنامه نصب می شود مهاجرت ها را اجرا می کند. در این جا اسکریپت استقرار واقعی آمده است.
cd /home/forge/redmonark.com git pull origin laravelapi composer install --no-interaction --prefer-dist --optimize-autoloader echo "" | sudo -S service php7.2-fpm reload if [ -f artisan ] then php artisan migrate --force fi
اگر می خواهید آن را تغییر دهید و چیز اضافی اضافه کنید، می توانید.
نشانی وب راهاندازی Trigger
می توانید از این برنامه برای ادغام برنامه خود در سرویس شخص ثالث یا ایجاد یک اسکریپت استقرار سفارشی استفاده کنید. وقتی URL درخواستی دریافت می کند، اسکریپت استقرار فعال می شود.
Repo و Branch را به روز کنید
اگر نیاز دارید که Branch را به روز کنید یا نسخه جدیدتری از همان پروژه را روی مخزن دیگری نصب کنید، می توانید از این گزینه ها استفاده کنید. اگر در حال به روز رسانی Branch هستید، ممکن است مجبور شوید نام Branch را در اسکریپت استقرار نیز به روز کنید.
محیط
Forge به طور خودکار یک فایل محیطی برای برنامه ایجاد می کند. برخی از جزئیات مانند اعتبار پایگاه داده به طور خودکار به محیط اضافه می شوند. با این حال، اگر برنامه از API استفاده می کند، می توانید کلید API را با خیال راحت در محیط قرار دهید. حتی اگر از یک برنامه وب عمومی PHP استفاده می کنید، می توانید با استفاده از متد getenv () به متغیرهای ENV دسترسی پیدا کنید.
صف کارگر
راه اندازی کارگر صف در Forge مانند اجرای صف: کار Artisan است. Forge کارکنان صف را با استفاده از یک مانیتور فرآیند به نام Supervisor مدیریت می کند تا روند به طور دائمی ادامه یابد. می توانید بر اساس اولویت صف یا هر طبقه بندی دیگری که مفید می دانید صف های متعددی ایجاد کنید.
SSL
در گذشته امنیت SSL برای یک وب سایت ساده و رایگان بود. Forge به شما امکان می دهد یک گواهی موجود نصب کنید یا می توانید یک گواهی رایگان از LetsEncrypt دریافت کنید. این سریع و آسان است. اگر برای زیر دامنه های wildcard به SSL نیاز دارید، می توانید گواهینامه های Cloudflare رایگان را به Forge اضافه کنید.
بازگشت به رابط مدیریت سرور، ما کلیدهای SSH داریم.
افزودن کلیدهای SSH
اگر چه اکثر گزینه های قابل تنظیم در داشبورد موجود است، اما اگر نیاز به اتصال به سرور دارید، باید این کار را با استفاده از SSH انجام دهید. SSH امن ترین روش ورود به VPS است و حفاظت بیشتری نسبت به گذرواژه ها ارائه می دهد.
برای دسترسی به سرور از طریق SSH، اگر قبلاً این کار را نکرده اید، باید یک جفت کلید ایجاد کنید. کلید عمومی در دسترس سرور قرار می گیرد و کلید خصوصی در میزبان شما قرار می گیرد. سپس می توانید از تنظیمات برای اتصال به نمونه سرور استفاده کنید.
توجه: کلید SSH اضافه شده از داشبورد مدیریت سرور مخصوص آن سرور خواهد بود. اگر از این جا به بعد نیاز دارید به طور خودکار کلیدها را به همه سرورها اضافه کنید، می توانید آن ها را از تنظیمات نمایه خود اضافه کنید.
برای ایجاد یک جفت کلید، دستور زیر را اجرا کنید.
ssh-keygen -t rsa
از شما چند س suchال مانند پرونده ای که می خواهید کلید و عبارت عبور را برای امنیت بیشتر در آن ذخیره کنید، پرسیده می شود. بعد، کلید SSH را به ssh-agent اضافه کنید.
ssh-add ~/.ssh/id_rsa
کلید عمومی را کپی کرده و به لیست کلیدهای SSH Forge اضافه کنید.
cat ~/.ssh/id_rsa.pub # Copy the output of this command
پیکربندی PHP و MySQL
می توانید از رابط کاربری برای پیکربندی PHP و MySQL استفاده کنید. برای پایگاه داده، گزینه های موجود عبارتند از:
- ایجاد پایگاه های داده جدید
- کاربران جدید اضافه کنید.
- دسترسی کاربران به پایگاه داده را به روز کنید.
- اطلاعات Forge را در مورد رمز عبور به روز کنید.
- مطمئن شوید که اطلاعات به روز شده را در فایل .env خود وارد کرده اید.
می توانید تنظیمات PHP زیر را پیکربندی کنید:
- به آخرین نسخه PHP ارتقا دهید.
- تغییر اندازه فایل بارگذاری
- OPCache را برای تولید بهینه کنید تا کد PHP کامپایل شده در حافظه ذخیره شود.
سایر تنظیمات مهم
در این جا برخی از تنظیمات دیگر موجود را لیست کرده ام.
زمانبندی یک کار
می توانید از زمانبند Forge برای برنامه ریزی کارهای تکراری یا اجرای کارهای cron استفاده کنید. اگر نیاز دارید که به صورت دوره ای ایمیل ارسال کنید، چیزی را تمیز کنید یا اسکریپتی را اجرا کنید، می توانید از برنامه زمانبندی کارها استفاده کنید. یک وظیفه به طور پیش فرض ایجاد می شود که به صورت شبانه آهنگ خود آهنگ را اجرا می کند. می توانید یک برنامه جدید با فرکانس دلخواه انتخاب کنید.
راه اندازی دیمون
دیمون یک برنامه کامپیوتری است که در فرایند پس زمینه اجرا می شود. Laravel Forge به شما امکان می دهد یک دیمون راه اندازی کنید و از Supervisor برای اطمینان از ادامه کار دیمون استفاده می کند. اگر Daemon به دلایلی خراب شود، Supervisor اسکریپت را به طور خودکار راه اندازی مجدد می کند.
نظارت بر برنامه
Laravel Forge دارای پشتیبانی داخلی برای ابزارهایی است که برنامه شما را برای اندازه گیری عملکرد با جمع آوری داده ها در مورد منابع مانند حافظه، زمان CPU و عملیات ورودی/خروجی نظارت می کند. ابزارهای موجود Blackfire.io و Papertrail هستند. برای شروع پروفایل کردن برنامه خود، فقط باید اعتبارنامه مناسب را از وب سایت شخص ثالث بازیابی کنید و تمام.
پیکربندی شبکه سرور و فایروال
اگر نیاز به، به روز رسانی تنظیمات فایروال دارید، نیازی نیست که به کنسول AWS بروید تا این اتفاق بیفتد. از داشبورد می توانید قوانین جدید فایروال ایجاد کنید. اگر سرورهای دیگری با استفاده از ارائه دهنده و منطقه یکسان تهیه کرده اید، می توانید یک شبکه سرور راه اندازی کنید تا بتوانند بدون هیچ مشکلی، ارتباط برقرار کنند.
نتیجه گیری
Laravel Forge یک ابزار باور نکردنی است که استقرار را به یک تکه کیک تبدیل می کند. این برنامه دارای ویژگی ها و رابط کاربری آسان است که به شما امکان می دهد سرورها را ایجاد کرده و در اختیار برنامه های خود قرار دهید و برنامه ها را بدون هیچ گونه زحمتی مستقر کنید. هنگامی که ارائه دهنده خدمات را پیکربندی کردید، به احتمال زیاد برای مدیریت مجدد سرور نیازی به دسترسی به کنسول AWS نداشته باشید.
در این آموزش، من اصول اولیه پیکربندی AWS با Laravel Forge و مراحل تهیه سرور و استقرار برنامه را توضیح دادم. من تقریباً در مورد همه ویژگی های موجود در رابط Forge بحث کرده ام.
برای کسانی از شما که یا به تازگی با لاراول شروع به کار کرده اید، یا به دنبال گسترش دانش، سایت یا برنامه خود با برنامه های افزودنی هستید، ما موارد مختلفی را داریم که می توانید در Envato Market مطالعه کنید.
آیا تجربه استفاده از برنامه های PHP با استفاده از Laravel Forge یا هر ابزار استقرار محبوب دیگر را دارید؟ در نظرات به ما اطلاع دهید.
دیدگاه ها