نحوه نصب و پیکربندی pgAdmin4
pgAdmin4 نوعی پلتفرم مدیریت و توسعه منبع باز برای PostgreSQL و سیستم های مدیریت پایگاه داده های مربوط به آن است. این پلتفرم در پایتون و jQuery نوشته شده است و از تمام ویژگی های موجود در PostgreSQL پشتیبانی می کند. در این نوشته به نحوه نصب و پیکربندی آن پرداخته ایم.
نحوه نصب و پیکربندی pgAdmin4
مقدمه
pgAdmin یک پلتفرم مدیریت و توسعه منبع باز برای PostgreSQL و سیستم های مدیریت پایگاه داده مربوط به آن است که در پایتون و jQuery نوشته شده و از تمام ویژگی های موجود در PostgreSQL پشتیبانی می کند. بنابراین می توانید از pgAdmin برای انجام همه کارها، از نوشتن درخواست های اساسی SQL گرفته تا نظارت بر پایگاه داده و پیکربندی معماری پیشرفته پایگاه داده، استفاده کنید.
در این آموزش، ما مراحل نصب و پیکربندی آخرین نسخه pgAdmin را بر روی سرور اوبونتو 18.04، به همراه دسترسی به pgAdmin از طریق مرورگر و اتصال آن به یک پایگاه داده PostgreSQL در سرور را آموزش خواهیم داد.
پیش نیازها
برای تکمیل این آموزش به موارد زیر احتیاج دارید:
- سرور اوبونتو 18.04 را اجرا کند.
- وب سرور Apache بر روی سرور شما نصب شده باشد.
- PostgreSQL روی سرور شما نصب شده باشد.
- پایتون 3 و venv روی سرور شما نصب شده باشند.
مرحله 1 – نصب pgAdmin و وابستگی های آن
جدیدترین نسخه pgAdmin، در حال حاضر pgAdmin4 است، اما جدیدترین نسخه موجود از طریق مخازن رسمی اوبونتو pgAdmin3 است. به هر حال pgAdmin3 دیگر پشتیبانی نمی شود و سازندگان پروژه توصیه می کنند که pgAdmin4 را نصب کنید. در این نوشته ما مراحل نصب آخرین نسخه pgAdmin4 در یک محیط مجازی (همانطوری که توسط تیم توسعه دهنده پروژه توصیه شده است) و نیز نصب وابستگی های آن را با استفاده از apt را آموزش خواهیم داد.
برای شروع، اگر به تازگی ایندکس پکیج سرور خود را به روز رسانی نکرده اید، آن را به روز کنید:
sudo apt update
سپس وابستگی های زیر را نصب کنید. این وابستگی ها شامل libgmp3-dev، یک لایبری حسابگر با دقت بالا؛ libpq-dev که شامل فایل های هدر و یک لایبری استاتیک است که به برقراری ارتباط با پسوند PostgreSQL کمک می کند؛ و libapache2-mod-wsgi-py3 می شوند که یک ماژول Apache است که به شما امکان میزبانی برنامه های وب مبتنی بر پایتون را در Apache می دهد:
sudo apt install libgmp3-dev libpq-dev libapache2-mod-wsgi-py3
در ادامه چند مسیر درست کنید که pgAdmin بتواند داده های جلسه، داده های ذخیره سازی و Logsی مربوط به خود را ذخیره کند:
تصویر یک
سپس، مالکیت این مسیرها ها را به کاربر غیر اصلی و گروه خود تغییر دهید. این کار ضروری است، زیرا در حال حاضر این مسیرها متعلق به کاربر اصلی هستند، اما ما pgAdmin را از طریق یک محیط مجازی که متعلق به یک کاربر غیر اصلی است نصب خواهیم کرد و البته مراحل نصب با برخی از فایل های موجود در این مسیرها سر و کار دارند. به هر حال پس از اینکه نصب انجام شد، مالکیت را به کاربر www-data تغییر خواهیم داد تا بتوان برنامه را از طریق وب ارائه کرد:
تصویر دو
در ادامه محیط مجازی خود را باز کنید. به مسیری که محیط برنامه نویسی شما در آن قرار دارد، بروید و آن را فعال کنید. با دنبال کردن قوانین نام گذاری پیش نیازهای آموزش پایتون 3، به مسیر environments رفته و محیط my_env را فعال خواهیم کرد:
تصویر سه
پس از فعال کردن محیط مجازی، مطمئن شوید که آخرین نسخه pip را بر روی سیستم خود نصب کرده اید. نسخه pip که از طریق مخازن پیش فرض اوبونتو 18.04 در دسترس است، نسخه 9.0.1 است، در حالی که آخرین نسخه آن 21.0.1 است. اگر پکیج pyton3-pip را همانطور که در آموزش پیش نیاز نصب پایتون آمده است نصب کنید، اما آن را به آخرین نسخه ارتقا ندهید، در مرحله بعدی با پیکربندی pgAdmin دچار اشکال خواهید شد.
برای به روزرسانی pip به آخرین نسخه، دستور زیر را اجرا کنید:
تصویر چهار
به دنبال آن، کد منبع pgAdmin4 را بر روی دستگاه خود بارگیری کنید. برای یافتن آخرین نسخه کد منبع، به صفحه بارگیری pgAdmin4 (چرخه پایتون) بروید. روی لینک آخرین نسخه (موقع نوشتن این مقاله، v5.1، بود) کلیک کنید، سپس در صفحه بعدی روی لینک خواندن pip کلیک کنید. از این صفحه مرورگر فایل، لینک فایلی که به . WHL ختم می شود – قالب استاندارد پکیج داخلی ساخته شده برای توزیع های پایتون – را کپی کنید. سپس به ترمینال خود برگردید و دستور wget زیر را اجرا کنید، مطمئن شوید که لینک را با لینکی که از سایت PostgreSQL کپی کرده اید جایگزین می کنید که فایل .whl را در سرور شما بارگیری خواهد کرد:
wget
https://ftp.PostgreSQL.org/pub/pgAdmin/pgAdmin4/v5.1/pip/pgAdmin4-5.1-py3-none-any.whl
در ادامه پکیج wheel را نصب کنید، که مرجع اجرای پکیجینگ استاندارد چرخه است. این پکیج به عنوان لایبری پایتون و افزونه ای برای ساخت چرخه ها عمل می کند و شامل یک ابزار خط فرمان برای کار با فایل های .whl است:
تصویر پنج
سپس طبق دستور زیر پکیج pgAdmin4 را نصب کنید:
تصویر شش
که از pgAdmin نصب شده و وابستگی های آن مراقبت می کند. قبل از اتصال به پایگاه داده، باید چند تغییر در تنظیمات برنامه انجام شود.
مرحله 2 – پیکربندی pgAdmin4
اگرچه pgAdmin بر روی سرور شما نصب شده است، ولی هنوز هم باید چند مرحله را طی کنید تا مطمئن شوید که دارای مجوزها و تنظیمات مورد نیاز برای سرویس دهی صحیح رابط وب است.
config.py، که همان فایل پیکربندی اصلی pgAdmin است، قبل از هر فایل پیکربندی دیگری خوانده می شود. از محتویات آن می توان به عنوان یک نقطه مرجع برای تنظیمات پیکربندی بیشتر استفاده کرد که می تواند سایر فایل های پیکربندی pgAdmin را مشخص کند، اما برای جلوگیری از خطاهای پیش بینی نشده، نباید خود فایل config.py را ویرایش کنید. ما برخی از تغییرات پیکربندی را به فایل جدید config_local.py، اضافه می کنیم که پس از فایل اصلی خوانده می شود.
اکنون این فایل را با استفاده از ویرایشگر متن دلخواه خود درست کنید. در اینجا، ما از nano استفاده کرده ایم:
تصویر هفت
محتوای زیر را به ویرایشگر متن خود اضافه کنید:
تصویر هشت
آنچه این پنج فرمان انجام می دهند، عبارتند از:
- LOG_FILE: این فرمان فایلی را تعریف می کند که در آن log های pgAdmin ذخیره شده اند.
- SQLITE_PATH: pgAdmin داده های مربوط به کاربر را در یک پایگاه داده SQLite ذخیره می کند و این دستورالعمل نرم افزار pgAdmin را به سمت این پایگاه داده پیکربندی هدایت می کند. از آنجا که این فایل همیشه در مسیر /var/lib/pgAdmin4/ قرار دارد، بعد از اینکه برنامه را ارتقا دادید، داده هایتان از دست نخواهد رفت.
- SESSION_DB_PATH: مشخص می کند که کدام مسیر برای ذخیره داده ها استفاده خواهد شد.
- STORAGE_DIR: مشخص می کند که pgAdmin سایر داده ها، از جمله داده های مربوط به بک آپ و گواهی های امنیتی را کجا ذخیره می کند.
- SERVER_MODE: تنظیم این دستورالعمل روی True به pgAdmin می گوید که برخلاف حالت Desktop در حالت سرور اجرا شود.
توجه داشته باشید که هر یک از این مسیرها، به مسیرهایی اشاره می کنند که در مرحله یک درست کردید.
پس از افزودن این خطوط، فایل را ذخیره و پکیج کنید. اگر از nano استفاده کرده اید، می توانید عمل ذخیره سازی را با فشار دادن CTRL + X و سپس Y و سپس ENTER انجام دهید.
با استفاده از این پیکربندی ها، اسکریپت راه اندازی pgAdmin را برای تنظیم اعتبار ورود خود اجرا کنید:
تصویر نهم
پس از اجرای این دستور، بلافاصله مشاهده خواهید کرد که آدرس ایمیل و رمز عبور شما درخواست می شود. این موارد بعدا موقع دسترسی شما به pgAdmin به عنوان اعتبارنامه ورود شما به سیستم عمل می کنند. بنابراین چیزهایی را که در این قسمت وارد می کنید کاملا به خاطر بسپارید و یا اینکه از آنها یادداشت برداری کنید:
تصویر دهم
به دنبال آن، محیط مجازی خود را غیرفعال کنید:
تصویر یازدهم
مسیر فایل هایی را که در فایل config_local.py مشخص کرده اید به خاطر بیاورید. این فایل ها در مسیرهایی نگهداری می شوند که شما در مرحله 1 ایجاد کرده اید و در حال حاضر متعلق به کاربر غیر اصلی شما نیستند. با این وجود کاربر و گروهی که وب سرور شما را اجرا می کنند باید به آنها دسترسی داشته باشند. به طور پیشفرض در اوبونتو 18.04، کاربر و گروه www-data هستند که سرور شما را اجرا می کنند، بنابراین مجوزها را در مسیر های زیر به روز کنید تا به هر دو آنها مالکیت www-data را بدهید:
تصویر دوازدهم
با استفاده از این روش، pgAdmin به طور کامل پیکربندی می شود. با این حال، این برنامه هنوز از طریق سرور شما ارائه نمی شود و بنابراین همچنان غیر قابل دسترسی است. برای حل این مشکل، باید Apache را به صورت pgAdmin پیکربندی کنید تا بتوانید از طریق مرورگر به رابط کاربری آن دسترسی پیدا کنید.
مرحله 3 – پیکربندی Apache
وب سرور Apache از میزبان های مجازی استفاده می کند تا بتواند جزئیات پیکربندی جمع و جور کند و از طریق یک سرور میزبانی بیش از یک دامنه را برعهده بگیرد. اگر پیش نیاز آموزش Apache را دنبال کرده باشید، ممکن است یک نمونه فایل میزبان مجازی را با نام your_domain.conf تنظیم کرده باشید، اما در این مرحله یک فایل جدید درست می کنیم که از طریق آن می توانیم رابط وب pgAdmin را ارائه دهیم.
برای شروع، مطمئن شوید که در مسیر اصلی خود قرار دارید:
cd /
سپس یک فایل جدید به نام pgAdmin4.conf در مسیر /sites-available/ درست کنید. این فایل میزبان مجازی سرور شما خواهد بود:
sudo nano /etc/apache2/sites-available/pgAdmin4.conf
محتوای زیر را به این فایل اضافه کنید، مطمئن شوید که قسمت های برجسته شده را برای تنظیم با پیکربندی خود به روز می کنید:
تصویر سیزدهم
فایل میزبان مجازی را ذخیره و پکیج کنید. بعد، از اسکریپت a2dissite برای غیر فعال کردن فایل میزبان مجازی پیش فرض، 000-default.conf استفاده کنید:
sudo a2dissite 000-default.conf
توجه: اگر پیش نیازهای آموزش Apache را دنبال کرده باشید، ممکن است قبلاً 000-default.conf را غیرفعال کرده باشید و یک نمونه فایل پیکربندی میزبان مجازی (در پیش نیاز به نام your_domain.conf) تنظیم کرده باشید. در این صورت، باید با دستور زیر فایل میزبان مجازی your_domain.conf را غیرفعال کنید:
sudo a2dissite your_domain.conf
سپس از اسکریپت a2ensite برای فعال کردن فایل میزبان مجازی pgAdmin4.conf خود استفاده کنید. این کار باعث می شود که یک لینک نمادین از فایل میزبان مجازی در مسیر / sites-available / به مسیر / sites-enabled / ایجاد شود:
sudo a2ensite pgAdmin4.conf
در ادامه صحیح بودن سینتکس فایل پیکربندی خود را بررسی کنید:
apachectl configtest
اگر فایل پیکربندی شما درست باشد، این پیام را مشاهده می کنید: Syntax OK. اگر خطایی در خروجی مشاهده کردید، فایل pgAdmin4.conf را دوباره باز کنید و دوباره بررسی کنید که آدرس IP و مسیر فایل ها همگی درست هستند، سپس پیکربندی را دوباره انجام دهید.
هنگامی که Syntax OK را در خروجی خود مشاهده کردید، سرویس Apache را مجدداً راه اندازی کنید تا بتواند فایل میزبان مجازی جدید شما را بخواند:
sudo systemctl restart apache2
اکنون pgAdmin به صورت کامل نصب و پیکربندی شده است. در مرحله بعدی، چگونگی دسترسی به pgAdmin از یک مرورگر را قبل از اتصال به پایگاه داده PostgreSQL بررسی خواهیم کرد.
مرحله 4 – دسترسی به pgAdmin
در دستگاه محلی خود، مرورگر دلخواه خود را باز کرده و به آدرس IP سرور خود بروید:
http://your_server_ip
بلافاصله با صفحه عبوری شبیه تصویر زیر روبرو خواهید شد:
تصویر 14
اطلاعات ورود به سیستم را که در مرحله 2 تعریف کرده اید وارد کنید و به این ترتیب به صفحه خوش آمدید pgAdmin منتقل خواهید شد:
تصویر پانزده
اکنون که تأیید کردید می توانید به رابط pgAdmin دسترسی پیدا کنید. تنها کاری که مانده است تا انجام دهید اتصال pgAdmin به پایگاه داده PostgreSQL است. اگرچه قبل از انجام این کار، باید یک تغییر جزئی در پیکربندی مدیر کاربر PostgreSQL خود ایجاد کنید.
مرحله 5 – پیکربندی کاربر PostgreSQL
اگر پیش نیاز آموزش PostgreSQL را دنبال کرده باشید، باید PostgreSQL را هم بر روی سرور خود نصب کرده باشید و نقش کاربری و پایگاه داده ها را هم تنظیم کرده باشید.
به طور پیش فرض در PostgreSQL، با استفاده از روش احراز هویت “Identification Protocol” یا “ident” هویت شما به عنوان کاربر تایید می شود. این امر به این معناست که PostgreSQL نام کاربری اوبونتوی مشتری را گرفته و از آن به عنوان نام کاربری پایگاه داده مجاز استفاده می کند. این کار در اغلب موارد باعث ایجاد امنیت بیشتر می شود، ولی وقتی که می خواهید یک برنامه خارجی مثل pgAdmin را به یکی از پایگاه های داده خود وصل کنید، باعث ایجاد مشکلاتی می شود. برای حل این مشکل برای این نقش PostgreSQL یک رمز عبور تعیین می کنیم که امکان وصل شدن pgAdmin به پایگاه داده را به وجود می آورد.
از ترمینال خود با استفاده از نقش مدیریتی خود، فرمان PostgreSQL اجرا کنید:
sudo -u sammy psql
از طریق فرمان PostgreSQL، مشخصات کاربری را به روز کنید تا بتوانید به انتخاب خودتان یک رمز ورود قوی وارد کنید:
ALTER USER sammy PASSWORD 'password';
سپس از فرمان PostgreSQL خارج شوید:
تصویر شانزده
بعد، از طریق مرورگر خود به رابط pgAdmin4 برگردید و منوی مرورگر را در سمت چپ قرار دهید. بر روی سرورها کلیک راست کنید تا یک منوی زمینه باز شود، ماوس خود را بر روی Create قرار دهید و روی Server کلیک کنید.
تصویر هفده
این کار باعث می شود پنجره ای در مرورگر شما ظاهر شود که می توانید اطلاعات مربوط به سرور، نقش و پایگاه داده خود را وارد آن کنید.
در تب General، نامی را برای این سرور را وارد کنید. این نام می تواند هر چیزی که شما دلتان بخواهد باشد، ولی متوجه خواهید بود که اگر از یک نام توصیفی استفاده کنید، بهتر خواهد بود. در مثال ما، سرور Sammy-server-1 نامگذاری شده است.
تصویر هجده
بعد، روی تب Connection کلیک کنید. در قسمت نام / آدرس میزبان، localhost را وارد کنید. پورت به طور پیش فرض باید روی 5432 تنظیم شود که برای این تنظیم کارآمد است، زیرا این پورت به طور پیشفرض مورد استفاده PostgreSQL است.
در قسمت Maintenance database، نام پایگاه داده ای را که می خواهید به آن متصل شوید وارد کنید. توجه داشته باشید که این پایگاه داده باید از قبل در سرور شما ایجاد شود. سپس، به ترتیب نام کاربری و رمز عبور PostgreSQL را که قبلاً پیکربندی کرده اید، در قسمت های نام کاربری و رمز عبور وارد کنید.
تصویر نوزده
پر کردن قسمت های خالی در سایر تب ها اختیاری است و فقط لازم است که اگر تنظیم خاصی را در نظر داشته باشید، آنها را پر کنید. روی دکمه ذخیره کلیک کنید، و پایگاه داده در زیر سرورها در فهرست مرورگر ظاهر می شود.
اکنون با موفقیت pgAdmin4 را به پایگاه داده PostgreSQL خود متصل کرده اید. حالا می توانید هر کاری را که از طریق PostgreSQL انجام می دادید، از طریق داشبورد pgAdmin هم انجام دهید. برای نشان دادن این موضوع، یک جدول نمونه را درست می کنیم و از طریق رابط وب آن را با برخی از داده های نمونه پر می کنیم.
مرحله 6 – ایجاد یک جدول در داشبورد pgAdmin
از داشبورد pgAdmin، محل منوی مرورگر را در سمت چپ پنجره مشخص کنید. بر روی علامت مثبت (+) در کنار Servers (1) کلیک کنید تا منوی درختی را در آن باز کنید. بعد روی علامت مثبت در سمت چپ سروری که در مرحله قبل اضافه کرده اید (Sammy-server-1 در مثال ما) کلیک کنید. سپس با کلیک کردن بر روی نام پایگاه داده ای که درست کرده اید (sammy در مثال ما) پایگاه داده ها و به دنبال آن Schemas(1) را باز کنید. باید یک منوی درختی شبیه منوی زیر را مشاهده کنید:
تصویر 20
روی گزینه لیست Tables کلیک راست کنید و سپس ماوس خود را بر روی گزینه Create گذاشته و روی Table کلیک کنید.
با این کار یک پنجره Create-Table باز می شود. در زیر تب General این پنجره، یک نام برای جدول وارد کنید. این نام می تواند هر چیزی که دلتان می خواهد باشد، ولی ما برای اینکه آن را ساده نگه داریم، آن را table-01 نامیده ایم.
سپس به تب Columns بروید و بر روی علامت مثبت (+) در گوشه سمت راست بالای پنجره کلیک کنید تا چند ستون اضافه شوند. موقع اضافه کردن هر ستون باید به آن Name و Data type را بدهید. اگر هم Data type از قبل انتخاب شده باشد، ممکن است لازم باشد که یک Length را انتخاب کنید.
علاوه بر این، در اسناد رسمی PostgreSQL آمده است که افزودن کلید اصلی به جدول معمولاً بهترین روش است. کلید اصلی محدودیتی است که نشان دهنده یک ستون خاص یا مجموعه ای از ستون هاست که می توانند به عنوان شناسه ویژه ردیف های جدول استفاده شوند. این کار البته الزامی نیست، اما اگر می خواهید یک یا چند ستون را به عنوان کلید اصلی تنظیم کنید، باید سوئیچ را از انتهای سمت راست از No به Yes تغییر دهید.
برای ایجاد جدول روی دکمه ذخیره کلیک کنید.
در این مرحله، یک جدول درست کرده و چند ستون به آن اضافه کرده اید. با این حال، ستون ها هنوز هیچ داده ای ندارند. برای افزودن داده به جدول جدید خود، روی نام جدول در فهرست مرورگر کلیک راست کنید، ماوس را روی Scripts قرار دهید و روی INSERT Script کلیک کنید.
با این کار یک صفحه جدید روی داشبورد باز می شود. در قسمت بالا یک عبارت INSERT که تا حدودی کامل شده است را به همراه نام جدول و ستون مناسب آن مشاهده می کنید. پیش بروید و علامت های سوال (؟) را با برخی داده های ساختگی جایگزین کنید. مطمئن شوید داده هایی که اضافه می کنید با نوع داده هایی که برای هر ستون انتخاب کرده اید همسو هستند. توجه داشته باشید که می توانید با افزودن هر ردیف در یک مجموعه پرانتز، چندین ردیف داده اضافه کنید. همانطور که در مثال زیر نشان داده شده است هر مجموعه پرانتز با یک کاما از هم جدا شده اند.
در صورت تمایل می توانید اسکریپت INSERT را که نیمه تمام است، با این عبارت نمونه INSERT جایگزین کنید:
برای اجرای دستور INSERT بر روی نماد مثلث (▶) کلیک کنید. توجه داشته باشید که در نسخه های قدیمی pgAdmin، نماد اجرای دستور، یک علامت رعد و برق است (⚡).
برای مشاهده جدول و تمام داده های موجود در آن، یک بار دیگر روی نام جدول خود در فهرست مرورگر راست کلیک کنید، ماوس خود را روی View / Edit Data قرار دهید و همه ردیف ها را انتخاب کنید.
با این کار پانل جدید دیگری باز می شود، در زیر آن، در پایین ترین تب Data Output پانل، می توانید تمام داده های نگهداری شده در جدول را مشاهده کنید.
با انجام این مراحل، با موفقیت جدولی را درست کرده اید که آن را از طریق رابط وب pgAdmin با برخی از داده ها پر کرده اید. البته این فقط یکی از روش هایی است که می توانید برای ایجاد جدول از طریق pgAdmin استفاده کنید. به عنوان مثال، می توان به جای روش مبتنی بر GUI توضیح داده شده در این مرحله، جدول را با استفاده از SQL ایجاد و پر کرد.
نتیجه گیری
در این راهنما، نحوه نصب pgAdmin4 را در یک محیط مجازی پایتون، پیکربندی، سرویس دهی به وب با Apache و نحوه اتصال به پایگاه داده PostgreSQL را آموختید. به علاوه این راهنما فراتر از یک روش است که فقط برای ایجاد و پر کردن یک جدول از آن استفاده شود، در واقع pgAdmin را می توان برای برای کارهایی بیشتر از فقط ایجاد و ویرایش جدول ها به کار گرفت.
برای کسب اطلاعات بیشتر در مورد چگونگی استفاده بیشتر از تمام ویژگی های pgAdmin، توصیه می کنیم مستندات پروژه را مرور کنید. همچنین می توانید از طریق آموزش های انجمن ما در مورد PostgreSQL اطلاعات بیشتری کسب کنید.