Cách cài đặt và cấu hình pgAdmin 4 ở Chế độ server
pgAdmin là một nền tảng quản trị và phát triển open-souce cho PostgreSQL và các hệ quản trị database liên quan của nó. Được viết bằng Python và jQuery, nó hỗ trợ tất cả các tính năng có trong PostgreSQL. Bạn có thể sử dụng pgAdmin để làm mọi thứ từ viết các truy vấn SQL cơ bản đến giám sát database của bạn và cấu hình kiến trúc database nâng cao.Trong hướng dẫn này, ta sẽ hướng dẫn chi tiết quá trình cài đặt và cấu hình version mới nhất của pgAdmin trên server Ubuntu 18.04, truy cập pgAdmin thông qua trình duyệt web và kết nối nó với database PostgreSQL trên server của bạn.
Yêu cầu
Để hoàn thành hướng dẫn này, bạn cần :
- Server chạy Ubuntu 18.04. Server này phải có user không phải root có quyền sudo, cũng như firewall được cấu hình bằng
ufw
. Để được trợ giúp cài đặt điều này, hãy làm theo Hướng dẫn cài đặt server ban đầu cho Ubuntu 18.04 của ta . - Web server Apache được cài đặt trên server của bạn. Làm theo hướng dẫn của ta về Cách cài đặt Server Web Apache trên Ubuntu 18.04 để cấu hình điều này trên máy của bạn.
- PostgreSQL được cài đặt trên server của bạn. Bạn có thể cài đặt điều này theo hướng dẫn của ta về Cách cài đặt và sử dụng PostgreSQL trên Ubuntu 18.04 . Khi bạn làm theo hướng dẫn này, hãy đảm bảo tạo một role và database mới , vì bạn cần cả hai để kết nối pgAdmin với version PostgreSQL của bạn .
- Python 3 và
venv
đã được cài đặt trên server của bạn. Làm theo Cách cài đặt Python 3 và Cài đặt Môi trường Lập trình trên server Ubuntu 18.04 để cài đặt các công cụ này và cài đặt môi trường ảo.
Bước 1 - Cài đặt pgAdmin và các phụ thuộc của nó
Theo bài viết này, version mới nhất của pgAdmin là pgAdmin 4, trong khi version mới nhất có sẵn thông qua các repository chính thức của Ubuntu là pgAdmin 3. Tuy nhiên, pgAdmin 3 không còn được hỗ trợ nữa và những người bảo trì dự án khuyên bạn nên cài đặt pgAdmin 4. Trong bước này , ta sẽ xem xét quá trình cài đặt version mới nhất của pgAdmin 4 trong môi trường ảo (theo khuyến nghị của group phát triển của dự án) và cài đặt các phụ thuộc của nó bằng apt
.
Để bắt đầu, hãy cập nhật index gói của server của bạn nếu gần đây bạn chưa làm như vậy:
- sudo apt update
Tiếp theo, cài đặt các phụ thuộc sau. Chúng bao gồm libgmp3-dev
, một thư viện số học đa chính xác; libpq-dev
, bao gồm các file tiêu đề và một thư viện tĩnh giúp giao tiếp với phần backend PostgreSQL; và libapache2-mod-wsgi-py3
, một module Apache cho phép bạn lưu trữ các ứng dụng web dựa trên Python trong Apache:
- sudo apt install libgmp3-dev libpq-dev libapache2-mod-wsgi-py3
Sau đó, tạo một vài folder nơi pgAdmin sẽ lưu trữ dữ liệu phiên, dữ liệu lưu trữ và log của nó:
- sudo mkdir -p /var/lib/pgadmin4/sessions
- sudo mkdir /var/lib/pgadmin4/storage
- sudo mkdir /var/log/pgadmin4
Sau đó, thay đổi quyền sở hữu các folder này thành user và group không phải root của bạn. Điều này là cần thiết vì chúng hiện thuộc sở hữu của user root của bạn, nhưng ta sẽ cài đặt pgAdmin từ môi trường ảo do user không phải root của bạn sở hữu và quá trình cài đặt bao gồm việc tạo một số file trong các folder này. Tuy nhiên, sau khi cài đặt, ta sẽ thay đổi quyền sở hữu đối với user và group www-data để nó có thể được cung cấp trên web:
- sudo chown -R sammy:sammy /var/lib/pgadmin4
- sudo chown -R sammy:sammy /var/log/pgadmin4
Tiếp theo, mở môi trường ảo của bạn. Điều hướng đến folder mà môi trường lập trình của bạn đang ở và kích hoạt nó. Thực hiện theo các quy ước đặt tên của hướng dẫn Python 3 yêu cầu , ta sẽ đi đến folder environments
và kích hoạt môi trường my_env
:
- cd environments/
- source my_env/bin/activate
Sau đó, download mã nguồn pgAdmin 4 vào máy của bạn. Để tìm version mới nhất của mã nguồn, hãy chuyển đến trang Download pgAdmin 4 (Python Wheel) . Nhấp vào liên kết cho version mới nhất (v3.4, kể từ khi viết bài này), sau đó trên trang tiếp theo nhấp vào pip đọc liên kết. Thao tác này sẽ đưa bạn đến trang Download trên trang web PostgreSQL. Khi đó, hãy sao chép liên kết file kết thúc bằng .whl
- định dạng gói tích hợp tiêu chuẩn được sử dụng cho các bản phân phối Python. Sau đó, quay lại terminal của bạn và chạy lệnh wget
sau, đảm bảo thay thế liên kết bằng liên kết bạn đã sao chép từ trang PostgreSQL, sẽ tải file .whl
xuống server của bạn:
- wget https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v3.4/pip/pgadmin4-3.4-py2.py3-none-any.whl
Tiếp theo cài đặt gói wheel
, việc thực hiện tham khảo các tiêu chuẩn đóng gói bánh xe. Một thư viện Python, gói này đóng role như một phần mở rộng để xây dựng các bánh xe và bao gồm một công cụ dòng lệnh để làm việc với các file .whl
:
- python -m pip install wheel
Sau đó cài đặt gói pgAdmin 4 bằng lệnh sau:
- python -m pip install pgadmin4-3.4-py2.py3-none-any.whl
Điều đó sẽ chăm sóc cài đặt pgAdmin và các phụ thuộc của nó. Tuy nhiên, trước khi kết nối nó với database của bạn, bạn cần thực hiện một số thay đổi đối với cấu hình của chương trình.
Bước 2 - Cấu hình pgAdmin 4
Mặc dù pgAdmin đã được cài đặt trên server của bạn, vẫn còn một số bước bạn phải thực hiện đảm bảo nó có các quyền và cấu hình cần thiết để cho phép nó phục vụ chính xác giao diện web.
Tệp cấu hình chính của pgAdmin, config.py
, được đọc trước các file cấu hình nào khác. Nội dung của nó được dùng làm điểm tham chiếu cho các cài đặt cấu hình khác có thể được chỉ định trong các file cấu hình khác của pgAdmin, nhưng để tránh các lỗi không lường trước, bạn không nên chỉnh sửa chính file config.py
. Ta sẽ thêm một số thay đổi cấu hình vào một file mới, có tên config_local.py
, file này sẽ được đọc sau file chính.
Tạo file này ngay bây giờ bằng cách sử dụng editor bạn muốn . Ở đây, ta sẽ sử dụng nano
:
- nano my_env/lib/python3.6/site-packages/pgadmin4/config_local.py
Trong editor , hãy thêm nội dung sau:
LOG_FILE = '/var/log/pgadmin4/pgadmin4.log' SQLITE_PATH = '/var/lib/pgadmin4/pgadmin4.db' SESSION_DB_PATH = '/var/lib/pgadmin4/sessions' STORAGE_DIR = '/var/lib/pgadmin4/storage' SERVER_MODE = True
Đây là những gì năm lệnh này làm:
-
LOG_FILE
: điều này xác định file mà log của pgAdmin sẽ được lưu trữ. -
SQLITE_PATH
: pgAdmin lưu trữ dữ liệu liên quan đến user trong database SQLite và chỉ thị này trỏ phần mềm pgAdmin đến database cấu hình này. Vì file này nằm trong folder liên tục/var/lib/pgadmin4/
, dữ liệu user của bạn sẽ không bị mất sau khi bạn nâng cấp. -
SESSION_DB_PATH
: chỉ định folder nào sẽ được sử dụng để lưu trữ dữ liệu phiên. -
STORAGE_DIR
: xác định nơi pgAdmin sẽ lưu trữ dữ liệu khác, như các bản backup và certificate bảo mật. -
SERVER_MODE
: đặt chỉ thị này thànhTrue
để cho pgAdmin chạy ở chế độ Server , trái ngược với chế độ Máy tính để bàn.
Lưu ý mỗi đường dẫn file này trỏ đến các folder bạn đã tạo ở Bước 1.
Sau khi thêm các dòng này, hãy lưu file (nhấn CTRL + X
, tiếp theo là Y
rồi ENTER
). Với các cấu hình đó, hãy chạy tập lệnh cài đặt pgAdmin để đặt thông tin đăng nhập của bạn:
- python my_env/lib/python3.6/site-packages/pgadmin4/setup.py
Sau khi chạy lệnh này, bạn sẽ thấy dấu nhắc yêu cầu địa chỉ email và password của bạn . Đây sẽ là thông tin đăng nhập của bạn khi bạn truy cập pgAdmin sau này, vì vậy hãy nhớ hoặc ghi chú những gì bạn nhập tại đây:
Output. . . Enter the email address and password to use for the initial pgAdmin user account: Email address: sammy@example.com Password: Retype password:
Sau đây, hủy kích hoạt môi trường ảo của bạn:
- deactivate
Nhớ lại các đường dẫn file bạn đã chỉ định trong file config_local.py
. Các file này được giữ trong các folder bạn đã tạo ở Bước 1, hiện thuộc sở hữu của user không phải root của bạn. Tuy nhiên, chúng phải có thể truy cập được bởi user và group đang chạy web server của bạn. Theo mặc định trên Ubuntu 18.04, đây là user và group www-data , vì vậy hãy cập nhật quyền trên các folder sau để cấp quyền sở hữu www-data cho cả hai:
- sudo chown -R www-data:www-data /var/lib/pgadmin4/
- sudo chown -R www-data:www-data /var/log/pgadmin4/
Như vậy, pgAdmin đã được cấu hình đầy đủ. Tuy nhiên, chương trình vẫn chưa được phục vụ từ server của bạn, vì vậy nó vẫn không thể truy cập được. Để giải quyết vấn đề này, ta sẽ cấu hình Apache để phục vụ pgAdmin để bạn có thể truy cập giao diện user của nó thông qua trình duyệt web.
Bước 3 - Cấu hình Apache
Web server Apache sử dụng server ảo để đóng gói chi tiết cấu hình và lưu trữ nhiều domain từ một server duy nhất. Nếu bạn đã làm theo hướng dẫn Apache tiên quyết, bạn có thể đã cài đặt một file server ảo mẫu dưới tên your_domain.conf
, nhưng trong bước này, ta sẽ tạo một file mới mà từ đó ta có thể cung cấp giao diện web pgAdmin.
Để bắt đầu, hãy đảm bảo bạn đang ở trong folder root của bạn :
- cd /
Sau đó, tạo một file mới trong folder /sites-available/
của bạn /sites-available/
tên là pgadmin4.conf
. Đây sẽ là file server ảo của server của bạn:
- sudo nano /etc/apache2/sites-available/pgadmin4.conf
Thêm nội dung sau vào file này, đảm bảo cập nhật các phần được đánh dấu để phù hợp với cấu hình của bạn :
<VirtualHost *> ServerName your_server_ip WSGIDaemonProcess pgadmin processes=1 threads=25 python-home=/home/sammy/environments/my_env WSGIScriptAlias / /home/sammy/environments/my_env/lib/python3.6/site-packages/pgadmin4/pgAdmin4.wsgi <Directory "/home/sammy/environments/my_env/lib/python3.6/site-packages/pgadmin4/"> WSGIProcessGroup pgadmin WSGIApplicationGroup %{GLOBAL} Require all granted </Directory> </VirtualHost>
Lưu file server ảo. Tiếp theo, sử dụng tập lệnh a2dissite
để tắt file server ảo mặc định, 000-default.conf
:
- sudo a2dissite 000-default.conf
Lưu ý: Nếu bạn đã làm theo hướng dẫn Apache yêu cầu , bạn có thể đã tắt 000-default.conf
và cài đặt file cấu hình server ảo mẫu (có tên your_domain.conf
trong yêu cầu ). Nếu đúng như vậy, bạn cần phải tắt file server ảo your_domain.conf
bằng lệnh sau:
- sudo a2dissite your_domain.conf
Sau đó, sử dụng tập lệnh a2ensite
để kích hoạt pgadmin4.conf
server ảo pgadmin4.conf
của bạn. Thao tác này sẽ tạo một softlink từ file server ảo trong folder /sites-available/
đến folder /sites-enabled/
:
- sudo a2ensite pgadmin4.conf
Sau đây, hãy kiểm tra xem cú pháp của file cấu hình của bạn có đúng không:
- apachectl configtest
Nếu file cấu hình của bạn theo thứ tự, bạn sẽ thấy Syntax OK
. Nếu bạn thấy một lỗi trong sản lượng, mở lại pgadmin4.conf
file và kiểm tra lại địa chỉ và file chỉ IP của bạn đường dẫn đều đúng, sau đó chạy lại configtest
.
Khi bạn thấy Syntax OK
trong kết quả của bạn , hãy khởi động lại dịch vụ Apache để nó đọc file server ảo mới của bạn:
- sudo systemctl restart apache2
pgAdmin hiện đã được cài đặt và cấu hình đầy đủ. Tiếp theo, ta sẽ xem xét cách truy cập pgAdmin từ trình duyệt trước khi kết nối nó với database PostgreSQL của bạn.
Bước 4 - Truy cập pgAdmin
Trên máy local của bạn, hãy mở trình duyệt web bạn muốn và chuyển đến địa chỉ IP của server :
http://your_server_ip
Khi đó, bạn sẽ thấy một màn hình đăng nhập tương tự như sau:
Nhập thông tin đăng nhập bạn đã xác định ở Bước 2 và bạn sẽ được đưa đến Màn hình chào mừng của pgAdmin:
Đến đây bạn đã xác nhận bạn có thể truy cập giao diện pgAdmin, tất cả những gì còn lại cần làm là kết nối pgAdmin với database PostgreSQL của bạn. Tuy nhiên, trước khi làm như vậy, bạn cần thực hiện một thay đổi nhỏ đối với cấu hình superuser PostgreSQL của bạn .
Bước 5 - Cấu hình user PostgreSQL của bạn
Nếu bạn đã làm theo hướng dẫn PostgreSQL tiên quyết , bạn nên cài đặt PostgreSQL trên server của bạn với role siêu user và database mới được cài đặt .
Theo mặc định trong PostgreSQL, bạn xác thực với quyền là user database bằng phương pháp xác thực “Giao thức nhận dạng” hoặc “danh tính”. Điều này liên quan đến việc PostgreSQL lấy tên user Ubuntu của client và sử dụng nó làm tên user database được phép. Điều này có thể cho phép bảo mật cao hơn trong nhiều trường hợp, nhưng nó cũng có thể gây ra sự cố trong trường hợp bạn muốn một chương trình bên ngoài, chẳng hạn như pgAdmin, kết nối với một trong các database của bạn. Để giải quyết vấn đề này, ta sẽ đặt password cho role PostgreSQL này sẽ cho phép pgAdmin kết nối với database của bạn.
Từ terminal của bạn, mở dấu nhắc PostgreSQL dưới role siêu user của bạn:
- sudo -u sammy psql
Từ dấu nhắc PostgreSQL, hãy cập nhật profile user để có password mạnh mà bạn chọn:
- ALTER USER sammy PASSWORD 'password';
Sau đó, thoát khỏi dấu nhắc PostgreSQL:
- \q
Tiếp theo, quay lại giao diện pgAdmin 4 trong trình duyệt của bạn và tìm menu Trình duyệt ở phía bên trái. Nhấp chuột phải vào Server để mở menu ngữ cảnh, di chuột qua Tạo và nhấp Server … .
Thao tác này sẽ khiến một cửa sổ bật lên trong trình duyệt của bạn, trong đó bạn sẽ nhập thông tin về server , role và database của bạn .
Trong tab Chung , nhập tên cho server này. Đây có thể là bạn muốn , nhưng bạn có thể thấy hữu ích khi biến nó thành nội dung mô tả. Trong ví dụ của ta , server được đặt tên là Sammy-server-1
.
Tiếp theo, nhấp vào tab Kết nối . Trong lĩnh vực Host name / địa chỉ, nhập localhost
. Cổng phải được đặt thành 5432
theo mặc định, sẽ hoạt động cho cài đặt này, vì đó là cổng mặc định được PostgreSQL sử dụng.
Trong trường Database bảo trì , hãy nhập tên của database bạn muốn kết nối. Lưu ý database này phải được tạo trên server của bạn. Sau đó, nhập tên user và password PostgreSQL mà bạn đã cấu hình trước đó vào các trường Tên user và Mật khẩu tương ứng.
Các trường trống trong các tab khác là tùy chọn và bạn chỉ cần điền chúng vào nếu bạn có ý tưởng cài đặt cụ thể mà chúng bắt buộc phải có. Nhấp vào nút Lưu và database sẽ xuất hiện bên dưới Server trong menu Trình duyệt .
Bạn đã kết nối thành công pgAdmin4 với database PostgreSQL của bạn . Bạn có thể làm bất cứ điều gì từ console pgAdmin mà bạn sẽ làm từ dấu nhắc PostgreSQL. Để minh họa điều này, ta sẽ tạo một bảng ví dụ và điền vào nó một số dữ liệu mẫu thông qua giao diện web.
Bước 6 - Tạo bảng trong Control panel pgAdmin
Từ console pgAdmin, tìm menu Trình duyệt ở bên trái cửa sổ. Nhấp vào dấu cộng ( + ) bên cạnh Server (1) để mở rộng menu dạng cây trong đó. Tiếp theo, nhấp vào dấu cộng ở bên trái của server bạn đã thêm ở bước trước ( Sammy-server-1 trong ví dụ của ta ), sau đó mở rộng Database , tên của database bạn đã thêm ( sammy , trong ví dụ của ta ), sau đó Các schemas (1) . Bạn sẽ thấy một menu dạng cây như sau:
Bấm chuột phải vào mục danh sách Bảng , sau đó di con trỏ qua Tạo và bấm Bảng… .
Thao tác này sẽ mở ra cửa sổ Tạo bảng . Trong tab Chung của cửa sổ này, hãy nhập tên cho bảng. Đây có thể là bạn muốn , nhưng để mọi thứ đơn giản, ta sẽ gọi nó là bảng-01 .
Sau đó, chuyển đến tab Cột và nhấp vào dấu + ở góc trên bên phải của cửa sổ để thêm một số cột. Khi thêm cột, bạn bắt buộc phải cung cấp Tên và Kiểu dữ liệu và bạn có thể cần chọn Độ dài nếu kiểu dữ liệu bạn đã chọn yêu cầu.
Ngoài ra, tài liệu PostgreSQL chính thức nói rằng thêm khóa chính vào bảng thường là phương pháp hay nhất.Khóa chính là một ràng buộc chỉ ra một cột hoặc tập hợp các cột cụ thể được dùng làm mã định danh đặc biệt cho các hàng trong bảng. Đây không phải là bắt buộc, nhưng nếu bạn muốn đặt một hoặc nhiều cột của bạn làm khóa chính, hãy chuyển nút gạt ở ngoài cùng bên phải từ Không sang Có .
Nhấp vào nút Lưu để tạo bảng.
Đến đây, bạn đã tạo một bảng và thêm một vài cột vào đó. Tuy nhiên, các cột chưa chứa bất kỳ dữ liệu nào. Để thêm dữ liệu vào bảng mới của bạn, hãy nhấp chuột phải vào tên của bảng trong menu Trình duyệt , di con trỏ qua Tập lệnh và nhấp vào CHÈN Tập lệnh .
Thao tác này sẽ mở ra một bảng mới trên console . Ở trên cùng, bạn sẽ thấy một INSERT
đã hoàn thành một phần, với các tên bảng và cột thích hợp. Hãy tiếp tục và thay thế dấu chấm hỏi ( ? ) Bằng một số dữ liệu giả, đảm bảo dữ liệu bạn thêm phù hợp với kiểu dữ liệu bạn đã chọn cho mỗi cột. Lưu ý bạn cũng có thể thêm nhiều hàng dữ liệu bằng cách thêm mỗi hàng trong một tập hợp các dấu ngoặc đơn mới, với mỗi tập hợp các dấu ngoặc đơn được phân tách bằng dấu phẩy như trong ví dụ sau.
Nếu bạn muốn, cảm thấy tự do để thay thế một phần hoàn thành INSERT
kịch bản với ví dụ này INSERT
tuyên bố:
INSERT INTO public."table-01"( col1, col2, col3) VALUES ('Juneau', 14, 337), ('Bismark', 90, 2334), ('Lansing', 51, 556);
Nhấp vào biểu tượng tia chớp ( ⚡ ) để thực hiện INSERT
. Để xem bảng và tất cả dữ liệu bên trong bảng, hãy bấm chuột phải vào tên bảng của bạn trong menu Trình duyệt , di con trỏ qua Xem / Chỉnh sửa Dữ liệu và chọn Tất cả các Hàng .
Thao tác này sẽ mở ra một bảng mới khác, bên dưới, trong tab Đầu ra Dữ liệu của bảng dưới, bạn có thể xem tất cả dữ liệu được giữ trong bảng đó.
Như vậy, bạn đã tạo thành công một bảng và điền vào bảng đó một số dữ liệu thông qua giao diện web pgAdmin. Tất nhiên, đây chỉ là một phương pháp bạn có thể sử dụng để tạo bảng thông qua pgAdmin. Ví dụ: có thể tạo và điền một bảng bằng SQL thay vì phương pháp dựa trên GUI được mô tả trong bước này.
Kết luận
Trong hướng dẫn này, bạn đã học cách cài đặt pgAdmin 4 từ môi trường ảo Python, cấu hình nó, phục vụ nó lên web với Apache và cách kết nối nó với database PostgreSQL. Ngoài ra, hướng dẫn này đã đề cập đến một phương pháp được dùng để tạo và điền vào một bảng, nhưng pgAdmin được dùng cho nhiều việc khác ngoài việc chỉ tạo và chỉnh sửa bảng.
Để biết thêm thông tin về cách tận dụng tối đa tất cả các tính năng của pgAdmin, ta khuyến khích bạn xem lại tài liệu của dự án . Bạn cũng có thể tìm hiểu thêm về PostgreSQL thông qua các bài hướng dẫn trên Cộng đồng của ta về chủ đề này.
Các tin liên quan
Cách cài đặt Linux, Apache, MySQL, PHP (LAMP) trên Debian 82018-10-18
Cách cài đặt Linux, Nginx, MySQL, PHP ( LEMP) trên Debian 9
2018-09-13
Cách cài đặt, chạy và kết nối với Jupyter Notebook trên server từ xa
2018-09-12
Cách cài đặt và cấu hình Postfix làm server SMTP chỉ gửi trên Debian 9
2018-09-07
Cách cấu hình BIND làm server DNS Mạng Riêng trên Debian 9
2018-09-06
Thiết lập server ban đầu với Debian 9
2018-09-04
Cách cài đặt Linux, Apache, MariaDB, PHP (LAMP) trên Debian 9
2018-09-04
Cách phát triển ứng dụng Node.js TCP Server bằng PM2 và Nginx trên Ubuntu 16.04
2018-07-23
Cách thiết lập server VPN IKEv2 với StrongSwan trên Ubuntu 18.04
2018-07-16
Cách cấu hình BIND làm server DNS Mạng riêng trên Ubuntu 18.04
2018-07-06