Menu

آموزش نصب وردپرس روی سرور مجازی با اوبونتو Ubuntu 20.04

این یک راهنمای جامع و قدم به قدم بوده و پس از خرید سرور مجازی هرچیزی را که برای پیکربندی سرور Ubuntu 20.04 برای راه اندازی یک وبسایت وردپرسی پرسرعت نیاز است را آموزش می دهد. از این که به اولین مرحله از دوره آموزش نصب وردپرس روی سرور مجازی با اوبونتو وارد شدید بسیار خوشحالیم، تصمیم بزرگی گرفته اید چرا که در این مسیرهم کانفیگ سرور و هم راه اندازی یک سایت روی سرور را کاملا یاد می گیرید. قبل از شروع ابتدا توضیحاتی مقدماتی در مورد اینکه به چه چیزهایی و چرا به آنها نیاز داریم صحبت می کنیم  و سپس سوالات احتمالی جواب می دهیم و نهایتا درس های دوره را شروع می کنیم.

سرور مجازی چیست؟

سرور مجازی یا وی پی اس بصورت VPS مخفف عبارت Virtual Private Server به معنی سرور مجازی خصوصی است. سرور مجازی بخشی از یک سرور اختصاصی کامل است که با مجازی سازی به قسمت های کوچکتری با نام  VPS تقسیم می شود .با توجه به اینکه منابع یک سرور کامل به چند بخش تقسیم می شود، اغلب و در شرایط یکسان، هزینه خرید سرور مجازی نسبت به سرور اختصاصی پایین تر است.

 

سیستم عامل Linux چیست و چرا از UBUNTU می خواهیم استفاده کنیم؟

لینوکس هم همچون سیستم عامل هایی مثل ویندوز ۱۰، ویندوز ایکس پی و غیره، یک سیستم عامل است و سیستم عامل هم به نرم افزاری گفته می شود که ارتباط مابین سخت افزار سیستم شما و نرم افزارهایی که مورد استفاده قرار می دهید را برقرار می سازد بدون استفاده از سیستم عامل که به صورت خلاصه OS نامیده می شود، نه از سخت افزار و نه از نرم افزارهای خود نمی توانید استفاده کنید. بدلیل سرعت ، امنیت ، انعطاف پذیری بالا و مصرف پایین منابع ما از سیستم عامل لینوکس بر روی سرور استفاده می کنیم.

نسخه های ( توزیع های ) گوناگونی از لینوکس وجود دارد. برای سرورها محبوب ترین ها Ubuntu، Debian و CentOS هستند. دلایلی وجود دارند که  اوبونتو را بعنوان یکی از نسخه های محبوب لینوکس معرفی کرده است:

  • تمرکز بر سادگی زیاد
  • رنج وسیعی از پکیج ها
  • آپدیت نرم افزاری مرتب
  • جامعه بزرگی از کاربران که باعث ایجاد منابع ارزشمندی شده است

آپدیت نرم افزاری مکرر  می تواند مانعی برای معرفی باگ های گوناگون و تداخل پکیج ها باشد. اما اوبونتو دارای پشتیبانی بلند مدت ( long Term Support Release – LTS )  است که پکیج هایی را که پایداری بیشتری دارند را بکار می برد . انتشار LTS هر ۲ سال اتفاق می افتد و برای ۵ سال هم پشتیبانی می شود و لذا آن را برای استفاده در سرور بهتر می کند. نصب وردپرس روی سرور مجازی با استفاده از اوبونتو انتخاب مناسبی می باشد.

 

وب سرور چیست و چرا از وب سرور NGINX می خواهیم استفاده کنیم؟

به زبان ساده، یک web server وظیفه ی ذخیره سازی و ارسال محتوای یک وب سایت را به کلاینتی که آنرا درخواست کرده دارد. محتوای درخواست شده می تواند متن، عکس و فیلم و یا حتی اطلاعات یک اپلیکیشن باشد. رایج ترین نوع کلاینت نیز مرورگرها هستند. زمانی که سایت را بارگذاری می کنید یا روی لینک دانلود کلیک کرده و فایلی را دانلود می کنید، عملا مرورگر در حال ارسال درخواست شما به وب سرور آن وب سایت است.

NGINX Nوب سروری با حجم کم و کارایی بسیار بالا است که بهترین امتیاز این وب سرور در پشتیبانی فایل های استاتیک است. این وب سرور مصرف رم بسیار پایین و سرعت پاسخگویی بسیار بالا به درخواست ها را دارا میباشد. از این وب سرویس بیشتر برای سیستم‌های لود بالانس استفاده میشود. از جمله قابلیت های Nginx سازگاری این وب سرور با اکثرتوزیع های ( نسخه های) لینوکس هست.

به زبان ساده Nginx یک وب سرور است که باعث می شود سرعت سایت شما دو برابر شده و مصرف پهنای باند به ۳/۱ کاهش یابد.

 

دیتابیس یا پایگاه داده چیست و چرا از MariaDB استفاده خواهیم کرد؟

پایگاه داده یا Database اطلاعات و داده‌های ما را درون جدول ها قرار میدهد. این جداول، نگهداری اطلاعات را برای ما بسیار ساده و منظم میکنند و یکپارچگی بسیار خوبی به آن‌ها میدهند. برای مثال میتوان به یک دفترچه تلفن که با نظم خاصی نوشته شده است و دارای سطر و ستون هایی یکپارچه می باشد، یک دیتابیس گفت.

پایگاه داده MariaDB با داشتن امکانات و ویژگی‌های خوبی مانند:

  • موتورهای ذخیره سازی قوی
  • جامعه بزرگ
  • امنیت بالای پایگاه داده

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

نرم افزار Putty چیست؟

Putty یک نرم افزار برای ارتباط با سرور لینوکس است. با استفاده از این نرم افزار شما می توانید به سرور لینوکسی خود دسترسی داشته باشید. این نرم افزار از پروتکل های Telnet و Rlogin نیز پشتیبانی می کند. شما برای اینکه به سرور لینوکس خود متصل شوید باید این نرم افزار را دانلود و نصب کنید.

کش Redis  چیست؟

به زبان ساده پایگاه داده Redis Caching یک پایگاه داده در داخل حافظه سرور می باشد. لذا به راحتی می توانیم از آن برای ذخیره اطلاعات یا کش استفاده کنیم. استفاده از پایگاه داده Redis Caching روش مناسبی برای کش کردن در وردپرس و یا دیگر برنامه های پشتیبانی شده توسط این پایگاه داده می باشد.

 

سیستم مدیریت محتوا چیست و چرا از نصب وردپرس روی سرور مجازی استفاده می کنیم؟

سیستم مدیریت محتوا یا CMS) Content Management System) که از اسمش پیداست؛ همان سیستمی است که با کمک آن محتوای وبسایت‌تان را مدیریت می‌کنید. یعنی چه؟ فرض کنیم که یک سایت یا فروشگاه اینترنتی دارید. محتوای وب‌سایت شما شامل چه چیزهایی است؟ دوست دارید چه چیزهایی در سایتتان قرار دهید؟ عکس، متن، ویدئو، موسیقی؟ خب محتوای وب‌سایت شما هر چه که باشد سیستم مدیریت محتوا به شما کمک می‌کند، که به سادگی آب خوردن و بدون داشتن دانش برنامه‌نویسی و نوشتن صدها خط کد مختلف، بتوانید آن را مدیریت کنید.

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

برخی سوالاتی که احتمالا برایتان پیش آمده:

کش سایت چیست و چرا کش کردن سایت برای ما بسیار مهم است؟

کش سایت یک مکان برای ذخیره سازی موقت اطلاعات سایت، به صورت صفحات استاتیک۱ است .به کش وب سایت ها Http Cache نیز می گویند .کش سایت باعث می شود سرعت بارگذاری سایت بالا رود زیرا در محل ذخیره سازی اطلاعات ، عکس ها و صفحات HTML ذخیره می گردند بدین ترتیب میزان درخواست اطلاعات به سرور کاهش میابد که این امر روی سرعت سایت تاثیر زیادی دارد.

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

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

 

چرا از وب سرور Apache  استفاده نکنیم؟

اگر شما Apache  در مقابل Nginx  را جستجو کنید معیار های محکمی برای برتری Nginx  نسبت به آپاچی برای انجام دادن فایل های استاتیک پیدا خواهید کرد. Nginx  برای فایهای استاتیک بسیار مناسب تر است که این بزرگترین مزیت محسوب می شود.

البته بسیاری افراد هر دوی Nginx  و Apache2  را با mod_php  نصب می کنند. وقتی درخواستی می آید همیشه ابتدا با Nginx  بررسی می شود، اگر درخواست برای فایل استاتیک است ، Nginx  آن را اجرا خواهد کرد و آپاچی نیاز نخواهد بود اگر درخواست برای یک صفحه PHP بود NGINX در خواست را به Apache  ارسال می کند. mod_php  آپاچی آن را پردازش کرده و پاسخی را به Nginx بر می گرداند و نهایتا Nginx  آن را انجام می دهد.

در این سناریو واقعا آپاچی بعنوان یک پردازنده PHP بکار می رود. اما PHP همراه با یک مدیر فرآیند بنام FastCGI که PHP-FPM نامیده می شود همراه است، که می تواند مستقیما توسط  Nginx  بکار رود. فرآیند با  PHP-FPM دقیقا همانند آن است لذا ما متوجه شدیم که پیکربندی با PHP-FPM بسیار ساده تر از Apache + mod_php  است. همچنین PHP-FPM بسیار سبک تر بوده و منابع کمتری استفاده می کند. ضمنا PHP-FPM همراه با پکیج PHP بود و دیگر نیازی به نصب پکیج های نرم افزاری دیگر و بروز رسانی آنها نیست.

چرا از Varnish کش استفاده نکنیم؟

پاسخ ساده این استCache  FactCGI بسیار ساده تر پیکربندی شده، منابع کمتری مصرف می کند و بهتر از کش وارنیش عمل می کند. معیار ها نشان می دهند که FastCGI Cache  بطور قابل ملاحظه ای بهتر از Varnish Cache  عمل می کند.

اگر چه کش وارنیش بسیار منعطف است اما در عین حال  خیلی پیچیده هم هست در حالی که  FactCGI  کش انعطافی که ما نیاز داریم را در طول سالها برآورده کرده بنابراین دیگر نیازی به سنگین تر کردن این دوره آموزشی احساس نمی شود.

 

همانند PHP-FPM FactCGI را نیز آسانتر می توان نگهداری کرد، چرا که آن در NGINX گنجانده شده است .

داشتن یک قطعه کمتر از نرم افزار همیشه امتیاز بزرگتری برای نگهداری است.

در حقیقت بکار بردن آپاچی و وارنیش دو نرافزار با پیچیده گی های اضافی برای ما بهمراه خواهد داشت در زیرشما می توانید

تئوری ما را در عمل ببینید:

 

نصب وردپرس روی سرور مجازی - نحوه کارکرد و مقایسه وب سرور apache و nginx همراه varnish و fastCGI

 

چرا از Memcached  استفاده نکردیم؟

چون Redis  جدید تر است و امکانات بیشتری دارد و بنظر می رسد محبوبیت بیشتری در جامعه وردپرس کسب کرد است.

 

چرا  از MariaDB  بجای MySQL استفاده می کنیم؟

دلیل اصلی ای که  ما  ماریا دیبی برای این آموزش  انتخاب کردیم بخاطر امکانات و سرعت بهتر نسبت به دیتابیس MySQL بود .ضمنا برخلاف MySql اوپن سورس بوده و توسط بسیاری از شرکت های بزرگ درحال استفاده است.. ضمنا تنظیمات آن نیز بمراتب بیشتر می باشد.

با پایان به پاسخ به سوالات احتمالی بنظر می آید که باید وارد مبحث اصلی می شویم . بنابراین قبل از نصب وردپرس روی سرور مجازی VPS پیکربندی سرور اوبونتو را شروع کنیم.

پانوشت ۱:

صفحه استاتیک: صفحه ای است که بهمان شکلی که ذخیره شده است به کاربر نمایش داده می شود و نیاز به اتصال به دیتابس ندارد لذا سرعت لود بالا خواهد بود

صفحه داینامیک: در این صفحات محتوای سایت بر اساس زمان  و.. تغییر می کند و به یک دیتابیس متصل بوده و از روی آن اطلاعات را می خوانند. لذا بدلیل درخواست های بالا سرعت پایین است.

وردپرس یک وبسایت داینامیک است و ما با روشهای ذکر شده بعد از آماده شدن یک صفحه آن را برای مدت زمان مشخصی به صفحه استاتیک تبدیل می کنیم تا سرعت لود بالا رود.

عناوین این آموزش

بخش دوم

نصب NGINX روی سرور مجازی

در این بخش کلیه کارهایی را که باید برای پیکربندی وب سرور NGINX انجام دهیم را با جزئیات کامل توضیح می دهیم . همچنین دستورات مهم داخل فایل کانفیگ nginx را بصورت جزئی بیان می کنیم. نهایتا برای آسانی کار یک فایل نهایی پیکربندی NGINX را هم در اختیارتان خواهیم گذاشت تا با زحمت کمی آن را در داخل فایل پیکربندی nginx بازنویسی کنید.

مطالعه بیشتر

بخش اول

پیکربندی ایمن سرور مجازی با

Ubuntu 20.04

در این بخش با خرید یک VPS با سیستم عامل Ubuntu 20.04 به کمک نرم افزار Putty وارد سرور می شویم . Hostname  و Timezone را پیکربندی می کنیم ، نرم افزار را آپدیت کرده و بروز رسانی های خودکار را راه اندازی می کنیم. یک SSHkeys اختصاصی تولید کرده تا بدون پسورد وارد سرور شویم. با فایروال و fail2ban درخواست ها را به سرور محدود می کنیم.

مطالعه بیشتر

بخش چهارم

بزودی

بخش سوم

نصب MariaDB ,PHP 7.4 و WP-CLI روی سرور مجازی

در این بخش شما پکیج های مورد نیاز برای اینکه بتوانید یک سایت .ردپرسی را نصب و اجرا کنید برا یتان آماده شده است. پکیج PHP را نصب می کنیم و PHP-FPM ر پیکربندی می کنیم و پکیج دیتا بیس MariaDB را بطور کامل نصب می کنیم .همچنین برای راه اندازی وردپرس بصورت خودکار از پکیج WP-CLI استفاده خواهیم کرد.

مطالعه بیشتر

نظرتان را بگویید