皆さま、こんにちは

 

PostgreSQLの導入に続いて「Pgadmin4」を道入します。

(#と$はプロンプトです)

 

1、EPELリポジトリを有効にします。

# dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

 

# dnf config-manager --set-enabled powertools

 ※PowerToolsは全て小文字

 

2、CentOS8にpgAdmin4をインストールする

※前提条件としてPostgreSQLのインストールが完了していること

<<リマインド>>

----------------------------------------------------

# dnf -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

# dnf -qy module disable postgresql

# dnf install -y postgresql13-server

----------------------------------------------------

次のコマンドでpgadmin4をインストールします。

# dnf install pgadmin4

 ※途中でGPG鍵の確認がありますが、yを入力します。

 

3、pgadmin4用にApacheを設定します。

# cd /etc/http/conf.d/

# cp -p pgadmin4.conf.sample pgadmin4.conf

# more pgadmin4.conf

 ※変更の必要ありません。

----------------------------------------------------

LoadModule wsgi_module modules/mod_wsgi.so

WSGIDaemonProcess pgadmin processes=1 threads=25

WSGIScriptAlias /pgadmin4 /usr/lib/python3.6/site-packages/pgadmin4-web/pgAdmin4.wsgi

 

<Directory /usr/lib/python3.6/site-packages/pgadmin4-web/>

    WSGIProcessGroup pgadmin

    WSGIApplicationGroup %{GLOBAL}

    <IfModule mod_authz_core.c>

        # Apache 2.4

        Require all granted

    </IfModule>

    <IfModule !mod_authz_core.c>

        # Apache 2.2

        Order Deny,Allow

        Deny from All

        Allow from 127.0.0.1

        Allow from ::1

    </IfModule>

</Directory>

----------------------------------------------------

 

次にApacheの自動起動を有効にします。

# systemctl enable httpd

 

4、PgAdminの初期設定をします。

pgAdminデータディレクトリを作成します。

# mkdir /var/lib/pgadmin4

# mkdir /var/log/pgadmin4

# chown -R apache:apache /var/lib/pgadmin4

# chown -R apache:apache /var/log/pgadmin4

# cd /usr/lib/python3.6/site-packages/pgadmin4-web/

# cp -p config_distro.py config_distro.py.orig

# vi config_distro.py

----------------------------------------------------

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'

----------------------------------------------------

 

次のコマンドで構成データベースを作成します。

#  dnf -y install python3-bcrypt python3-pynacl  

 ※依存関係で既にインストールされいると思われます。

 

# python3 /usr/lib/python3.6/site-packages/pgadmin4-web/setup.py

NOTE: Configuring authentication for SERVER mode.

 

Enter the email address and password to use for the initial pgAdmin user account:

 

Email address: メールアドレス

Password: 任意のパスワード

Retype password: 任意のパスワード

pgAdmin 4 - Application Initialisation

======================================

 

5、PgAdmin4にアクセスする。

最初にアクセスするとサーバエラーでつながらないため、

Apacheのエラーログを確認する。

----------------------------------------------------

[Fri Jan 01 18:15:45.426513 2021] [wsgi:error] [pid 7434:tid 140092448982784] [remote 192.168.99.106:55789] PermissionError: [Errno 1] Operation not permitted: '/var/lib/pgadmin4/sessions'

 ・

 ・

[Fri Jan 01 18:17:33.678033 2021] [wsgi:error] [pid 7817:tid 139802223372032] [remote 192.168.99.106:55806] PermissionError: [Errno 13] Permission denied: '/var/log/pgadmin4/pgadmin4.log'

----------------------------------------------------

とエラーとなっているので

以下のコマンドで対象ディレクトリをApacheユーザへ変更する。

# chown -R apache:apache /var/lib/pgadmin4/

# chown -R apache:apache /var/log/pgadmin4/

 

「http://サーバIP/pgadmin4/」でアクセスする(先ほどのメールアドレスとパスワードで)

が、DBに接続出来ない場合は、以下を実施

# su - postgres

$ psql -U postgres

psql (13.1)

"help"でヘルプを表示します。

 

postgres=# \password

新しいパスワードを入力してください: postgresDBユーザのパスワード

もう一度入力してください: postgresDBユーザのパスワード

postgres=#

postgres=# \q

 

では