このチュートリアルでは、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要素認証が有効になります。ここでログアウトして再度ログインする場合は、ユーザー名とパスワードに加えて認証コードを入力する必要があります。