نصب و ایمن سازی phpMyAdmin با Nginx در CentOS 7

نصب و ایمن سازی phpMyAdmin با Nginx در CentOS 7

مرتضی حبیبی

phpMyAdmin یک ابزار مدیریت پایگاه داده رایگان و متن باز برای MySQL و MariaDB است. به عنوان یک برنامه وب قابل حمل که در درجه اول با PHP نوشته شده است، به یکی از محبوب ترین ابزارهای مدیریت MySQL تبدیل شده است، به خصوص برای خدمات میزبانی وب. در این آموزش مروری اساسی در مورد چگونگی نصب و ایمن سازی phpmyadmin با Nginx در CentOS 7 ارائه شده است.

پیش نیازها:

اطمینان حاصل کنید که با یک کاربر sudo وارد سرور خود شده اید.

نصب LEMP Stack در CentOS 7.

نصب و ایمن سازی phpMyAdmin با Nginx در CentOS 7:

مرحله ۱ – phpMyAdmin را نصب کنید:

phpMyAdmin در مخزن پیش فرض CentOS 7 موجود نیست، بنابراین ما از مخازن EPEL استفاده خواهیم کرد. برای اضافه کردن مخزن CentOS 7 EPEL ، از دستور زیر استفاده کنید:

yum install epel-release

اکنون که به مخزن EPEL دسترسی دارید ، phpMyAdmin را با دستور زیر نصب کنید:

yum install phpmyadmin

صبر کنید تا نصب کامل شود.

در وب سرور Nginx، ما با اجرای دستور زیر، پیوند symbolic از فایلهای نصب phpMyAdmin را به فهرست اصلی وب Nginx ایجاد خواهیم کرد تا فایل های phpMyAdmin را به درستی (/usr/share/nginx/html) به درستی پیدا کرده و به آنها سرویس دهیم.

ln -s /usr/share/phpMyAdmin /usr/share/nginx/html

در آخر، Nginx و PHP-FPM را ریستارت کنید تا تغییرات اعمال شود.

systemctl restart nginx
systemctl restart php-fpm

نصب phpMyAdmin اکنون کامل شده است. برای دسترسی به رابط، در مرورگر وب خود به نام دامنه سرور یا آدرس IP عمومی و به دنبال آن phpMyAdmin/ بروید:

http://server_domain_or_IP/phpMyAdmin

 

نصب و ایمن سازی phpMyAdmin با Nginx در CentOS 7

 

مرحله ۲ – URL ورود را تغییر دهید:

در وب سرور Nginx، ما در مرحله اولیه پیوند symbolic از فایل های نصب phpMyAdmin را به فهرست راهنمای ریشه سند Nginx (در مسیر /usr/share/nginx/html) ایجاد کردیم.

برای تغییر URL در جایی که می توان به رابط phpMyAdmin دسترسی داشت، ما فقط باید با تایپ دستور زیر پیوند نمادین را تغییر نام دهیم:

توجه: در این راهنما ، مکان دسترسی /my نامگذاری می کنیم.

cd /usr/share/nginx/html
mv phpMyAdmin my

حال اگر به مکان قبلی نصب phpMyAdmin خود بروید، خطای ۴۰۴ را دریافت خواهید کرد:

http://server_domain_or_IP/phpMyAdmin

نصب و ایمن سازی phpMyAdmin با Nginx در CentOS 7

با این حال، رابط phpMyAdmin شما در مکان جدیدی که انتخاب کردیم در دسترس خواهد بود:

http://server_domain_or_IP/my

 

 

مرحله ۳ – یک دروازه تأیید هویت سرور وب راه اندازی کنید

برای فراهم کردن یک لایه امنیتی بیشتر، می توانیم تأیید اعتبار را در Nginx تنظیم کنیم.

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

ما می توانیم پرونده .htpasswd تولید کنیم. به سادگی holu را به نام کاربری مورد نیاز خود تغییر دهید.

htpasswd -c /etc/nginx/.htpasswd holu

خروجی نمونه:

# htpasswd -c /etc/nginx/.htpasswd holu
New password:
Re-type new password:
Adding password for user holu

اکنون باید یک پرونده .htpasswd وجود داشته باشد که شامل نام کاربری و رمزعبور رمزگذاری شده شما باشد. می توانید با دستور زیر بررسی کنید:

cat /etc/nginx/.htpasswd

خروجی نمونه:

username:$apr1$vXURQ.rv$f6S86nCX.fKfjbYNTUPzV.

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

vi /etc/nginx/conf.d/default.conf

در این پرونده، باید یک بخش مکان جدید اضافه کنیم. این موقعیت مکانی را که ما برای رابط phpMyAdmin انتخاب کرده ایم هدف قرار می دهیم (ما در این آموزش /my را انتخاب کردیم).

این بخش را در بلوک server، اما خارج از هر بلوک دیگر ایجاد کنید. در مثال خود بلوک موقعیت مکانی جدید خود را در زیر location/ بلوک قرار خواهیم داد.

در این بلوک، باید مقدار یک بخشنامه به نام auth_basic را بر روی یک پیام تأیید اعتبار قرار دهیم که سریع ما به کاربران نمایش می دهد. ما نمی خواهیم آنچه را که ما محافظت می کنیم به کاربران غیرمجاز نشان دهیم، بنابراین جزئیات خاصی را بیان نکنید. فقط در مثال خود از “Admin Login” استفاده خواهیم کرد.

سپس ما باید از یک بخشنامه به نام auth_basic_user_file استفاده کنیم تا سرور وب خود را به پرونده احراز هویتی که ایجاد کردیم متمایز کنیم. Nginx از کاربر می خواهد جزئیات تأیید اعتبار را به کاربر هشدار دهد و بررسی کند که مقادیر ورودی با آنچه در پرونده مشخص شده است مطابقت دارد.

پس از پایان کار ، پرونده باید به صورت زیر باشد:

server {
    ...
    location /my {
        auth_basic "Admin Login";
        auth_basic_user_file /etc/nginx/.htpassword;
    }
    ...
}

پس از اتمام، پرونده را ذخیره و ببندید.

برای پیاده سازی دروازه احراز هویت جدید، باید سرور وب را مجدداً راه اندازی کنیم:

systemctl restart nginx

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

http://server_domain_or_IP/my

 

نصب و ایمن سازی phpMyAdmin با Nginx در CentOS 7

 

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

به همین راحتی شما phpMyAdmin را با nginx در CentOS 7 با موفقیت نصب و امن کرده اید.

امیدواریم از این مقاله بهره لازم را برده و برای شما مفید بوده باشد. نظرات خود را با ما به اشتراک بگذارید.

ما را در شتابان هاست دنبال کنید.

برچسب ها: MySQL Ngnix

ارسال دیدگاه جدید