SSブログ

いいかげん [雑記]

 CentOSにサーバを立てるという目標でブログを備忘録として利用してきたのですが、VituralBox上では掲載してきたとおり、「apache」「PHP」「MariaDB」「phpMyAdmin」「WordPress」等をインストールすることができました。
 ただ実際にはまだ詳細な設定をしておりませんので、経験的には0ですね。
 読み返してみると、そもそも「単語」の意味が明確に把握できてない上に、なんだか見難い作りになっており備忘録とはいえ他人様の目にも付くものなので、赤面ものでございます。
 また一日一記事をやっていると、先を急ぐあまり理解も浅く、忘れることも多いというあまり良くない状態になりつつあるので、そろそろじっくりやるべきなのかもしれませんね。
 さて、次は「FTPサーバ」をインストールしたいのですが、これもまたなかなか難しいですねぇ、明日書き込めるかどうか……。

「Webmin」のごく初期の設定。 [Webimin]

「Webmin」のごく初期の設定。

■「Webmin」の自動起動OFF。

       
[bibo-roku@centos ~]$ chkconfig --list | grep webmin ←確認。
webmin          0:off   1:off   2:on    3:on    4:off   5:on    6:off

http://192.168.0.66:10000 ←「Webmin」にアクセス。

webmin_config.png

[bibo-roku@centos ~]$ chkconfig --list | grep webmin ←再度確認。
webmin          0:off   1:off   2:off   3:off   4:off   5:off   6:off
       
      
「Webmin」が自動起動になっているので、「OFF」にします。
 当方の場合はセキュリティ対策と言うよりも、無駄なプロセスを走らせたくないというだけの理由です。

「chkconfig」コマンドで調べてみますとランレベル2と3と5で「ON」になっていますね。通常の起動では「ON」ということです。
 これを「OFF」にしたいのですが、コマンドラインで設定できるのは当然なのですが、「Webmin」自体でも可能なようなので折角ですし試してみます。

「Webmin」にアクセスします。「Webmin」に限ったことではありませんが、「ポート番号」が決まっている通信は当然狙われやすいですよね。変更も視野に入れます。

 左上のメニューの「Webmin 設定」と言う項目をクリックします。
「いいえ」をクリックし「起動時に開始する」をクリックします。

 コマンドラインにて再度確認してみると、ちゃんと全てのランレベルで「OFF」になっていますね。いじりたいときは「/etc/init.d/webmin start」などのコマンドが必要なことを忘れないようにします。
 使い方によっては常時起動していたほうが、いやしていないとできないこともあるんじゃないかな? なので自分に合った使い方で設定しましょう。

■「Webmin」の「SSL」暗号化。

       
webmin_ssl_icon.png

webmin_sll_angou.png

ssl_module_install.png

ssl_module_install_config.png

Error - Document follows ←エラー。

This web server is running in SSL mode. Try the URL https://centos.mydomain:10000/ instead.
       
      
 えーとりあえず色々見てみようといじっていたのですが、セキュリティ上「apache」も「SSL」暗号化をしようかと考えていたところ、ここで発見したのでクリックしてみました。(「Webmin 設定」→「SSL暗号化」クリック。)
 すると画像の通り「SSL」暗号化するには「OpenSSLライブラリ及びNet::SSLeay Perlモジュール」が足りてないとのメッセージが表示されました。

 そして文中には二つのリンクが張られています。
「these instructions」→http://www.webmin.com/ssl.html
「download and install」→http://192.168.0.66:10000/cpan/download.cgi?source=3&cpan=Net::SSLeay&mode=2&return=/webmin/&returndesc=Webmin%20%E8%A8%AD%E5%AE%9A

 しかし、上部はアクセスできませんでしたので、下部のリンクを踏んでみました。
 すると「モジュールのインストール」というページに遷移し、なにやら勝手にコマンドラインが開かれてインストールがはじまりました!
 しかもオプション「-y」で!
 ちょっと見てみたかっただけなのにぃ……。 まぁ、不要ならあとでアンインストールすれば良いかな。
「Webmin 設定に戻る」で一度戻ります。

 次は再度「SSL暗号化」をクリックし、とりあえず「可能であればSSLを使用可能にしますか?」を「はい」にして「保存」をクリックします。

 設定が完了したので、画面左下の「Webmin 設定に戻る」をクリックするとエラーが発生してしまいます。  そう、「保存」した段階で設定が反映され「SSL」が有効になるのでしょう。

■「Webmin」に「SSL」でアクセス。

       
https://192.168.0.66:10000

chrome chrome_error.png
FireFox fierfox_error.png
FireFox fierfox_security_info.png
webmin_access_byhttps.png
 アドレス「http://」を「https://」に変更してアクセスし直してみます。
「Google chrome」と「FireFox」で接続してみました。
「プライバシーが保護されません」とか「安全ではありません」とか表示され、一瞬がっかりしちゃいますが、証明書を自分で作成しているために起きる問題なのでこのまま接続して良いのだそうです。
 信頼はできないけれど、通信自体は「SSL」通信していると言うことなのでしょうか。

 えーと「Webmin」でできることは多岐にわたりますのでその全てを記録することは難しいですね。なので、ごく初歩的なことを記録しようと思っておりました。  しかし、初歩的なことは僅かな入力とクリックで済んでしまいますし、そんなものを「備忘録」に乗せても意味が無いので「日本語化」「新規ユーザー作成」等々は記載を省くことにしました。悪しからず。

 今後は「Webmin」以外のサーバなどで「CUI」では設定の意味がわからないというような時に起動させ活躍して貰おうと思います。



「CentOS 6.6.」に「webimin」をインストールする。 [Webimin]

「CentOS 6.6.」に「webimin」をインストールする。

■「Webmin.repo」の作成。

       
[bibo-roku@centos ~]$ sudo vi /etc/yum.repos.d/webmin.repo ←リポジトリ作成。

[webmin]
name=Webmin Distribution Neutral
#baseurl=http://download.webmin.com/download/yum
mirrorlist=http://download.webmin.com/download/yum/mirrorlist
enabled=0 ←常時OFF。

[bibo-roku@centos ~]$ wget http://www.webmin.com/jcameron-key.asc ←GPG公開鍵の取得。

[bibo-roku@centos ~]$ rpm --import jcameron-key.asc ←GPG公開鍵のインストール。

       
      
 ふと思い出しました。十年ほどは前でしょうか、同僚が「サーバ管理の仕事なんかなくなっちゃうんだろうな」と言っておりました。
 彼は「webmin」の出現で今後のサーバ管理は一般人でも簡単にできるようになると言うのでした。
 実際はご存じの通りですが、私は管理と言うよりも、CUIで設定したいけどよくわからない場合にGUIで変更してみてCUIで確認し理解するという方法をとりたいと思いインストールすることにしました。
 当初は「apache」の設定のためにと思いましたが、OSやらサーバやらが設定できる物だったのですね。すっかり忘れておりました。

 インストールには「rpm」と「yum」どちらにしようかと思いましたが、最新版も「yum」でインストールできるようなので「yum」にしました。

 はじめに「Webmin」の専用「リポジトリ」を「/etc/yum.repos.d」に「vi」コマンドで作成します。
 次に「GPGKEY」をダウンロードしてインストールします。この流れは何度もやってきたのでよく理解できました。

■「Webmin」のインストールと設定。

       
[bibo-roku@centos ~]$ sudo yum install --disablerepo=base,extras,updates --enablerepo=webmin webmin

Operating system is CentOS Linux
Webmin install complete. You can now login to http://centos.mydomain:10000/
as root with your root password.
  Verifying               : webmin-1.740-1.noarch                                           1/1 
インストール:
  webmin.noarch 0:1.740-1                                                                       
完了しました!

[bibo-roku@centos webmin]$ sudo vi miniserv.conf ←編集。

port=10000
root=/usr/libexec/webmin
mimetypes=/usr/libexec/webmin/mime.types
addtype_cgi=internal/cgi
realm=Webmin Server
logfile=/var/webmin/miniserv.log
errorlog=/var/webmin/miniserv.error
pidfile=/var/webmin/miniserv.pid
logtime=168
ppath=
ssl=0
no_ssl2=1
no_ssl3=1
env_WEBMIN_CONFIG=/etc/webmin
env_WEBMIN_VAR=/var/webmin
atboot=1
logout=/etc/webmin/logout-flag
listen=10000
denyfile=\.pl$
log=1
blockhost_failures=5
blockhost_time=60
syslog=1
session=1
premodules=WebminCore
server=MiniServ/1.740
userfile=/etc/webmin/miniserv.users
keyfile=/etc/webmin/miniserv.pem
passwd_file=/etc/shadow
passwd_uindex=0
passwd_pindex=1
passwd_cindex=2
passwd_mindex=4
passwd_mode=0
preroot=gray-theme
passdelay=1
cipher_list_def=1
allow=127.0.0.1 192.168.0.0/24 ←一文追記。

[bibo-roku@centos webmin]$ sudo /etc/rc.d/init.d/webmin restart ←再起動。
       
      
「yum」コマンドで使用するリポジトリIDを「webmin」に限定して(しなくても恐らく大丈夫)インストール成功。あっさりしたものです。

 誰でも操作することが出来るとまずいソフトウェアですので、接続可能なアドレスを「/etc/webmin/miniserv.conf」設定ファイルの最後に追記します。
「allow=127.0.0.1 192.168.0.0/24」前は「localhost」後はプライベートネットワークアドレス「192.168.0」の254台までのアドレス。
 これらからのアドレスからの接続は許可されます。
「webmin」の再起動を実施して変更を反映させます。


■「iptables」の設定。

       
[bibo-roku@centos ~]$ sudo vi /etc/sysconfig/iptables ←編集。

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10000 -j ACCEPT ←一文追記。
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
~
[bibo-roku@centos ~]$ sudo /etc/init.d/iptables restart ←再起動。
iptables: チェインをポリシー ACCEPT へ設定中filter         [  OK  ]
iptables: ファイアウォールルールを消去中:                  [  OK  ]
iptables: モジュールを取り外し中:                          [  OK  ]
iptables: ファイアウォールルールを適用中:                  [  OK  ]

http://192.168.0.66:10000 ←ポート10000に。

webmin_login.png
webmin_apache.png
「iptables」の設定でポート番号「10000」を開けてやり、再起動します。
 あとはブラウザで「https://192.168.0.66:10000」でアクセスできます。
 最初は「root」でアクセスするようです。

 扱えるものが多いだけあって、メニューが多すぎですねぇ。それだけ重そうですし、実験機だけにした方がよいかもしれません。


「apache」でチャットを動かす。 [Apache]

「apache」でチャットを動かす。

■CGIで動かすチャットを用意する。

       
[bibo-roku@centos Downloads]$ wget -O robo.zip http://www.kent-web.com/cgi/downld/downld.cgi?id=robo

[bibo-roku@centos Downloads]$ unzip robo.zip

[bibo-roku@centos Downloads]$ sudo mv robo /var/www/html/

[bibo-roku@centos robo]$ ll
合計 56
-rw-rw-r--. 1 bibo-roku bibo-roku 12472  9月 24 12:18 2011 admin.cgi ←「705」に。
-rw-rw-r--. 1 bibo-roku bibo-roku  1532  9月 24 11:37 2011 check.cgi ←「705」に。
drwxrwxr-x. 2 bibo-roku bibo-roku  4096  9月 24 09:56 2011 data
-rw-rw-r--. 1 bibo-roku bibo-roku   451  9月 24 10:39 2011 index.html
-rw-rw-r--. 1 bibo-roku bibo-roku  4274 10月  2 11:13 2011 init.cgi ←「705」に。
-rw-rw-r--. 1 bibo-roku bibo-roku 14007 10月  2 11:13 2011 robo.cgi ←「705」に。
drwxrwxr-x. 2 bibo-roku bibo-roku  4096  9月 24 09:56 2011 tmpl

[bibo-roku@centos data]$ ll
合計 140
-rw-rw-r--. 1 bibo-roku bibo-roku      0  9月 24 12:23 2011 deny.cgi ←「606」に。
-rw-rw-r--. 1 bibo-roku bibo-roku 131696  9月 24 12:23 2011 dic1.dat ←「606」に。
-rw-rw-r--. 1 bibo-roku bibo-roku   1712  9月 24 12:23 2011 dic2.dat ←「606」に。
-rw-rw-r--. 1 bibo-roku bibo-roku     32  7月 28 11:25 2007 index.html
-rw-rw-r--. 1 bibo-roku bibo-roku      0  9月 24 12:23 2011 log.cgi ←「606」に。
-rw-rw-r--. 1 bibo-roku bibo-roku      0  9月 24 12:23 2011 mem.cgi ←「606」に。
       
      
 掲示板のときと同様に、名前を付けつつ「wget」コマンドでダウンロードします。 「unzip」コマンドで解凍し、できあがったディレクトリを「/var/www/html」に移動します。
 パーミッションの確認をしておく。

■ファイル情報変更。

       
---間違い防止作業記録---
パーミッション変更
[bibo-roku@centos robo]$ chmod 705 *cgi ←まとめて変更。
[bibo-roku@centos robo]$ chmod 604 init.cgi ←これだけ「604」
[bibo-roku@centos data]$ chmod 606 *.cgi
[bibo-roku@centos data]$ chmod 606 *.dat

文字、改行コード変更
[bibo-roku@centos robo]$ nkf -w -Lu --overwrite *.cgi ←まとめて変更。
[bibo-roku@centos data]$ nkf -w -Lu --overwrite *.cgi
[bibo-roku@centos data]$ nkf -w -Lu --overwrite *.dat
---間違い防止作業記録---

[bibo-roku@centos Downloads]$ sudo chown -R apache:apache robo

[root@centos ~]# /etc/init.d/httpd restart

http://192.168.0.66/robo/check.cgi ←調査GOOD
http://192.168.0.66/robo/admin.cgi ←設定GOOD
http://192.168.0.66/robo/index.html ←本体GOOD
       
      
 パーミッションを変更し、改行コードと文字コードを「nkf」コマンドで変更します。(「vi」の「:set fileformat=」「:set fileencoding=」も変更には使えるのですが、トラブルの元になったので使用は避けます。)
「nkf -w -Lu --overwrite *.cgi」で正常表示されました。掲示板のCGIでは「-s」でしたが。
 ただ、サイトには「アスキー」「バイナリー」でアップロードと指示してあるので、「CentOS」に直接ダウンロードしている当方にはいまいちわかりにくい情報なんですよね。
 しかしCGI設置三個目でしたので、流石にミスは一回で済みました。
 それにしても懐かしいなーチャットって。



「apache」で掲示板を動かす。 [Apache]

「apache」で掲示板を動かす。

■CGIで動かす掲示板を用意する。

       
[bibo-roku@centos Downloads]$ wget -O wforum.zip http://www.kent-web.com/cgi/downld/downld.cgi?id=wforum

[bibo-roku@centos Downloads]$ unzip wforum.zip ←解凍。

[bibo-roku@centos Downloads]$ sudo mv wforum /var/www/html/

[bibo-roku@centos html]$ ls -l
---省略---
drwxrwxr-x.  5 apache apache 4096  5月  8 00:58 2015 dream ← カウンター確認済み。
drwxrwxr-x.  8 bibo-roku bibo-roku 4096  5月  8 10:40 2015 wforum ← 比較確認。
---省略---

[bibo-roku@centos wforum]$ ls -l ←「wforum」ディレクトリ。
合計 104
-rw-rw-r--. 1 bibo-roku bibo-roku 11032  1月 27 19:40 2013 admin.cgi ←「705」に。
-rw-rw-r--. 1 bibo-roku bibo-roku  2099  3月 13 12:35 2012 captcha.cgi ←「705」に。
-rw-rw-r--. 1 bibo-roku bibo-roku  2739  1月 13 15:55 2013 check.cgi ←「705」に。
drwxrwxr-x. 2 bibo-roku bibo-roku  4096  9月 29 08:40 2012 css
drwxrwxr-x. 3 bibo-roku bibo-roku  4096  1月 13 15:49 2013 data ←「707」に。
drwxrwxr-x. 2 bibo-roku bibo-roku  4096  1月 12 15:52 2013 icon
-rw-rw-r--. 1 bibo-roku bibo-roku 12105  5月 31 21:30 2013 init.cgi ←「604」に。
drwxrwxr-x. 7 bibo-roku bibo-roku  4096  1月 12 15:53 2013 lib
-rw-rw-r--. 1 bibo-roku bibo-roku 23531  5月 31 21:31 2013 regist.cgi ←「705」に。
drwxrwxr-x. 2 bibo-roku bibo-roku  4096  1月 13 15:49 2013 tmpl
drwxrwxr-x. 2 bibo-roku bibo-roku  4096  1月 12 15:53 2013 upl
-rw-rw-r--. 1 bibo-roku bibo-roku 24507  5月 31 21:31 2013 wforum.cgi ←「705」に。

[bibo-roku@centos data]$ ls -l ←「data」ディレクトリ。
合計 16
-rw-rw-r--. 1 bibo-roku bibo-roku   32  7月 28 11:25 2007 index.html
-rw-rw-r--. 1 bibo-roku bibo-roku    2  5月 31 21:32 2000 log.cgi ←「606」に。
drwxrwxr-x. 2 bibo-roku bibo-roku 4096  1月 12 21:31 2013 past ←「707」に。
-rw-rw-r--. 1 bibo-roku bibo-roku    1 12月  5 21:00 1998 pastno.dat ←「606」に。
-rw-rw-r--. 1 bibo-roku bibo-roku    0  1月 13 15:49 2013 ses.cgi ←「606」に。

[bibo-roku@centos past]$ ls -l ←「past」ディレクトリ。
合計 4
-rw-rw-r--. 1 bibo-roku bibo-roku  0  8月 19 09:08 2011 0001.cgi ←「606」に。
-rw-rw-r--. 1 bibo-roku bibo-roku 32  7月 28 11:25 2007 index.html

[bibo-roku@centos css]$ ls -l ←「css」ディレクトリ
合計 8
-rw-rw-r--. 1 bibo-roku bibo-roku 1756  1月 13 15:33 2013 bbs.css ←「606」に。
-rw-rw-r--. 1 bibo-roku bibo-roku   32  7月 28 11:25 2007 index.html
       
      
「CGI」と言えば「カウンター」の次は「掲示板」だろう!
 というわけで、インターネットで検索し以下のサイト様の掲示板を使わせていただくことにしました。ありがとうございました。

 まずは「wget」でファイル名を付けつつダウンロードします。
「unzip」コマンドで解凍し、できあがったディレクトリを「/var/www/html」に移動します。
 パーミッション変更という同じ作業が続くので間違いが無いようにチェックしておきます。

 

■ファイル情報変更。

       
---間違い防止作業記録---
パーミッション変更
[bibo-roku@centos wforum]$ chmod 705 *cgi ←まとめて変更。
[bibo-roku@centos wforum]$ chmod 604 init.cgi ←これだけ「604」
[bibo-roku@centos wforum]$ chmod 707 data
[bibo-roku@centos data]$ chmod 707 past
[bibo-roku@centos data]$ chmod 606 log.cgi 
[bibo-roku@centos data]$ chmod 606 ses.cgi 
[bibo-roku@centos data]$ chmod 606 pastno.dat
[bibo-roku@centos css]$ chmod 606 bbs.css
[bibo-roku@centos past]$ chmod 606 0001.cgi

文字、改行コード変更
[bibo-roku@centos wforum]$ nkf -s -Lu --overwrite *.cgi ←まとめて変更。
[bibo-roku@centos css]$ nkf -s -Lu --overwrite bbs.css
[bibo-roku@centos data]$ nkf -s -Lu --overwrite *.cgi
[bibo-roku@centos data]$ nkf -s -Lu --overwrite pastno.dat
[bibo-roku@centos past]$ nkf -s -Lu --overwrite 0001.cgi
[bibo-roku@centos lib]$ nkf -s -Lu --overwrite *.pl
[bibo-roku@centos lib]$ nkf -s -Lu --overwrite Jcode.pm 
---間違い防止作業記録---

[bibo-roku@centos Downloads]$ sudo chown -R apache:apache wforum

[root@centos ~]# /etc/init.d/httpd restart

http://192.168.0.66/wforum/check.cgi ←調査GOOD
http://192.168.0.66/wforum/admin.cgi ←設定GOOD
http://192.168.0.66/wforum/wforum.cgi ←本体GOOD
       
      
 

間違えないように、飛ばさないようにパーミッションを指定の数値に変更していきます。

この段階でブラウザで「check.cgi」にアクセスするとエラーがでました。(所有者はそのときapacheに変更して)

これはカウンター設置の時に学びましたが、「改行コード(フォーマット)」のが「dos」であるからです。

前回のカウンターのときは「:set fileencoding=utf-8」などといじってしまうとその後「nkf」コマンドで上書き出来ない状態になってしまったので、今回は注意します。

といいながら、実は今回も苦労しました。

前回の教訓から初めから「nkf -w -Lu --overwrite check.cgi」としたところ、カウンターの時は文字化けしなかったのに、文字化けが発生してしまいました。



色々いじった結果、「vi」コマンドの「:set fileformat=unix」だけ実行することにより正常表示しました。その時の文字コードは「latin1」でした。

これだと、一つ一つファイルを開けて修正しなくてはならないので、面倒です。
 続けていじっていると、「nkf -s -Lu --overwrite check.cgi」で正常表示されました。


つまり、カウンターと掲示板では文字コードが「utf-8」と「shift-jis(またはlatin1)」と異なることになります。この辺はまだ勉強が足りなくわからないですね。



最後に、「wforum」ディレクトリを「chown」コマンド「-R」オプションでまとめてapacheにして、「apache」を再起動してアクセスします。



学べたのは、前回の上手くいった手段がそのまま使えるとは限らないと言うことで、毎回初心で望まないといけないということ。ですね。

あと、所有者が異なる所有者のファイルを編集したりするときに「root」権限が必要になるときが多々あるのですが、色々チェックしつつ進めているときは面倒になりますね。

修正することで所有者が変わってしまっていることを失念し、進まなくなってしまったりしました。

注意不足と言えばそうなんですが、「apache」ユーザーでコマンドを打てるようにするか、「bibo-roku」を「apache」グループに追加することで解決できるかな。

 あ、あと文字コードやら改行コードの修正が面倒なんですが、「FTPサーバ」を立ててWidowsから「FTPクライアント」でアップロードした方が楽かなぁ。






「apache」でカウンターを動かす。 [Apache]

「apache」でカウンターを動かす。

■CGIで動かすカウンターを用意する。

       
[bibo-roku@centos Downloads]$ wget -O dream.zip http://www.kent-web.com/cgi/downld/downld.cgi?id=dream ←名前付きダウンロード。

[bibo-roku@centos Downloads]$ unzip dream.zip ←解凍。

[bibo-roku@centos Downloads]$ sudo mv dream/ /var/www/html/ ←ディレクトリ移動。

[bibo-roku@centos html]$ chmod 705 dream/ ←パーミッション変更。
[bibo-roku@centos dream]$ chmod 705 dream.cgi 
[bibo-roku@centos dream]$ chmod 705 admin.cgi 
[bibo-roku@centos dream]$ chmod 705 check.cgi 
[bibo-roku@centos dream]$ chmod 604 init.cgi
[bibo-roku@centos dream]$ chmod 604 lib ←間違い。
[bibo-roku@centos lib]$ chmod 604 gifcat.pl 
[bibo-roku@centos lib]$ chmod 604 magick.pl
[bibo-roku@centos dream]$ chmod 707 data
[bibo-roku@centos data]$ chmod 606 index.dat
 
[bibo-roku@centos html]$ sudo chown -R apache:apace dream/ ←所有者変更。
 
[bibo-roku@centos dream]$ vi init.cgi ←変更。

$cf{password} = '0123'; ←原文。
$cf{password} = 'bibo-roku'; ←変更後。

$cf{ip_chk} = 0; ←原文。
$cf{ip_chk} = 1; ←変更後。

[bibo-roku@centos dream]$ sudo /etc/init.d/httpd restart ←「apache」再起動。

http://192.168.0.66/dream/check.cgi ←「チェックモード」アクセス。
Internal Server Error

[bibo-roku@centos dream]$ vi check.cgi
:set fileformat? ←ファイルのフォーマット調査。
  fileformat=dos ←「DOS」
:set fileencoding? ←ファイルのエンコーディング調査。  
  fileencoding=latin1 ←「latin1」

***********************下記 禁止事項***********************
:set fileformat=unix ←変更後。
:set fileencoding=utf-8 ←変更後。
***********************上記 禁止事項***********************

[bibo-roku@centos ~]$ sudo yum install nkf ←文字、改行コード変更に。
インストール:
  nkf.i686 1:2.0.8b-6.2.el6                                             
完了しました!

[bibo-roku@centos dream]$ sudo nkf -s -Lu --overwrite check.cgi ←文字、改行コード変更。「-s」でShift-JISに。
[bibo-roku@centos dream]$ sudo nkf -s -Lu --overwrite admin.cgi 
[bibo-roku@centos dream]$ sudo nkf -s -Lu --overwrite dream.cgi 
[bibo-roku@centos dream]$ sudo nkf -s -Lu --overwrite init.cgi

http://192.168.0.66/dream/check.cgi ←GOOD

http://192.168.0.66/dream/admin.cgi ←NG
「Internal Server Error」

[bibo-roku@centos dream]$ sudo yum install perl-CGI ←不足分。
インストール:
  perl-CGI.i686 0:3.51-136.el6_6.1                                               
完了しました!

http://192.168.0.66/dream/admin.cgi ←GOOD

http://192.168.0.66/index.html ←テキストのみ表示、カウンターNG

[root@centos dream]# ls -l
---省略---
drw----r--. 2 apache apache 4096  8月 17 13:02 2008 lib ←パーミッション「604」

[root@centos dream]# chmod 707 lib ←パーミッション変更。
[root@centos dream]# ls -l
---省略---
drwx---rwx. 2 apache apache 4096  8月 17 13:02 2008 lib ←「707」に。

       
      
「CGI」と言えば「カウンター」だなぁと10年以上前のホームページ全盛の頃を思い出しますね。というわけで、設置が一番簡単そうかなと思いカウンターを選びました。
 インターネットで検索し以下のサイト様のカウンターを使わせていただくことにしました。ありがとうございました。

http://www.kent-web.com/count/dream.html

 まずはダウンロードしましたが、「wget」コマンドで少し手間取ってしまいました。
「wget http://www.kent-web.com/cgi/downld/downld.cgi?id=dream」を実施するとダインロードされるファイルは「downld.cgi?id=dream」となってしまっています。
 確認もせずに捨てていましたが、実はこれがファイルでした……。これを「mv」コマンドで変名しても良いのでしょうが、「-O」オプションを付けて初めからファイル名を付けることが出来ました。
 次にファイルを「unzip」コマンドで解凍し出来上がった「dream」ディレクトリを説明にあるとおり「public_html」に設置します。
 といっても、「public_html」というディレクトリはありません。調べてみると、

 レンタルサーバーでホームページファイルをアップロードする場所は、ファイルマネージャーの「public_html」というフォルダになります。
 また、この「public_html」は「www」のフォルダとなっていることもあります。

 とのこと。つまり文字通りの意味で、公開するHTMLファイルを入れるディレクトリで一番浅いディレクトリというところでしょうかね。当方の場合は「html」でしょう。

 ダウンロードして解凍したディレクトリを指定の場所に設置し、各ファイルの所有権を指定通りに設定します。
 ※当方は今回間違って変更している部分があります。後半で気がつき修正しています。

 次に各「cgi」ファイルに「#!/usr/local/bin/perl」を記入(当方と同じだったので変更無し)するためにファイルを「vi」コマンドで開いたのですが、英数字文字以外は全部文字化けしておりコメントアウトしてある説明文は全く読めません。
 しかし、いじるところは英数字のところばかりなので問題なく変更。

「apache」を再起動し、説明にあるとおりブラウザでチェックモードの「check.cgi」に直接アクセスするも「Internal Server Error」発生。
「パーミッション」を「755」にするも変化なし。
 先日調べた「Internal Server Error」発生の原因リストには、
  1.ディレクトリのパーミッション
  2.CGI ファイルのパーミッション
  3.Perl のパスの違い
  4.改行コード
  5.UTF-8 の BOMコード
  6.文法エラー
  7.「モジュール」の不足
  8..htaccess の問題
  9.Perl のバージョン
 これらがあるようなので、当てはまるところを修正していきます。
 問題なさそう→1.3.6.9
 問題ありそう→4
 わからない→5.7.8


 ということで、改行コードについて調べてみました。
 Unix=LF
 Windows=CR+LF
   Mac=CR
 うーん。よく見かける情報ですが、コピペとか手動でいい加減に修正して其の場凌ぎで対処してきたから全然わかりませんねぇ。
 でもまぁつまり「check.cgi」の現状の改行コードを調べて、それが「Unix(CentOS)」用の「LF」であれば良いと言うことですよね。
 現状の改行コードを調べてみます。
「vi」コマンドで「check.cgi」を開き、「set fileformat?」とついでに「set fileencoding?」コマンドで調べてみると「fileformat=dos」と「fileencoding=latin1」表示されました。
 これはつまりWindowsで「CR+LF」ということですよね。なるほど、こりゃだめです。

***********************下記 禁止事項***********************
 ならば、改行コードを「LF」にエンコーディングを「utf-8」にしてやれば良いはずです。
 変更後、「apache」を再起動して再度アクセスするも「Internal Server Error」発生。

 実はここではまりました。

「vi」コマンドで「set:fileformat=unix」を実施したところ、「check.cgi」にブラウザで直接アクセスしたところ、文字化けは起こすものの「Internal Server Error」が出なくなりました。
 じゃぁ、あとは文字化けだけだと、「set:fileencoding=utf-8」を初め色々変えてみたのですが、文字化けは直りません。
 調べを進めたところ「nkf」コマンドという文字コートや改行コードを変換してくれるコマンドが存在しました。
「vi」で上手くいかないので「nkf」で変換したところ、やはり文字化けは直りませんでした。
 仕方ないので、最初からやり直そうとスナップショットを遡って今度はまず「nkf」コマンドで改行コードと文字コードを変更しました。
「nkf -w -Lu --overwrite check.cgi」そして「apache」を再起動させアクセスすると問題なく動いてくれました。文字化けも直っていました。
 その後「vi」のコマンドも使用してみたのですが、はじめに「vi」で「set:fileencoding=」を行ってしまうと、あとで「nkf」を使っても文字化けが直らない現象が起きることが解りました。(多分ですが。自分の環境だけかも。)
 つまり、「vi」コマンドでは文字、改行コードは変更せず「nkf」コマンドだけインストールして変更してやれば良いことになります。
 大変時間をかけてしまいました。
---追記--- 「vi」の「set: fileformat=unix」は有効でした。実行することにより「Internal Server Error」がなくなり文字化けではあるけど正しいページが表示されます。
 次に「文字コード」を直そうと「set:fileencoding=utf-8」を使用するのが間違いとわかりました。(utf-8以外でもだめ)
「文字コード」の修正には「nkf -w --overwrite check.cgi」とします。その前に「set:fileencoding=utf-8」を実行してしまうと。「nkf -w --overwrite check.cgi」が効かなくなってしまうので注意です。(当方の場合では)

改行コード変更=「vi set:fileformat=unix」と「nkf -Lu --overwrite」有効
文字コード変更=「nkf -w --overwrite」有効
「vi」と「nkf」どちらも「改行」「文字」コードをいっぺんに変更できますが、1つずつ変更すると不具合の場合の原因が特定しやすくなると思います。

 当方の理解度が低いための現象かも知れませんので悪しからず。
***********************上記 禁止事項***********************

 次に「admin.cgi」を自信を持ってアクセスしたのですが、「Internal Server Error」でした。
 サイトを巡りまくってようやく「perl-CGI」というモジュールが「掲示板」などのCGIに必要だという記述を見つけました。そして一応入れてみることにして、たまたま解決することができました。まだまだ駄目ですねぇ。

 最後にHTMLファイルにカウンターを設置しちゃんと動作するか確認すべく、HTMLファイルに「<img src="dream/dream.cgi?id=index">」を記述し、「apache」の再起動後アクセスするも、テキストは表示されるもののカウンターは表示されず。
「admin.cgi」「check.cgi」という直接接続するCGIには問題なく接続ができるようになったので、気楽に構えていたのですがこれまたはまってしまいました。

 結局はパーミッションの問題でした。しかも完全に自分が行った設定が間違いでした。  ディレクトリ「lib」がパーミッション「604」になっていたのです。(今回のびぼーろくの初めにちゃんと間違いが残っている!)  他のパーミッション変更と流れ作業的に行ったのが敗因ですね。お恥ずかしい限りです。
 でこれを「707」とか「755」などに変更してカウンターが表示されるようになりました!

 このレベルで長時間苦しんで情けない限りです。が、基本的には「パーミッション」「所有権」「モジュールの不足」がトラブルの原因だった。ということを知れたのは収穫でした。次回に生かせると尚良いのだけれど。



「apache」でCGIを動かしてみる。 [Apache]

「apache」でCGIを動かしてみる。

■「apache」の設定変更。

 
        
[bibo-roku@centos ~]# sudo vi /etc/httpd/conf.modules.d/00-mpm.conf

# Select the MPM module which should be used by uncommenting exactly
# one of the following LoadModule lines:

# prefork MPM: Implements a non-threaded, pre-forking web server
# See: http://httpd.apache.org/docs/2.4/mod/prefork.html
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so ←「#」外す。


[bibo-roku@centos ~]# sudo vi /etc/httpd/conf.modules.d/01-cgi.conf

# This configuration file loads a CGI module appropriate to the MPM
# which has been configured in 00-mpm.conf.  mod_cgid should be used
# with a threaded MPM; mod_cgi with the prefork MPM.

<IfModule mpm_worker_module>
   LoadModule cgid_module modules/mod_cgid.so
</IfModule>
<IfModule mpm_event_module>
   LoadModule cgid_module modules/mod_cgid.so
</IfModule>
<IfModule mpm_prefork_module> ←これ。
   LoadModule cgi_module modules/mod_cgi.so
</IfModule>

[bibo-roku@centos modules]$ ls | grep mod_cgi
mod_cgi.so ←両方共に存在。
mod_cgid.so ←両方共に存在。

[bibo-roku@centos /]$ sudo vi /etc/httpd/conf/httpd.conf

# Further relax access to the default document root:
<Directory "/var/www/html">
---省略---
Options Indexes FollowSymLinks ←原文。
Options Includes ExecCGI FollowSymLinks ←変更後。

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" ←エイリアスと実際の場所。

#AddHandler cgi-script .cgi ←原文。
AddHandler cgi-script .cgi .pl ←コメントアウト解除、追記。


       
       
 MPMは当方の環境では「prefork」を選ぶ必要があるそうですので、「prefork」のコメントアウトを解除します。「worker」「event」はコメントアウトします。

「/etc/httpd/conf.modules.d/01-cgi.conf」を確認すると、「prefork」=「mod_cgi.so」で「event」と「worker」は「mod_cgid.so」ということのようです。
「/etc/httpd/modules」を確認すると両方のモジュールが確認できました。

「/etc/httpd/conf/httpd.conf」の<Directory "/var/www/html">の設定を「ExecCGI」を追記することでこのディレクトリでも「CGI」を利用することができるようになります。
 意味はSSIの許可(コマンドExec含む)、CGIの許可、シンボリックリンク許可。

「ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"」は本来「CGI」を置くディレクトリである「/var/www/cgi-bin/」をエイリアスにより「/cgi-bin/」と表記できるようにしています。
 アドレスは「http://192.168.0.66/cgi-bin/test.cgi」となります。
 コメントアウト解除します。

「AddHandler cgi-script .cgi .pl」と追加して、使用できる拡張子を増やします。

■「apache」でCGIを動かす準備。

       
[bibo-roku@centos modules]$ whereis perl ←「perl」の確認。
perl: /usr/bin/perl /usr/share/man/man1/perl.1.gz

[bibo-roku@centos modules]$ sudo ln -s /usr/bin/perl /usr/local/bin/perl ←シンボリックリンク作成。

[bibo-roku@centos modules]$ whereis perl ←「perl」の再度確認。
perl: /usr/bin/perl /usr/local/bin/perl /usr/share/man/man1/perl.1.gz

[bibo-roku@centos ~]$ ll /var/www/
合計 8
drwxr-xr-x. 2 root root 4096  4月 21 00:51 2015 cgi-bin
drwxr-xr-x. 4 root root 4096  5月  4 22:01 2015 html ←所有者確認。

[bibo-roku@centos ~]$ sudo chown apache:apache /var/www/html/ ←所有者変更。
[bibo-roku@centos ~]$ ll /var/www/ ←所有者再確認。
合計 8
drwxr-xr-x. 2 root   root   4096  4月 21 00:51 2015 cgi-bin
drwxr-xr-x. 4 apache apache 4096  5月  4 22:01 2015 html ←確認。

       
      
「perl」にシンボリックリンクを張るために現状の場所を確認し、/usr/local/bin/perlにリンクを張ります。
「/var/www/html」ディレクトリの所有者を「apache」に変更します。

■「apache」でCGIを動かす。

       
[bibo-roku@centos ~]$ sudo vi /var/www/html/index.html ←テスト用HTMLファイル作成。

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>テストページ</title>
  </head>

  <body>
    HTML(html)表示テスト
  </body>
</html>


[bibo-roku@centos ~]$ sudo vi /var/www/html/index.shtml ←テスト用SHTMLファイル作成。
<html>
  <head>
    <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <title>テストページ</title>
  </head>
  
  <body>
  SHTML(SSI)表示テスト<BR>
  <!--#echo var="DATE_LOCAL" -->
  </body>
</html>


[bibo-roku@centos ~]$ sudo vi /var/www/html/test.cgi ←テスト用CGIファイル作成。
#!/usr/local/bin/perl
print "Content-type: text/html\n\n";
print "<html>\n";
print "<head>\n";
print "<META http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">";
print "<title>テストページ</title>\n";
print "</head>\n";
print "<body>\n";
print "CGI表示テスト\n";
print "</body>\n";
print "</html>\n";

[bibo-roku@centos ~]$ sudo chown apache:apache /var/www/html/index.html ←作成ファイルの所有者変更。
[bibo-roku@centos ~]$ sudo chown apache:apache /var/www/html/index.shtml 
[bibo-roku@centos ~]$ sudo chown apache:apache /var/www/html/test.cgi
[bibo-roku@centos ~]$ ll /var/www/html/ ←確認。
合計 24
-rw-r--r--.  1 apache apache  199  5月  5 23:11 2015 index.html
-rw-r--r--.  1 apache apache  233  5月  5 23:14 2015 index.shtml
-rw-r--r--.  1 apache apache  326  5月  5 23:19 2015 test.cgi


http://192.168.0.66/
HTML(html)表示テスト ←GOOD

http://192.168.0.66/index.shtml
SHTML(SSI)表示テスト
Tuesday, 05-May-2015 23:46:43 JST ←GOOD

http://192.168.0.66/test.cgi
Internal Server Error ←NG

[bibo-roku@centos html]$ sudo chmod 755 test.cgi ←パーミッションを変更。
[bibo-roku@centos html]$ ls -l
合計 40
-rw-r--r--.  1 apache apache   199  5月  5 23:11 2015 index.html
-rw-r--r--.  1 apache apache   233  5月  5 23:14 2015 index.shtml
-rwxr-xr-x.  1 apache apache   326  5月  5 23:19 2015 test.cgi ←755に。

http://192.168.0.66/test.cgi ←再度確認。
CGI表示テスト ←GOOD
       
      
 テスト用のファイル「HTML」「SHTML」「CGI」を作成し、所有者を「apache」に変更し、「apache」の再起動を行いブラウザで開いてみます。

 しかし「HTML」と「SHTML」は表示されたものの「CGI」はエラーが出てしまいました。前者は表示されるのですから「apache」は一応動いていると思います。
 となると、「CGI」を実現させる何かが間違っているのでしょう。「パッケージ」「モジュール」「設定」「所有者」というところでしょうか。
 インターネットで検索してみると

ディレクトリのパーミッション
CGI ファイルのパーミッション
Perl のパスの違い
改行コード
UTF-8 の BOMコード
文法エラー
「モジュール」の不足
.htaccess の問題
Perl のバージョン

 などがあるようです。調べていきますと、「test.cgi」のパーミッションが「644」でした。「755」に変更します。
 表示できました!


 表示は出来ましたが、理由が解らないのでこれを機に調べてみます。
 パーミッションは以下の表のようになっています。
オーナー グループ それ以外
読み込み 書き込み 実行 読み込み 書き込み 実行 読み込み 書き込み 実行
r w x r w x r w x
4 2 1 4 2 1 4 2 1



まずは「index.html」ですがこれは「644」ですから

「オーナー」→「読み込み」「書き込み」

「グループ」→「読み込み」

「それ以外」→「読み込み」

HTMLファイルは読み込むだけですから、「644」のままでも表示できたということでしょうか。



次に「index.shtml」ですがこれは「644」ですから

「オーナー」→「読み込み」「書き込み」

「グループ」→「読み込み」

「それ以外」→「読み込み」

SHTMLファイルは動的なページと言えるようですが、HTMLに埋め込むだけで使用できるとのことですから、パーミッションも読み込むだけで「644」のままでも表示できたということでしょうか。時間を表示しているので、情報を引き出して(実行して)いるようにも思えるのですが……。



まずは「test.cgi」ですがこれは「644」でしたから

「オーナー」→「読み込み」「書き込み」

「グループ」→「読み込み」

「それ以外」→「読み込み」

CGIはSHTMLと同様に動的なページを作成できますが、埋め込みのタイプではなく、perlに渡して実行し、HTMLを生成する必要があるため、「読み込み」と「実行」が必要なのではないでしょうかね。

そのため、「perl」のパスを間違えたままでアクセスすると、ソースだけ表示されますが、これは「読み込み」だけだからでしょう。



 その後色々試してみました。結局のところ「オーナー」は「apache」なので当方の状況でブラウザを見る場合「グループ」と「それ以外」は無関係かもしれません。

 ブラウザで見るという行為は「それ以外」が「読み込み」をする物だと思ったのですが。「770」にしても見られるので間違いのようですね。

 そして「オーナー」を「1」にしても「Internal Server Error」発生。実行はできても「読み込み」ができていないからでしょう。

 「オーナー」を「5」にしてみると案の定表示されました。ただ、HTMLファイルに書き込むようなプログラムの場合「書き込み」も必要となり「7」にしなければならないのではないでしょうか。それとも単にHTMLファイルの編集する権限のことかな。



 ちょっと話が逸れてしまいますが、「cat /etc/passwd」にて「apache」のユーザーIDが48ということがわかりました。

 次に「ps alx」で「httpd」の付くプロセスのユーザーIDを見てみると「48」でした。

 やはりプロセスを動かしている「オーナー」に「7」を付与するのが正しいみたいですね。






「WordPress 4.2.1」のインストール。 [WordPress]

「WordPress 4.2.1」のインストール。 WordPress 日本語版の動作環境
PHP バージョン 5.2.4 以上 (PHP 5.4 以上推奨)
MySQL バージョン 5.0 以上 (MySQL 5.5 以上推奨)

■「MariaDB」の設定。

       
[bibo-roku@centos ~]$ sudo /sbin/chkconfig --level 2345 mysql on ←自動起動設定。

[bibo-roku@centos ~]$ sudo vi /etc/my.cnf.d/server.cnf ←設定ファイル。

	# this is only for the mysqld standalone daemon
	[mysqld]
	character-set-server = utf8 ←追記。日本語使用。

[bibo-roku@centos ~]$ mysql -u root -pぱすわーど
---省略---

MariaDB [(none)]> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

MariaDB [(none)]> status;
--------------
mysql  Ver 15.1 Distrib 10.0.17-MariaDB, for Linux (i686) using readline 5.1

Connection id:          3
Current database:
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server:                 MariaDB
Server version:         10.0.17-MariaDB MariaDB Server
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8 ←「latin1」等だったら「utf8」に変更。
Db     characterset:    utf8 ←「latin1」等だったら「utf8」に変更。
Client characterset:    utf8 ←「latin1」等だったら「utf8」に変更。
Conn.  characterset:    utf8 ←「latin1」等だったら「utf8」に変更。
UNIX socket:            /var/lib/mysql/mysql.sock ←消えたら再起動。
Uptime:                 3 min 50 sec

Threads: 1  Questions: 5  Slow queries: 0  Opens: 0  Flush tables: 1  Open tables: 63  Queries per second avg: 0.021
--------------

[bibo-roku@centos ~]$ sudo /etc/init.d/mysql restart ←再起動。
Shutting down MySQL.. SUCCESS! 
Starting MySQL..... SUCCESS!
       
      
「WordPress」は「apache」+「PHP」+「MySQL(MariaDB)」で動くそうなので、全て自動起動設定にしておきます。インストールの条件は整っていると思うのですが、「MariaDB」が「5系」でなく「10系」なのが気になるところです。

 設定ファイルは「/etc/my.cnf.d/server.cnf」で文字コードの変更などをした場合は「MariaDB」の再起動が必要とのこと。データベースは途中から漢字使用などはできない(かもしれない。「???」表記になってしまう。)ので、最初に設定しておくことが大事と思われます。

 MariaDB [(none)]> show variables like 'char%'; にて文字コードを調べます。
「latin1」等ですと、日本語表記が出来ませんので変更します。

 MariaDB [(none)]> status; このコマンドでも情報を得られます。

 変更したら「MariaDB」の再起動です。


■「MariaDB」で「WordPress」用のデータベース作成。

       
[bibo-roku@centos ~]$ mysql -u root -pぱすわーど
---省略---

MariaDB [(none)]> create database wp; ←「wp」データベース作成。
Query OK, 1 row affected (0.02 sec)

MariaDB [(none)]> grant all privileges on wp.* to wp@localhost identified by 'ぱすわーど'; ←全ての権限を持ったユーザー「wp」を作成。
Query OK, 0 rows affected (0.07 sec)

MariaDB [(none)]> exit
Bye
       
      
「WordPress」用のデータベース「wp」を作成しました。

「grant all privileges on」コマンドでユーザーの登録や権限の変更を初めとして全ての権限を与えることになります。 ユーザ名は半角英数の16文字までとのこと。

 構文  GRANT権限 ON *.* TO ユーザ名 IDENTIFIED BY 'パスワード' WITH GRANT OPTION;

 ※「phpMyAdmin」でも同様のことが出来ると思いますが、今回はパスしています。(使い方がさっぱりわからぬ……。)

■「WordPress 4.2.1」のインストール。

       
[bibo-roku@centos ~]$ wget https://ja.wordpress.org/wordpress-4.2.1-ja.tar.gz ←ファイルをダウンロード。
--2015-05-04 21:58:33--  https://ja.wordpress.org/wordpress-4.2.1-ja.tar.gz
ja.wordpress.org をDNSに問いあわせています... 66.155.40.249, 66.155.40.250
ja.wordpress.org|66.155.40.249|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 6775500 (6.5M) [application/octet-stream]
`wordpress-4.2.1-ja.tar.gz' に保存中

100%[===============================================>] 6,775,500   2.56M/s 時間 2.5s    

2015-05-04 21:58:37 (2.56 MB/s) - `wordpress-4.2.1-ja.tar.gz' へ保存完了 [6775500/6775500]

[bibo-roku@centos ~]$ tar zxvf wordpress-4.2.1-ja.tar.gz ←解凍。

[bibo-roku@centos ~]$ sudo mv wordpress /var/www/html/ ←ディレクトリを移動。

[bibo-roku@centos ~]$ sudo chown -R apache:apache /var/www/html/wordpress ←権限を変更。

[bibo-roku@centos wordpress]$ sudo cp wp-config-sample.php wp-config.php ←設定ファイルのコピー。
[bibo-roku@centos wordpress]$ sudo vi wp-config.php ←設定ファイルを編集。

// ** MySQL 設定 - この情報はホスティング先から入手してください。 ** //
/** WordPress のためのデータベース名 */
define('DB_NAME', 'database_name_here'); ←「wp」に。
define('DB_NAME', 'wp');  ←変更後。

/** MySQL データベースのユーザー名 */
define('DB_USER', 'username_here'); ←「wp」に。
define('DB_USER', 'wp'); ←変更後。

/** MySQL データベースのパスワード */
define('DB_PASSWORD', 'password_here'); ←「任意のパスワード」に。

/** MySQL のホスト名 */
define('DB_HOST', 'localhost');

/** データベースのテーブルを作成する際のデータベースの文字セット */
define('DB_CHARSET', 'utf8');

/** データベースの照合順序 (ほとんどの場合変更する必要はありません) */
define('DB_COLLATE', '');


http://192.168.0.66/wordpress/wp-admin/install.php ←ブラウザでアクセス。
       
      
「wget」コマンドで「WordPress 4.2.1」のファイルをダウンロードします。
 慣れないので迷うのですが、ダウンロード先ってどういうところが良いのでしょうかね。
 そして解凍します。(これも同様で作業ディレクトリとか作るべきなんでしょうか。)

 解凍したディレクトリは「/var/www/html/」以下に設置するとのこと。
 ディレクトリの権限を「apache」に変更します。「apache」を利用して動くとのことですからなるほど納得です。

「WordPress」の設定ファイルをコピーしておいてから「wp-config.php」を「vi」コマンドにて編集します。
 編集する項目は、MySQL(当方はMariaDB)で作成した物を使う必要があります。

 保存後、ブラウザにてアクセスしてみます。再起動の必要はありませんでした。
 下記に画像を載せますが、入力項目は難しい物はございませんでしたので割愛でございます。
 にしても、これは容易だったので驚きですね-。
 あ、「MariaDB」が「5系」でなく「10系」でOKだったのも収穫でした。
---URL---
http://192.168.0.66/wordpress/wp-admin/install.php
http://192.168.0.66/wordpress/wp-admin/install.php?step=2
http://192.168.0.66/wordpress/wp-login.php
http://192.168.0.66/wordpress/wp-admin/
http://192.168.0.66/wordpress/


wordpress_welcome.png wordpress_welcome2.png wordpress_login.png wordpress_admin.png wordpress_site.png

「phpMyAdmin 4.4.4」のインストール。 [phpMyAdmin]

「phpMyAdmin 4.4.4」のインストール。

■「phpMyAdmin」のインストール準備。

       
[root@centos ~]# yum list installed | grep php* ←インストール済みモジュール確認。
php56u.i386                          5.6.4-1.ius.el6                   @/php56u-5.6.4-1.ius.el6.i386
php56u-cli.i386                      5.6.4-1.ius.el6                   installed
php56u-common.i386                   5.6.4-1.ius.el6                   installed
php56u-devel.i386                    5.6.4-1.ius.el6                   installed
php56u-mysqlnd.i386                  5.6.4-1.ius.el6                   @/php56u-mysqlnd-5.6.4-1.ius.el6.i386
php56u-pdo.i386                      5.6.4-1.ius.el6                   @/php56u-pdo-5.6.4-1.ius.el6.i386
php56u-pear.noarch                   1:1.9.5-1.ius.el6                 @/php56u-pear-1.9.5-1.ius.el6.noarch
php56u-pecl-jsonc.i386               1.3.6-3.ius.el6                   @/php56u-pecl-jsonc-1.3.6-3.ius.el6.i386
php56u-pecl-jsonc-devel.i386         1.3.6-3.ius.el6                   @/php56u-pecl-jsonc-devel-1.3.6-3.ius.el6.i386
php56u-process.i386                  5.6.4-1.ius.el6                   installed
php56u-xml.i386                      5.6.4-1.ius.el6                   installed
plymouth-graphics-libs.i686          0.8.3-27.el6.centos.1             @base    
xorg-x11-drv-elographics.i686        1.4.1-3.el6                       @base 


[root@centos php56u]# yum localinstall php56u-mcrypt-5.6.4-1.ius.el6.i386.rpm php56u-mbstring-5.6.4-1.ius.el6.i386.rpm ←不足分をインストール。

インストール:
  php56u-mbstring.i386 0:5.6.4-1.ius.el6   php56u-mcrypt.i386 0:5.6.4-1.ius.el6  
完了しました!
       
      
「phpMyAdmin」
 ・MySQL(当方はMariaDB)の操作をWebブラウザ上から行なえるようにする。
 ・Webサーバー+PHP、MySQLデータベースが構築済であること。
 であるとのこと。条件がばっちりなので、当初の予定に追加でインストールします。

 下記を「yum list installed」で確認してみる。
 インストールに必要なモジュール類。

 ・「php-mysqlnd」→制御用モジュール インストール済み。
 ・「php-mcrypt」→暗号化モジュール
 ・「php-mbstring」→マルチバイト対応モジュール。
 ・「php-pecl-jsonc」→PHPでJSONを扱う? インストール済み。
 不足分を「yum localinstall」でインストールする。

■「phpMyAdmin_4.4.4」のインストールと設定。

       
http://www.phpmyadmin.net/home_page/downloads.php ←ダウンロードする。

[root@centos Downloads]# tar -zxvf phpMyAdmin-4.4.4-all-languages.tar.gz ←解凍。

[root@centos Downloads]# mv phpMyAdmin-4.4.4-all-languages /var/www/html/phpmyadmin ←ディレクトリ名を変更し移動。

[root@centos phpmyadmin]# cp /var/www/html/phpmyadmin/config.sample.inc.php /var/www/html/phpmyadmin/config.inc.php ←サンプル設定ファイルをコピー。

[root@centos phpmyadmin]# chmod 660 /var/www/html/phpmyadmin/config.inc.php


$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */ ←英数文字列を入力。
$cfg['blowfish_secret'] = 'fqqoyavluiqcxmk-w0xeeFbjmxzarnvtvmcbNp4saylyzi'; ←入力後。

$cfg['Servers'][$i]['auth_type']     = 'cookie'; ← 認証モードは「cookie」

$cfg['Lang']     = 'ja-utf-8'; ← 一文追記(日本語化)
  /*
   * End of servers configuration
   */
 
 [bibo-roku@centos ~]$ sudo chown -R root.apache /var/www/html/phpmyadmin/ ←所有者の変更。
 
       
      
「yum」コマンドでインストールしようとしたものの、最新版ではなかったので「tar.gz」形式でダウンロードしました。
 解凍して出来上がったディレクトリ「phpMyAdmin-4.4.4-all-languages」は長い名前なので「phpmyadmin」として「/var/www/html/」以下に移動します。これがインストールと言える作業でしょうかね。
 ディレクトリ「phpmyadmin」内のファイル「config.sample.inc.php」をコピーしてそれの設定を書き換える。書き換えるために「chmod 660」とします。
「$cfg['blowfish_secret'] = '';」に任意の英数字の文字列を入力します。
「$cfg['Servers'][$i]['auth_type'] = 'cookie';」認証にはcookieを使用します。
「$cfg['Lang'] = 'ja-utf-8';」日本語が使えるように追記します。
「/var/www/html/phpmyadmin/」以下のファイルの所有者を「root:apache」に変更します。

■「apache」の「phpMyAdmin」のための設定。

       
[bibo-roku@centos ~]$ sudo vi /etc/httpd/conf.d/phpmyadmin.conf ←「apache」の設定。
      
Alias /phpmyadmin /var/www/html/phpmyadmin
      
<Location /phpmyadmin>
  Order deny,allow
  Deny from all
  Allow from 127.0.0.1
  Allow from 192.168.0 ←LAN内のネットワークアドレス
</Location>
 
[bibo-roku@centos ~]$ sudo /etc/rc.d/init.d/httpd reload ←設定の反映。
httpd を再読み込み中:
       
      
「apache」のファイルを作成します。
 アクセスを許可するローカルのネットワークを設定する。当方は「192.168.0」です。
 設定を反映させるために再読み込みします。

■「phpMyAdmin4.4.4」の動作確認。

       
http://192.168.0.66/phpmyadmin ←ブラウザでアクセス。

phpMyAdmin - Error ←ブラウザにエラー表示。

The json extension is missing. Please check your PHP configuration. ←「json」モジュールが原因。

[bibo-roku@centos ~]$ rpm -qa | grep json ←インストール済みのファイル確認。
php56u-pecl-jsonc-devel-1.3.6-3.ius.el6.i386 ←「jsonc」で「json」でない。
php56u-pecl-jsonc-1.3.6-3.ius.el6.i386  ←「jsonc」で「json」でない。

[root@centos php56u]# yum install --enablerepo=ius php56u-pecl-jsonc ←最新の物にしてみる。

更新:
  php56u-pecl-jsonc.i686 0:1.3.7-1.ius.centos6                                   
依存性を更新しました:
  php56u-pecl-jsonc-devel.i686 0:1.3.7-1.ius.centos6                             
完了しました!

[root@centos php56u]# /etc/init.d/httpd restart ←反映させるために再起動。
httpd を停止中:                                            [  OK  ]
httpd を起動中:

http://192.168.0.66/phpmyadmin ←ブラウザで再度アクセス。
phpmyadmin_login.png
       
      
 ホストOS側のブラウザからアクセスするもエラーが発生しました。
「json」とあるので「rpm -qa」で確認するとすでにインストール済みでした。
「jsonc」と「json」の違いかと思いましたが、違うようです。  一応「IUS」リポジトリで「yum install」を試みたところより新しいバージョンがあり、インストールしました。
 設定を反映させるために再起動後、再びブラウザでアクセスするとログイン画面が表示されました。
「ユーザー名」はアクセスするデータベースのユーザー。初回なら「root」 「パスワード」上記のパスワード。  

「MariaDB10.0」の設定、動作確認。 [MariaDB]

「MariaDB10.0」の設定、動作確認。

■「MariaDB」の初期設定。

       
[bibo-roku@centos ~]$ sudo mysql_secure_installation ←初期の設定開始。
[sudo] password for bibo-roku: 

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): ←「ENTERキー」
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2 "No such file or directory") ←エラー発生。

[bibo-roku@centos ~]$ sudo reboot ←エラー対処に再起動実施。

Enter current password for root (enter for none): ←再実施「空ENTERキー」
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] ←「空ENTERキー」※「Y」の意味。

New password:  ←任意のパスワード入力。
Re-enter new password:  ←パスワード再入力。
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n]  ←「空ENTERキー」

 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n]  ←「空ENTERキー」
By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n]  ←「空ENTERキー」
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] ←「空ENTERキー」
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!
       
      


 初期設定開始のコマンドを入力し設定を開始します。
「root」ユーザのパスワードを問われますが、「空のENTERキー」を押します。


「mysql.sock」に繋げられないというエラーのようです。
「/var/lib/mysql/」に見覚えがあるぞと思ったら、インストール時にそのディレクトリが無いぞと怒られていましたね。ですが、ディレクトリは作成されていました。
 しかし「mysql.sock」は見つかりませんでした。
 インターネット検索をしてみると、「ソケットファイルが削除されている場合があります。この場合、MySQLサーバーを一旦シャットダウンして再起動をかけるとソケットファイルが復元されます。」とのこと。
「CentOS」を再起動させたところ、「mysql.sock」が現れました。

 再度、初期設定を始めます。パスワード入力以外は全て「空ENTERキー」=「Yes」で進めます。

「Set root password?」→パスワードを作成しますか?
「New password:」→入力。
「Re-enter new password:」→再入力。
「Remove anonymous users?」→匿名のユーザーを削除しますか?
「Disallow root login remotely?」→リモートユーザのログインを禁止しますか?
「Remove test database and access to it? 」→テストデータベースを削除しますか?
「Reload privilege tables now?」


■設定ファイルの編集。

       
[bibo-roku@centos ~]$ sudo vi /etc/my.cnf.d/server.cnf
---省略---
# this is only for the mysqld standalone daemon
[mysqld]
character-set-server = utf8 ←一文追記。
---省略---

[bibo-roku@centos ~]$ sudo /etc/init.d/mysql restart ←反映させる。
Shutting down MySQL.. SUCCESS! 
Starting MySQL..... SUCCESS!
       
      


 漢字を扱えるようにするために「utf-8」を追記するとのこと。
 ※それ以前に作成されたデータには反映されないみたいなので漢字を扱うなら初めに設定しておく。
 また反映させるためには「MariaDB」を再起動させます。


■「MariaDB」の動作確認。

       
[bibo-roku@centos ~]$ sudo /etc/init.d/mysql start ←起動。
Starting MySQL SUCCESS!

[bibo-roku@centos ~]$ mysql -u root -p ←「root」ユーザーでログイン。
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 12
Server version: 10.0.17-MariaDB MariaDB Server

Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> grant all privileges on test.* to 'bibo-roku'@localhost identified by 'bibo-rokupass'; ←新規ユーザー作成。
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> select user from mysql.user where user='bibo-roku';
+-----------+
| user      |
+-----------+
| bibo-roku | ←bibo-rokuの登録確認。
+-----------+
1 row in set (0.00 sec)

MariaDB [(none)]> exit ←ログアウト。
Bye

[bibo-roku@centos ~]$ mysql -u 'bibo-roku' -pbibo-rokupass ←「bibo-roku」でログイン。
---省略---

MariaDB [(none)]> create database test; ←testデータベース作成。
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| test               | ←確認。
+--------------------+
2 rows in set (0.00 sec)

MariaDB [(none)]> use test;
Database changed
MariaDB [test]> ←[test]に。

MariaDB [test]> create table test(num int, name varchar(50));
Query OK, 0 rows affected (0.09 sec)

MariaDB [test]> show tables;
+----------------+
| Tables_in_test |
+----------------+
| test           | ←確認。
+----------------+
1 row in set (0.00 sec)

MariaDB [test]> insert into test values(1,'山田太郎');
Query OK, 1 row affected (0.00 sec)

MariaDB [test]> select * from test;
+------+--------------+
| num  | name         |
+------+--------------+
|    1 | 山田太郎     | ←確認。
+------+--------------+
1 row in set (0.00 sec)

MariaDB [test]> update test set name='山田次郎';
Query OK, 1 row affected (0.06 sec)
Rows matched: 1  Changed: 1  Warnings: 0

MariaDB [test]> select * from test;
+------+--------------+
| num  | name         |
+------+--------------+
|    1 | 山田次郎     | ←変更確認。
+------+--------------+
1 row in set (0.00 sec)

MariaDB [test]> delete from test where num=1;
Query OK, 1 row affected (0.13 sec)

MariaDB [test]> select * from test;
Empty set (0.00 sec) ←「Empty」確認。

MariaDB [test]> drop table test;
Query OK, 0 rows affected (0.03 sec)

MariaDB [test]> show tables;
Empty set (0.00 sec) ←「Empty」確認。

MariaDB [test]> drop database test;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema | ←確認。
+--------------------+
1 row in set (0.00 sec)

MariaDB [(none)]> exit 
Bye

[bibo-roku@centos ~]$ mysql -u root -p
Enter password: 
---省略---
MariaDB [(none)]> revoke all privileges on *.* from 'bibo-roku'@localhost;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> delete from mysql.user where user='bibo-roku' and host='localhost';
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> select user from mysql.user where user='bibo-roku';
Empty set (0.00 sec) ←「Empty」確認。

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> exit
Bye

       
      


 上記の「MariaDB」の動作確認は。下記サイト様の内容をそのまま実施させていただきました。ありがとうございました。
 http://centossrv.com/mariadb.shtml

 流れとしては「testデータベースへの全てのアクセス権限を持った、新規ユーザbibo-rokuを登録」※「-」ハイフンが入るユーザー名を使うときは「'」シングルクォーテーションで囲む必要があります。
「testデータベース作成」→「testデータベースに接続」→「testデータベースにテーブル作成」→「testテーブルに山田太郎登録」→「山田太郎を山田次郎に変更」→「testテーブル内データ削除」→「testテーブル削除」→「testデータベース削除」→「bibo-rokuユーザから全てのデータベースへのアクセス権限を剥奪」→「bibo-rokuの削除」→「MariaDBサーバへ反映」
 テキストで扱うのは難しそうですね……。
 調べてみると、「phpMyAdmin」というモノがあるそうです。




この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。