一昨日、 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’;
「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
$Httpd テストページ 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