نصب PHP 7.3 بر روی CENTOS 7

نصب PHP 7.3 بر روی CentOS 7

1.3kviews

در این آموزش قصد داریم درباره نصب PHP 7.3 بر روی VPS با CentOS 7 صحبت کنیم. و شما را با مبحث نصب PHP 7.3 بر روی CentOS 7،‌ در زاگریو بیشتر آشنا کنیم.

نصب PHP 7.3 بر روی CentOS 7

همانطور که می‌دانید PHP 7.3، نسبت به نسخه‌های قدیمی تر خود امنیت و سرعت بهتری برخوردار است.  تعدادی از تغییرات زیر را در زیر لیست می‌نماییم:

  • سینتکس انعطاف پذیر Heredoc و Nowdoc
  • اجازه قرار دادن کاما و ایچاد یک زنجیره در فانکشن کال‌ها
  • JSON_THROW_ON_ERROR
  • کوکی در سایت‌های مشابه
  • لیست دز Reference assignment ها
  • فانکشن is_countable
  • array_key_first(), array_key_last()
  • اضافه شدن Argon 2

ملزومات

  • CentOS 7 VPS
  • باید از اکانت root یا کاربری با دسترسی sudo استفاده نمایید.

قدم اول: وارد سرور شوید و آن را بروزرسانی نمایید.

با استفاده از SSH وارد VPS خود شوید. دستور زیر کمک می‌کند که با دسترسی ROOT وارد شوید.

‘IP_Address و Port_number با اعداد VPS خود عوض نمایید.

قدم دوم: PHP 7.3 را نصب نمایید.

CentOS 7 به صورت پیش فرض با PHP 5.4 عرضه شده که نسخه‌ای قدیمی PHP است و عمر آن به سال 2015 باز می‌گردد، همانطورک ه می‌دانید در دنیای نرم افزار گذشت عمر باعث افزایش ریسک‌های امنیتی می‌گردد پس نیاز است که شما PHP خود را آپدیت نمایید. در قدم اول بیایید ببینیم که اصلا PHP بر روی سرور شما نصب شده؟ و اگر PHP بر سرور شما نصب شده ورژن آن چیست؟ با دستور زیر می‌توانید ورژن PHP را مشاهده نمایید:

خروجی چیزی شبیه به متن زیر است:

بنابر خروجی PHP 5.4 بر روی سرور ما نصب گردیده است پس نیاز است آن را ارتقا دهید، برای این منظور در این قدم، ما نسخه‌ی قدیمی را از CentOS خود پاک می‌کنیم. و این کار را با دستور زیر انجام می‌دهیم:

این دستور PHP و تمام مشتقات آن را پاک می‌کند. در ادامه ما ریپازیتوری‌های YUM و EPEL را به سرور خود اضافه می‌نماییم که پی اچ پی جدید را در خود جای داده‌اند.

و ریپازیتوری پیشفرض PHPH 5.4 را نیز غیر فعال می‌نماییم:

و حالا ریپازیتوری PHP 7.3 را فعال می‌نماییم.

حالا که ریپازیتوری Yemi PHP 7.3 را فعال نموده‌ایم می‌توانیم با استفاده از YUM نسخه 7.3 PHP را بر روی سرور خود نصب نماییم.

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

خروجی:

اگر افزونه‌های دیگری  را نیاز دارید مانند MySQL می‌توانید آنها را از ریپازیتوری نصب نمایید البته تا زمانی که آنها در این ریپازیتوری موجود باشند. البته می‌توانید اطمینان داشته باشید که تمامی افزونه‌های مورد نیاز شمادر این ریپازیتوری موجود است. برای مثال MySQL را با کامند زیر می‌توانید نصب نمایید:

و با دستور زیر بررسی نمایید که آیا آنها درست نصب شده اند یا خیر:

یا در مثال دیگر با این دستور بررسی می‌کنیم که افزونه mbstring به درستی نصب شده یا خیر:

خروجی چیزی مشابه با متن زیر خواهد بود:

قدم سوم: ساخت صفحه phpinfo

اصولا برای بررسی نسخهPHP، افزونه‌ها و تنظیمات صفحه‌ای میسازیم به نام phpinfo که این صفحه مقدار زیادی اطلاعات درمورد پروژه ما در خود جای داده است. حال برای ساخت این صفحه نیاز است که شما به web server document root بروید:

و صفحه phpinfo را با اطلاعات زیر بسازید:

صفحه را ذخیره نمایید و با مرورگر خود وارد آدرس: http://zagrio/phpinfo.php بشوید تا صفحه‌ای مانند تصویر زیر با اطلاعات مورد نیاز خود مشاهده نمایید.

نصب PHP 7.3 بر روی CentOS 7

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

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

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

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

مجازی سازی، به ساختن یک نسخه مجازی (به جای نسخۀ واقعی) از چیزی گفته می‌شود؛ در سرورهای مجازی به‌جای اینکه چند سخت‌افزار مستقل برای هر سرور اختصاص داده شود، یک سخت‌افزار قدرتمند را با استفاده از نرم‌افزار، به چند سرور شبیه‌سازی می‌کنند.

سرور مجازی یا VPS

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

مدتهاست که سرور مجازی یا VPS  یک راه حل آسان و کم هزینه برای کسب و کارهایی است که می‌خواهند وضعیت خود را از هاست اشتراکی تغییر دهند و به یک راه حل امن‌تر، قوی‌تر با قیمتی مناسب فکر می‌کنند. VPS با افزایش مقدار کمی هزینه منابع بیشتری در اختیار شما و سایتتان قرار می‌دهد و از هر لحاط تصمیم درستی برای یک کسب و کار است. اما با این وجو N نکته مهم انتخاب یک سرویس میزبانی مورد اعتماد و خوب است. نکات مهم برای این انتخاب در زیر ذکر گردیده است.

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

از سرور مجازی یا VPS برای چه مصارفی استفاده می‌نمایید

VPSها دارای رنج وسیعی از منابع هستند که نسبت به نیاز شما قابل شخصی‌سازی می‌باشند. مانند میزان RAM، قدرت CPU و مقدار فضای ذخیره سازی مدنظر شما، شما بعنوان یک کسب و کار باید نیازهای خود را در حال حاضر و با نیم نگاهی به آینده شناسایی نمایید و بهترین مشخصات مدنظر خود برای VPS را انتخاب نمایید، البته ممکن است این کار برای بسیاری یک چالش حساب شود شما می‌توانید از متخصصان ما برای پیدا کردن نیازهای مورد نیاز خود استفاده نمایید.

سرور مجازی یا VPS

در زیر تعدادی از مصارف VPS ذکر گردیده است:

وب‌سایت‌های بزرگ و پرمخاطب

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

اجرای برنامه‌ها و سایت‌های دیگر

بیشتر کسب و کارها با رشد و بزرگ شدن کسب و کارشان به فکر اجرای ایده‌های دیگر و گسترش کسب و کارشان می‌افتند یا حتی سعی می‌کنند سرویس‌هایی برای آسان تر شدن و منظم تر شدن کار کارمندان خود اجرا کنند مانند سیستم‌های دورکاری برای کارکنان، ردیابی کارکنان و این نوع سرویس‌ها. VPS منابع مورد نیاز برای اجرای این سرویس‌ها را چه از لحاظ مقدار فضای ذخیره سازی و چه از لحاظ تغییرات مورد نیاز برای این سرویس ها به شما می‌دهد.

دیگر مصارف سرور مجازی یا VPS

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

هر استفاده‌ای که برای VPS در نظر دارید این نکته را در ذهن داشته باشید که منابع VPS خود را به گونه ای انتخاب کنید که پاسخگوی نیازهای شما باشد. برای این منظور می‌توانید با متخصصان ما در زاگریو مشورت نمایید.

مکان سرور مجازی یا VPS و تاثیر آن بر تاخیر

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

برای همین توصیه ما این است که از VPS استفاده نمایید که در کشوری باشد که اکثر مخاطبان شما اهل آن کشورند تاثیری که این مورد دارد هم بر تجربه کاربری دلنشین تر است و هم بر سئو سایت و ترافیک ارگانیک سایت شما خواهد بود.

تخصص

هرچه که کسب و کار شما بیشتر به سمت استفاده از تکنولوژی و جنبه‌های دنیای IT پیش می‌رود نیاز شما نیز به نیروهای با دانش فنی و تخصص در حوزه IT بیشتر می‌گردد این مورد زمانی بیشتر اهمیت پیدا می‌کند که کسب و کار شما در حوزه‌هایی به غیر از IT باشد در این صورت شما نیاز دارید تا نیروهای متخصص دیگر در این زمینه نیز استخدام نمایید و آموزش دهید که این مورد می‌توانید برای یکسری از کسب و کارهای متوسط و کوچک هزینه‌ی گزافی به همراه داشته باشد. توصیه ما استفاده از یک سرویس میزبانی با پشتیبانی متخصصان حرفه ای به صورت 24 ساعته و هفت روز هفته مانند زاگریو است که نیاز شما به استخدام نیروی جداگانه را مرتفع گرداند.

امنیت سرور

امنیت سرور

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

سرور مجازی یا VPS

MySQL: آموزش لیست کردن تمامی دیتابیس‌ ها

669views

 

 

در این مقاله به شما نشان خواهیم داد که چگونه تمام دیتابیس‌های خود را در MySQL لیست نمایید. قبل از شروع عملیات نیاز است که با اکانت root یا اکانتی که با دستور sudo مجوزهای لازم را دارا است استفاده نمایید. زمانی که با استفاده از SSH به سرور خود وصل شدید لازم است کامند زیر را اجرا نمایید تا مطمئن شوید که MySQL بر روی سرور شما نصب شده است و ورژن آن چند است:

خروجی چیزی شبیه به خروجی زیر میباشد:

حالا نیاز است با حساب کاربری روت به MySQL متصل شویم:

بعد از آن MySQL از شما می‌خواهد تا پسورد MySQL خود را وارد نمایید تا اجازه دهد به دیتابیس دسترسی داشته باشید. اگر برای حساب کاربری root خود رمزی درذ نظر نگرفته‌اید با دستور زیر می‌توانید وارد اسن بخش شوید:

اگرچه پیشنهاد ما همیشه این است که با استفاده از رمز و گذرواژه مناسب سرویس‌های خود را امن نگاه دارید برای این منظور می‌توانید از mysql_secure_installation اقدام به قرار دادن رمز عبور نمایید. بعد از اجرای این دستور با فرمی مانند فرم زیر مواجه می‌شوید که باید به سوال امنیتی آن پاسخ دهید.

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

حالا برای لیست کردن تمام دیتابیس‌های MySQL خود از کامند زیر استفاده نمایید این دستور هم در VPS هایی با سیتم‌عامل ابنتو و هم CentOS برای شما کار خواهد نمود:

خروجی این دستور چیزی شبیه به خروجی زیر است:

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

برای لیست کردن جداول می‌توانید از کامند زیر استفاده نمایید:

خروجی چیزی شبیه به خروجی زیر خواهد بود:

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

 

 

 

 

چگونه هاست‌های مجازی آپاچی را در CentOS7 راه اندازی کنیم؟

2.9kviews

مقدمه:

وب سرور آپاچی یکی از محبوب‌ترین راه‌کار برای سرویس‌دهی به محتوی وب است که بسیار قدرتمند و منعطف است.
آپاچی به عملکرد و اجزای منحصربه‌فردی تجزیه می‌شود که می‌تواند به صورت سفارشی و مستقل پیکربندی شود. واحد پایه‌ای که یک سایت خاص با یک دامنه را توصیف می‌کند یک میزبان مجازی (virtual host) نامیده می‌شود. میزبان مجازی به یک سرور اجازه می‌دهند چندین دامین متعدد یا رابط را با استفاده از تطابق سیستم میزبانی کند. این مورد مربوط می‌شود به افرادی که یک سرور مجازی (VPS) را برای میزبانی بیشتر از یک سایت می‌خواهند. هر دامینی که پیکربندی می‌شود بازدیدکنندگان را به سمت یک دایرکتوری خاص که اطلاعات مربوط به سایت را نگهداری می‌کند، هدایت می‌کند. همان سرور برای سایت‌های دیگر مسئول است. این طرح بدون هیچگونه محدودیت نرم‌افزاری تا زمانی که سرور شما می‌تواند ترافیک تمام سایت‌های مجذوب را رسیدگی کند، قابل ارتقا است.
در این مقاله ما می‌خواهیم آموزش دهیم گه چگونه چند میزبان مجازی آپاچی را بر روی سرور مجازی CentOS7 پیاده‌سازی کنیم. در طی این فرآیند شما یاد می‌گیرید که چگونه برای محتوای متفاوت به بازدیدکنندگان متفاوتی که به دامنه‌های مختلفی را درخواست کرده‌اند، خدمات گوناگونی را ارائه دهید.

پیش‌نیازها:

قبل از اینکه طبق این راهنما شروع کنید چند مرحله وجود دارد که لازم است تکمیل شود.
شما نیاز دارید که به یک سرور CentOS7 یا یک کاربر غیر از root دسترسی داشته باشید که این کاربر امتیازات Sudo(sudo privileges) را داشته باشد. اگر هنوز تنظیماتی را انجام نداده‌اید می‌توانید با استفاده از این لینک این کاربر را ایجاد کنید.
همچنین شما برای پیکربندی میزبان‌های مجازی بر روی سرور نیاز دارید که یک آپاچی نصب کنید. اگر قبلا این کار را انجام نداده‌اید می‌توانید با استفاده از دستور yum آپاچی را طریق مخازن نرم‌افزاری پیش‌فرض CentOS نصب کنید.

 

sudo yum -y install httpd

در ادامه، آپاچی را به عنوان یک سرویس CentOS فعال کنید که بعد از reboot کردن سیستم به صورت خودکار آغاز می‌شود.

sudo systemctl enable httpd.service

بعد از اینکه این مراحل کامل شد، از طریق SSH بعنوان یک کاربر غیرریشه‌ای (non-root) به سیستم وارد شوید و آموزش را ادامه دهید.

مرحله اول: ایجاد ساختار دایرکتوری

در ابتدا ما نیاز داریم یک ساختار دایرکتوری ایجاد کنیم که اطلاعات سایت را برای ارائه خدمات به بازدیدکنندگان در آنجا نگهداری کنیم.
اسناد ریشه ما (document root: بالاترین سطح از دایرکتوری که به نظر می‌رسد آپاچی برای پیدا کردن مطالب و ارائه خدمات آن را جستجو می‌کند) به دایرکتوری‌های منحصربه‌فردی در دایرکتوری /var/www تنظیم می‌شوند. ما یک دایرکتوری برای هر یک از میزبان‌های مجازی که قصد ایجاد آن را داریم، ایجاد خواهیم کرد.
در هر یک از دایرکتوری‌ها، یک دایرکتوری public_html ایجاد خواهیم کرد که فایل‌های واقعی را در آن نگهداری شود. این کار انعطاف‌پذیری بیشتری در میزبانی می‌دهد.
ما می‌توانیم این دایرکتوری‌ها را با استفاده از دستور mkdir (استفاده از –p که اجازه می‌دهد که یک پوشه درون پوشه دیگری ایجاد کنیم) بسازیم.

 

sudo mkdir -p /var/www/itse.com/public_html
sudo mkdir -p /var/www/itse2.com/public_html

مرحله دوم: اعطای مجوز

در حال حاضر ما یک ساختار دایرکتوری برای فایل‌های خود داریم. اما آن‌ها به کاربر ریشه (root) تعلق دارند. اگر ما بخواهیم که کاربران به طور منظم قادر به تغییر فایل‌ها در دایرکتوری‌های وب‌سایت ما باشند، می‌توانیم با استفاده از دستور chown مالکیت آن‌ها را تغییر دهیم:

sudo chown -R $USER:$USER /var/www/itse.com/public_html
sudo chown -R $USER:$USER /var/www/itse2.com/public_html

متغییر $USER نام همان کاربری را خواهد گرفت که شما اخیرا با آن وارد سیستم شده‌اید در زمانی که دستور را ارسال می‌کنید. با انجام این کار، کاربران منظم ما مالک دایرکتوری‌های public_html جایی که ما محتوای خود را ذخیره می‌کنیم، هستند.
همچنین باید مجوزهایمان را طوری اصلاح کنیم که با کمی تغییر مطمئن شویم که دسترسی خواندن به دایرکتوری وب و همه فایل‌ها و فولدرهای درون آن به طور کلی مجاز است. بنایراین صفحاتی که را می‌توان به درستی به کار گرفت:

sudo chmod -R 755 /var/www

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

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

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

nano /var/www/itse.com/public_html/index.html

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

<html>
<head>
<title>Welcome to Itse.com!</title>
</head>
<body>
<h1>Success! The itse.com virtual host is working!</h1>
</body>
</html>

بعد از اتمام این مرحله فایل را ذخیره کنید و ببندید.

ما می‌توانیم با تایپ کردن دستور زیر این فایل را به عنوان یک الگو برای استفاده در index.html سایت دوممان کپی کنیم.

cp /var/www/itse.com/public_html/index.html /var/www/itse2.com/public_html/index.html

حالا اجازه دهید فایل را باز کنیم و بخش‌های مربوط به اطلاعات را اصلاح کنیم.

nano /var/www/itse2.com/public_html/index.html
<html>
<head>
<title>Welcome to itse2.com!</title>
</head>
<body>
<h1>Success! The itse2.com virtual host is working!</h1>
</body>
</html>

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

مرحله چهارم: ایجاد فایل میزبان مجازی جدید

فایل‌های میزبان مجازی برای سایت‌های جداگانه ما طوری پیکربندی شده‌اند که مشخص می‌کنند چگونه وب سرور آپاچی به درخواست دامنه‌های متفاوت پاسخ دهند.
برای شروع، ما نیاز داریم که یک دایرکتوری را راه‌اندازی کنیم که میزبان‌های مجازی ما در آن ذخیره شوند و همچنین دایرکتوری که به آپاچی می‌گوید که یک میزبان مجازی آماده پاسخگویی به بازدیدکنندگان است.
دایرکتوری sites-available همه فایل‌های میزبان مجازی ما را نگهداری خواهد کرد. درحالی‌که دایرکتوری sites-enabled لینک‌های نمادین ماشین میزبان‌های مجازی که ما می‌خواهیم انتشار دهیم را نگهداری می‌کند. ما با تایپ دستورات زیر می‌توانیم هر دو دایرکتوری را ایجاد کنیم:

sudo mkdir /etc/httpd/sites-available
sudo mkdir /etc/httpd/sites-enabled

در ادامه ما باید به آپاچی بگوییم که میزبان‌های مجازی را در دایرکتوری sites-enabled مشاهده کند. برای انجام این کار، ما فایل اصلی پیکربندی آپاچی را ویرایش می‌کنیم و یک خط که یک دایرکتوری اختیاری را برای پیکربندی اضافی فایل‌ها اعلام می‌کند را اضافه می‌کنیم:

sudo nano /etc/httpd/conf/httpd.conf

این خط را به انتهای فایل اضافه کنید:

IncludeOptional sites-enabled/*.conf

بعد از اضافه کردن این خط فایل را ذخیره کنید و ببندید. اکنون ما آماده‌ایم اولین فایل میزبان مجازی را ایجاد کنیم.

ایجاد اولین فایل میزبان مجازی:

با باز کردن یک فایل جدید در ویرایشگر خود با دسترسی root شروع کنید:

sudo nano /etc/httpd/sites-available/itse.com.conf

در ابتدا، با ایجاد یک جفت tag برچسب محتوا به عنوان یک ماشین مجازی که درحال گوش دادن به پورت ۸۰ (پورت پیش‌فرض HTTP) است، شروع کنید:

<VirtualHost *:80>
</VirtualHost>

در ادامه نام سرور اصلی را اعلام کنید. در اینجا ما به عنوان مثال www.itse.com را وارد کرده‌ایم. ما همچنین نام مستعار سرور را به itse.com اشاره می‌دهیم به‌طوری‌که درخواست‌ها برای www.itse.com و itse.com با محتوای یکسان ارسال می‌شوند:

<VirtualHost *:80>
ServerName www.itse.com
ServerAlias itse.com
</VirtualHost>

نکته: برای اینکه نسخه‌های www از دامنه به درستی کار کنند پیکربندی DNS های دامنه نیاز به یک A record یا CNAME دارند که درخواست‌های www را به IP سرور اشاره دهد. برای کلمات (*) رکورد نیز کار می‌کند. برای اطلاعات بیشتر در مورد DNS این لینک را مطالعه نمائید.

در نهایت، ما با اشاره به دایرکتوری root از اسناد وب‌سایتمان که در دسترس عموم است کار را پایان می‎دهیم. ما همچنین به آپاچی می‌گوییم که خطاها و درخواست log های مربوط به این سایت خاص را در کجا ذخیره کند:

<VirtualHost *:80>
ServerName www.itse.com
ServerAlias itse.com
DocumentRoot /var/www/itse.com/public_html
ErrorLog /var/www/itse.com/error.log
CustomLog /var/www/itse.com/requests.log combined
</VirtualHost>

هنگامی که نوشتن این موارد به پایان رسید می‌توانید این فایل را ذخیره کنید و ببندید.

کپی کردن اولین میزبان مجازی و سفارشی‌سازی آن برای دامنه‌های اضافی:

حالا که اولین فایل میزبان مجازی خود را ایجاد کردیم، ما می‌توانیم با کپی کردن این فایل و تنظیم موارد مورد نیاز دومین میزبان مجازی را ایجاد کنیم.
با استفاده از دستور cp کپی را شروع کنید:

sudo cp /etc/httpd/sites-available/itse.com.conf /etc/httpd/sites-available/itse2.com.conf

یک فایل جدید با دسترسی root در ویرایشگر خود باز کنید:

sudo nano /etc/httpd/sites-available/itse2.com.conf

شما اکنون نیاز دارید که تمامی قسمت‌های اطلاعاتی را که به دامین دوم شما ارجاع داده می‌شود را تغییر دهید. بعد از اینکه کار شما تمام شد، فایل‌های میزبان مجازی دوم شما ممکن است چیزی شبیه به این باشد:

<VirtualHost *:80>
ServerName www.itse2.com
DocumentRoot /var/www/itse2.com/public_html
ServerAlias itse2.com
ErrorLog /var/www/itse2.com/error.log
CustomLog /var/www/itse2.com/requests.log combined
</VirtualHost>

وقتی که انجام این تغییرات به پایان رسید، می‌توانید فایل را ذخیره کنید و ببندید.

مرحله پنجم: فعال کردن فایل میزبان مجازی جدید

اکنون که فایل‌های میزبان مجازی را ایجاد کرده‌ایم، باید آنها را فعال کنیم تا آپاچی برای استفاده از آن‌ها برای بازدیدکنندگان آنها را شناسایی کند. برای انجام این کار، ما می‌توانیم لینک نمادین را برای هر میزبان مجازی در دایرکتوری ites-enabled ایجاد کنیم:

sudo ln -s /etc/httpd/sites-available/itse.com.conf /etc/httpd/sites-enabled/itse.com.conf
sudo ln -s /etc/httpd/sites-available/itse2.com.conf /etc/httpd/sites-enabled/itse2.com.conf

هنگامی که کار شما به پایان رسید برای اعمال تغییرات Apache را ری‌استارت کنید:

sudo apachectl restart

مرحله ششم: راه‌اندازی فایل میزبان‌های محلی (اختیاری)

اگر شما برای تست این روش از دامنه‌های example به جای دامنه‌های واقعی استفاده می‌کنید، شما همچنان می‌توانید قابلیت‌های میزبان‌های مجازی خود را بطور موقت با تغییر در فایل‌های میزبان کامپیوتر خود تست نمائید. این عمل هرگونه درخواست برای دامین‌هایی که شما پیکربندی کرده‌اید و به سرور VPS خود اشاره داده‌اید را جدا می‌کند. فقط یک سیستم DNS می‌تواند این کار را انجام دهد اگر شما از دامنه‌های ثبت شده استفاده کنید. هرچند این کار فقط به روی کامپیوتر شما انجام می‌شود و به سادگی برای آزمایش اهدافتان مفید است.

نکته: مطمئن شوید که این مراحل را روی کامپیوتر محلی خود انجام می‌دهید نه روی سرور مجازی‌تان. شما نیاز دارید که به اعتبارنامه‌های اداری برای این کامپیوتر دسترسی داشته باشید.

اگر شما بر روی یک کامپیوتر Mac با Linux هستید، می‌توانید با تایپ دستور زیر فایل میزبان‌های محلی خود را با دسترسی مدیریتی ویرایش کنید:

sudo nano /etc/hosts

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

جزئیاتی که نیاز دارید اضافه کنید، IP آدرس‌های عمومی سرور مجازی شما به همراه دامنه‌هایی که برای رسیدن به آن سرور مجازی می‌خواهید، هستند:

127.0.0.1 localhost
127.0.1.1 guest-desktop
server_ip_address itse.com
server_ip_address itse2.com

این دستورات هر درخواستی که برای itse.com و itse2.com بر روی کامپیوتر محلی ما فرستاده می‌شود و آنها را بر روی سرور ما server_ip_address ارسال می‌کند.

مرحله هفتم: نتایج آزمون شما

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

http://itse.com

شما باید یک صفحه مانند زیر مشاهده کنید.

به همین ترتیب اگر شما دامنه‌های دیگرتان را بازدید کنید، فایل‌هایی را که ایجاد کرده‌اید را می‌بینید.

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

نتیجه:

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

چگونه از rsync برای همگام‌سازی دایرکتوری‌های Remote و Local روی یک VPS استفاده کنیم

2.5kviews

Rsync که پایه و اساس remote sync است، یک ابزار برای همگام‌سازی فایل‌های Local و Remote است. با استفاده از این الگوریتم مقدار اطلاعات کپی شده تنها با حرکت بخش‌هایی از فایلهایی که تغییر کرده‌اند به حداقل می‌رسد. در این مقاله کاربردهای اساسی این ابزار سودمند را ارائه می‌دهیم. ما در این مثال‌ها از سرور مجازی Ubuntu 12.04 استفاده می‌کنیم اما شما می‌توانید از هر توزیع لینوکس استفاده کنید.

Rsync چیست؟

Rsync یک ابزار بسیار منعطف برای همگام‌سازی شبکه‌های فعال است. شما همچنین برای استفاده از این ابزار می‌توانید به پروتکل توسعه‌یافته شبکه مراجعه کنید.

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

با توجه به اینکه لینوکس و سیستم‌های Unix-like در همه جا حضور دارند و به عنوان یک ابزار دارای اسکریپت سیستم، محبوبیت بسیاری دارند باعث شده که این مورد در اکثر توزیع‌های لینوکس به صورت پیش‌فرض قرار داده شود.

Basic Syntax

سوئیچ‌های پایه‌ای Rsync بسیار ساده هستند و اجرای آن‌ها شبیه به ssh, scp, و cp است.

ما می‌خواهیم دو دایرکتوری برای تست ایجاد کنیم و با دستورات زیر برخی از فایل‌ها را تست کنیم:

cd ~ mkdir dir1 mkdir dir2 touch dir1/file{1..100}

درحال حاضر ما یک دایرکتوری به نام dir1 با ۱۰۰ فایل خالی درون آن داریم.

ls dir1
file1 file18 file27 file36 file45 file54 file63 file72 file81 file90
file10 file19 file28 file37 file46 file55 file64 file73 file82 file91
file100 file2 file29 file38 file47 file56 file65 file74 file83 file92
file11 file20 file3 file39 file48 file57 file66 file75 file84 file93
file12 file21 file30 file4 file49 file58 file67 file76 file85 file94
file13 file22 file31 file40 file5 file59 file68 file77 file86 file95
file14 file23 file32 file41 file50 file6 file69 file78 file87 file96
file15 file24 file33 file42 file51 file60 file7 file79 file88 file97
file16 file25 file34 file43 file52 file61 file70 file8 file89 file98
file17 file26 file35 file44 file53 file62 file71 file80 file9 file99

ما همچنین یک دایرکتوری خالی به نام dir2 داریم.

برای یکی کردن محتویات dir1 به dir2 در همان سیستم دستور زیر را تایپ کنید:

rsync -r dir1/ dir2

گزینه r- بر ای تمامی زیرپوشه‌ها نیزعمل می‌کند و برای یکی کردن دایرکتوری لازم است.

همچنین می‌توانیم از سوئیچ a- به جای آن استفاده کنیم.

rsync -a dir1/ dir2

گزینه a- یک سوئیچ ترکیبی است.

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

به همین دلیل معمولا از r- استفاده می‌شود و این چیزی است که معمولا شما می‌خواهید استفاده کنید.

یک نکته مهم:

ممکن است که متوجه شده باشید که یک / در پایان اولین آرگومان در دستورات بالا وجود دارد.

rsync -a dir1/ dir2

این کار لازم است و به معنی محتویات درون dir1 است.

در موارد جایگزین، بدون/باید مکان dir1، محتوی دایرکتوری درون dir2 باشد. به این‌صورت سلسله مراتبی ایجاد می‌شود که مانند زیر به نظر می‌رسد:

~/dir2/dir1/[files]

همیشه آرگومان‌ها را قبل از اجرای یک دستور rsync مجددا چک کنید.

Rsync با عبور از گزینه‌های n- یا dir- روش‌هایی برای انجام این کار فراهم می‌کند. سوئیچ v- برای دریافت خروجی مناسب است.

rsync -anv dir1/ dir2
sending incremental file list
./
file1
file10
file100
file11
file12
file13
file14
file15
file16
file17
file18
. . .

این خروجی را با خروجی که هنگام حذف / بدست می آورید مقایسه کنید.

rsync -anv dir1 dir2
sending incremental file list
dir1/
dir1/file1
dir1/file10
dir1/file100
dir1/file11
dir1/file12
dir1/file13
dir1/file14
dir1/file15
dir1/file16
dir1/file17
dir1/file18
. . .

در این‎جا می‎بینید که دایرکتوری‌هایتان منتقل شدند.

چگونه از rsync برای همگام‌سازی یک Remote system استفاده کنیم؟

همگام‌سازی به یک Remote system بسیار واضح و بدیهی است اگر دسترسی SSH به یک remote machine داشته باشید و Rsync درهر دو سمت نصب شده باشد. اگر نیاز به راه‌اندازی کلید SSH دارید set up SSH keys را کلیک کنید.

هنگامی‌که شما دسترسی SSH بین دو ماشین دارید، می‌توانید قبل از remote computer با استفاده از syntax همگام سازی کنید ( توجه داشته باشید که ما می‌خواهیم دایرکتوری‌های واقعی را در این مورد انتقال دهیم، بنابراین / را حذف می کنیم).

rsync -a ~/dir1 username@remote_host:destination_directory

این کار Push عملیات نامیده می‌شود چون دایرکتوری را از یک سیستم Local به یک Remote سیستم فشار (Push) می‌دهد.

pull” عملیات مخالف با Push است. عمل Pull برای همگام‌سازی یک دایرکتوری از Remote سیستم به یک سیستم Local است. اگر dir1 به جای سیستم Local بر روی Remote سیستم قرار داشته باشد Syntax به صورت زیر است:

rsync -a username@remote_host:/home/username/dir1 place_to_sync_on_local_machine

مانند CP و ابزارهای مشابه، اولین آرگومان به عنوان مبدا و دومین آرگومان مقصد است.

گزینه‌های مفید برای Rsync

Rsync گزینه‌های بسیاری برای تغییر رفتار پیش‌فرض ارائه می‌کند. ما در حال حاضر در مورد بعضی از پرچم‌های ضروری گفتگو می‌کنیم.

اگر شما درحال انتقال فایل‌هایی هستید که فشرده شده نیستند، مانند فایل‌های متنی، می‌توانید با اضافه کردن گزینه z- فایل‌ها را فشرده کنید و انتقال را کاهش دهید.

rsync -az source destination

سوئیچ p- خیلی مفید است. این سوئیچ ترکیب سوئیچ‌های progress — و partial — است. اولین مورد پیشرفت انتقال را نشان می‌دهد و دومی به شما اجازه می‌دهد تا انتقال قطع شده را مجددا ارسال کنید.

rsync -azP source destination
sending incremental file list
./
file1
۰ ۱۰۰% ۰٫۰۰kB/s 0:00:00 (xfer#1, to-check=99/101)
file10
۰ ۱۰۰% ۰٫۰۰kB/s 0:00:00 (xfer#2, to-check=98/101)
file100
۰ ۱۰۰% ۰٫۰۰kB/s 0:00:00 (xfer#3, to-check=97/101)
file11
۰ ۱۰۰% ۰٫۰۰kB/s 0:00:00 (xfer#4, to-check=96/101)

اگر دستور را دوباره اجرا کنیم خروجی کوتاه‌تری خواهیم داشت چون هیچ تغییری ایجاد نشده است.

این مورد قابلیت rsync را بیان می‌کند که با استفاده از تاریخ تغییر فایل‌ها بتواند مشخص کند که آیا تغییراتی بر روی فایل‌ها اعمال شده است یا نه.

rsync -azP source destination

sending incremental file list
sent 818 bytes received 12 bytes 1660.00 bytes/sec
total size is 0 speedup is 0.00

ما می‌توانیم زمان اصلاح را در برخی از فایل‌ها بروزرسانی کنیم و می‌بینیم که Rsync هوشمندانه فایل‌های تغییر یافته را مجددا کپی می‌کند.

touch dir1/file{1..10}

rsync -azP source destination
sending incremental file list
file1
۰ ۱۰۰% ۰٫۰۰kB/s 0:00:00 (xfer#1, to-check=99/101)
file10
۰ ۱۰۰% ۰٫۰۰kB/s 0:00:00 (xfer#2, to-check=98/101)
file2
۰ ۱۰۰% ۰٫۰۰kB/s 0:00:00 (xfer#3, to-check=87/101)
file3
۰ ۱۰۰% ۰٫۰۰kB/s 0:00:00 (xfer#4, to-check=76/101)
. . .

به منظور این‌که هر دو دایرکتوری که به درستی همگام شده را حفظ کنیم، اگر این فایل‌ها از منبع حذف شده باشند لازم است که فایل‌ها را از دایرکتوری مقصد حذف کنیم. Rsync بطور پیش‌فرض هیچ فایلی را از دایرکتوری مقصد حذف نمی‌کند.
ما می‌توانیم این رفتار را با گزینه delete – تغییر دهیم. قبل از استفاده از این گزینه از گزینه dry –run- استفاده کنید و این تست را برای آزمایش از دست دادن اطلاعات انجام دهید.

rsync -a --delete source destination

اگر مایل به حذف فایل‌های خاص یا دایرکتوری واقع در دایرکتوری که درحال همگام‌سازی آن هستید می‌توانید بعد از گزینه –exclude= آنها را در یک لیست با کاما از هم جدا کنید.

rsync -a --exclude=pattern_to_exclude source destination

اگر ما یک الگوی مشخص برای حذف کردن داشته باشیم، می‌توانیم برای فایل‌هایی که با الگوی متفاوت مطابق هستند با استفاده از گزینه –include= استثنا ایجاد کنیم.

rsync -a --exclude=pattern_to_exclude --include=pattern_to_include source destination

نتیجه

Rsync می‌تواند به سادگی فایل‌های شما را بر روی بستر شبکه منتقل کند و همچنین با قدرت بالا پوشه‌های موجود بر روی سیستم شما را همگام (sync) کند. انعطاف‌پذیری Rsync گزینه‌های خوبی برای عملیات بر روی فایل‌ها سطوح مختلف ایجاد می‌کند.