GNU/Linux >> Linux の 問題 >  >> Debian

Debian 10 BusterにApache(LAMP)を使用してphpMyAdminをインストールします

このチュートリアルでは、Debian 10 BusterにApache、MariaDB、PHP7.3(LAMPスタック)を使用してphpMyAdminをインストールする方法を紹介します。 phpMyAdminは、PHPで記述された無料のオープンソースのWebベースのデータベース管理ツールです。これは、ユーザーがMySQLまたはMariaDBデータベースを管理するためのグラフィカルなWebインターフェースを提供します。また、phpMyAdminで2要素認証を有効にする方法についても学習します。

phpMyAdminを使用すると、管理者は次のことができます。

  • データベースとテーブルを参照します。
  • データベースの作成、コピー、名前変更、変更、および削除;
  • テーブルの作成、コピー、名前の変更、変更、削除;
  • テーブルのメンテナンスを実行します。
  • フィールドの追加、編集、削除;
  • 複数のクエリであっても、SQLステートメントを実行します。
  • インデックスの作成、変更、削除;
  • テキストファイルをテーブルにロードします;
  • テーブルまたはデータベースのダンプを作成して読み取ります。
  • データをSQL、CSV、XML、Word、Excel、PDF、LaTeX形式にエクスポートします。
  • 複数のサーバーを管理します。
  • MySQLユーザーと権限を管理します;
  • 構成のヒントを使用してサーバー設定とランタイム情報を確認します。
  • MyISAMテーブルの参照整合性を確認します;
  • 例によるクエリ(QBE)を使用して複雑なクエリを自動的に作成します
  • 必要なテーブルを接続する;
  • データベースレイアウトのPDFグラフィックを作成します;
  • データベースまたはそのサブセットをグローバルに検索します。
  • BLOBデータを画像やダウンロードリンクとして表示するなど、事前定義された一連の機能を使用して、保存されたデータを任意の形式に変換します。
  • InnoDBテーブルと外部キーを管理します;

前提条件

このチュートリアルに従うには、ローカルコンピュータまたはリモートサーバーで実行されているDebian10OSが必要です。

VPS(仮想プライベートサーバー)をお探しの場合は、紹介リンクからVultrにアカウントを作成して、50ドルの無料クレジットを取得できます(新規ユーザーのみ)。また、ドメイン名を使用してphpMyAdminを設定する必要がある場合は、NameCheapからドメイン名を購入することをお勧めします。これは、価格が低く、whoisのプライバシー保護が無料で提供されるためです。

Debian 10にLAMPスタックがすでにインストールされていることを前提としています。インストールされていない場合は、次のチュートリアルを確認してください。

  • Debian 10 BusterにLAMPスタック(Apache、MariaDB、PHP7.3)をインストールする方法

Debianにソフトウェアをインストールするときは、root権限が必要であることに注意してください。 sudoを追加できます コマンドの先頭で、またはsu -を使用します rootユーザーに切り替えるコマンド。

それが邪魔にならないように、phpMyAdminのインストールを始めましょう。

ステップ1:Debian10サーバーにphpMyAdminをダウンロードする

phpMyAdminはDebian10ソフトウェアリポジトリに含まれていないため、ソフトウェアを手動でダウンロードする必要があります。 phpMyAdminダウンロードページに移動して、最新の安定バージョンを確認してください。次に、次のコマンドを実行してダウンロードします。

wget https://files.phpmyadmin.net/phpMyAdmin/4.9.0.1/phpMyAdmin-4.9.0.1-all-languages.zip

ヒント:上記のURL形式を使用して、phpMyAdminの最新の安定バージョンをダウンロードできます。 4.9.0.1を最新のバージョン番号に置き換えるだけです。

次にそれを抽出します。

sudo apt install unzip

unzip phpMyAdmin-4.9.0.1-all-languages.zip

phpMyadmin4.9を/usr/share/に移動します ディレクトリ。

sudo mv phpMyAdmin-4.9.0.1-all-languages /usr/share/phpmyadmin

次に、Webサーバーユーザーを作成します(www-data )このディレクトリの所有者として。

sudo chown -R www-data:www-data /usr/share/phpmyadmin

ステップ2:phpMyAdmin用のMariaDBデータベースとユーザーを作成する

次に、MariaDBコンソールにログインし、phpMyAdminのデータベースとユーザーを作成する必要があります。デフォルトでは、DebianのMaraiDBパッケージは unix_socketを使用します ユーザーログインを認証します。これは基本的に、OSのユーザー名とパスワードを使用してMariaDBコンソールにログインできることを意味します。したがって、次のコマンドを実行して、MariaDBのrootパスワードを指定せずにログインできます。

sudo mysql -u root

次に、次のSQLコマンドを使用して、phpMyAdminの新しいデータベースを作成します。このチュートリアルでは、phpmyadminという名前を付けています 、データベースには任意の名前を使用できます。

CREATE DATABASE phpmyadmin DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

次のSQLコマンドは、phpmyadminを作成します データベースユーザーとパスワードを設定し、同時に新しいデータベースのすべての権限を新しいユーザーに付与して、後でphpMyAdminがデータベースに書き込むことができるようにします。赤いテキストを適切なパスワードに置き換えます。

GRANT ALL ON phpmyadmin.* TO 'phpmyadmin'@'localhost' IDENTIFIED BY 'your_preferred_password';

特権テーブルをフラッシュして、MariaDBコンソールを終了します。

FLUSH PRIVILEGES;

EXIT;

ステップ3:必須および推奨のPHPモジュールをインストールします。

次のコマンドを実行して、phpMyAdminが必要または推奨するPHPモジュールをインストールします。

sudo apt install php-imagick php-phpseclib php-php-gettext php7.3-common php7.3-mysql php7.3-gd php7.3-imap php7.3-json php7.3-curl php7.3-zip php7.3-xml php7.3-mbstring php7.3-bz2 php7.3-intl php7.3-gmp

次に、Apacheを再起動します。

sudo systemctl restart apache2

ステップ4:phpMyAdminのApache構成を作成する

サブディレクトリからphpMyAdminWebインターフェイスにアクセスする場合は、次のコマンドを使用して構成スニペットを作成します。

sudo nano /etc/apache2/conf-available/phpmyadmin.conf

次のテキストをファイルに貼り付けます。

# phpMyAdmin default Apache configuration

Alias /phpmyadmin /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin>
    Options SymLinksIfOwnerMatch
    DirectoryIndex index.php

    <IfModule mod_php5.c>
        <IfModule mod_mime.c>
            AddType application/x-httpd-php .php
        </IfModule>
        <FilesMatch ".+\.php$">
            SetHandler application/x-httpd-php
        </FilesMatch>

        php_value include_path .
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
        php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
        php_admin_value mbstring.func_overload 0
    </IfModule>
    <IfModule mod_php.c>
        <IfModule mod_mime.c>
            AddType application/x-httpd-php .php
        </IfModule>
        <FilesMatch ".+\.php$">
            SetHandler application/x-httpd-php
        </FilesMatch>

        php_value include_path .
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
        php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
        php_admin_value mbstring.func_overload 0
    </IfModule>

</Directory>

# Disallow web access to directories that don't need it
<Directory /usr/share/phpmyadmin/templates>
    Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/libraries>
    Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
    Require all denied
</Directory>

ファイルを保存して閉じます。次に、この構成スニペットを有効にします。

sudo a2enconf phpmyadmin.conf

また、phpMyAdmintempフォルダーを作成する必要があります。

sudo mkdir -p /var/lib/phpmyadmin/tmp
sudo chown www-data:www-data /var/lib/phpmyadmin/tmp

変更を有効にするためにApacheをリロードします。

sudo systemctl reload apache2

これで、phpMyAdminWebインターフェイスにアクセスできます

your-server-ip/phpmyadmin

phpMyAdminがローカルのDebianコンピュータにインストールされている場合は、ブラウザのアドレスバーに次のテキストを入力してphpMyAdminWebインターフェイスにアクセスできます。

localhost/phpmyadmin

接続が拒否されたり、完了に失敗した場合は、ファイアウォールがHTTPリクエストを妨げている可能性があります。 iptablesファイアウォールを使用している場合は、次のコマンドを実行してTCPポート80および443を開く必要があります。

sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPT

UFWファイアウォールを使用している場合は、このコマンドを実行してTCPポート80および443を開きます。

sudo ufw allow http
sudo ufw allow https

ステップ5:サブドメインからphpMyAdminにアクセスする

サブドメインを使用してphpMyAdminWebインターフェイスにアクセスしたい場合があります。このようにして、HTTPSを有効にしてトラフィックを暗号化できます。

まず、phpMyAdmin用のApache仮想ホストを作成する必要があります。既存のphpMyAdmin構成スニペットをテンプレートとして使用できます。新しいファイルにコピーしましょう。

sudo cp /etc/apache2/conf-enabled/phpmyadmin.conf /etc/apache2/sites-available/phpmyadmin.conf

次に、Nanoなどのコマンドラインテキストエディタを使用して新しいファイルを編集します。

sudo nano /etc/apache2/sites-available/phpmyadmin.conf

このファイルの先頭に次の行を追加します。 pma.example.comをphpMyAdminの優先サブドメインに置き換えます。このサブドメインのDNSAレコードを作成することを忘れないでください。

<VirtualHost *:80>
    ServerName pma.example.com
    DocumentRoot /usr/share/phpmyadmin

    ErrorLog ${APACHE_LOG_DIR}/pma.error.log
    CustomLog ${APACHE_LOG_DIR}/pma.access.log combined

このファイルの最後に次の行を追加します。

</VirtualHost>

ファイルを保存して閉じます。 (Nanoテキストエディタでファイルを保存するには、Ctrl+Oを押します。 、Enterキーを押して確認します。終了するには、Ctrl+Xを押します 。)次に、この仮想ホストを有効にします。

sudo a2ensite phpmyadmin.conf

この変更を有効にするには、ApacheWebサーバーをリロードします。

sudo systemctl reload apache2

これで、

を介してphpMyAdminWebインターフェイスにアクセスできるようになります。
pma.example.com

ログインフォームにユーザーの資格情報を入力する前に、HTTPSを有効にしましょう。

ステップ6:Apacheを使用してphpMyAdminでHTTPSを有効にする

phpMyadmin Webインターフェースを保護するために、無料のLet’sEncryptTLS証明書をインストールできます。次のコマンドを実行して、Debian 10ソフトウェアリポジトリからLet’s Encryptクライアント(certbot)をインストールします。

sudo apt install certbot python3-certbot-apache

Python3-certbot-apache Certbot用のApacheプラグインです。次のコマンドを実行して、TLS証明書を取得してインストールします。

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --must-staple -d pma.example.com --email [email protected]

説明:

  • –apache: Apacheオーセンティケーターとインストーラーを使用する
  • –同意する :Let'sEncryptの利用規約に同意する
  • –リダイレクト :301リダイレクトを追加します。
  • –hsts :すべてのHTTP応答にStrict-Transport-Securityヘッダーを追加します。
  • –staple-ocsp :OCSPステープリングを有効にします。
  • –ステープルで留める必要があります :OCSPMustStaple拡張機能を証明書に追加します。
  • -d フラグの後には、コンマで区切られたドメイン名のリストが続きます。最大100個のドメイン名を追加できます。
  • –メール :登録と復旧の連絡に使用されるメール。

EFF(Electronic Frontier Foundation)からのメールを受信するかどうかを尋ねられます。 YまたはNを選択すると、TLS証明書が自動的に取得および構成されます。これは、以下のメッセージで示されます。

ステップ7:phpMyAdminセットアップスクリプトを実行する

ブラウザのアドレスバーに次のように入力します。

your-server-ip/phpmyadmin/setup

または

pma.example.com/setup

New Serverをクリックします ボタンをクリックしてサーバーを構成します。

次に、Applyをクリックするだけです。 ボタン。

次に、[表示]ボタンをクリックして、構成ファイルを表示します。

/usr/share/phpmyadmin/内 ディレクトリで、config.inc.phpファイルを作成します。

sudo nano /usr/share/phpmyadmin/config.inc.php

config.inc.phpのコンテンツをコピーします phpMyAdminセットアップページから/usr/share/phpmyadmin/config.inc.phpに貼り付けます ファイル。

ステップ8:phpMyAdminログインエラーのトラブルシューティング

ここで、MariaDBルートアカウントを使用してphpMyAdminにログインしようとすると、次のエラーが表示される場合があります。

#1698 - Access denied for user 'root '@'localhost'

および

mysqli_real_connect(): (HY000/1698): Access denied for user 'root '@'localhost'

ユーザーphpmyadminでログインした場合 、上記のエラーは表示されません。ただし、ユーザーphpmyadmin phpmyadminの管理にのみ使用できます データベース。エラーの原因は、デフォルトでは、MariDBrootユーザーがmysql_native_passwordを使用する代わりに、unix_socketプラグインを介して認証されることです。 プラグイン。この問題を解決するために、別の管理者ユーザーを作成し、新しい管理者ユーザーにすべての権限を付与できます。

コマンドラインからMariaDBサーバーにログインします。

sudo mysql -u root

パスワード認証を使用して管理者ユーザーを作成します。

create user [email protected] identified by 'your-preferred-password';

すべてのデータベースに対するすべての権限を付与します。

grant all privileges on *.* to [email protected] with grant option;

特権をフラッシュして終了します;

flush privileges;

exit;

これで、adminを使用してphpMyAminにログインできます。 アカウントを作成し、すべてのデータベースを管理します。

ステップ9:phpMyAdmin構成ストレージを設定する

これで、phpMyAdminコントロールパネルに警告メッセージが表示されます。

The phpMyAdmin configuration storage is not completely configured, some extended features have been deactivated. Find out why. 
Or alternately go to 'Operations' tab of any database to set it up there.

[理由を調べる]リンクをクリックします。次に、[作成]リンクをクリックして、phpmyadminにテーブルを作成します。 データベース。

ステップ10:/setupディレクトリへのアクセスを制限する

/ setupディレクトリへのアクセスを制限するために、ApacheWebサーバーで基本的なパスワード認証を有効にすることができます。次のコマンドを実行して、ユーザーadminのパスワードを設定します 。 /etc/apache2/htpasswd ファイルはユーザー名とパスワードを保存するために使用されます。

sudo htpasswd -c /etc/apache2/htpasswd admin

次に、phpMyAdminのApache構成ファイルを編集します

sudo nano /etc/apache2/sites-available/phpmyadmin-le-ssl.conf

または

sudo nano /etc/apache2/conf-available/phpmyadmin.conf

次の行を追加します。

# Authorize for setup
<Directory /usr/share/phpmyadmin/setup>
    <IfModule mod_authz_core.c>
        <IfModule mod_authn_file.c>
            AuthType Basic
            AuthName "phpMyAdmin Setup"
            AuthUserFile /etc/apache2/htpasswd
        </IfModule>
        Require valid-user
    </IfModule>
</Directory>

ファイルを保存して閉じます。次に、変更を有効にするためにApacheをリロードします。

sudo systemctl reload apache2

phpMyAdminセットアップスクリプトに再度アクセスすると、ユーザー名とパスワードの入力を求められます。

2要素認証を有効にする

バージョン4.8で追加された機能である2要素認証を有効にすることで、phpMyAdminを強化することもできます。有効にするには、phpMyAdminにログインします。次に、Settingsに移動します ->Two-factor authentication 認証アプリケーション(2FA)を選択します 。

2要素認証の構成をクリックした後 ボタンをクリックすると、QRコードが表示されます。このコードは、スマートフォンの2要素認証アプリでスキャンする必要があります。

Google Authenticatorは人気のある2FAアプリですが、RedHatが開発したオープンソースの2FAアプリであるFreeOTPをお勧めします。 2FAアプリによって生成された認証コードを入力すると、2要素認証が有効になります。ここでログアウトして再度ログインする場合は、ユーザー名とパスワードに加えて認証コードを入力する必要があります。


Debian
  1. Debian 9にApacheを使用してphpMyAdminをインストールします-ステップバイステップのプロセス?

  2. Apache を使用して Ubuntu 20.04 に phpMyAdmin をインストールする

  3. Apache を使用して Debian 11 に phpMyAdmin をインストールする

  1. Debian 10(Buster)にphpMyAdminをインストールする方法

  2. Debian10BusterにSteamPlayでSteamをインストールする方法

  3. Apache を使用して Ubuntu 22.04 に phpMyAdmin をインストールする

  1. NextcloudをDebian10BusterLinuxにインストールする方法

  2. Debian9でApacheを使用してphpMyAdminをインストールして保護する方法

  3. Debian9にApacheを使用してWordPress5をインストールします