あけましておめでとうございます。
皆様,本年もよろしくお願いいたします。
新しい年が皆様にとって素晴らしい年でありますように!
おかげさまで、昨年も1月のトンデモ風邪を除いては,元気に過ごせました。今年も,生きているわが身を素直に喜べる年であることを祈っております。
さくらの VPS のお試し期間は, 12/2 までだったのだが,まだやりたいことを残しているので,続けて使っている。月払いで,しばらく続けてみるつもりである。
今回は,「WordPress のインストール」について書く。試される場合は,当然ながら,前もって,初めての VPS #1 ,初めての VPS #2 ,初めての VPS #3 は完了していないといけないです。まずは Wheel Group User (うちの場合は centos )として―言い換えると root 権限のユーザということ―インストールする。
注)||SELinux と WordPress|| (httpd_selinux(8) 参照)
sudo setsebool -P httpd_can_network_connect on
sudo setsebool -P httpd_anon_write on
sudo semanage fcontext -a -t public_content_rw_t
"/path/to/wp-content/uploads(/.*)?"
sudo /sbin/restorecon -RF /path/to/wp-content/uploads
||Wheel Group User として WordPress をインストール||
——————–
mkdir tmp
chmod 707 tmp
tmp はダウンロードファイル用である。
cd tmp
sudo yum install wget
wget https://ja.wordpress.org/wordpress-4.0-ja.tar.gz
tar xzvf wordpress-4.0-ja.tar.gz
rsync -avP ~/tmp/wordpress/ ~/www/html/wp/
mkdir ~/www/html/wp/wp-content/uploads
chmod 707 uploads
sudo semanage fcontext -a -t public_content_rw_t
"/home/centos/www/html/wp/wp-content/uploads(/.*)?"
sudo /sbin/restorecon -RF /home/centos/www/html/wp/wp-content/uploads
——————–
define('FTP_USER', 'username');
define('FTP_PASS', 'password');
define('FTP_HOST', 'VPS_DomainName');
この時点で, PHP は DSO (Apache 2.0 Handler) で動いている。で,上の手順後,大部分の WordPress のファイルのオーナー/グループは ‘centos:centos’ になっているが,ダッシュボードからアップロードしたメディアファイルだけは, ‘apache:apache’ である。このせいで, FTP クライアントから,メディアファイルの編集ができない。バックアップはできるんだが。まあ, ‘centos‘ としてなら, SSH 経由で ‘chown’ が使えるけどね。
このことは,一般ユーザの場合に,より問題となると思う。続いて,一般ユーザとして,インストールする話を書く。
||一般ユーザとして WordPress をインストール||
当然ながら,サーバサイドの作業は,一般ユーザではできない。 centos として行う。
sudo adduser normuser1
sudo passwd normuser1
sudo chmod 701 /home/normuser1
sudo vi /etc/httpd/conf.d/userdir.conf
参考 URL: UserDir ディレクティブ
UserDir disabled
の次行に UserDir enabled normuser1
を追加。#UserDir public_html
の次行に UserDir www/html
を追加。<Directory "/home/*/public_html">
<Directory "/home/*/www/html">
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
Options MultiViews SymLinksIfOwnerMatch IncludesNoExec
su - normuser1
mkdir www
cd www
mkdir html
id -a normuser1
exit
sudo systemctl restart httpd.service
sudo gpasswd -a sennari apache
id -a normuser1
define('FTP_USER', 'username');
define('FTP_PASS', 'password');
define('FTP_HOST', 'VPS_DomainName');
上記終了後, WordPress 4.0 を 4.1 にアップグレードした。問題なし。ところが, uploads フォルダは作成済みでパーミッションを 707 にしてあったにも関わらず,メディアのアップロードができなかった。そんなわけで,下記のような手直しをした。
sudo chown -R normuser1:apache
/home/normuser1/www/html/wp/wp-content/uploads
sudo semanage fcontext -a -t public_content_rw_t
"/home/normuser1/www/html/wp/wp-content/uploads(/.*)?"
sudo restorecon -RF /home/sennari/www/html/wp/wp-content/uploads
さて,いまひとつの疑問がある。どうして WordPress は upgrades と メディアアップロードで違う方法をとっているのだろうか。メディアについても upgrades と同じ方法でやってくれれば,こんなことは起こらないと思うのに。 PHP に詳しくないのでよくわからないが,おんなじ方法を使うとなんかまずいことがあるんかいな?
そんなこんなで, suEXEC サポートに取り組んでみようかという気になっている。
でもって,今日は左図の鳥を見た。シロハラに似ている気がするが,どうだろうか。ちょっと,細身の気もするが,あってますかね?
話は変わって,アップデートメモ。昨日,下記のソフトをアップデートした。サーバの OS は Win7 HP SP1 x86 である。
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 にログインし直します。
下記のことをやった。
以上。
ところで, central columns についての説明が central_columns にあるが,読んでも使い方がよくわからない。どうやったら,記録できるのか???
はやぶさ 2 くんの打ち上げ,無事,終わりましたね。昨日は,ずっと, YouTube にかじりついていました。皆さんは,どうなさってましたか。
昨日の録画は, JAXA のチャンネルで視聴できます。「小惑星探査機「はやぶさ2」打ち上げ中継」
帰還は, 2020 年の予定です。はるかなる旅路です。今回は,あまりニュースにならないといいですね。エッと,思われるでしょうが,帰還まであまりニュースにならないということは,探査が滞りなく進むということですから。
何事もなく探査を進め,元気に,オーストラリアの予定地に帰ってきてほしいものです。
はやぶさ 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
sudo vi /etc/aliases
#root: marc
–>> root: centos
sudo newaliases
sudo timedatectl status
sudo systemctl status chronyd.service
sudo vi /etc/chrony.conf
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
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
sudo vi /etc/httpd/conf/httpd.conf
:set nu
’ で行番号を表示する。
Listen 80
–>> Listen Server_global_IP:80
ServerAdmin root@localhost
–>> ServerAdmin My_email_address
#ServerName www.example.com:80
–>> ServerName VPS_DomainName:80
DocumentRoot "/var/www/html"
–>> DocumentRoot "/home/centos/www/html"
<Directory "/var/www">
–>> <Directory "/home/centos/www">
<Directory "/var/www/html">
–>> <Directory "/home/centos/www/html">
Options Indexes FollowSymLinks
–>> Options FollowSymLinks
AllowOverride None
–>> AllowOverride FileInfo Indexes Limit
DirectoryIndex index.html
–>> DirectoryIndex index.php index.html
/etc/httpd/conf.d
/etc/httpd/conf.modules.d/
/var/log/httpd/
を見たら,日ごとの log になっていた)。いつからこうなったんだろう?それとも, CentOS7 固有の機能なのか?chmod 701 centos
sudo setsebool -P httpd_enable_homedirs on
sudo systemctl start httpd.service
mkdir www
cd www
mkdir html
ls -Z
ls -Z
sudo systemctl start httpd.service
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --reload
sudo systemctl enable httpd.service
||MariaDB のインストール||
sudo yum install mariadb-server mariadb
sudo systemctl start mariadb
sudo mysql_secure_installation
sudo systemctl enable mariadb.service
||PHP のインストール||
sudo yum install php php-mysql php-mbstring
/etc/httpd/conf.d
に作られる。sudo vi /etc/php.ini
:set nu
’ で行番号を表示する。
output_buffering = 4096
–>> output_buffering = Off
disable_functions =
–>> disable_functions ="shell_exec, suexec, passthru"
expose_php = On
–>> expose_php = Off
allow_url_fopen = On
–>> allow_url_fopen = Off
;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
sudo systemctl restart httpd.service
||phpMyAdmin のインストール||
sudo yum install epel-release
sudo yum install phpmyadmin
/etc/httpd/conf.d
に作られる。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
sudo vi /etc/vsftpd/vsftpd.conf
:set nu
’ で行番号を表示する。
anonymous_enable=YES
–>> anonymous_enable=NO
#ascii_upload_enable=YES
–>> ascii_upload_enable=YES
#ascii_download_enable=YES
–>> ascii_download_enable=YES
#chroot_local_user=YES
–>> chroot_local_user=YES
#chroot_list_enable=YES
–>> chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd/chroot_list
–>> chroot_list_file=/etc/vsftpd/chroot_list
local_root=www/html
sudo setsebool -P ftp_home_dir on
local_enable=YES
をアンコメントしている場合は, on にするようにと, vsftpd.conf に書いてあった。sudo vi /etc/vsftpd/chroot_list
allow_writeable_chroot=YES
を vsftpd.conf に追加。この情報は, 500 OOPS: vsftpd: refusing to run with writable root inside chroot() Login failed on debian (魚拓です)からもらった。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
昨日の朝, WordPress 4.0.1 になっていた。セキュリティ・アップデートということだが,主として, XSS 関連のようだ。自動でアップデートされると思うが,されない場合は,手動での早急なアップテートをお奨めする。 “An extremely unlikely hash collision could allow a user’s account to be compromised, that also required that they haven’t logged in since 2008 (I wish I were kidding).” というのを読んで,思わず笑っちゃったが,笑いごとじゃないよなあ(溜息)。
CentOS7 は標準で SSH が使えるようだ。 OS 変更後, TeraTerm で接続してみた。もちろん,他の SSH クライアントでも構わない, PuTTY とか WinSCP とか。 SSH サーバの現時点のバージョンは 6.4p1-8 だった。
標準の設定だと, root かつ パスワードでアクセス可能なので,ちょっと,不安。細かい設定は後回しとしても,最小限,これだけは変えておこう。
設定いじりの前に, TeraTerm で 認証鍵ペアを作った。秘密鍵には, passphrase も設定した。サーバ上でも鍵は作れるが,それだと,秘密鍵のほうをネット経由でやり取りすることになる。これが嫌いなのだ。多人数相手だと,メールででもやり取りしないと仕方ないだろうが。
||その 1 Sudoers ファイルの編集||
usermod -G wheel centos
<--- 「centos」というのは, sudo を使わせたいユーザ。
# visudo
su - centos
sudo shutdown -h now
We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
パスワードを要求される。
[sudo] password for centos:
||その 2 policycoreutils-python のインストール||
yum install policycoreutils-python
||その 3 SSH の設定を変更||
mkdir .ssh
chmod 700 .ssh
cat id_rsa.pub > .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
rm -f id_rsa.pub
su -
vi /etc/ssh/sshd_config
# systemctl restart sshd.service
注)**** には well-known ports 以外の数値を使う。ただし,数値は 0 ~ 65535。
firewall-cmd --permanent --zone=public --add-port=****/tcp
firewall-cmd --reload
semanage port -a -t ssh_port_t -p tcp ****
exit
exit
$ sudo firewall-cmd --list-all
public (default, active)
interfaces: eth0
sources:
services: dhcpv6-client ssh
ports: ****/tcp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
SSH の設定変更,おしまい!!
くりくりさんのコメントに触発されて,さくらのVPS で CentOS7 を使ってみようと思い, 18 日に 2 週間お試しに登録した。
日本語のサービスしかなくて,日本に住んでないと使えないようだが,英語ブログでも紹介した。
「つぎへ –>」をクリック。
「つぎへ –>」をクリック。
「つぎへ –>」をクリック。
「つぎへ –>」をクリック。
「会員メニューへお進みください」をクリックする (図 4)。
「会員メニュートップ」に進む。ログアウト。これで,仮登録は,終わり。
||VPS コントロールパネルにログイン||
||CentOS7 をインストール||
インストール中に困ったのは, QEMU で最下部が全く見えなかったこと。おかげで,「Reclaim space」や「Begin Installation」を,勘 + キー操作でやる羽目になった。ヤレヤレ。
![]() 12 日 15:35 UTC (つまり 13 日 00:35 JST) に,フィラエが,彗星に着いたってさ。すごいよなぁ。 チュリュモフ・ゲラシメンコ彗星だよ。ワォ!! ところで,我がハヤブサ 2 も 11/30 打ち上げ予定だよねー。待ち遠しいな,天気がいいといいなぁ。 |
@import url("../sugar-and-spice/style.css");
@import url(https://fonts.googleapis.com/css?family=Kranky);
/* Typography */
h1, h2, h3, h4, h5, h6 {
color: #000;
}
h2 {
font-family: 'Kranky', cursive, Arial, sans-serif;
font-size: 2em;
margin: 0 0;
}
<h2>
タグの関係をいじったが,うちの場合,このタグはメインサイトのほかの部分では使っていない。で,他に影響はないのだ。
メモ 2
<body>
タグの直下に, <? php include_once ("analyticstracking.php")?>
を追加。これ,買っちゃいました。これって何かというと,右の広告写真をご覧ください \(^o^)/。
先週,古ーーいのが壊れちゃいまして,しかし,近隣のお店にはそういうのがなかったもんで,通販通販と探しました。で,見つけちゃったんですよ,右のヤツ。 Buffalo 製なんですけどね,そっくりでしょ!? 昔懐かしい任天堂のやつに。スーパーファミコン華やかなりしころを思い出させますねぇ。
土曜の夜 9 時ごろ注文したら,日曜の昼の 3 時に着きました。 Amazon.co.jp ,仕事早いですね。配達は,クロネコさんでした。
ちゃんと動いてまっせ。満足ですワ,ヘヘッ。