phpMyAdmin یک ابزار مدیریت رایگان و منبع باز برای MySQL و MariaDB است. به عنوان یک برنامه وب که در درجه اول با PHP نوشته شده است ، به یکی از محبوب ترین ابزارهای مدیریت MySQL تبدیل شده است ، به خصوص برای خدمات میزبانی وب. در این آموزش مروری اساسی در مورد چگونگی ایمن سازی phpmyadmin با Nginx در CentOS 7 ارائه شده است.
در ادامه با ما در شتابان هاست همراه باشید.
phpMyAdmin در مخزن پیش فرض CentOS 7 موجود نیست ، بنابراین ما از مخازن EPEL استفاده خواهیم کرد. برای اضافه کردن مخزن CentOS 7 EPEL ، از دستور زیر استفاده کنید:
yum install epel-release
اکنون که به مخزن EPEL دسترسی دارید ، phpMyAdmin را با دستور زیر نصب کنید:
yum install phpmyadmin
اکنون نصب کامل می شود.
در وب سرور Nginx ، ما با اجرای دستور زیر ، پیوند سمبلیکی از فایلهای نصب 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
در وب سرور Nginx ، ما در مرحله اولیه پیوند سمبلیکی از فایلهای نصب 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 شما در مکان جدیدی که انتخاب کردیم در دسترس خواهد بود:
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 را انتخاب کردیم).
این بخش را در بلوک سرور ، اما خارج از هر بلوک دیگر ایجاد کنید. در مثال خود بلوک موقعیت مکانی جدید خود را در زیر 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 عادی منتقل می شوید و می توانید به phpMyAdmin وارد شوید.
تبریک می گویم ، شما phpMyAdmin را با nginx در CentOS 7 با موفقیت نصب و امن کرده اید.
امیدوارم این مقاله براتون مفید بوده باشه.
ما رو تو شتابان هاست دنبال کنید. 🙂