پارس ایرانیک ارائه دهنده سرویس های ابری و VPS اختصاصی ایران و کانادا

انتقال دایرکتوری ریشه ی وب به یک دایرکتوری جدید در Ubuntu 18.04

مقدمه

در Ubuntu،وب سرور Nginx محتویات وب را در دایرکتوری /var/www/html/ ذخیره میکند که به طور معمول با بقیه فایل سیستم ها در سیستم عامل قرار دارد.اما گاهی اوقات ممکن است بخواهید این فایل هارا در جای متفاوتی منتقل کنیم.برای مثال هنگامی که با Nginx چند وبسایت مختلف را سرویس دهی میکنید،قرار دادن اسناد هر وبسایت در جا های متفاوت به شما اجازه میدهد تا بتوانید نیازهای هر سایت یا مشترک را در مقیاس کوچکتری برطرف کنید.

در این آموزش به نحوه جابجایی دایرکتوری وب Nginx را به دایرکتوری جدید منتقل کنیم.

• پیش از شروع این آموزش،به یک سرور با سیستم عامل Ubuntu 18.04 نیاز دارید.

• همچنین باید وب سرورِ Nginx را در سرور نصب کرده باشید.

• بهتر است از SSL نیز برای امنیت بیشتر استفاده کنید.Let’s Encrypt تاییدیه مناسبی برای این پروتکل است که میتوانید به طور رایگان آنرا تهیه کنید.

در این مقاله ما از دامنه example.com به عنوان دامنه آزمایشی استفاده میکنیم اما درواقعیت باید از دامنۀ حقیقی خود استفاده کنید.

برای محلِ جدید،ما از دایرکتوری /mnt/newdir/ استفاده میکنیم.دایرکتوری وب را میتوانید بعدا بر اساس نیازتان تنظیم کنید.اگر بخواهید این دایرکتوری را به یک فضای جدید منتقل کنید،باید توجه کنید که فضای ذخیره جدید در دستگاه مونت (mount) شده باشد.

مرحله ۱ – کپی کردن فایل ها به محل جدید

هنگام نصب Nginx،محل دایرکتوری وب در /var/www/html/ واقع شده است.هرچند ممکن است توانسته باشید آنرا به /var/www/example.com/html/ منتقل کرده باشید.امکان وجود دایرکتوری های دیگر نیز وجود دارد (درصورت داشتن چند دامنه بر روی یک آی پی).در این مرحله،ما دایرکتوری وب خود را مسازیم و فایل های مربوطه را به محل جدیدشان منتقل میکنیم.

میتوانید از دستور grep برای یافتن محل دایرکتوریِ وب استفاده کنید.

به طور معمول،درصورت نصب Nginx بر روی سیستم عامل تازه نصب شده،به شکل زیر خواهد بود:

یا در صورت انتقال این دایرکتوری به /var/www/example.com/html/ خروجی به شکل زیر خواهد بود:

اگر تنظیمات دیگری نیز انجام داده باشید،خروجی ممکن است متفاوت باشد.اما در هر صورت میتوانید از خروجی دستور grep به عنوان منبع خوبی برای یافتن این دایرکتوری استفاده کنید.

حال که محل رخیره سازی محتویات وب را یافتید،میتوانید با دستور rsync،آنهارا منتقل کنید.با استفاده از سوئیچ a- برای تعمیم دسترسی ها و مالکیت های دایرکتوری ها و از v- برای دریافت خروجی کاملتر (تا بتوانیم پروسه ی rsync را دنبال کنیم)،برای انتقال فایل ها اقدام میکنیم:

نکته: توجه کنید که آخر آدرس ها / قرار ندهید.در غیر این صورت، rsync محتویات داخل دایرکتوری را منتقل نمیکند و فقط یک پوشه با همان نام در دایرکتوری مقصد ایجاد میکند.

خروجی باید به شکل زیر باشد البته با اعداد متفاوت:

حال که فایل هارا به مکان مورد نظر جابجا کردیم،به سراغ تنظیمات Nginx میرویم تا این تغییر را به کار بگیریم.

مرحله ۲ – بروزرسانی تنظیمات

Nginx هم از تنظمات کلی و هم از تنظیمات دقیقِ هر سایت بهره میبرد.ما تنظیماتِ بلاک سرور را در فایل کانفیگِ  /etc/nginx/sites-enabled/example.com/ برای example.com تغییر میدهیم.

از یک ویرایشگر متن (پیشنهاد: نانو) برای ویرایش فایل تنظیمات به شکل زیر استفاده کنید:

خطی را که با root شروع میشود را بیابید و روبروی آن مسیر جدید که فایل ها در آن قرار دارند را قرار دهید:

به دایرکتوری های دیگری که در مرحله یک و با دستور grep یافتید نیز توجه کنید.آنها را نیز باید بروزرسانی کنید.

پس از پایان کارتان با این فایل،آن را ذخیره کنید و ببندید.

مرحله ۳ – شروع مجددِ Nginx

پس از پایان تنظیمات،باید وب سرور را ری استارت کنید تا تغییرات ایجاد شده اجرا شوند.

ابتدا با دستور زیر مطمئن شوید فایل تنظیمات آن را درست پیکربندی کرده اید و خطای لغوی در آن وجود ندارد:

در صورت عدم وجود خطا،خروجی به شکل زیر خواهد بود:

درصورت پیغام متفاوت و وجود خطا،منبع را پیدا کنید و آنرا تصحیح کنید.

پس از اطمینان از درستی تنظیمات،با دستور زیر Nginx را دوباره راه اندازی کنید:

پس از راه اندازی مجدد،سایت را چک کنید تا همانطور که انتظار دارید عمل کند.پس از تایید،حتما فایل های اولیه را حذف کنید تا مشکلی ایجاد نکنند:

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

نتیجه

در این آموزش،ما یاد گرفتیم تا دایرکتوری محتویات یک وبسایت را در Nginx تغییر دهیم.این امر میتواند به مدیریت سرور توسط شما بسیار کمک کند،مخصوصا هنگام مدیریت چند وبسایت برروی یک سرور.