phpMyAdmin یک ابزار نرمافزاری رایگان است که به زبان PHP نوشته شده و برای مدیریت سرور پایگاه داده MySQL یا MariaDB استفاده میشود. از phpMyAdmin میتوانید برای انجام بسیاری از کارهای مدیریتی، از جمله ایجاد پایگاه داده، اجرای پرسوجوها (Query) و افزودن حسابهای کاربری بهره ببرید. بسیاری از افراد برای انجام چنین کارهایی و دسترسی آسان و سریع به پایگاه داده از phpMyAdmin روی سرور ابری یا VPS استفاده میکنند. اگر شما نیز قصد نصب phpMyAdmin در اوبونتو را دارید، این مقاله برای شما نوشته شده است.
پیشنیازهای نصب phpmyadmin در اوبونتو
برای نصب phpMyAdmin روی IaaS، اول از همه به یک سرور ابری اوبونتو نیاز دارید؛ این سرور ابری باید یک کاربر غیرریشه (Non-root) با امتیازهای مدیریتی و یک فایروال پیکربندیشده با ufw داشته باشد. بهعلاوه، لازم است که یک پشته LAMP (شامل لینوکس، آپاچی، MySQL و PHP) را روی سرور کلود اوبونتو خود نصب کنید. همچنین توجه به ملاحظات امنیتی زیر هنگام استفاده از نرمافزارهایی مانند phpMyAdmin ضروری است:
- ارتباط مستقیم با نصب MySQL
- احراز هویت با استفاده از اعتبار MySQL
- اجرا و بازگرداندن نتایج برای دستورات SQL دلخواه
اپلیکیشن PHP بهدلیل گستردگی وسیع بهطور مکرر مورد حمله قرار میگیرد. ازهمینرو هرگز نباید phpMyAdmin را روی سیستمهای از راه دور از طریق اتصال HTTP ساده اجرا کنید. توصیه میشود حتما دامنه خود را با استفاده از گواهینامه SSL یا TLS پیکربندی کنید.
برای استفاده رایگان از گواهی SSL/TLS ابر دراک میتوانید از پلنهای رایگان یا غیررایگان CDN ایران ابر دراک استفاده کنید. با این کار ضمن بهبود امنیت وبسایت خود، دسترسی کاربران به محتواهای آنلاینتان را بهبود میبخشید.
گام 1؛ نصب phpMyAdmin
در گام اول میتوانید از APT برای نصب phpMyAdmin از مخازن پیشفرض اوبونتو استفاده کنید.
بهعنوان کاربر غیرریشه با دسترسی sudo، اگر اخیراً بستههای سرورتان را بهروزرسانی نکردهاید، ابتدا با دستور زیر این کار را انجام دهید:
sudo apt update
پس از آن، میتوانید بسته phpmyadmin را نصب کنید. مستندات رسمی همچنین توصیه میکنند که برای فعالسازی برخی قابلیتها و بهبود عملکرد، همراه با این بسته، چندین افزونه PHP دیگر را نیز روی سرور کلود خود نصب کنید.
- php-mbstring: از این ماژول برای مدیریت رشتههای غیر ASCII و تبدیل رشتهها به رمزگذاریهای مختلف استفاده میشود.
- php-zip: این افزونه از بارگذاری فایلهای .zip به phpMyAdmin پشتیبانی میکند.
- php-gd: این افزونه پشتیبانی از کتابخانه گرافیکی GD را فعال میکند.
- php-json: این افزونه PHP را پشتیبانی از سریالسازی JSON ارائه میدهد.
- php-curl: این افزونه به PHP اجازه میدهد تا با استفاده از پروتکلهای مختلف، با انواع گوناگون سرورها تعامل داشته باشد.
برای نصب این بستهها روی سیستم خود، دستور زیر را اجرا کنید. لطفا توجه کنید که برای انجام صحیح فرایند نصب نیاز است تا انتخابهای درستی برای پیکربندی صحیح phpMyAdmin داشته باشید که در ادامه به بررسی آنها خواهیم پرداخت:
sudo apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl
هنگام نصب، گزینههای زیر را انتخاب کنید تا پیکربندی بهدرستی انجام شود:
- برای انتخاب سرور، apache2 را انتخاب کنید.
هشدار: وقتی اعلان ظاهر میشود، گزینه «apache2» برجسته شده، اما انتخاب نشده است. اگر برای انتخاب آپاچی دکمه SPACE را فشار ندهید، نصبکننده فایلهای لازم را در طول نصب منتقل نخواهد کرد. برای انتخاب آپاچی، ابتدا SPACE و TAB و سپس ENTER را فشار دهید.
- وقتی از شما پرسیده شد آیا از «dbconfig-common» برای راهاندازی پایگاه داده (Database) استفاده میکنید، گزینه «Yes» را انتخاب کنید.
- از شما خواسته میشود که رمز عبور برنامه MySQL را برای phpMyAdmin انتخاب و تأیید کنید.
نکته: اگر تصمیم به فعالسازی افزونه Validate Password داشته باشید، ممکن است هنگام تلاش برای تنظیم رمز عبور برای کاربر phpmyadmin خطایی داده شود:
برای رفع این خطا، گزینه «abort» را انتخاب کنید تا فرایند نصب متوقف شود. سپس، فرمان MySQL خود را باز کنید و کد زیر را بنویسید:
sudo mysql
یا اگر احراز هویت رمز عبور را برای کاربر ریشه MySQL فعال کردهاید، دستور زیر را اجرا و سپس وقتی از شما خواسته شد، رمز عبورتان را وارد کنید:
mysql -u root -p
از خط فرمان MySQL، دستور زیر را برای غیرفعال کردن مولفه Validate Password اجرا کنید. توجه داشته باشید که این کار در واقع آن را حذف نمیکند، بلکه فقط مانع از بارگیری مولفه روی MySQL شما میشود.
UNINSTALL COMPONENT "file://component_validate_password";
در ادامه شما میتوانید کلاینت MySQL را با دستور زیر ببندید:
exit
سپس دوباره برای نصب بسته phpmyadmin تلاش کنید:
sudo apt install phpmyadmin
بعد از نصب phpMyAdmin، شما میتوانید فرمان MySQL را یک بار دیگر با sudo mysql یا mysql -u root -p باز کنید و سپس دستور زیر را برای فعالسازی مجدد مولفه Validate Password اجرا کنید:
INSTALL COMPONENT "file://component_validate_password";
فرایند نصب، فایل پیکربندی phpMyAdmin Apache را به دایرکتوری /etc/apache2/conf-enabled/ اضافه میکند که بهطور خودکار خوانده میشود. برای تکمیل پیکربندی Apache و PHP بهمنظور کار با phpMyAdmin، فقط کافی است با دستور زیر، افزونه PHP mbstring را فعال کنید:
sudo phpenmod mbstring
سپس، Apache را ریاستارت کنید تا تغییرات شما شناسایی شوند:
sudo systemctl restart apache2
اکنون phpMyAdmin برای کار با آپاچی نصب و پیکربندی شده است. بااینحال، قبل از اینکه بتوانید وارد شوید و با پایگاههای داده MySQL خود تعامل داشته باشید، باید مطمئن شوید که کاربران MySQL شما از امتیازهای لازم برای تعامل با برنامه برخوردار هستند.
گام 2؛ تنظیم احراز هویت و امتیازات کاربر
با نصب phpMyAdmin در Ubuntu، بهطور خودکار یک کاربر پایگاه داده به نام phpmyadmin ایجاد میشود که فرایندهای اساسی خاصی را برای برنامه انجام میدهد. بهجای ورود با این کاربر با استفاده از رمز عبور مدیریتی که حین نصب تنظیم کردهاید، توصیه میشود که بهعنوان کاربر روت MySQL خود یا بهعنوان کاربری که برای مدیریت پایگاههای داده از طریق رابط phpMyAdmin اختصاص دادهاید، وارد شوید که در ادامه به بررسی هر دو روش ورود میپردازیم:
پیکربندی دسترسی رمز عبور برای حساب ریشه MySQL
در سیستمهای اوبونتو که MySQL 5.7 (و نسخههای جدیدتر) را اجرا میکنند، بهطور پیشفرض کاربر ریشه MySQL با استفاده از افزونه auth_socket بهجای استفاده از رمز عبور احراز هویت میشود. این روش در بسیاری از موارد امنیت و قابلیت استفاده بیشتری را فراهم میکند؛ اما زمانی که نیاز دارید به یک برنامه خارجی (مانند phpMyAdmin) اجازه دسترسی به کاربر را بدهید، ممکن است شرایط پیچیدهتر شود.
برای ورود به phpMyAdmin بهعنوان کاربر ریشه MySQL، شما باید روش احراز هویت آن را از auth_socket به روشی که از رمز عبور استفاده میکند، تغییر دهید. برای انجام این کار، فرمان MySQL را از ترمینال خود باز کنید:
sudo mysql
سپس، با استفاده از دستور زیر بررسی کنید که هر یک از حساب های کاربری MySQL شما از کدام روش احراز هویت استفاده میکند:
SELECT user,authentication_string,plugin,host FROM mysql.user;
جهت پیکربندی حساب ریشه برای احراز هویت با رمز عبور، دستور ALTER USER زیر را اجرا کنید. مطمئن شوید که «password» را با یک رمز عبور قویتر جایگزین میکنید:
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';
نکته: عبارت قبلی ALTER USER، کاربر ریشه MySQL را برای احراز هویت با افزونه caching_sha2_password تنظیم میکند. بر اساس مستندات رسمی، caching_sha2_password افزونه ترجیحی احراز هویت MySQL است؛ زیرا این افزونه رمزگذاری امنتری را نسبت به افزونه قدیمیتر، اما پراستفاده mysql_native_password ارائه میدهد.
بااینحال، برخی نسخههای PHP بهطور قابل اعتمادی با caching_sha2_password کار نمیکنند. PHP گزارش داده که این مشکل در نسخه 7.4 PHP برطرف شده است، اما اگر بعدا با خطایی هنگام تلاش برای ورود به phpMyAdmin مواجه شدید، ممکن است بخواهید بهجای آن، کاربر ریشه را برای احراز هویت با mysql_native_password ایجاد کنید:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
سپس، روشهای احراز هویت استفادهشده توسط هر یک از کاربران خود را دوباره بررسی و تأیید کنید که از این به بعد ریشه با استفاده از افزونه auth_socket احراز هویت نمیشود:
SELECT user,authentication_string,plugin,host FROM mysql.user;
پیکربندی دسترسی رمز عبور برای یک کاربر اختصاصی MySQL
در بعضی از موارد ممکن است اتصال به phpMyAdmin با یک کاربر اختصاصی برای جریان کاری شما بهتر باشد. برای انجام این کار، یک بار دیگر MySQL shell را باز کنید:
sudo mysql
اگر احراز هویت با رمز عبور را برای کاربر ریشه خود فعال کرده باشید، مانند قسمت قبل باید دستور زیر را اجرا کرده و در هنگام درخواست، رمز عبورتان را وارد کنید:
mysql -u root -p
سپس، یک کاربر جدید ایجاد کرده و برای یک روز عبور قوی انتخاب کنید:
CREATE USER 'sammy'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';
نکته: با توجه به نسخه PHP که نصب کردهاید، ممکن است بخواهید کاربر جدید خود را با استفاده از mysql_native_password به جای caching_sha2_password احراز هویت کنید:
ALTER USER 'sammy'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
سپس، به کاربر جدید خود امتیازهای مناسب را بدهید. بهعنوان مثال، شما میتوانید با استفاده از دستور زیر، به کاربر اجازه دسترسی به تمام جداول درون پایگاه داده و همچنین توانایی افزودن، تغییر و حذف امتیازهای کاربر را بدهید:
GRANT ALL PRIVILEGES ON *.* TO 'sammy'@'localhost' WITH GRANT OPTION;
پس از آن، از MySQL shell خارج شوید:
exit
حالا میتوانید با مراجعه به نام دامنه یا آدرس IP عمومی سرور خود و افزودن /phpmyadmin، به رابط وب دسترسی پیدا کنید:
https://your_domain_or_IP/phpmyadmin
بهعنوان کاربر ریشه یا با نام کاربری و رمز عبور جدیدی که بهتازگی پیکربندی کردهاید، وارد رابط شوید.
بعد از ورود، به رابط کاربری phpMyAdmin هدایت خواهید شد:
تا این قسمت از آموزش نصب phpMyAdmin در Ubuntu توانستیم به phpMyAdmin متصل شویم و با آن تعامل داشته باشیم. حالا فقط کافی است امنیت سیستم خود را برای محافظت در برابر حملات سایبری ارتقا دهیم.
اگر هدفتان از نصب phpMyAdmin روی کلود سرور راهاندازی یک فروشگاه اینترنتی است، مقاله آموزش نصب وردپرس روی اوبونتو نیز برایتان مفید خواهد بود.
گام 3؛ ایمنسازی phpMyAdmin
phpMyAdmin بهدلیل استفاده فراوان از آن، مورد توجه بسیاری از مهاجمان سایبری قرار دارد. ازهمینرو در صورت نصب phpMyAdmin در اوبونتو باید مراقبت بیشتری برای جلوگیری از دسترسی غیرمجاز انجام دهید. برای ایمنسازی نمونه phpMyAdmin میتوانید با استفاده از امکانات احراز هویت و مجوزدهی داخلی .htaccess در Apache یک دروازه (Gateway) جلوی کل برنامه کاربردی قرار دهید.
برای انجام این کار، ابتدا باید با استفاده از فایلهای .htaccess ویرایش فایل پیکربندی Apache را برای نصب phpMyAdmin فعال کنید.
با استفاده از ویرایشگر متن مورد نظرتان، فایل phpmyadmin.conf را که در دایرکتوری پیکربندی آپاچی شما قرار دارد، ویرایش کنید. در این آموزش، ما از ویرایشگر nano استفاده خواهیم کرد:
sudo nano /etc/apache2/conf-available/phpmyadmin.conf
در بخش <Directory /usr/share/phpmyadmin> از فایل پیکربندی، یک دستور AllowOverride All اضافه کنید، به این صورت:
/etc/apache2/conf-available/phpmyadmin.conf
<Directory /usr/share/phpmyadmin>
Options SymLinksIfOwnerMatch
DirectoryIndex index.php
AllowOverride All
. . .
پس از اضافه کردن این خط، فایل را ذخیره کنید و ببندید. اگر از nano برای ویرایش فایل استفاده کردهاید، این کار را با فشار دادن CTRL + X، Y، و سپس ENTER انجام دهید.
برای اعمال تغییرات انجامشده، آپاچی را ریاستارت کنید:
sudo systemctl restart apache2
حالا که استفاده از فایلهای .htaccess را برای برنامه کاربردی خود فعال کردهاید، باید یک فایل .htaccess برای پیادهسازی برخی اقدامات امنیتی ایجاد کنید.
برای موفقیتآمیز بودن این کار، فایل باید در دایرکتوری برنامه کاربردی ایجاد شود. شما میتوانید فایل مورد نیاز را ایجاد کرده و با دسترسی ریشه در ویرایشگر متن خود باز کنید:
sudo nano /usr/share/phpmyadmin/.htaccess
در این فایل، اطلاعات زیر را وارد کنید:
/usr/share/phpmyadmin/.htaccess
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
توضیحات هر یک از خطوط بالا به شرح زیر است:
- AuthType Basic: این خط نوع احراز هویت را مشخص میکند که شما پیادهسازی میکنید. این نوع احراز هویت با استفاده از فایل پسورد، احراز هویت با پسورد پیادهسازی میکند.
- AuthName: این خط برای کادر گفتوگوی (Dialog box) احراز هویت، پیامی تنظیم میکند. شما باید این خط را عمومی نگه دارید تا کاربران غیرمجاز هیچ اطلاعاتی دربارهی آنچه که محافظت میشود، به دست نیاورند.
- AuthUserFile: این خط مکان فایل پسوردی را که برای احراز هویت استفاده خواهد شد، تنظیم میکند. این مکان باید خارج از دایرکتوریهایی باشد که سرویسدهی میشوند. ما به زودی این فایل را ایجاد خواهیم کرد.
- Require valid-user: این خط مشخص میکند که فقط کاربران احراز هویتشده باید به این منبع دسترسی داشته باشند. این همان چیزی است که در واقع از ورود کاربران غیرمجاز جلوگیری میکند.
پس از اتمام کار، فایل را ذخیره کنید و ببندید.
مکان انتخابی شما برای فایل پسورد، /etc/phpmyadmin/.htpasswd بود. حالا میتوانید این فایل را ایجاد کرده و یک کاربر اولیه با استفاده از ابزار htpasswd اضافه کنید:
sudo htpasswd -c /etc/phpmyadmin/.htpasswd username
از شما خواسته میشود تا رمز عبوری برای کاربری که ایجاد میکنید انتخاب کرده و آن را تایید کنید. پس از آن، فایل با پسورد هششدهای که وارد کردهاید، ایجاد میشود.
اگر بخواهید کاربر اضافی وارد کنید، باید این کار را بدون استفاده از فلگ -c انجام دهید، مانند زیر:
sudo htpasswd /etc/phpmyadmin/.htpasswd additionaluser
سپس آپاچی را ریاستارت کنید تا احراز هویت .htaccess فعال شود:
sudo systemctl restart apache2
اکنون، وقتی به زیرپوشه phpMyAdmin دسترسی پیدا کنید، از شما خواسته میشود تا نام کاربری و رمز عبوری را که بهتازگی پیکربندی کردهاید، وارد کنید:
پس از ورود به احراز هویت آپاچی، به صفحه احراز هویت معمولی phpMyAdmin هدایت خواهید شد تا اعتبارنامههای MySQL خود را وارد کنید. با افزودن یک مجموعه اضافی از اعتبارنامههای non-MySQL، یک لایه امنیتی اضافی برای پایگاه داده خود فراهم میکنید. بهاینترتیب آموزش نحوه نصب phpMyAdmin به اتمام میرسد و با خیال راحت میتوانید به مدیریت پایگاه داده خود بپردازید.
مدیریت آسان پایگاه داده با نصب phpMyAdmin روی سرورهای ابری دراک
در این مقاله به آموزش نصب phpMyAdmin روی سرور ابری لینوکس پرداختیم. با انجام مراحل مطرح در این مقاله اکنون phpMyAdmin شما پیکربندی شده و آماده استفاده در سرور اوبونتو است. با استفاده از این رابط، میتوانید پایگاههای داده، کاربران و جداول ایجاد کنید و به انجام عملیات معمولی مانند حذف و اصلاح ساختارها یا دادهها بپردازید. توجه کنید که نصب phpMyAdmin در ویندوز متفاوت از دستورالعمل این مقاله است و در آموزش دیگری به بررسی این موضوع خواهیم پرداخت.
ابر دراک سرورهای ابری لینوکس را با پشتیبانی از توزیعهای مختلفی از جمله اوبونتو، دبیان، آلمالینوکس، راکی و سنتاواس عرضه میکند. چنانچه برای خرید سرور ابری خارج از کشور یا ایران به راهنمایی نیاز دارید، با شماره تلفن 02191014197 تماس بگیرید و سوالاتتان را از تیم پشتیبانی ما بپرسید. اگر کاربر سرویسهای ابری دراک هستید نیز از طریق ارسال تیکت در پنل کاربری میتوانید با تیم پشتیبانی در ارتباط باشید.
منبع: DigitalOcean