作った Android のアプリに広告を入れてみようと、AdMob を使ってみた。AdMob に
ついては解説している web ページがいくつもあるので割愛して、この AdMob を
Android Studio 2 で使うときの解説が見つからなかった。結局、一番に役立った
のが、Google の AdMob の登録方法のページで、これをそのままやったらうまく
いった。
忘れないためにも、ちょっと別ページにメモしておく。
昨日の続き。Nexus S のエミュレータで広告を表示させようとすると、出ない。
横位置に回転させると出てくるし、縦位置だと Not enough space to show ad と
出ているので、どうも横幅が足りなくて出ないみたい。
Nexus S の横幅を見てみたら 320dp あって、アプリを作ったとき最初にできる
Relative Layout は padding が activity_horizontal_margin で指定されていて
16dp だった。つまり、表示領域は 300dp ということになる。
昨日参考にした AdMob の登録ページにも書いてあるが、バナーの表示には 320×50
の領域が必要なので出ないみたい。padding を 0 にしたら表示されるようになった
けれど、全体のバランスが悪くなるし、横が 320dp 端末のためだけに必要なもの
なので色々と修正が必要。面倒だな。
世の中は html5 まっしぐらで、そんな流れのなか pre タグでどうこうやって
いるこのページはもう時代遅れなのは重々わかっているのだけど。center タグは
だいぶ前に使わないようにしたけど、font タグが残っていた。仕方なく、先月の
後半ぐらいから、font タグをやめて span に色指定を入れるようにしたけど、
やっぱり慣れない感じというか、直感的にわかり辛い感じがする。これはもう
決まりなので慣れないといけないのだろうけど。
そろそろこのページから pre タグも消すべきだろうな。今月はもう無理だから、
来月から考えてみよう。
海外で良く見かける趣味サイト forum のシステムは簡単に導入できるのか少し
調べてみた。どんなシステムがあるのかいくつか眺めて、Burning Board とか
phpBB, Simple Machines なんてのを使っていた。どこかに何で動いているとか
比較してくれるサイトが無いか調べると、wikipedia の 英語版にまとめてあった。
Comparison of Internet forum software
殆どが PHP で動いている。Ikonboard と言うのが Perl で動かすようだけど、
更新がされてないし、PHP を使いたくない場合は Java を使うことになるかな。
そうすると、eXo Platform か Syndie になる。eXo Platform を見てみると、
SNS のシステムのようだし、Syndie は匿名性が売りのアプリケーションだから
どちらも目的から外れる。
セキュリティ問題のリスクが増えてしまうため、できれば PHP は使いたくない
のだけど、どっちを取るかだな。それにしても、日本ではあまりフォーラムの
サイトがないのは何でだろう。
世の中の早い流れに乗ってしまうと、直ぐに情報が古くなってしまったり、陳腐化
してしまうし、かと言って流れに逆らうと時代遅れになってしまう。気持ち的には
新しい技術を少しだけ触っておいて、何かあったときに何とかできるというのを
目指している。
そんなことを思っていて、AWS か GCP に手を出しておこうかと思ったが、個人で
手を出すのはハードルが高い。この機会だから何かを始めようと思い、ふと目に
付いたのが WordPress で、一度も触ったことがないので初めてみようかと。
昨日も問題になったのが PHP を使いたくないということ。WordPress も御多分に
漏れず PHP を使っている。逆に言うと PHP を使えるようにしてしまえば、他も
解決すると言えば良い解釈で。途中でやめるかもしれないけど、WordPress を
少し使ってみようかと、調べ始める。
昨日の続き。色々考えていても仕方がないので、PHP をインストールすることに
した。手元のサーバは別件で使用中なので、某所のサーバで、環境は。
[root@vjun ~]# cat /etc/redhat-release
CentOS release 5.11 (Final)
ここで PHP のインストールをすることに。私にしては珍しく、web サーバ自体は
RPM のものなので、ここも RPM というか yum であっさり入れることにした。
[root@vjun ~]# yum install php
Loaded plugins: fastestmirror
Repository 'vz-base' is missing name in configuration, using id
Repository 'vz-updates' is missing name in configuration, using id
Loading mirror speeds from cached hostfile
~snip~
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
php i386 5.1.6-45.el5_11 updates 2.3 M
Installing for dependencies:
gmp i386 4.1.4-10.el5 base 664 k
php-cli i386 5.1.6-45.el5_11 updates 2.1 M
php-common i386 5.1.6-45.el5_11 updates 155 k
Transaction Summary
================================================================================
Install 4 Package(s)
Upgrade 0 Package(s)
Total download size: 5.2 M
Is this ok [y/N]: y
~snip~
MySQL は既に入っているようなので、これだけで大丈夫かな。php.ini とか、
httpd.conf の編集とか。
[root@vjun ~]# cp -p /etc/php.ini /etc/php.ini.org
[root@vjun ~]# vi /etc/php.ini
[root@vjun ~]# diff /etc/php.ini.org /etc/php.ini
305c305,306
< expose_php = On
---
> ;expose_php = On
> expose_php = Off
314c315,316
< memory_limit = 128M ; Maximum amount of memory a script may consume
---
> ;memory_limit = 128M ; Maximum amount of memory a script may consume
> memory_limit = 32M ; Maximum amount of memory a script may consume
501a504
> default_charset = "utf-8"
980a984
> session.entropy_file = /dev/urandom
1125a1130
> mbstring.language = Japanese
1130a1136
> mbstring.internal_encoding = utf-8
[root@vjun ~]# cd /etc/httpd/conf
[root@vjun conf]# cp -p httpd.conf httpd.conf_20160506
[root@vjun conf]# vi httpd.conf
[root@vjun conf]# diff httpd.conf.20160525 httpd.conf
200a201,203
> # for PHP
> LoadModule php5_module modules/libphp5.so
>
667a671,673
> # for PHP
> AddType application/x-httpd-php .php
>
これで httpd の再起動と php の動作確認をする。
[root@vjun conf]# /etc/init.d/httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
[root@vjun conf]# cd /var/www/html
[root@vjun conf]# vi phpinfo.php
[root@vjun conf]# cat phpinfo.php
<?php
phpinfo();
?>
ブラウザでアクセスしたら、無事に動いた。明日は WordPress のインストールを
する予定。
昨日の続き。WordPress のインストール、の前に MySQL で DB を作成しておく。
mysqld の起動確認。
[root@vjun ~]# ps -ef | grep mysqld
root 32419 32220 0 20:14 pts/1 00:00:00 grep mysqld
動いてないみたいなので、起動。と思ったが、起動スクリプトがない。そもそも
mysqld のバイナリはあるのか確認すると、入っていない。mysql の RPM じゃなく
mysql-server が必要のようなので、ここも yum でインストール。
[root@vjun ~]# yum install mysql-server
Loaded plugins: fastestmirror
~snip~
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
mysql-server i386 5.0.95-5.el5_9 base 9.8 M
Installing for dependencies:
perl-DBD-MySQL i386 3.0007-2.el5 base 148 k
~snip~
設定をして、起動してみた。
[root@vjun ~]# cp -p /etc/my.cnf /etc/my.cnf.org
[root@vjun ~]# vi /etc/my.cnf
[root@vjun ~]# diff /etc/my.cnf.org /etc/my.cnf
12a13,15
> # charset
> character-set-server=utf8
>
[root@vjun ~]# /etc/init.d/mysqld start
Initializing MySQL database: Installing MySQL system tables...
OK
Filling help tables...
OK
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h vjun password 'new-password'
Alternatively you can run:
/usr/bin/mysql_secure_installation
~snip~
[ OK ]
Starting mysqld: [ OK ]
パスワードを付けたり、セキュリティ向上のための mysql_secure_installation を
実行したり。
[root@vjun ~]# /usr/bin/mysqladmin -u root password 'abcdefgh'
[root@vjun ~]# /usr/bin/mysql_secure_installation
~snip~
All done! If you've completed all of the above steps, your MySQL
installation should now be secure.
Thanks for using MySQL!
もちろんだけど、abcdefgh なんてパスワードにはしていない。WordPress 用の
DB とユーザを作る。
[root@vjun ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 5.0.95 Source distribution
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> create database t_lab;
Query OK, 1 row affected (0.00 sec)
mysql> grant all privileges on t_lab.* to toyota@localhost identified by 'abcd';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> quit
Bye
WordPress のダウンロードしてくる。
[root@vjun ~]# cd /var/www/html
[root@vjun html]# wget -q https://wordpress.org/wordpress-4.5.2.tar.gz
[root@vjun html]# tar xfz wordpress-4.5.2.tar.gz
[root@vjun html]# cd wordpress
[root@vjun wordpress]# cd wordpress
設定が色々必要だけど、眠くなってきたので続きは明日。
WordPress のインストールの続き。解凍までしたので、設定から。
[root@vjun ~]# cd /var/www/html/wordpress
[root@vjun wordpress]# cp -p wp-config-sample.php wp-config.php
[root@vjun wordpress]# vi wp-config.php
[root@vjun wordpress]# diff wp-config-sample.php wp-config.php
23c23
< define('DB_NAME', 'database_name_here');
---
> define('DB_NAME', 't_lab');
26c26
< define('DB_USER', 'username_here');
---
> define('DB_USER', 'toyota');
29c29
< define('DB_PASSWORD', 'password_here');
---
> define('DB_PASSWORD', 'abcd');
これでアクセスしてみたら、
403 Forbidden
が返ってきた。どこかパーミッションの設定が必要みたい。解凍ディレクトリに
readme.html があったのでブラウザでアクセスしてみると、wp-admin/install.php
を開くとあったので、アクセスしてみた。
Your server is running PHP version 5.1.6 but WordPress 4.5.2 requires at least
5.2.4.
まさかのメッセージが出た。PHP のコンパイルからしないと駄目かな。まず、
PHP の web ページにアクセスしてみた。カレントのバージョンは3つあって、
5.5.35、5.6.21、7.0.6 の3つ。5.2.4 以上だからどれでも良いのだろうけど、
あまり新しくしてもコンパイルできないとかありそうなので、5.6.21 をダウン
ロードすることにした。
[toyota@vjun tmp]$ cd
[toyota@vjun ~]$ cd /tmp
[toyota@vjun tmp]$ wget -q http://jp2.php.net/get/php-5.6.21.tar.bz2/from/this/
mirror
[toyota@vjun tmp]$ md5sum php-5.6.21.tar.bz2
141464ce6b297aa2295b8416c6dbd5e5 php-5.6.21.tar.bz2
[toyota@vjun tmp]$ tar xfj php-5.6.21.tar.bz2
[toyota@vjun tmp]$ du -s -k php-5.6.21
153620 php-5.6.21
150MB もあるのか。コンパイルするだけやってみる。
[toyota@vjun tmp]$ cd php-5.6.21
[toyota@vjun php-5.6.21]$ ./configure --help
[toyota@vjun php-5.6.21]$ ./configure
~snip~
checking libxml2 install dir... no
checking for xml2-config path...
configure: error: xml2-config not found. Please check your libxml2 installation.
この辺りは面倒なので、RPM にあれば yum で入れてしまおうかと。
[root@vjun ~]# yum search libxml2
~snip~
=============================== Matched: libxml2 ===============================
libxml2.i386 : Library providing XML and HTML support
libxml2-devel.i386 : Libraries, includes, etc. to develop XML and HTML
: applications
libxml2-python.i386 : Python bindings for the libxml2 library
libxslt.i386 : Library providing the Gnome XSLT engine
libxslt-devel.i386 : Libraries, includes, etc. to embed the Gnome XSLT engine
libxslt-python.i386 : Python bindings for the libxslt library
python-dmidecode.i386 : Python module to access DMI data
python-lxml.i386 : ElementTree-like Python bindings for libxml2 and libxslt
redhat-lsb-graphics.i386 : LSB graphics libraries support for CentOS Enterprise
: Linux
xmlsec1.i386 : Library providing support for "XML Signature" and "XML
: Encryption" standards
[root@vjun ~]# yum install libxml2
~snip~
Package libxml2-2.6.26-2.1.25.el5_11.i386 already installed and latest version
Nothing to do
既に入っているみたい。libxml2-devel が必要なのかな。libxml2-devel を入れて
みることに。
[root@vjun ~]# yum install libxml2-devel
~snip~
Running Transaction
Installing : libxml2-devel 1/1
Installed:
libxml2-devel.i386 0:2.6.26-2.1.25.el5_11
Complete!
戻って、configure の続きを。
[toyota@vjun php-5.6.21]$ ./configure
~snip~
Thank you for using PHP.
config.status: creating php5.spec
config.status: creating main/build-defs.h
config.status: creating scripts/phpize
config.status: creating scripts/man1/phpize.1
config.status: creating scripts/php-config
config.status: creating scripts/man1/php-config.1
config.status: creating sapi/cli/php.1
config.status: creating sapi/cgi/php-cgi.1
config.status: creating ext/phar/phar.1
config.status: creating ext/phar/phar.phar.1
config.status: creating main/php_config.h
config.status: executing default commands
一旦 make しておいて、その間に必要な configure オプションを調べる。SRPM
なんかをダウンロードして、参考にする。php-5.1.6-45.el5_11 の patch って
240 もあったりして、なんだか凄い。そんな間に make は終わり、問題なさそう
なので、configure オプションを色々付けて。
[toyota@vjun php-5.6.21]$ ./configure \
--cache-file=../config.cache \
--with-libdir=lib \
--with-config-file-path=/etc \
--with-config-file-scan-dir=/etc/php.d \
--disable-debug \
--with-pic \
--disable-rpath \
--without-pear \
--with-bz2 \
--with-exec-dir=/usr/bin \
--with-freetype-dir=/usr \
--with-png-dir=/usr \
--with-xpm-dir=/usr \
--enable-gd-native-ttf \
--with-t1lib=/usr \
--without-gdbm \
--with-gettext \
--with-gmp \
--with-iconv \
--with-jpeg-dir=/usr \
--with-openssl \
--with-pcre-regex=/usr \
--with-zlib \
--with-layout=GNU \
--enable-exif \
--enable-ftp \
--enable-sockets \
--with-kerberos \
--enable-shmop \
--enable-calendar \
--with-libxml-dir=/usr \
--enable-xml \
--with-system-tzdata \
--with-mhash
~snip~
configure: error: Cannot find OpenSSL's
--with-openssl が効いてるのかな。evp.h を探してみた。
[toyota@vjun php-5.6.21]$ find /usr -name evp.h
見つからない。yum で openssl-devel を入れてみて、configure を再実行したら、
checking for PCRE headers location... configure: error: Could not find pcre.h in
/usr
と。長くなってきたので、続きは明日。
昨日の続き。OS を新しいものにすれば簡単に解決するところもあるのだけど、
借り物サーバなので、そうもいかないし。昨日の最後、configure でのエラー
checking for PCRE headers location... configure: error: Could not find pcre.h in
/usr
問題のオプションは --with-pcre-regex=/usr でしょう。yum で pcre-devel を
インストールして、configure を再実行。
checking for BZip2 support... yes
checking for BZip2 in default path... not found
configure: error: Please reinstall the BZip2 distribution
同様に bzip2-devel を yum で入れて、再々実行。
checking for GNU MP support... yes
configure: error: Unable to locate gmp.h
同様に gmp-devel を yum で入れて、再々々実行。通ったのは通ったのだけど
configure: WARNING: unrecognized options: --with-exec-dir, --with-system-tzdata
とのこと。問題ないので、make してみる。
[toyota@vjun php-5.6.21]$ make
~snip~
ext/pcre/.libs/php_pcre.o: In function `zm_info_pcre':
/tmp/php-5.6.21/ext/pcre/php_pcre.c:133: undefined reference to `php_pcre_versio
n'
ext/pcre/.libs/php_pcre.o: In function `zm_startup_pcre':
/tmp/php-5.6.21/ext/pcre/php_pcre.c:159: undefined reference to `php_pcre_versio
n'
ext/pcre/.libs/php_pcre.o: In function `php_pcre_grep_impl':
/tmp/php-5.6.21/ext/pcre/php_pcre.c:1870: undefined reference to `php_pcre_fulli
nfo'
/tmp/php-5.6.21/ext/pcre/php_pcre.c:1894: undefined reference to `php_pcre_exec'
ext/pcre/.libs/php_pcre.o: In function `make_subpats_table':
/tmp/php-5.6.21/ext/pcre/php_pcre.c:199: undefined reference to `php_pcre_fullin
fo'
/tmp/php-5.6.21/ext/pcre/php_pcre.c:208: undefined reference to `php_pcre_fullin
fo'
/tmp/php-5.6.21/ext/pcre/php_pcre.c:209: undefined reference to `php_pcre_fullin
fo'
ext/pcre/.libs/php_pcre.o: In function `php_pcre_replace_impl':
/tmp/php-5.6.21/ext/pcre/php_pcre.c:1128: undefined reference to `php_pcre_fulli
nfo'
/tmp/php-5.6.21/ext/pcre/php_pcre.c:1159: undefined reference to `php_pcre_exec'
ext/pcre/.libs/php_pcre.o: In function `pcre_get_compiled_regex_cache':
/tmp/php-5.6.21/ext/pcre/php_pcre.c:292: undefined reference to `php_pcre_fullin
fo'
/tmp/php-5.6.21/ext/pcre/php_pcre.c:424: undefined reference to `php_pcre_compil
e'
/tmp/php-5.6.21/ext/pcre/php_pcre.c:420: undefined reference to `php_pcre_maketa
bles'
/tmp/php-5.6.21/ext/pcre/php_pcre.c:442: undefined reference to `php_pcre_study'
ext/pcre/.libs/php_pcre.o: In function `php_pcre_split_impl':
/tmp/php-5.6.21/ext/pcre/php_pcre.c:1600: undefined reference to `php_pcre_fulli
nfo'
/tmp/php-5.6.21/ext/pcre/php_pcre.c:1616: undefined reference to `php_pcre_exec'
/tmp/php-5.6.21/ext/pcre/php_pcre.c:1680: undefined reference to `php_pcre_exec'
ext/pcre/.libs/php_pcre.o: In function `php_pcre_match_impl':
/tmp/php-5.6.21/ext/pcre/php_pcre.c:658: undefined reference to `php_pcre_fullin
fo'
/tmp/php-5.6.21/ext/pcre/php_pcre.c:693: undefined reference to `php_pcre_exec'
/tmp/php-5.6.21/ext/pcre/php_pcre.c:712: undefined reference to `php_pcre_get_su
bstring_list'
/tmp/php-5.6.21/ext/pcre/php_pcre.c:799: undefined reference to `php_pcre_free'
/tmp/php-5.6.21/ext/pcre/php_pcre.c:799: undefined reference to `php_pcre_free'
ext/fileinfo/libmagic/.libs/softmagic.o: In function `check_fmt':
/tmp/php-5.6.21/ext/fileinfo/libmagic/softmagic.c:371: undefined reference to `p
hp_pcre_exec'
ext/filter/.libs/logical_filters.o: In function `php_filter_validate_regexp':
/tmp/php-5.6.21/ext/filter/logical_filters.c:439: undefined reference to `php_pc
re_exec'
ext/filter/.libs/logical_filters.o: In function `php_filter_validate_email':
/tmp/php-5.6.21/ext/filter/logical_filters.c:547: undefined reference to `php_pc
re_exec'
ext/spl/.libs/spl_iterators.o: In function `zim_spl_RegexIterator_accept':
/tmp/php-5.6.21/ext/spl/spl_iterators.c:2073: undefined reference to `php_pcre_e
xec'
ext/standard/.libs/browscap.o: In function `browser_reg_compare':
/tmp/php-5.6.21/ext/standard/browscap.c:401: undefined reference to `php_pcre_ex
ec'
collect2: ld returned 1 exit status
make: *** [sapi/cli/php] Error 1
configure オプションが無いときは make は通ったし、pcre 周りのようなので、
--with-pcre-regex=/usr オプションを外して configure し直し、再々度 make
してみたら通った。make test しろとのことなので、やってみた。10215 もの
数のテストを初めて、時間がかかりそうな雰囲気。しばらく放置したら終わった。
結果は惨憺たるもので。
=====================================================================
TEST RESULT SUMMARY
---------------------------------------------------------------------
Exts skipped : 42
Exts tested : 37
---------------------------------------------------------------------
Number of tests : 13749 9601
Tests skipped : 4148 ( 30.2%) --------
Tests warned : 3 ( 0.0%) ( 0.0%)
Tests failed : 27 ( 0.2%) ( 0.3%)
Expected fail : 31 ( 0.2%) ( 0.3%)
Tests passed : 9540 ( 69.4%) ( 99.4%)
---------------------------------------------------------------------
Time taken : 1476 seconds
=====================================================================
60も fail を抱えて、ちゃんと動作するのかな。試しに、configure オプションを
何も付けずに make して make test してみた。
=====================================================================
TEST RESULT SUMMARY
---------------------------------------------------------------------
Exts skipped : 52
Exts tested : 27
---------------------------------------------------------------------
Number of tests : 13749 9055
Tests skipped : 4694 ( 34.1%) --------
Tests warned : 3 ( 0.0%) ( 0.0%)
Tests failed : 13 ( 0.1%) ( 0.1%)
Expected fail : 31 ( 0.2%) ( 0.3%)
Tests passed : 9008 ( 65.5%) ( 99.5%)
---------------------------------------------------------------------
Time taken : 1129 seconds
=====================================================================
テスト数が少なくなったのもあるけど、少し減った。あの patch の数はここに
結びついてくるものなのかな。ちょっと保留。
昨日作った PHP を使おうかどうか。新しいバージョンの CentOS の PHP を少し
覗いてみることにした。
[toyota@vjun tmp]$ wget http://vault.centos.org/7.2.1511/os/Source/SPackages/ph
p-5.4.16-36.el7_1.src.rpm
[toyota@vjun tmp]$ mkdir php-5.4.16-36.1.el7_2.1
[toyota@vjun tmp]$ cd php-5.4.16-36.1.el7_2.1
[toyota@vjun php-5.4.16-36.1.el7_2.1]$ rpm2cpio ../php-5.4.16-36.1.el7_2.1.src.
rpm | cpio -id
30023 blocks
[toyota@vjun php-5.4.16-36.1.el7_2.1]$ less php.spec
php.spec にコメントで、
# /usr/sbin/apsx with httpd < 2.4 and defined as /usr/bin/apxs with httpd >= 2.4
とある。どっちのコマンドも無いなと思ったけど、中身を見る限りこれは typo で
/usr/sbin/apsx じゃなくて /usr/sbin/apxs の間違い。
どちらにしても、httpd-devel を入れないといけないし、rpm-build も入れないと
いけないし、入れたところでコンパイルしてうまく動くとは限らないし。元は
WordPress を少し使ってみたいだけなんだけど。wordpress.com を使うとか、
別な方法も含めてちょっと考え直すことにしてみる。
ここ何日か作業しているサーバは、DTI と言うか ServersMan@VPS のサーバで、
OS のバージョンがあげられるのか調べてみたら、CentOS 7 とかにできるみたい。
ログインしてみ見てみると。
さらにパッケージの選択で、「ブログセット」と言うのがあって、調べてみると
これを入れると WordPress まで入れてくれるみたいで。
これを使ったら、今あるデータのバックアップは必要だけど、インストールに
関しては何の苦労もなくできるな。何だか負けたような気分を味わいそうだけど。
とは言え、CentOS 5.11 というのも古いので、新しくする良い機会かもしれない。
今あるデータのバックアップを始めた。
しばらく放っておいたら、バックアップが終わったので、OS を CentOS 7 にして
初期化してみた。
思ったよりも早く、というかすぐに処理は終わって、web でのアクセスも10分後
にはできるようになった。WordPress も入っているようで。
昨日までの苦労は何だったという感じ。これはこれで問題ないが、OS を新しく
したので、色々と設定をしなきゃいけない。それはまた明日。
レンタルサーバの OS を新しくしたので、その様子の確認。まずは、ディスクの
容量が大丈夫なのか。
[root@dti-vps-srv734 home]# df -k
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/simfs 14680064 893840 13786224 7% /
devtmpfs 262144 0 262144 0% /dev
tmpfs 262144 0 262144 0% /dev/shm
tmpfs 262144 4180 257964 2% /run
tmpfs 262144 0 262144 0% /sys/fs/cgroup
これだけ開いていれば大丈夫か。ログイン用のユーザを作成し、root でのログインを
禁止した後、OS で使っているソフトを新しくするため、yum update してみた。
[root@dti-vps-srv734 home]# yum update
~snip~
--> Processing Conflict: systemd-219-19.el7_2.9.x86_64 conflicts initscripts <
9.49.28-1
--> Finished Dependency Resolution
Error: systemd conflicts with initscripts-9.49.17-1.el7_0.1.x86_64
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
ちょっと調べてみると、既知の問題のようで、initscripts はアップデートを
すると問題があるらしく、その依存性がある update ができない感じ。このまま
使うのはちょっと不安なので、最近問題があったものとかネットワーク周りの
ものだけ update しておいた。こんな感じ。
yum update openssl
yum update openssh
yum update httpd
yum update php
yum update glibc
yum update sudo
現在動いているサービスを確認してみる。まずは、ps コマンドの実行をして、
変なプロセスがないか確認。
[root@dti-vps-srv734 ~]# ps -eo pid,command
PID COMMAND
1 init -z
2 [kthreadd/37648]
3 [khelper/37648]
62 /usr/lib/systemd/systemd-journald
73 /usr/lib/systemd/systemd-udevd
95 python /usr/local/share/ajaxterm/ajaxterm.py --port=8022 --uid=nobody
96 /usr/sbin/rsyslogd -n
98 /usr/lib/systemd/systemd-logind
99 /bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --syste
md-activation
105 /usr/sbin/crond -n
106 /sbin/agetty --noclear tty1
107 /sbin/agetty --noclear -s console 115200 38400 9600
108 /usr/sbin/saslauthd -m /run/saslauthd -a pam -n 2
114 /usr/sbin/saslauthd -m /run/saslauthd -a pam -n 2
363 /usr/sbin/httpd -DFOREGROUND
366 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid
395 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
403 /usr/sbin/httpd -DFOREGROUND
601 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=
/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/va
r/run/mariadb/mariadb.pid --socket=/var/
641 /usr/sbin/httpd -DFOREGROUND
642 /usr/sbin/httpd -DFOREGROUND
643 /usr/sbin/httpd -DFOREGROUND
644 /usr/sbin/httpd -DFOREGROUND
787 /usr/sbin/sshd -D
793 sshd: toyota [priv]
795 sshd: toyota@pts/0
796 -bash
817 su
818 bash
856 ps -eo pid,command
気になるのは ajaxterm.py と、いらなさそうなのは xinetd か。ajaxterm.py を
調べてみると、AirDisplay で使っているとか。んなもん使わないな。ポートの
開き状態について調べたいので、firewalld の確認。
[root@dti-vps-srv734 etc]# systemctl status firewalld
firewalld.service
Loaded: not-found (Reason: No such file or directory)
Active: inactive (dead)
[root@dti-vps-srv734 etc]# systemctl status iptables
iptables.service - IPv4 firewall with iptables
Loaded: loaded (/usr/lib/systemd/system/iptables.service; enabled)
Active: active (exited) since Fri 2016-05-27 18:21:01 JST; 4h 2min ago
Process: 93 ExecStart=/usr/libexec/iptables/iptables.init start (code=exited,
status=0/SUCCESS)
Main PID: 93 (code=exited, status=0/SUCCESS)
CGroup: /system.slice/iptables.service
May 12 21:21:01 dti-vps-srv734 systemd[1]: Starting IPv4 firewall with iptables
...
May 12 21:21:01 dti-vps-srv734 iptables.init[93]: iptables: Applying firewall r
ules: [ OK ]
May 12 21:21:01 dti-vps-srv734 systemd[1]: Started IPv4 firewall with iptables.
どうやら、CentOS 7 にも関わらず iptables が動いているようで。DTI はどんな
理由あって iptables にしているのだろう。iptables の状態を確認。
[root@dti-vps-srv734 etc]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
設定なしっぽいな。xinetd と ajaxterm の停止をする。
[root@dti-vps-srv734 etc]# systemctl stop xinetd.service
[root@dti-vps-srv734 etc]# systemctl disable xinetd.service
rm '/etc/systemd/system/multi-user.target.wants/xinetd.service'
[root@dti-vps-srv734 etc]# systemctl stop ajaxterm.service
[root@dti-vps-srv734 etc]# systemctl disable ajaxterm.service
iptables を使うか firewalld を使うか。iptables の方が慣れていると言えば
慣れているのだけど、これからは firewalld が使われるだろうから、firewalld
を入れて使うことに。
[root@dti-vps-srv734 etc]# yum install firewalld
~snip~
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
firewalld noarch 0.3.9-14.el7 base 476 k
Installing for dependencies:
dbus-glib x86_64 0.100-7.el7 base 102 k
dbus-python x86_64 1.1.1-9.el7 base 206 k
ebtables x86_64 2.0.10-13.el7 base 122 k
gobject-introspection x86_64 1.42.0-1.el7 base 230 k
libselinux-python x86_64 2.2.2-6.el7 base 247 k
pygobject3-base x86_64 3.14.0-3.el7 base 285 k
python-decorator noarch 3.4.0-3.el7 base 27 k
python-slip noarch 0.4.0-2.el7 base 30 k
python-slip-dbus noarch 0.4.0-2.el7 base 31 k
Transaction Summary
================================================================================
Install 1 Package (+9 Dependent packages)
~snip~
[root@dti-vps-srv734 etc]# systemctl stop iptables.service
[root@dti-vps-srv734 etc]# systemctl disable iptables.service
rm '/etc/systemd/system/basic.target.wants/iptables.service'
[root@dti-vps-srv734 etc]# firewall-cmd --permanent --zone=public --add-service
=http
FirewallD is not running
firewall-cmd は動かさないと設定できないみたい。ちょっと危険だな。動かした
瞬間にネットワークが切れたら、入れなくなってしまうし。仕方ないけど、やる
しかない。
[root@dti-vps-srv734 etc]# systemctl start firewalld.service
[root@dti-vps-srv734 etc]# firewall-cmd --permanent --zone=public --add-service
=http
success
[root@dti-vps-srv734 etc]# firewall-cmd --permanent --zone=public --add-port=78
90/tcp
success
[root@dti-vps-srv734 etc]# systemctl enable firewalld.service
ブラウザからアクセスできなくなってしまった。reload かければ有効になるかも
しれないとやってみた。
[root@dti-vps-srv734 etc]# firewall-cmd --reload
恐れていたことが起きて、ssh の接続が全部切れてしまった。駄目だと思うが、
web の画面からサーバを再起動してみた。やっぱりログインも web での接続も
できない。systemctl enable をしたのが失敗だったな。
仕方ない、インストールからやり直すことに。
昨日と同じことをやって、やっぱり firewalld がうまく動作しない。これは私の
オペレーションじゃなく、別に原因があるのではないかと疑い出して調べてみると
ServersMan@VPS では仮想化に OpenVZ を使っていて、そのため kernel に近い
firewalld が使えないのだとか。これでわざわざ iptables が有効になる理由が
わかった。
インストール3回目の作業中。今回は iptables にして進める。
インストールが完了して、サーバの設定中。ifconfig も入ってなかったりして、
やろうとしていることがなかなか進まない。
web サーバの設定をしていて少し躓いたのが vhost の設定で、Directory 指定を
してもうまくアクセスできなかった。wordpress の設定を確認してみると、
Require all denied
と入っていたので、調べてみると Apache 2.4 からアクセス制限の記述が問題の
ようで、httpd.conf に。
<Directory />
AllowOverride none
Require all denied
</Directory>
の記述があるので、そこが効いてしまっている。vhost の Directory 指定中に
Require all denied
を入れてアクセスできるようになった。
あとは、iptables の設定をすれば落ち着く感じかな。
ゴールデンウィークの写真を Picasa web でアップロードしようと思い、アクセス
してみたら、無くなってしまっており Google フォトの画面にになった。そう
言えば、完全に終了するというニュースを見た気がした。後継の Google フォトを
使って、写真をアップロードすることに。
Google フォトになって操作がだいぶ変わったので慣れなく、特にアルバムの扱いが
変わったところが気になった。Picasa web はアルバムありきの写真だったけど、
Google フォトではアルバムが無くても写真はアップロードできる。この辺りを
すぐにわからなかったのが戸惑ったところかな。
しばらく使ってみるけど、コロコロ変えられるのも困りもの。Google リーダの
ときを思い出した。
Windows10 への無償アップデートの期限が2016年7月28日ということで、残りが
2か月ちょっと。ずっと XP を使っていて、Windows 8 に変えてようやく慣れて
来た頃なので躊躇しているのだけど、時代が時代なのでアップデートすべきなの
だろうな。期限が近いとバタバタとして忘れてそうだし、Microsoft のサイトが
重くなるのも心配なので、そろそろアップデートしておこうかな。悩むところでは
あるのだけど。
WordPress が使える環境になったので、ようやく動かし始めた。設定をしようと
したら、更新してくださいと出てきた。
バージョンを上げることで、どこかが動かなくなってしまう可能性があるし、
そもそも更新自体面倒そうだな、なんて思いながらも更新するべきなんだろうと
「更新してください」の部分をクリックしたら、あっさりと更新してくれた。
この便利さが WordPress が使われる理由の1つなんでしょう。プラグインの更新も
出てきているので、クリックしたらあっさりと更新されるし。これは確かに便利。
初めてで慣れないけど、設定とか最低限の外観の設定をしたりして、なんとか
動かせるところまで持っていけた。あとはコンテンツか。
昨日の続き。WordPress で Contact Form 7 というものがあったので、それを
使って contact form を付けてみたは良いが、メールで送信するのがデフォルトの
ようで。メールじゃなくて、管理画面で見られたりできるようにできないものかと
探してみると、Contact From DB というプラグインがあった。これを入れてみたが
DB にも送信されるが、メールを送信しないようにはできない。
私のやり方が悪いだけかもしれないけど、痒い所に手が届かない。もうちょっと
調べてみよう。
ある jpeg ファイルを Photoshop で開いたら、ガイドが出てきた。exif を見て
みると、元は Photoshop CS2 で保存されたファイルみたい。jpeg にそんな機能を
入れることができないと思っていたが、拡張領域を使っているのかな。試しに
手元のファイルでガイドラインを入れて jpeg で保存し、再度 Photoshop で開いて
みた。
やっぱり保存されていた。Photoshop 以外で開くと見えないので、拡張領域を
使っているのだろうな。Photoshop で保存するときは気を付けよう。
昨日今日と PC が固まってしまうという珍しいことがおきた。これまでは年に
せいぜい2回しかなかったので、気温のせいなのか先週の Windows Update の
せいなのか偶然なのか、しばらくこまめに保存をしながら様子をみる必要が出て
きている。偶然であることを願いながら。
久しぶりにこのページというか tatsuyoshi.net 配下のアクセス解析のページを
確認すると、えらい画面の解像度が低いアクセスが増えている。数で言うと 1/3 に
迫る勢い。何だこれはと、OS を見てわかった。Android のアクセスか。
個人的には、良く5インチとかの小さな画面で見るなと感心してしまうぐらいで、
21インチと比べると 1/18 ぐらいの大きさになるし。解像度はおいて、単純に
大きさだけで考えると、21インチのモニタの方が18倍の情報を表示できるのに。
入力もキーボードの方が早いし、と色々考えてしまうのは歳をとったせいか。
ポケットにデジカメを入れて作業をしていた。何気なく、工具を当ててしまい、
ポケットの中だから大丈夫かなと思いながら、デジカメを見てみた。TG-620 の
液晶が見事に割れてしまった。
これじゃ防水が効かないだろうし、修理に出しても本体よりも高くなるから、
買い替えコースになってしまう。Tough という名前が付いていても壊れるときは
壊れるな。
どうしよう、新しいのを買おうかどうか。
自動二輪車の整備に使っているライダーズメンテナンスツールセットという工具
セットのヘキサゴンソケットの先端部分を留める六角穴付き止めねじ(いもねじ)
がいつの間にかどこかに言った。このソケット自体は BT3-05S という製品。
このねじだけ入手できないかとホームセンターで探したり、KTC のカタログで
見てみたけど、見つからないので KTC に電話で問い合わせてみた。
KTC の人曰く、この部品だけでは売っていないとのこと。なので、入手するには
先端部分の交換ビットを買うか、ホームセンターなんかのネジ売り場でいもねじを
入手する必要があると。何故交換できるようにしているのかと聞くと、先端部分は
消耗部品なので、交換できるようにしているのだって。
例えば今回の部品自体は BT3-05S で、この先端を交換する場合は T-05 という
先端部分を買うことになる。それぞれの値段が BT3-05S は770円、T-05 は450円
で、その差は320円。どう考えるか難しいところだけど、緩むのでときどき締めて
あげなきゃいけなくて、今回のように取れてどっかに行ってしまうならば、一体に
した方が良いと思う。その方が部品点数が減って値段も安くなるだろうし。
キーボードを掃除するので、一時的にキーボードを HHKB Lite2(USB) にした。
キーボード配列が日本語になってしまっているので、101 に変更しようかと、
デバイスマネージャーで変更してみた。
「HID キーボードデバイスから」、「標準 PS/2 101/102 キーボード」に変更
してみた。
警告が出たけど、気にせずインストールする。
ドライバーの更新が終わったら、キーボードが全く使えなくなってしまった。
デバイスマネージャーで確認してみると、警告マークが出ている。
プロパティを見てみたら、
システム リソースが不足するため、API を終了できません。
と出ている。
何だか長くなりそうなので、キーボードデバイスを元に戻して、一時的なもの
なので、キーボードのキー配列は我慢することにした。[_]と[|]の入力が辛い。
wikipedia の表なんかを見ていると、動的に並び替えができるようになっている。
wikipedia が採用しているぐらいだから、ひょっとして table タグだけでできるの
ではないかと調べてみたら、JavaScript で実現しているのだと。ちょっとがっくり
しながらも、JavaScript で簡単に書けるか調べてみたる。単純に実現するなら、
思ったよりも簡単にできるかも、ということでやってみた。
できたのはこんな感じ。
JavaScript 25行ぐらいでできるとは。
「^」の文字を上下反転させたかったので、div タグで transform を使って回転
させて表示できた。こんな感じ。右に寄ったので、table タグで囲ったけど。
これを span タグでインラインで入れたかったのだけど、transform はインライン
要素だと効かないようで。下は span タグでやってみた結果。
^
どうにかならんものかな、と思って調べてみると、span タグにインライン指定
display:inline-block を追加すればできるのだとか。やってみた。
^
できた。html も奥が深い。
しばらく問題なく可動していた Liva に接続できなくなった。ping を投げてみると
返ってくるので、ネットワークの問題ではなさそう。電源を入れ直してみたけど、
起動していないのか ping の応答もなくなった。
仕方なく HDMI のケーブルと、キーボードを接続してみた。起動は特に問題なく、
大丈夫かなと思って、ケーブルとキーボードを取り外した。で、外から ssh で
接続してみようとしたら、やっぱり駄目。問題の根が深そう。現在の kernel は
USB が使えないようにしているので、kernel を切り替えて起動しないといけない。
時間がかかりそうだな、ということで続きは明日にした。
昨日の続き。USB が使える Kernel で起動して、sshd を起動してみる。
[root@mygeeto system]# systemctl start sshd
Error getting authority: Error initializing authority: Error calling StartServi
ceByName for org.freedesktop.PolicyKit1: Timeout was reached (g-io-error-quark,
24)
Failed to start sshd.service: Connection timed out
前段で問題が起きているみたい。org.freedesktop.PolicyKit1 は何のサービスで
起動しているのかと言うと、どうも polkit.service みたい。
[root@mygeeto system]# cat polkit.service
[Unit]
Description=Authorization Manager
Documentation=man:polkit(8)
[Service]
Type=dbus
BusName=org.freedesktop.PolicyKit1
ExecStart=/usr/lib/polkit-1/polkitd --no-debug
polkitd を手動で叩いてみる。
[root@mygeeto system]# /usr/lib/polkit-1/polkitd
Successfully changed to user polkitd
22:39:23.739: Loading rules from directory /etc/polkit-1/rules.d
22:39:23.740: Loading rules from directory /usr/share/polkit-1/rules.d
22:39:23.743: Finished loading, compiling and executing 2 rules
Entering main event loop
Connected to the system bus
22:39:23.749: Acquired the name org.freedesktop.PolicyKit1 on the system bus
ここで止まってしまった。そもそも、ここで止まったのが正しいのかどうかさえ
良くわからない。
色々見て行くうちに、今月13日に yum update したのが問題だったようで、試しに
yum history undo 5 と undo してみたけど、エラーが出て
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
と返ってきたりして。
どうしたものかと web で探してみたら、polkit のユーザがないと起きうるエラー
らしい。/etc/passwd で確認してみたら、ユーザは居た。
systemctl で確認してみると、この影響で httpd も postfix も起動してなくて、
困った状態。sshd も httpd も systemctl を使わずに直接叩いて実行すれば動く
ので、polkit が必要とも思えないのだけど、systemctl というか systemd が
どう絡んで polkit を必要と判断しているのか解析中。init.d にスクリプトが
あった頃の方がわかりやすかったな。
302 リダイレクトをしようと .htaccess ファイルを作って置いた。ブラウザで
試してみたら、Internal Server Error が起きる。error.log を確認すると。
/home/toyota/www/.htaccess: RewriteEngine not allowed here
と出ている。httpd.conf の設定を見直し。こんな設定になっていた。
<Directory "/home/toyota/www/">
AllowOverride none
Options none
Require all granted
<Directory>
AllowOverride に FileInfo を追加した。
<Directory "/home/toyota/www/">
AllowOverride FileInfo
Options none
Require all granted
</Directory>
これでアクセスしてみたら、リダイレクトされない。ログを確認してみる。
AH00670: Options FollowSymLinks and SymLinksIfOwnerMatch are both off, so the
RewriteRule directive is also forbidden due to its similar ability to circumvent
directory restrictions : /home/toyota/www/
となっていたので、Options に FollowSymLinks か SymLinksIfOwnerMatch の
どちらかを有効にしないといけないみたい。転送先ディレクトリのオーナが異なる
ので、FollowSymLinks の設定にした。
<Directory "/home/toyota/www/">
AllowOverride FileInfo
Options FollowSymLinks
Require all granted
</Directory>
これでエラーはなくなったが、リダイレクトされない。.htaccess はこんな設定に
なっている。
RewriteRule ^/$ /orange/ [R=301,L]
httpd.conf では、
DirectoryIndex index.html
になっているので、
RewriteRule ^/index.html$ /orange/ [R=301,L]
の設定にしてみても状況変わらず。DirectoryIndex との連携がうまくいってない
のかもしれないなと調べてみた。どうも、最初の / はいらないみたい。
RewriteRule ^$ /orange/ [R=301,L]
にすることで、うまくリダイレクトされるようになった。
最近使っていなかったモバイルバッテリーをたまには使わないとな、と思って
引っ張り出してきて、スマートフォンに接続した。しかしである、よく考えて
みると、モバイルバッテリーの中は 3.7V で、スマートフォンのバッテリーも
3.7V ある、何でわざわざ 5V に昇圧してから降圧させてるんだろうとおかしな
無駄に気が付いた。多分、これで 10% ぐらい効率が悪くなっている気がする。
スマートフォンの電池はあまり抜くことが無くなったし、どうすれば効率が良く
なるのか考えてしまったが、結局のところ 5V は悪くないかと思ってきた。
電池の持ちがどうこうと言っていたワイヤレスマウス BSMOW08 だけど、ここの
ところ左クリックがうまく反応しない現象が出てきた。右クリックならまだしも、
左クリックだから、クリックしたつもりで操作してイラっとくることが何度か。
1年も使ってないのに、もう壊れかけてくるとは。次に買うマウスを考えておく
必要がありそう。
|