一昨日、 phpMyAdmin を 4.7.9 から 4.8.0 に更新した。公式によると、 ‘it is possible to install phpMyAdmin from our own Composer repository.’ ということらしいが、いまだに自分流の手動インストを行っている。ところでその更新後、 phpMyAdmin のルートディレクトリに tmp というフォルダがあるのに気づいてビックリ。もっとも、これは変なものではなかったのだが……。
タグ: phpMyAdmin
さて、「MariaDB でセキュア接続」が出来たので、自鯖の SQL サーバがセキュアになった。というわけで、 phpMyAdmin と WordPress の設定をそれに合わせて変更する。
各バージョンは MariaDB 10.2.9 win 32-bit、 phpMyAdmin 4.7.4、 WordPress 4.8.2 で、サーバ機は Windows 7 32-bit HE SP1 である。
本日, phpMyAdmin4.6.6 にアップデートしたら,ログイン時に “OpenSSL error: error:0607A082:digital envelope routines:EVP_CIPHER_CTX_set_key_length:invalid key length” というのが出るようになった。
おそらく, 👉 $cfg[‘Servers’][$i][‘ssl_verify’] のせいではないかと思うのだが……。
説明部分に, “Disabling the certificate verification defeats purpose of using SSL. This will make the connection vulnerable to man in the middle attacks.” というのが入っているが,自鯖の SQL server と phpMyAdmin は NAT ルータ内にあるし,ユーザも私だけなので,一時しのぎとして, config.inc.php に下記を付け加えて回避することにした。
$cfg['Servers'][$i]['ssl_verify'] = false;
WordPress4.6 が来たよ。
実は, 1 度失敗した。ブラウザのステータスバーに「完了」が出たのに,進行状態を示すページには初めの 2 行しか出てこなくて,更新してください表示も消えてくれない。そんなわけで,再度チャレンジしたら,「Another update is currently in progress.」をいただいてしまった―ウッウッ。
FTP 経由で,サイトを見てみたが, .maintenance ファイルがない。何をすりゃいいんだと Google 先生にお伺いを立てたら, ‘Get rid of Another update is currently in progress’ というのがあった。
チョコチョコとサーバソフトのアップデートをした。
- ActivePerl-5.22.1.2201 から ActivePerl-5.24.0.2400 に。
ActivePerl-5.22.1.2201-MSWin32-x86-64int-299574.msi をインストールしてたんだが,今回から msi 形式がなくなっていたので, ActivePerl-5.24.0.2400-MSWin32-x86-64int-300558.exe をインストールしようとしたのだが,下記のエラーが出てうまくいかなかった。Error 1723. There is a problem with this Windows Installer package. A DLL required for this install to complete could not be run. Contact your support personnel or package vendor. Action CheckInstallDir, entry: CheckInstallDirNoBox, library: C:UsersUserIDAppDataLocalTempMSIXXXX.tmp
覚え書-#28。
PHP7.0.3 が出たので,一昨日アップデートした。 ChangeLog はここね。自鯖は Windows7 HE SP1 x86 なので, php-7.0.3-Win32-VC14-x86.zip をダウンロードした。
新 php.ini-production の変更点はコメント文のみ。 php.ini について,もっと詳しい情報をという方は,「本家のお世話-#109。(PHP 5.5.16 から PHP 5.6.0 への移行)」をご覧ください。
HTTP/2 にかまけているけれども, MariaDB 10.1.8 のインストールについても書いておこう。アップデートではないよ。 PHP5.6.15,phpMyAdmin4.5.1,ActivePerl-5.20.2.2002 も昨日まとめて面倒見たので,それについても触れておく。
9/23 に phpMyAdmin 4.5.0.0, 9/24 に 4.5.0.1, 9/24 に 4.5.0.2 が出ましてん。なんちゅう目白押し。ハハハ。これが ChangeLog さんでやんす。 4.5.0.0 はあれこれと改良されてるが, 4.5.0.1 と 4.5.0.2 は単なる bugfix version ス。
12/5 に phpMyAdmin 4.3.0 が 12/8 に 4.3.1 が出た。で,昨日, 4.2.13.1 から 4.3.1 にアップデートした。 ChangeLog はこんな感じ。 4.3.0 はいろいろと改良されているみたいだが, 4.3.1 は単なる bugfix バージョン。
いつも通り, phpMyAdmin-4.3.1-english.zip をダウンロードして解凍。古い config.inc.php を新しくできた phpmyadmin フォルダにコピーし,すべてをサーバにアップロードする。(「Windows7上にWamp系WebServerを建てる-#3。」参照。)
古い config.sample.inc.php (=Ver.4.2.x) と新しいのを比べたら, 1 行減って, 1 行増えていた。
/* Storage database and tables */ のところ
減った行
// $cfg[‘Servers’][$i][‘designer_coords’] = ‘pma__designer_coords’;
増えた行
// $cfg[‘Servers’][$i][‘central_columns’] = ‘pma__central_columns’;
しょっぱなにログインすると,「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 up it there」が出た。前半は,いつもの環境保管領域に関しての注意書きだが,後半が増えている。要するに,手作業でセットアップをやってもいいよってことダネ。
「Find out why」をクリックすると,右図のように問題点が表示される。また,対処法も書いてある。表題の日本語のみ,ちょっと,変だね。
高度な機能の設定する簡単な方法:
Create the needed tables with the ./examples/create_tables.sql.
作ったテーブルにアクセスできる pma ユーザを作成します。
設定ファイル (config.inc.php) で高度な機能を有効にします。 config.sample.inc.php に
ある設定例をコピーするといいでしょう。
更新した設定ファイルを読み込むために phpMyAdmin にログインし直します。
下記のことをやった。
- 古い config.inc.php のままで,新バージョンに root として,ログオンする。
- phpmyadmin データベース上での, controluser(Default : pma) の特権に ALTER を追加する。
- 新しい, create_tables.sql をインポートする。データベース名 (Default : phpmyadmin) や controluser 名 (Default : pma) をいじっている場合は,インポート前に, create_tables.sql を編集しておく。(「phpMyAdmin 環境保管領域」参照。)
- ログアウト。
- 前の config.inc.php を編集する。
- 削除する行
$cfg[‘Servers’][$i][‘designer_coords’] = ‘pma__designer_coords’; - 追加する行
$cfg[‘Servers’][$i][‘central_columns’] = ‘pma__central_columns’;
- 削除する行
- 再度, root としてログオン。
- テーブル pma__designer_coords を削除する。
以上。
ところで, central columns についての説明が central_columns にあるが,読んでも使い方がよくわからない。どうやったら,記録できるのか???
はやぶさ 2 の打ち上げ,再延期になっちゃいましたねぇ。 12 月 3 日 (水) 13 時 22 分 04 秒の予定だそうです。三度目の正直で,今度こそ晴れてほしいなぁ。
さて, SELinux を有効にしたままで, CentOS7 上に LAMP を構築しようと思う。
LAMP 構築に先立って,以下の 3 4 つをやった。
- $
sudo vi /etc/pam.d/su
下記の行をアンコメントする。
#auth required pam_wheel.so use_uid
–>>auth required pam_wheel.so use_uid
これで, Wheel Group 外のユーザは ‘su’ コマンドを使っても, root にはなれなくなった。 - $
sudo vi /etc/aliases
ファイルの最下行をアンコメントし,ユーザ名を変更する。
#root: marc
–>>root: centos
$sudo newaliases
これで,ユーザ centos が root 宛てのメールを受け取れるようになった。 - タイムゾーンをチェックする。
$sudo timedatectl status
特に,問題なし。
$sudo systemctl status chronyd.service
結果に, “System clock wrong by 1.088336 seconds, adjustment started” というのがあったので, /etc/chrony.conf を編集した。
$sudo vi /etc/chrony.conf
中に “# Use public servers from the pool.ntp.org project.” と書いてあったので, pool.ntp.org に行ってみたら,使い方があった。その指示に従って, ‘+’ の 4 行を追加し, ‘-’ の 4 行を削除した。
+server 0.pool.ntp.org iburst
+server 1.pool.ntp.org iburst
+server 2.pool.ntp.org iburst
+server 3.pool.ntp.org iburst
–server 0.centos.pool.ntp.org iburst
–server 1.centos.pool.ntp.org iburst
–server 2.centos.pool.ntp.org iburst
–server 3.centos.pool.ntp.org iburst
サービスを再起動して,確認。
$sudo systemctl restart chronyd.service
$sudo systemctl status chronyd.service
よくなった。 - パッチ自動更新用。
$sudo yum install yum-cron
$sudo vi /etc/yum/yum-cron.conf
行番号 20:apply_updates = no
–>>apply_updates = yes
$sudo systemctl start yum-cron.service
$sudo systemctl enable yum-cron.service
1 Apache Httpd のインストール 2 MariaDB のインストール 3 PHP のインストール
4 phpMyAdmin のインストール 5 vsftpd のインストール
||Apache Httpd のインストール||
- $
sudo yum install httpd
インストールされたバージョンは, httpd.x86_64 2.4.6-18.el7.centos だった。 - /etc/httpd/conf/httpd.conf を編集する。
$sudo vi /etc/httpd/conf/httpd.conf
‘:set nu
’ で行番号を表示する。- 行番号 42:
Listen 80
–>>Listen Server_global_IP:80
- 行番号 86:
ServerAdmin root@localhost
–>>ServerAdmin My_email_address
- 行番号 95:
#ServerName www.example.com:80
–>>ServerName VPS_DomainName:80
- 行番号 119:
DocumentRoot "/var/www/html"
–>>DocumentRoot "/home/centos/www/html"
- 行番号 124:
<Directory "/var/www">
–>><Directory "/home/centos/www">
- 行番号 131:
<Directory "/var/www/html">
–>><Directory "/home/centos/www/html">
- 行番号 144:
Options Indexes FollowSymLinks
–>>Options FollowSymLinks
- 行番号 151:
AllowOverride None
–>>AllowOverride FileInfo Indexes Limit
うちの場合,この行の変更は, WordPress のためである。 - 行番号 164:
DirectoryIndex index.html
–>>DirectoryIndex index.php index.html
- 行番号 42:
- 注) exstra.conf の場所:
/etc/httpd/conf.d
デフォルトの exstra conf : autoindex.conf, userdir.conf, welcome.conf - 注 2) module.conf の場所:
/etc/httpd/conf.modules.d/
- 注 3) log ファイルのローテートの設定をしていないのだが, Apache Httpd が自動でやってくれているようだ。(サーバを 1 日以上稼働したのち,
/var/log/httpd/
を見たら,日ごとの log になっていた)。いつからこうなったんだろう?それとも, CentOS7 固有の機能なのか? - 通常,ユーザのホームディレクトリのパーミッションは 700 であるが, httpd のアクセスを許可するために, 701 にしておかなくてはいけない。このことは, userdir.conf に書いてあった。
$chmod 701 centos
- DocumentRoot をユーザホームディレクトリに割り当てたので, httpd がアクセスできるように, SELinux の設定を変更する。これについての情報は, httpd_selinux(8) にあった。しかし, CentOS7 で見ようとしたら httpd_selinux(8) が空だったんだが,どうしてだろう。
この際,オンラインの httpd_selinux(8) をご覧あれ。
$sudo setsebool -P httpd_enable_homedirs on
$sudo systemctl start httpd.service
サービスを起動したら,エラーメッセージ “Job for httpd.service failed. See ‘systemctl status httpd.service’ and ‘journalctl -xn’ for details.” が出ちゃった。ユーザディレクトリに ‘www’ と ‘html’ を作るのを忘れてた。ユーザ centos として,以下の作業をやった。
[centos@localhost ~]$mkdir www
[centos@localhost ~]$cd www
[centos@localhost www]$mkdir html
ここで,両ディレクトリの context を確認しておく。
$ls -Z
drwxrwxr-x. test test unconfined_u:object_r:httpd_user_content_t:s0 www
$ls -Z
drwxrwxr-x. test test unconfined_u:object_r:httpd_user_content_t:s0 html - 再度, $
sudo systemctl start httpd.service
- $
sudo firewall-cmd --permanent --zone=public --add-service=http
$sudo firewall-cmd --reload
$sudo systemctl enable httpd.service
注 4) 各 Well-Known-Port の設定は,前もって済んでいるみたいだ。そんなわけでポート 80 についての firewall-cmd はいらない模様。 - http://VPS_DomainName/ にアクセスすると,右の図のようなページが見えるはずである。
||MariaDB のインストール||
- $
sudo yum install mariadb-server mariadb
インストールされたバージョンは, mariadb.x86_64 1:5.5.40-1.el7_0 と mariadb-server.x86_64 1:5.5.40-1.el7_0 だった。 - $
sudo systemctl start mariadb
- $
sudo mysql_secure_installation
Enter current password for root (enter for none): <<-- [Enter] キーを打つ。 Set root password? [Y/n] <<-- [Enter] キーを打つ。 New password: <<-- root のパスワードを設定。 Re-enter new password: <<-- パスワードの確認 = もう一度打つ。 以下の項目については, [Enter] キーを打つ⇩。 Remove anonymous users? [Y/n]
Disallow root login remotely? [Y/n]
Remove test database and access to it? [Y/n]
Reload privilege tables now? [Y/n] - $
sudo systemctl enable mariadb.service
||PHP のインストール||
- $
sudo yum install php php-mysql php-mbstring
インストールされたバージョンは, php.x86_64 5.4.16-23.el7_0.3 , php-mbstring.x86_64 5.4.16-23.el7_0.3 , php-mysql.x86_64 5.4.16-23.el7_0.3 だった。
php.conf はインストール時に,自動的に/etc/httpd/conf.d
に作られる。 - /etc/php.ini を編集する。
$sudo vi /etc/php.ini
‘:set nu
’ で行番号を表示する。- 行番号 243:
output_buffering = 4096
–>>output_buffering = Off
- 行番号 314:
disable_functions =
–>>disable_functions ="shell_exec, suexec, passthru"
- 行番号 375:
expose_php = On
–>>expose_php = Off
- 行番号 811:
allow_url_fopen = On
–>>allow_url_fopen = Off
- 行番号 878:
;date.timezone =
–>>date.timezone ="Asia/Tokyo"
注 5) additional.ini の場所:
/etc/php.d
デフォルトの additional ini: curl.ini, fileinfo.ini, json.ini, mbstring.ini, mysql.ini, mysqli.ini, pdo.ini, pdo_mysql.ini, pdo_sqlite.ini, phar.ini, sqlite3.ini, zip.ini - 行番号 243:
- $
sudo systemctl restart httpd.service
||phpMyAdmin のインストール||
- phpMyAdmin がほしいんだが, base, extras, updates リポジトリにはなかったので, ‘epel’ を追加することにした。
$sudo yum install epel-release
- $
sudo yum install phpmyadmin
インストールされたバージョンは, phpMyAdmin.noarch 4.2.11-1.el7 だった。
phpMyAdmin.conf はインストール時に,自動的に/etc/httpd/conf.d
に作られる。 - /etc/httpd/conf.d/phpMyAdmin.conf を編集する。
$sudo vi /etc/httpd/conf.d/phpMyAdmin.conf
うちの phpMyAdmin.conf は下記のような感じ。
# phpMyAdmin - Web based MySQL browser written in php
#
# Allows only localhost by default
#
# But allowing phpMyAdmin to anyone other than localhost should be considered
# dangerous unless properly secured by SSL
Alias /phpMyAdmin /usr/share/phpMyAdmin
Alias /phpmyadmin /usr/share/phpMyAdmin
<Directory /usr/share/phpMyAdmin/>
AddDefaultCharset UTF-8
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
Require ip my_global_IP
Require host my_mobile_host
</RequireAny>
</IfModule>
</Directory>
<Directory /usr/share/phpMyAdmin/setup/>
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
Require ip my_global_IP
Require host my_mobile_host
</RequireAny>
</IfModule>
</Directory>
- $
sudo systemctl restart httpd.service
||vsftpd のインストール||
- $
sudo yum install vsftpd
インストールされたバージョンは, vsftpd.x86_64 3.0.2-9.el7 だった。 - Edit /etc/vsftpd/vsftpd.conf.
$sudo vi /etc/vsftpd/vsftpd.conf
‘:set nu
’ で行番号を表示する。- 行番号 12:
anonymous_enable=YES
–>>anonymous_enable=NO
- 行番号 82:
#ascii_upload_enable=YES
–>>ascii_upload_enable=YES
- 行番号 83:
#ascii_download_enable=YES
–>>ascii_download_enable=YES
- 行番号 100:
#chroot_local_user=YES
–>>chroot_local_user=YES
- 行番号 101:
#chroot_list_enable=YES
–>>chroot_list_enable=YES
- 行番号 103:
#chroot_list_file=/etc/vsftpd/chroot_list
–>>chroot_list_file=/etc/vsftpd/chroot_list
- 行番号 128: –>>
local_root=www/html
- 行番号 12:
- $
sudo setsebool -P ftp_home_dir on
local_enable=YES
をアンコメントしている場合は, on にするようにと, vsftpd.conf に書いてあった。 - $
sudo vi /etc/vsftpd/chroot_list
chroot_list に ‘admin’ を追加した。 - “chroot_~” をアンコメントして,一般ユーザとして, FTP 経由でアクセスしたら, 500 OOPS: vsftpd: refusing to run with writable root inside chroot() が出た。
で,allow_writeable_chroot=YES
を vsftpd.conf に追加。この情報は, 500 OOPS: vsftpd: refusing to run with writable root inside chroot() Login failed on debian (魚拓です)からもらった。
行番号 104: –>>allow_writeable_chroot=YES
- $
sudo systemctl start vsftpd.service
$sudo systemctl enable vsftpd.service
$sudo firewall-cmd --permanent --zone=public --add-service=ftp
$sudo firewall-cmd --reload