phpMyAdmin®は、MySQL®およびMariaDB®用の無料のオープンソース管理ツールです。主にPHPで記述されたポータブルWebアプリケーションとして、phpMyAdminは、特にWebホスティングサービスで最も人気のあるMySQL管理ツールの1つになりました。
この記事では、CentOS®7、RedHat®EnterpriseLinux®(RHEL)7、およびUbuntu®16.04LTSのWebサーバーにphpMyAdminをインストールして構成する方法について説明します。
phpMyAdminをインストールする前に、サーバーに次のものをインストールする必要があります。
- Apache®やNGINX®などのWebサーバー
- PHP
Webサーバーがインストールされているかどうかを確認します
次の表のコマンドを使用して、Webサーバーがインストールされているかどうかを確認します。
オペレーティングシステム | Webサーバー | コマンド |
---|---|---|
CentOSとRHEL | Apache | rpm -qa | grep httpd |
CentOSとRHEL | NGINX | rpm -qa | grep nginx |
Ubuntuオペレーティングシステム | Apache | dpkg -l | grep apache |
Ubuntuオペレーティングシステム | NGINX | dpkg -l | grep nginx |
PHPがインストールされているかどうかを確認します
次のコマンドを使用して、PHPがCentOSorRHELにインストールされているかどうかを確認します。
rpm -qa | grep php
次のコマンドを使用して、PHPがUbuntuオペレーティングシステムにインストールされているかどうかを確認します。
dpkg -l | grep php
phpMyAdminをインストール
次のセクションの手順を使用して、phpMyAdminをインストールします。
CentOSとRHEL
次のコマンドを使用してphpMyAdminをインストールします。
yum install phpmyadmin
出力は次の例のようになります。
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirror.mhd.uk.as44574.net
* epel: mirror.freethought-internet.co.uk
* extras: mirror.mhd.uk.as44574.net
* updates: mirror.mhd.uk.as44574.net
Resolving Dependencies
--> Running transaction check
---> Package phpMyAdmin.noarch 0:4.4.15.10-3.el7 will be installed
--> Processing Dependency: php-mysqli >= 5.3.7 for package: phpMyAdmin-4.4.15.10-3.el7.noarch
--> Processing Dependency: php-mbstring >= 5.3.7 for package: phpMyAdmin-4.4.15.10-3.el7.noarch
--> Processing Dependency: php-gd >= 5.3.7 for package: phpMyAdmin-4.4.15.10-3.el7.noarch
--> Processing Dependency: php-xmlwriter for package: phpMyAdmin-4.4.15.10-3.el7.noarch
--> Processing Dependency: php-tcpdf-dejavu-sans-fonts for package: phpMyAdmin-4.4.15.10-3.el7.noarch
--> Processing Dependency: php-tcpdf for package: phpMyAdmin-4.4.15.10-3.el7.noarch
--> Processing Dependency: php-php-gettext for package: phpMyAdmin-4.4.15.10-3.el7.noarch
--> Running transaction check
次のコマンドを使用してphpMyAdminをインストールします。
apt-get install php phpmyadmin
出力は次の例のようになります。
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
dbconfig-common dbconfig-mysql fontconfig-config fonts-dejavu-core javascript-common libfontconfig1 libgh3 libjbig0 libjpeg-turbo8 libjpeg8 libjs-jquery libjs-sphinxdoc libjs-underscore libtiff5 libvpx3 libxpm4 libxslt1.1 php-gd php-gettext php-mbstring php-pear php-phpseclib php-tcpdf php-xml php7.0-gd php7.0-mbstring php7.0-xml
Suggested packages:
libgd-tools php-libsodium php-gmp php-imagick www-browser
The following NEW packages will be installed:
dbconfig-common dbconfig-mysql fontconfig-config fonts-devaju-core javascript-common libfontconfig1 libgd3 libjbig0 libjpeg-turbo8 libjpeg8 libjs-jquery libjs-sphinxdoc libjs-underscore libtiff5 libvpx3 libxpm4 libxslt1.1 php-gd php-gettext php-mbstring php-pear php-phpseclib php-tcpdf php-xml php7.0-gd php7.0-mbstring php7.0-xml phpmyadmin
0 upgraded, 28 newly installed, 0 to remove and 6 not upgraded.
Need to get 16.3 MB of archives.
After this operation, 61.5 MB of additional disk space will be used.
Do you want to continue? [Y/n]
Yを押します 次に、 Enterを押します 構成プロセスに進みます。 UbuntuオペレーティングシステムでphpMyAdminを設定するをご覧ください。 詳細な手順については、セクションをご覧ください。
CentOSおよびRHELでphpMyAdminを構成する
WebサーバーにphpMyAdminをインストールしたら、次のセクションの手順を使用してphpMyAdminを構成します。
ApacheWebサーバー
最初に、phpMyAdminにアクセスするために使用するインターネットプロトコル(IP)アドレスを /etc/phpMyAdmin/config.inc.phpに追加する必要があります。 構成ファイル。
-
/etc/phpMyAdmin/config.inc.phpを開きます テキストエディタでファイルします。
-
<IfModule !mod_authz_core.c>
の行で始まるセクション 、次の例に示すようにIPアドレスを追加します。<IfModule !mod_authz_core.c> # Apache 2.2 Order Deny,Allow Deny from All Allow from 127.0.0.1 Allow from ::1 Allow from Require ip 94.236.7.190 </IfModule> </Directory>
-
ファイルを保存して閉じます。
phpMyAdminインストールの標準URLはhttps:// ipaddress / phpMyAdminです。 、ここで ipaddress 前のセクションで構成ファイルに追加したIPアドレスです。 URLを変更したい場合は、エイリアスを設定できます。
-
/etc/httpd/conf.d/phpMyAdmin.confを開きます テキストエディタでファイルします。
-
Alias
で始まる行を検索します/phpMyAdmin
を変更します 次の例に示すように、選択したエイリアスに:Alias /NewName /usr/share/phpMyAdmin Alias /newname /usr/share/phpMyAdmin
-
ファイルを保存して終了します。
phpMyAdminで使用するMySQLまたはMariaDBデータベースサーバーがWebサーバーと同じサーバー上にない場合は、データベース構成ファイルを編集してデータベースサーバーの場所を定義する必要があります。
2つの構成オプションがあります:
- MySQLホストまたはIPアドレス
- MySQL/MariaDBポート
次の手順を使用して、データベースサーバーの場所を定義します。
-
/etc/phpMyAdmin/config.inc.phpを開きます テキストエディタでファイルします。
-
次の例に示すようにファイルを編集します。
$cfg['Servers'][$i]['host'] = 'localhost'; // MySQL hostname or IP address $cfg['Servers'][$i]['port'] = ''; // MySQL port - leave blank for default port $cfg['Servers'][$i]['socket'] = ''; // Path to the socket - leave blank for default socket $cfg['Servers'][$i]['connect_type'] = 'tcp'; // How to connect to MySQL server ('tcp' or 'socket') $cfg['Servers'][$i]['extension'] = 'mysqli'; // The php MySQL extension to use ('mysql' or 'mysqli') $cfg['Servers'][$i]['compress'] = FALSE; // Use compressed protocol for the MySQL connection // (requires PHP >= 4.3.0) $cfg['Servers'][$i]['controluser'] = ''; // MySQL control user settings // (this user must have read-only $cfg['Servers'][$i]['controlpass'] = ''; // access to the "mysql/user" // and "mysql/db" tables).
-
ファイルを保存して終了します。
変更を公開するには、Webエンジンデーモンの構文を確認してから、正常に再起動または再ロードする必要があります。
次のコマンドを使用して構文を確認します。
apachectl configtest
構成ファイルにエラーがない場合は、Syntax OK
が表示されます。 出力で。
次のコマンドを使用して、ApacheWebサーバーをリロードします。
CentOSおよびRHEL6
service httpd graceful
CentOSおよびRHEL7
systemctl status httpd
次のコマンドを使用して、httpdサービスのステータスをチェックし、期待どおりに機能していることを確認します。
CentOSおよびRHEL6
service httpd status
CentOSおよびRHEL7
systemctl status httpd
これで、次の画像に示すように、WebブラウザからphpMyAdminを表示できるようになります。
NGINXWebサーバー
NGINXでは、phpMyAdminパッケージに構成ファイルが付属していないため、phpMyAdmin構成ファイルを指すサーバーブロックを作成する必要があります。
-
テキストエディタを開き、ファイル /etc/nginx/conf.d/phpMyAdmin.confを作成します 。
-
次の構成設定を入力します。
server { listen 80; server_name 95.138.162.233; root /var/www; location /phpMyAdmin { root /usr/share/; index index.php; # auth_basic "phpMyAdmin Login"; # uncomment if using .htaccess & .htpasswd security # auth_basic_user_file /etc/nginx/.pma_pass; # uncomment if using .htaccess & .htpasswd security location ~\.php$ { try_files $uri =404; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /etc/nginx/fastcgi_params; } location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { root /usr/share/; } } location /phpmyadmin { rewrite ^/* /phpMyAdmin last; } }
-
ファイルを保存して終了します。
変更を公開するには、Webエンジンデーモンの構文を確認してから、正常に再起動または再ロードする必要があります。
次のコマンドを使用して、構文を確認します。
nginx -t
構成ファイルにエラーがない場合は、Syntax OK
が表示されます。 出力で。
次のコマンドを使用して、NGINXWebサーバーをリロードします。
CentOSおよびRHEL6
service nginx graceful
CentOSおよびRHEL7
systemctl reload nginx
次のコマンドを使用して、NGINXサービスのステータスをチェックし、期待どおりに機能していることを確認します。
CentOSおよびRHEL6
service nginx status
CentOSおよびRHEL7
systemctl status nginx
これで、次の画像に示すように、WebブラウザからphpMyAdminを表示できるようになります。
UbuntuオペレーティングシステムでphpMyAdminを構成します
次のセクションの手順を使用して、UbuntuオペレーティングシステムでphpMyAdminを構成します。
ApacheWebサーバー
インストールプロセスにより、phpMyAdminApache構成ファイルが/ etc / apache2 / conf-enabled /に追加されます。 ディレクトリ。自動的に読み取られます。あなたがする必要がある唯一のことはmbstring
を有効にすることです 次のコマンドを実行して実行できるPHP拡張機能:
sudo phpenmod mbstring
phpMyAdminをインストールすると、次の画像に示すように、パッケージ構成画面が表示されます。
スペースバーを使用してapache2を選択します 、タブを押します OKを選択します 、次に Enterを押します 。
インストールプロセスは、dbconfig-common
を使用してデータベースforphpMyAdminを構成するかどうかの確認を求める別の構成画面が表示されるまで続きます。 。
はいを選択します 、次に Enterを押します 。
データベース管理者パスワードの入力を求められます。パスワードを入力し、タブを押します OKを選択します 、次に Enterを押します 。
次に、phpMyAdminアプリケーション自体のパスワードを入力し、タブを押します。 OKを選択します 、次に Enterを押します 。
OKを選択してパスワードを確認します 、次に Enterを押します 。
インストールプロセスが完了すると、phpMyAdmin構成ファイルが /etc/apache2/conf-enabled/phpmyadmin.confに追加されます。 。
インストールの完了後にこのファイルが存在しない場合は、 /etc/phpmyadmin/apache.confからコピーできます。 / etc / apache2 /conf-enabledへ 。そのファイルが存在しない場合は、次の設定でphpMyAdminの仮想ホストを作成する必要があります。
server {
listen 80;
server_name example.com www.example.com;
root /var/www/vhosts/example.com;
..
location /phpMyAdmin {
root /usr/share/;
index index.php;
# auth_basic "phpMyAdmin Login"; # uncomment if using .htaccess & .htpasswd security
# auth_basic_user_file /etc/phpMyAdmin/.phpmyadmin-htpasswd; # uncomment if using .htaccess & .htpasswd security
location ~\.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /usr/share/;
}
}
location /phpmyadmin {
rewrite ^/* /phpMyAdmin last;
}
...
}
phpMyAdminを再構成する必要がある場合は、いつでも次のコマンドを使用できます。
dpkg-reconfigure phpmyadmin
phpMyAdminで管理するデータベースサーバーがリモートの場合は、phpMyAdminを別の方法で構成する必要があります。構成ファイルは/etc / phpmyadminにあります ディレクトリ。メインの構成ファイルは/etc/phpmyadmin/config.inc.phpです。 、phpMyAdminにグローバルに適用される構成オプションが含まれています。
phpMyAdminを使用して別のサーバーでホストされているMySQLデータベースを管理するには、 /etc/phpmyadmin/config.inc.phpを開きます。 テキストエディタで次の行を編集します:
古い行 | 改行 |
---|---|
$cfg['Servers'][$i]['host'] = '$dbserver'; | $cfg['Servers'][$i]['host'] = '192.168.71.21'; |
注: $dbserver
を置き換えます 実際のリモートデータベースサーバー名またはIPアドレスを使用します。また、phpMyAdminホストにリモートデータベースにアクセスするための権限があることを確認してください。
編集する必要のある他の構成ファイルは、 /etc/phpmyadmin/apache.confです。 。このファイルは、 /etc/apache2/conf-available/phpmyadmin.confにシンボリックリンクされています 。有効にすると、phpMyAdminサイトにサービスを提供するようにApache2を設定するために使用されます。このファイルには、PHP、ディレクトリ権限などをロードするためのディレクティブが含まれています。
次のコマンドを実行して構成ファイルを有効にしてから、サービスをリロードします。
sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf sudo a2enconf phpmyadmin.conf sudo systemctl reload apache2.service
phpMyAdminがクライアントコンピューターにインストールされたので、MySQLまたはMariaDBデータベースがインストールされているリモートサーバーに接続します。ファイル/etc/mysql/mysql.conf.d/mysql.cnfを開きます 次の行を編集します:
bind-address = 0.0.0.0
0.0.0.0
を置き換えます リモートサーバーのIPアドレスを使用して、ファイルを保存して終了します。
次のコマンドを実行して、rootユーザーがクライアントコンピューターからサーバーにアクセスできるようにします。
sudo mysql -u root -p GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.71.20' IDENTIFIED BY 'root_password_here' WITH GRANT OPTION;
IPアドレスをリモートサーバーのアドレスに置き換え、root_password_here
rootユーザーのパスワードを使用します。
構成設定を編集したら、ブラウザを開いて https:// clientPC / phpmyadminに移動します 、クライアントコンピュータのIPアドレスまたはホスト名を使用します。クライアントのphpMyAdminWebポータルからサーバーにリモートでログオンできるはずです。
Webサーバーをリロードします
構成ファイルに変更を加えるには、まずファイルの構文を確認してから、Webサーバーを正常に再起動またはリロードする必要があります。
次のコマンドを使用して、構成ファイルの構文を確認します。
apache2ctl configtest
次に、次のコマンドを実行してApacheWebサーバーをリロードします。
systemctl reload apache2
次のコマンドを実行して、サービスのステータスをチェックし、期待どおりに機能していることを確認します。
system status apache2
これで、次の画像に示すように、WebブラウザからphpMyAdminを表示できるようになります。
NGINXWebサーバー
phpMyAdminをインストールすると、次の画像に示すように、パッケージ構成画面が表示されます。
スペースバーを使用してapache2を選択します 、タブを押します OKを選択します 、次に Enterを押します 。
インストールプロセスは、dbconfig-common
を使用してデータベースforphpMyAdminを構成するかどうかの確認を求める別の構成画面が表示されるまで続きます。 。
はいを選択します 、次に Enterを押します 。
データベース管理者パスワードの入力を求められます。パスワードを入力し、タブを押します OKを選択します 、次に Enterを押します 。
次に、phpMyAdminアプリケーション自体のパスワードを入力し、タブを押します。 OKを選択します 、次に Enterを押します 。
OKを選択してパスワードを確認します 、次に Enterを押します 。
インストールプロセスが完了したら、次の場所にphpMyAdminconfigurationファイルを作成する必要があります: /etc/nginx/sites-enabled/phpmyadmin.conf 。
ファイルに次の情報を入力して保存します:
server {
listen 80;
server_name 95.138.162.233;
root /var/www;
location /phpmyadmin {
root /usr/share/;
index index.php;
try_files $uri $uri/ =404;
# auth_basic "phpMyAdmin Login"; # uncomment if using .htaccess & .htpasswd security
# auth_basic_user_file /etc/nginx/.pma_pass; # uncomment if using .htaccess & .htpasswd security
location ~ ^/phpmyadmin/(doc|sql|setup)/ {
deny all;
}
location ~ /phpmyadmin/(.+\.php)$ {
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params; include snippets/fastcgi-php.conf;
}
}
}
phpMyAdminファイルは/usr / share / phpmyadmin /にあります 上記の構成は、訪問者が https:// ip_address / phpmyadminに入るとNGINXに通知します。 ブラウザのアドレスバーに、 index.phpが表示されます。 / usr / share / phpmyadmin /のファイル ディレクトリを作成して表示します。
Webサーバーをリロードします
構成ファイルに変更を加えるには、まずファイルの構文を確認してから、Webサーバーを正常に再起動またはリロードする必要があります。
次のコマンドを使用して、構成ファイルの構文を確認します。
nginx -t
次に、次のコマンドを実行してApacheWebサーバーをリロードします。
RHELおよびCentOS6
service nginx graceful
RHElおよびCentOS7
systemctl reload nginx
次のコマンドを実行して、サービスのステータスをチェックし、期待どおりに機能していることを確認します。
RHELおよびCentOS6
service nginx status
RHELおよびCentOS7
systemctl status nginx
これで、次の画像に示すように、WebブラウザからphpMyAdminを表示できるようになります。
追加のセキュリティを構成する(オプション)
htpasswd
HTTPユーザーの基本認証用のユーザー名とパスワードを格納するフラットファイルを作成および更新するために使用されます。 htpasswd
の場合 ファイルにアクセスできず(出力ファイルに書き込んだり、更新するためにファイルを読み取ったりすることはできません)、エラーステータスを返し、変更を加えません。
次のセクションの手順を使用して、phpMyAdminを実行しているWebサーバーで基本認証を設定します。
ApacheWebサーバー
デフォルトでは、Apacheは.htaccess
の使用を許可していません 。 .htaccess
を許可するようにApacheを設定する必要があります ベースの認証。
テキストエディタでApache構成ファイルを開き、<Directory "/var/www/html">
で始まるセクションを見つけます。 。
RHELおよびCentOSの場合、構成ファイルは /etc/httpd/conf/httpd.conf 。
Ubuntuオペレーティングシステムの場合、構成ファイルは /etc/apache2/conf/httpd.confです。 。
行をAllowOverride none
から変更します AllowOverride AuthConfig
へ 。
注 :この行にAllowOverride All
と表示されている場合 、その後は変更は必要ありません。
ファイルを保存して閉じます。
htpasswd
コマンドは、Apacheユーザーの基本認証用のユーザー名とパスワードを格納するファイルを作成および更新するために使用されます。次のコマンドを使用して、各ユーザーのユーザー名と暗号化されたパスワードを保存する隠しファイルを作成します。
htpasswd -c /etc/phpMyAdmin/.phpmyadmin-htpasswd username
ユーザーを作成したら、次のコマンドを実行して、 /etc/phpMyAdmin/.phpmyadmin-htpasswdのユーザー名とパスワードを確認します。 ファイル:
cat /etc/phpMyAdmin/.phpmyadmin-htpasswd
出力は次の例のようになります。
user1:$apr1$0r/2zNGG$jopiWY3DEJd2FvZxTnugJ/
user2:$apr1$07FYIyjx$7Zy1qcBd.B8cKqu0wN/MH1
次に、apache
を許可する必要があります .htpasswd
を読み取るユーザー 次のコマンドを実行してファイルを作成します。
chown apache:apache /etc/phpMyAdmin/.phpmyadmin-htpasswd
chmod 0660 /etc/phpMyAdmin/.phpmyadmin-htpasswd
最後に、phpMyAdminconfigurationファイルから次の行のコメントを解除する必要があります。
# auth_basic "phpMyAdmin Login"; # uncomment if using .htaccess & .htpasswd security
# auth_basic_user_file /etc/phpMyAdmin/.phpmyadmin-htpasswd; # uncomment if using .htaccess & .htpasswd security
NGINXWebサーバー
htpasswd
コマンドは、Apacheユーザーの基本認証用のユーザー名とパスワードを格納するファイルを作成および更新するために使用されます。次のコマンドを使用して、各ユーザーのユーザー名と暗号化されたパスワードを保存する隠しファイルを作成します。
htpasswd -c /etc/nginx/.pma_pass username
ユーザーを作成したら、次のコマンドを実行して、 /etc/nginx/.pma_passにユーザー名とパスワードを表示します。 ファイル:
cat /etc/nginx/.pma_pass
出力は次の例のようになります。
user1:$apr1$0r/2zNGG$jopiWY3DEJd2FvZxTnugJ/
user2:$apr1$07FYIyjx$7Zy1qcBd.B8cKqu0wN/MH1
次に、apache
を許可する必要があります .htpasswd
を読み取るユーザー 次のコマンドを実行してファイルを作成します。
chown nginx:nginx /etc/nginx/.pma_pass
chmod 0660 /etc/nginx/.pma_pass
最後に、phpMyAdminconfigurationファイルから次の行のコメントを解除する必要があります。
# auth_basic "phpMyAdmin Login"; # uncomment if using .htaccess & .htpasswd security
# auth_basic_user_file /etc/phpMyAdmin/.phpmyadmin-htpasswd; # uncomment if using .htaccess & .htpasswd security