| |
نحوه نصب LEMP stack در اوبونتونحوه نصب LEMP stack در اوبونتودر این مقاله از آموزش اوبونتو گامبهگام نحوه نصب و راهاندازی LEMP روی سرور اوبونتو را بررسی میکنیم و در ادامه توضیح میدهیم که چگونه Nginx، MySQL و PHP را نصب و برای اجرا آماده کنید. LEMP در واقع مجموعهای از ابزارهای نرمافزاری است که به شما کمک میکند سایتها و وباپلیکیشنهای پویا و نوشتهشده با PHP را اجرا کنید. در این ساختار، لینوکس بهعنوان سیستمعامل، Nginx بهعنوان وبسرور، MySQL برای ذخیره دادهها و PHP برای پردازش محتوای پویا به کار گرفته میشوند. پیشنیازهای نصب و راهاندازی LEMP روی سرور اوبونتوبرای شروع، پیشنهاد میشود که روی اوبونتو از یک کاربر غیر روت با دسترسی sudo استفاده کنید و فایروال UFW نیز فعال باشد. ۱. نصب وبسرور Nginxبرای نمایش صفحات وب به کاربران، قرار است از Nginx استفاده کنیم؛ یک وبسرور قدرتمند و پرکاربرد که عملکرد بسیار خوبی دارد. برای نصب آن از مدیر بسته APT کمک میگیریم. سپس با دستور زیر Nginx را نصب کنید: در صورت نمایش پیام تایید، کلید Y و سپس ENTER را بزنید. بعد از پایان نصب، وبسرور Nginx روی اوبونتوی شما فعال و در حال اجرا خواهد بود. در خروجی، لایسنس نود ۳۲ باید وضعیت (Active (running را مشاهده کنید. جالب است بدانید که در اوبونتو، Nginx بهصورت پیشفرض بعد از نصب فعال میشود. فعال کردن دسترسی HTTP در فایروالNginx هنگام نصب، چند پروفایل برای UFW ثبت میکند. ابتدا لیست پروفایلهای موجود را ببینید: در حال حاضر هنوز SSL راهاندازی نشده است، پس فقط دسترسی HTTP روی پورت ۸۰ را فعال کنید: برای بررسی وضعیت فایروال: اگر در خروجی مشاهده کردید که Nginx HTTP مجاز شده، یعنی دسترسی HTTP برای سرور فعال است. برای تست، در مرورگر آدرس دامنه سرور خود را وارد کنید: اگر هنوز دامنهای متصل نکردهاید و IP عمومی سرور را نمیدانید، میتوانید با این دستورات IP را پیدا کنید: یا: همچنین میتوانید IP قابل دسترس از اینترنت را با دستور زیر بهدست آورید: حالا IP بهدست آمده را در مرورگر وارد کنید. اگر صفحه پیشفرض Nginx نمایش داده شد، یعنی نصب Nginx و فعال شدن ترافیک HTTP با موفقیت انجام شده است. ۲. نصب MySQLدر این مرحله باید MySQL را نصب کنید تا ذخیره و مدیریت دادههای سایت انجام شود. MySQL یکی از رایجترین سیستمهای مدیریت پایگاه داده برای محیطهای مبتنی بر PHP است. وقتی پیام تایید نمایش داده شد، کلید Y و سپس Enter را بزنید تا نصب انجام شود. بعد از اتمام نصب، برای افزایش امنیت و حذف تنظیمات پیشفرض ناامن، اسکریپت امنیتی MySQL را اجرا کنید: در این مرحله از شما پرسیده میشود که آیا میخواهید افزونه VALIDATE PASSWORD را فعال کنید یا خیر؟ اگر میخواهید فعال شود، Y بزنید و در غیر این صورت هر کلید دیگری را فشار دهید. اگر فعالش کنید، باید سطح سختگیری رمز عبور را مشخص کنید. برای مثال سطح ۲ قویترین حالت است و اگر رمز شامل عدد، حروف کوچک و بزرگ و کاراکتر خاص نباشد، خطا میدهد. پس از این مرحله، باید برای کاربر root دیتابیس یک رمز عبور تعیین و تایید کنید. توجه داشته باشید که این کاربر با کاربر root سیستم فرق دارد و دسترسی کامل مدیریتی به دیتابیس دارد. حتی اگر روش احراز هویت MySQL نیاز به رمز نداشته باشد، باز هم بهتر است یک رمز قوی تنظیم کنید. در مراحل بعدی نیز برای تمام پرسشها Y بزنید و Enter کنید تا کاربران ناشناس حذف شوند، دیتابیس تست پاک شود، دسترسیهای غیرضروری غیرفعال شود و تنظیمات امنیتی اعمال شوند. در پایان، برای اطمینان از صحت نصب، وارد کنسول MySQL شوید: اگر همه چیز درست باشد، وارد محیط MySQL میشوید. برای خروج هم کد زیر را بنویسید: احتمالا متوجه میشوید که بدون وارد کردن رمز وارد شدید. دلیلش این است که در اوبونتو بهصورت پیشفرض ورود کاربر root دیتابیس از طریق auth_socket انجام میشود و نه رمزعبور. این موضوع نه تنها مشکل امنیتی نیست، بلکه دسترسی را محدودتر و امنتر میکند؛ چون فقط کاربران دارای دسترسی sudo میتوانند وارد شوند. البته این حساب برای اپلیکیشنهای PHP استفاده نمیشود و بهتر است برای هر دیتابیس یک کاربر مجزا با سطح دسترسی محدود بسازید. در این مرحله MySQL با موفقیت نصب و ایمنسازی شده است. حالا میتوانید سراغ PHP بروید که آخرین بخش LEMP است. ۳. نصب PHPحالا نوبت نصب PHP است تا بتواند کدها را پردازش کرده و محتوای پویا تولید کند. از آنجایی که Nginx برخلاف Apache خودش بهطور مستقیم PHP را اجرا نمیکند، برای پردازش درخواستهای PHP به یک سرویس خارجی نیاز داریم. پس از نمایش پیام تایید، کلید Y و سپس ENTER را بزنید تا نصب انجام شود. برای اطمینان از اجرا شدن PHP-FPM وضعیت سرویس را بررسی کنید: در صورت اجرای صحیح، باید وضعیت Active را مشاهده کنید: همچنین میتوانید نسخه PHP نصبشده را بررسی کنید: خروجی مشابه زیر خواهد بود: در ادامه باید Nginx را طوری تنظیم کنیم که از PHP-FPM برای پردازش فایلهای PHP استفاده کند. ۴. تنظیم Nginx برای استفاده از پردازشگر PHPبلاکهای سرور Nginx (مشابه Virtual Host در Apache) را بسازید تا تنظیمات هر سایت را جدا نگه دارید و بتوانید چند دامنه را روی یک سرور میزبانی کنید. در این راهنما از your_domain بهعنوان دامنه نمونه استفاده شده است. سپس مالکیت پوشه را به کاربر فعلی دهید: حالا یک فایل کانفیگ جدید در مسیر sites-available بسازید: محتوای زیر را داخل آن قرار دهید: کار هر یک از این دستورها و بلاکهای location به شرح زیر است: listen → مشخص میکند Nginx روی کدام پورت گوش دهد (اینجا پورت ۸۰ یعنی HTTP). root → مسیر داکیومنت روت سایت. index → ترتیب اولویت فایلهای index (بهطور معمول HTML قبل از PHP برای صفحات موقت). server_name → دامنهها یا IPهایی که این بلاک باید پاسخ دهد. location / → بررسی میکند آیا فایل/مسیر وجود دارد، در غیر این صورت ۴۰۴ میدهد. location ~ .php$ → پردازش فایلهای PHP از طریق PHP-FPM. location ~ /.ht → جلوگیری از دسترسی به فایلهای .htaccess چون Nginx آنها را پردازش نمیکند. بعد از اتمام ویرایش، فایل را ذخیره کرده و ببندید. اگر از ویرایشگر nano استفاده میکنید، با فشردن CTRL+X، سپس Y و ENTER تغییرات را تایید کنید. کانفیگ پیشفرض را غیرفعال کنید: (در صورت نیاز میتوانید دوباره لینک پیشفرض را برگردانید.) این به Nginx میگوید که در دفعه بعدی که بارگذاری شد، از این کانفیگ استفاده کند. برای بررسی خطاهای نگارشی فایل کانفیگ، دستور زیر را اجرا کنید: اگر خطایی گزارش شد، قبل از ادامه کار به فایل کانفیگ خود برگردید و محتویات آن را بررسی کنید. وبسایت جدید شما اکنون فعال است، اما دایرکتوری ریشه وب /var/www/your_domain هنوز خالی است. یک فایل index.html در این مسیر ایجاد کنید تا مطمئن شوید بلاک سرور جدید شما به درستی کار میکند. محتوای زیر را در فایل قرار دهید: حالا در مرورگر آدرس دامنه یا IP سرور را مطابق http://server_domain_or_IP باز کنید. در این مرحله LEMP شما آماده است. مرحله بعد تست PHP است تا مطمئن شوید Nginx فایلهای PHP را اجرا میکند. ۵. تست PHP با Nginxدر این مرحله، استک LEMP شما باید به طور کامل آماده باشد. حالا میتوانید تست کنید که Nginx قادر است فایلهای .php را به درستی به پردازشگر PHP تحویل دهد. محتوای زیر را داخل فایل قرار دهید. این یک کد PHP معتبر است که اطلاعات سرور شما را نمایش میدهد: بعد از ذخیره و بستن فایل، در مرورگر آدرس دامنه یا IP سرور خود (http://server_domain_or_IP/info.php) را به همراه /info.php باز کنید. پس از بررسی اطلاعات مورد نیاز، بهتر است این فایل را حذف کنید چون شامل اطلاعات حساس درباره محیط PHP و سرور اوبونتوی شما است. برای حذف فایل از دستور زیر استفاده کنید: هر زمان لازم شد دوباره میتوانید این فایل را ایجاد کنید. ۶. تست اتصال پایگاه داده از طریق PHP (اختیاری)اگر میخواهید بررسی کنید که PHP قادر است به MySQL متصل شود و کوئری اجرا کند، میتوانید یک دیتابیس تست بسازید، دادهی آزمایشی اضافه کنید و سپس از طریق PHP آن را بخوانید. برای ایجاد یک دیتابیس جدید، دستور زیر را در کنسول MySQL خود اجرا کنید: ساخت کاربر جدید با روش احراز هویت mysql_native_password و تعیین پسورد (پسورد خودتان را جایگزین کنید): دادن سطح دسترسی کامل به این دیتابیس: این دستور به کاربر example_user دسترسی کامل روی دیتابیس example_database میدهد، در حالی که از ایجاد یا تغییر سایر دیتابیسهای سرور جلوگیری میکند. حالا برای خروج از محیط MySQL از دستور زیر استفاده کنید: برای بررسی اینکه کاربر جدید دسترسیهای لازم را دارد یا خیر، دوباره وارد کنسول MySQL شوید، اما این بار با استفاده از نام کاربری و رمز عبور مخصوص همان کاربر جدید. توجه کنید که گزینه -p باعث میشود هنگام ورود، رمز عبور کاربر example_user از شما درخواست شود. پس از ورود به کنسول MySQL، با کد زیر مطمئن شوید که به دیتابیس دسترسی دارید: سپس خروجی باید چیزی شبیه به این باشد: چند ردیف نمونه در جدول تستی وارد کنید. میتوانید دستور زیر را چند بار با مقادیر متفاوت تکرار کنید: برای اطمینان از اینکه دادهها با موفقیت در جدول شما ذخیره شدهاند، دستور زیر را اجرا کنید: سپس خروجی باید چیزی شبیه به دستور زیر باشد: پس از اطمینان از ثبت صحیح دادهها، خارج شوید: حالا یک فایل PHP برای اتصال به دیتابیس و نمایش دادهها ایجاد کنید: دستور زیر را وارد کنید: فایل را ذخیره کنید و ببندید. حالا در مرورگر آدرس زیر را باز کنید: http://server_domain_or_IP/todo_list.php اگر لیست موارد وارد شده را دیدید، یعنی PHP شما به درستی به MySQL متصل شده و آماده استفاده است. رفع مشکلات رایجخطای ۵۰۲ Bad Gatewayرایجترین مشکل در استک LEMP زمانی رخ میدهد که Nginx نتواند با PHP-FPM ارتباط برقرار کند. مراحل بررسی و رفع مشکل:بررسی وضعیت PHP-FPM: بررسی مسیر سوکت PHP-FPM: خروجی مورد انتظار باید فایل php8.1-fpm.sock را نشان دهد. راهحلهای رایج برای رفع مشکل:ریاستارت کردن PHP-FPM: مطمئن شوید مسیر سوکت در Server Block Nginx، با مسیر واقعی سوکت PHP-FPM یکی است. مشکل دسترسیاگر با خطاهای مربوط به مجوز دسترسی مواجه شدید، مجوزهای دایرکتوری وب را اصلاح کنید: مشکل اتصال MySQLاگر با مشکل اتصال به MySQL مواجه شدید، میتوانید رمز کاربر root را ریست کنید: اجرا نشدن PHPاگر به این مشکل برخوردید که PHP پردازش نمیشود، مراحل زیر را برای بررسی و رفع آن دنبال کنید. بررسی ماژولهای PHP:بررسی پیکربندی PHP-FPM و Nginx:اطمینان حاصل کنید که فایل index.php در دستور index در تنظیمات Nginx ذکر شده است. مشاهده لاگ خطاهای Nginx برای جزئیات بیشتر: جمعبندیدر این مقاله نحوه نصب و راهاندازی LEMP Stack روی سرور اوبونتو را مرور کردیم. با دنبال کردن این مراحل، اکنون میتوانید وبسایتها و برنامههای PHP را با بهرهگیری از Nginx بهعنوان وبسرور، MySQL برای ذخیره و مدیریت دادهها و PHP-FPM برای پردازش محتوای پویا اجرا کنید.
بر چسب : | |