2011年7月26日火曜日

VirtualHostの設定ミス

httpd.conf を変更(書き直し)していたら、apache の起動時に下記のエラーが発生。(オヨヨ)

[root@hogehoge ~]# service httpd restart
httpd を停止中:                                            [  OK  ]
httpd を起動中: [Tue Jul xx hh:mm:ss YYYY] [warn] _default_ VirtualHost overlap on port 80, the first has precedence
 
httpd.conf に設定ミス(漏れ)があった。
NameVirtualHost *:80
設定を追加(コメントを解除)して完了!(OK!)

CAKEPHP でそのまま実行すると下記のようにエラーになる。(いつも事だな。)

Release Notes for CakePHP 1.3.10.
Read the changelog

Notice (1024): Please change the value of 'Security.salt' in app/config/core.php to a salt value specific to your application [CORE/cake/libs/debugger.php, line 684]

Warning: touch() [http://php.net/function.touch]: Utime failed: Permission denied in /var/www/cakephp-1.3.10/cake/libs/file.php on line 125

Notice (1024): Please change the value of 'Security.cipherSeed' in app/config/core.php to a numeric (digits only) seed value specific to your application [CORE/cake/libs/debugger.php, line 688]

URL rewriting is not properly configured on your server.

    Help me configure it
    I don't / can't use URL rewriting

Your tmp directory is writable.

The FileEngine is being used for caching. To change the config edit APP/config/core.php

Your database configuration file is NOT present.
Rename config/database.php.default to config/database.php
saltの変更を促す警告
Notice (1024): Please change the value of 'Security.salt' in app/config/core.php to a salt value specific to your application [CORE/cake/libs/debugger.php, line 684]
(変更箇所)
/**
 * A random string used in security hashing methods.
 */
 Configure::write('Security.salt', '****************************************');
Security.saltに設定する値は、mkpasswd で作成するのが便利。
mkpasswd -l 40
※mkpasswd は、ecpectパッケージに含まれています。


cipherSeed 値の変更を促される。
セキュリティ強化のため、今回の cakephp-1.3.10 あたりで追加されたらしい。
Notice (1024): Please change the value of 'Security.cipherSeed' in app/config/core.php to a numeric (digits only) seed value specific to your application [CORE/cake/libs/debugger.php, line 688]
(変更箇所)
/**
 * A random numeric string (digits only) used to encrypt/decrypt strings.
 */
 Configure::write('Security.cipherSeed', '******************************');

Security.cipherSeedに設定する値も mkpasswd で作成するのが便利。
mkpasswd -l 30 -c 0 -d 30 -C 0 -s 0


mod_rewiteの設定に問題あり?
URL rewriting is not properly configured on your server.
バーチャルホストの設定で、下記のディレクティブを設定。
    
        Options FollowSymLinks
        AllowOverride All
    
ようやく無事に初期画面が表示されたぜ。
※データベースの設定はまだだけどね。

PHP5.3 タイムゾーン エラー?

ディスクがクラッシュして再インストールしているが、CAKEPHP(1.3.10)を実行しようとすると下記のエラーが発生。

Warning (2): strtotime() [http://php.net/function.strtotime]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Tokyo' for 'JST/9.0/no DST' instead [CORE/cake/libs/cache.php, line 597]

Notice: Trying to get property of non-object in /var/www/html/cakephp/cake/libs/cache/file.php on line 248 Fatal error: Call to a member function cd() on a non-object in /var/www/html/cakephp/cake/libs/cache/file.php on line 248 
今回は PHP5.3 をインストールしてしたが、PHPの設定タイムゾーンの設定が必要なようだ。(いつの間に r(?_?);)
変更前 PHP.ini
[Date]
; Defines the default timezone used by the date functions
; http://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone
;date.timezone =
変更後 PHP.ini
[Date]
; Defines the default timezone used by the date functions
; http://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone
date.timezone = Asia/Tokyo

2011年7月23日土曜日

SELinux でつまずく

ファイルおよびフォルダに設定されいるタイプの詳細を確認しようと考え、seedit-gui をインストールして seed-init を実行する。しかし、これがいけなかったようだ。seed-init 実行後に再起動をしたら起動できなかった。

とりあえず、boot時にselinuxを無効にして起動をさせた。

boot時に selinuxを無効にする。
起動時に F2 を押し boot オプションを選択する。

title Turbolinux
kernel (hd0,0)/boot/vmlinuz root=0802 selinux=0
initrd (hd0,0)/boot/initrd

Gnomeがハング?

Gnomeテキスト・エディタでテキストファイルを開こうしたら、ファイルは開いたが「既に開かれているので修正できない」主旨のメッセージが表示された(強制修正は可能)。

画面を見る限り別ウィンドぅでも開いていないので、とりあえずろ「ログオフ」してから再ログインしようとしたらログオフされない。

しばし待機したがログオフされないので、シャットダウンでもするかと思ったがキーがきかなかった。
マウスは動くが、何も選択できない。

何か対策はと思い、X Window を終了させれば良いのだと考え、下記を実施した。

[Ctrl]+[Alt]+[BS]

上記でX サーバーが終了する。特に重要なプロセスも動かしていないので、実行し、ログイン画面に復帰。

ディスク故障で痛い目にあっているので、リセットボタンや電源ボタンによる不用意な再起動は避けねば...

2011年7月20日水曜日

Mysqlの設定

Mysqlの uid gid を何番にしたらよいか...
とりあえず、登録されているユーザーを uid 順に並べて確認する。

[root@ora02 ~]# awk -F":" '{print $3 " " $1}' /etc/passwd | sort -n
0 root
1 bin
2 daemon
Apacheはシステム用の予約済(固定) UID/GID 一覧にあるが、MySQLはなかった。

Yumからインストールすると uid gid ともに 27 であった。

MySQL5.5をインストール

CENTOS(5.6)の通常のリポジトリからだとMySQL5.0になっていまいます。CENTOEはすべてにおいてバージョンがかなり遅れているので、できるだけ最新版を使うには最新版をソースから新ストールするかパッケージにされたリポジトリを探し出します。(実際、いろいろな方がパッケージにしてくれている)

今回は、remi-testリポジトリからインストールします。

コマンドから yum でインストールするか GUI(Yum Extender)からインストールを行います。
以前は、いつもコマンドからyumで行っていましたが、UI(Yum Extender)を知ってからはほとんどGUIで対応しています。 GUIのほうが、多数のリポジトリを指定し特定のリポジトリのものを指定してインストールできるから大変便利です。

データベースの格納先を変更する

yumでインストールとすると、ユーザー:mysql のホームディレクトリが /var/lib/mysql に設定されます。
データベースの格納先を別の場所にしたいので、mysql のホームディレクトリを変更し、my.cnf でデータベースの格納先も合わせて変更することにします。

mysqlのホームディレクトリの変更先のディレクトリを作成。
mkdir /opt/mysql

ディレクトリのユーザ:グループの設定
chown mysql:mysql /opt/mysql
※アクセス権は 755

セキュリティコンテキストの設定
chcon system_u:object_r:mysqld_db_t /opt/mysql
   ↓下記に変更
chcon -R --reference=/var/lib/mysql /opt/mysql

2011年7月19日火曜日

バーチャルホストの設定

http.confを編集してバーチャルホストの設定ファイル(httpd-vhosts.conf)を読み込むように設定する。

httpd-vhosts.conf
# Virtual hosts
Include conf.d/httpd-vhosts.conf
※redhat系でない場合は、/etc/httpd/extra/httpd-vhosts.confに書くようだ。
httpd-vhosts.conf
# www.hogehoge.org
<VirtualHost *:80>
    DocumentRoot /var/www/vhosts/hogehoge
    ServerName www.hogehoge.org
    ServerAlias hogehoge.org
    ErrorLog logs/hogehoge.org-error_log
    CustomLog logs/hogehoge.org-access_log combined
</VirtualHost>
http://www.hogehoge.org にアクセスしたときに /var/www/vhosts/hogehoge/ ディレクトリのファイルを表示する。エイリアスとして www なしの http://hogehoge.org/ でも同じ設定を使うようになっています。また、ログも分けて出力する。

バーチャルホストが多数ある場合

バーチャルホストの設定が多数あるときは、それぞれのサイト毎にファイルを分けた方が管理し易いと思います。その場合は、下記のように設定すると良いかも。

httpd-vhosts.conf
# Virtual hosts
Include conf.d/vhosts/*.conf
上記のように、conf.d/vhosts/*.conf を読み込むように設定しドメイン事に hogehoge.org.conf や hogehoge2.org.conf などのファイルを作っていきます。
hogehoge.org.conf
# www.hogehoge2.org
<VirtualHost *:80>
    DocumentRoot /var/www/vhosts/hogehoge2
    ServerName hogehoge2.net
    ServerAlias www.hogehoge2.net
    AddDefaultCharset euc-jp
    <Directory "/var/www/vhosts/hogehoge2">
      Options Includes ExecCGI FollowSymLinks MultiViews
      php_value mbstring.language Japanese
      php_value mbstring.internal_encoding EUC-JP
      php_value mbstring.http_input auto
      php_value mbstring.http_output EUC-JP
    </Directory>
</VirtualHost>
上記は、www.hogehoge2.org をEUC-JPで稼動させ,PHPの内部コード(internal_encoding)と出力(http_output)もEUC-JPに設定している。

しかし、再インストールは面倒ですなぁ〜 (/_;)
※ディスクが故障し交換のため、すべて再インストールになった哀れな者

2011年7月17日日曜日

GnomeからFirefoxが起動しない!?

Firefoxを 3.6 系から 5.0.1 にバージョンアップをしたが、再起動後にGnome端末からFirefoxが起動しない。

コマンドラインから入力して確認すると下記のエラーが発生。
Cannot find Firefox runtime directory. Exiting.
なんてことなく、解決。
/usr/bin に直接スクリプト(firefox)をコピーしてしまったのを、新バージョン(5.0.1)のリンクを登録することで解決した。

2011年7月14日木曜日

Linux版(firefox) Evernote Web Clipper が動かなくなった。

ディスクが故障して再インストールを余儀なくされたマシンが、再インストール後にEvernote Web Clipper が動かなくなった。WindowsXp版のFirefoxでは以前にも経験し、奮闘の結果復旧を遂げることができた(コメントを頂いた方のアドバイスもあり)が、今度はLinux版かよ....

CENTOS5.6をインストールしたので、Firefoxのバージョンは3.6代とかなり古い(しかし、故障前はこのバージョンで動作していた)ので、念のため最新版である 5.0.1 をインストールしてみたがやはりダメであった。 (/_;)(泣)

また、時間がある時に奮闘努力をすることになってしまった。(泣)

2011年7月10日日曜日

Linux 再インストール

ディスクが故障したため、仕方なく再インストールすることになった。
 3日間ほど故障からの復帰にトライを続けたが、テキストモードまでの起動にはこぎつけたが、残念ながら肝心のデータが保存されているパーティションにアクセスできなかった。
 故障で起動しなくなる2週間前あたりから、SELinux Troubleshooter からのメッセージが発生しているアイコンが表示されていたが、内容を確認しないままでいてしまった。また、その他にもシステムログ等を確認していなかった... なんてこった。(ーー;)

    【交換したディスクの内容】
  • 故障HDD:Western Digital 500GB  5400rpm
  • 新HDD  :Buffalo          1TGB  7200rpm

故障したディスクの復旧・検証用

故障したディスクの復旧・検証を行うためにハードディスクをUSBを直付けできる変換ケーブルを購入する。今までは、今回も行ったようにCD起動のLinuxである Knoppix でデータの復旧(取り出し)を行い、Knoppix で出来ない場合は諦めていた。
他にも故障したマシンがあり(電源)、こちらのディスクも検証・復旧したいので調べていたら、面白いケーブルがあったので、早速購入して試して見ることにした。

リポジトリの追加

RPMForge・DAG・EPELを追加する。

base CentOS 5.0のベース
updates CentOS 5.0のアップデート
addons CentOS 5.0のアドオン
extras CentOS 5.0の追加パッケージ(addonsとの切り分けが今ひとつ不明)
centosplus CentOS 5.0の拡張パッケージ(デフォルトではOff)
epel Extra Packages for Enterprise Linux(EPEL) FedoraExtraなどでは提供されているものがある
dag Dag、Red Hat Enterprise Linux向け。パッケージの種類は豊富
rpmforge Dag 氏を含む何名かのメンバーが中心になりメンテナンスを行っているようです。

smb 設定

■/etc/services の設定
(下記の設定がない場合は追記する。) netbios-ssn 139/tcp
netbios-ns 137/udp
■samba-swatのインストール
[root@centos ~]# yum -y install samba-swat ← SWATインストール
■swat設定
[root@centos ~]# vi /etc/xinetd.d/swat ← xinetd用SWAT設定ファイル編集 service swat
{
port = 901
socket_type = stream
wait = no
only_from = 127.0.0.1 192.168.1.0/24 ← 追加(内部ネットワークアドレス)
user = root
server = /usr/sbin/swat
log_on_failure += USERID
disable = yes
}

とりあえず、ファイルサーバーとしての機能を優先して復旧させた。

実際は、sambaの設定でつまずき時間を要してしまった。(SELinuxがらみ)この対応については、後日掲載します。
※SELinuxには、まだまだ未熟なようでやたらつまずく。 (_ _ ;)尸 マイリマシタ…