2005-06-22
■ [mac][unix] echo "set editing-mode vi" >> ~/.inputrc

何かと vi モードの方が良さげな気がしてきたので。しばらくこうしてみることに。
ところでediting-modeをviにしておくと、.screenrcに“escape ^Tt”とか書かなくて済むのだろうか。もう。
いや、常々「“^A”の方がやっぱり楽だよなぁ」と思っていたので。
■ [mac][tiger][xoops] Tiger Server検証事始め:その4『Tiger Server+PHP+MySQL+Xoops』

Xoopsを入れてみようと思いまして。Tiger Serverに。
Tiger ServerだとMySQLがちょっと面倒みたいですね。以下、参考情報。
- OSXServer10.4のMySql
- Mac OS X Server 10.4: Issues connecting PHP to MySQL
- 【コラム】Yet Another 仕事のツール 第48回 MySQL 4.0から4.1へのアップグレード 、トラブってませんか? (MYCOM PC WEB)
- MySQL リファレンスマニュアル :: A.2.4 Client does not support authentication protocol エラー
問題としては2つあって、
- socketのパスが(Tiger Serverにプリインストールの)MySQLとPHPで食い違ってる
- MySQL 4.0 と 4.1からパスワードハッシュに互換性がないため、接続するクライアント(この場合 Tiger Server にプリインストールのPHP)が対応していないと接続できない
後者は「接続できない*場合がある*」位なのかも。Web Scripter's Meeting のスレッドだと socket のパスを書き換えただけで動いた人もいそうだし。パスワードの文字列長にもよるのかなぁ?? とか。
ま、それは置いといて。
以下に、PHP, MySQL, Xoops と順を追って書いてみよう。
■ [mac][tiger] Tiger Server検証事始め:その4−1『PHP』

Server Admin*1上で、該当サーバの「Web」>「Modules」> php4_module を有効に > 「Save」
以上。まぁプリインストールの使うだけだし。
■ [mac][tiger][xoops] Tiger Server検証事始め:その4−2『MySQL』

これがまた。簡単に行くかと思ったらハマりましたね。トホホ。
以下、すんなり行けるようにまとめたもの。メモ書きレベルなのですんなり行かなくても保証しないですけど。
それと、上のPHPではServer Admin使ってるクセに、MySQLは全部CLIから行きます。
なので、アップル - サーバ - 製品ドキュメント:『Command-Line Administration』(PDF直)の P153〜154を必読。
$ sudo -s ○rootユーザにパスワードを与えたりとか # mysql_install_db --user=mysql -u mysql # mysqladmin shutdown # mysqld_safe --skip-grant-tables --skip-networking --old-passwords & # mysqladmin -u root flush-privileges password new-password # mysqladmin -u root password "hogehugahunya" # mysqladmin -u root -p shutdown ○MySQLを利用できるように # echo "MYSQL=-YES-" >> /etc/hostconfig ○/etc/my.cnfの用意 # cp /usr/share/mysql/my-medium.cnf /etc/my.cnf # vi /etc/my.cnf # diff -u /usr/share/mysql/my-medium.cnf /etc/my.cnf --- /usr/share/mysql/my-medium.cnf 2005-03-21 09:16:48.000000000 +0900 +++ /etc/my.cnf 2005-06-23 01:32:45.000000000 +0900 @@ -24,6 +24,8 @@ # The MySQL server [mysqld] +default-character-set=ujis +old-passwords port = 3306 socket = /var/mysql/mysql.sock skip-locking @@ -132,10 +134,12 @@ #innodb_lock_wait_timeout = 50 [mysqldump] +default-character-set=ujis quick max_allowed_packet = 16M [mysql] +default-character-set=ujis no-auto-rehash # Remove the next comment character if you are not familiar with SQL #safe-updates ※文字コードをEUCに ※「mysqld」のオプションとして「old-passwords」を指定 ○PHPとMySQLでのsocketの不整合修正 # cd /etc # cp -p php.ini.default php.ini # vi php.ini # diff -u php.ini.default php.ini --- php.ini.default 2005-05-26 06:01:08.000000000 +0900 +++ php.ini 2005-06-23 01:37:41.000000000 +0900 @@ -655,7 +655,7 @@ ; Default socket name for local MySQL connects. If empty, uses the built-in ; MySQL defaults. -mysql.default_socket = +mysql.default_socket = /var/mysql/mysql.sock ; Default host for mysql_connect() (doesn't apply in safe mode). mysql.default_host = ○/var/mysqlの権限修正 # chmod 1775 /var/mysql # ls -ld /var/mysql drwxrwxr-t 16 mysql wheel 544 Jun 23 01:22 /var/mysql ○サーバを再起動かけて一服 (´ー`)v-~~~~ ピースライトノパッケージカワッチャッタナー
■ [mac][tiger][xoops] Tiger Server検証事始め:その4−3『Xoops』

PHPとMySQLが正常に動いていれば、まぁXoopsはすぐ動くんじゃないかと。
とりあえず、Xoops用のDBを作るところから。
$ mysqladmin -u root -p create xoops
Enter password:
$ mysql -u root -p mysql
Enter password:
Welcome to the MySQL monitor. Commands end with ; or ¥g.
Your MySQL connection id is 4 to server version: 4.1.10a-log
Type 'help;' or '¥h' for help. Type '¥c' to clear the buffer.
mysql> grant all privileges on xoops.*
-> to xoops@localhost identified by 'hogehugahonyahonya';
Query OK, 0 rows affected (0.60 sec)
mysql> quit
Bye
$ mysql -u xoops -p xoops
Enter password:
Welcome to the MySQL monitor. Commands end with ; or ¥g.
Your MySQL connection id is 5 to server version: 4.1.10a-log
Type 'help;' or '¥h' for help. Type '¥c' to clear the buffer.
mysql> quit
Bye
んでもってXoopsのインストールというか設置というか。
$ curl -O "http://osdn.dl.sourceforge.jp/xoops/15115/xoops-2.0.10-JP.tar.gz" $ tar xzf xoops-2.0.10-JP.tar.gz $ cp -rp ./xoops-2.0.10-JP/html/ /Library/WebServer/Documents/xoops $ ls -l /Library/WebServer/Documents/xoops/ (略)
そしたらブラウザで、http://サーバ/xoops/install/index.php へ。
すぐに、書き込み権限が無いと怒られるので、以下のように。
$ sudo -s # cd /Library/WebServer/Documents/xoops/ # ls -F # chmod 777 uploads/ cache/ templates_c/ # chmod 666 mainfile.php # ls -ld uploads/ cache/ templates_c/ # ls -l mainfile.php
一旦ブラウザでインストール作業を終えたら、以下を実行。
# pwd /Library/WebServer/Documents/xoops # rm -rf install # chmod 400 mainfile.php # chown www:www mainfile.php # ls -l mainfile.php -r-------- 1 www www 4665 Jun 23 02:43 mainfile.php
まぁ取りあえずはコレでXoopsが動く所までは行けると思う。
ずいぶんと端折って書いてあるけど。
ところで。最後の mainfile.php の権限やオーナー・グループの変更の所ですが。
今回 Tiger Server にXoopsを入れるに当たり、本だのwebのドキュメントだの何だの眺めたんですが、大体は「chmod a-w mainfile.php」とか「chmod 444 mainfile.php」とかしてるだけで、オーナーやグループは変えてなかったりするんですけど、otherな方々に見せる必要ってあるんですかね。mainfile.phpって。
いや、MySQL上に作ったXoopsのDBへの接続パスワードとかそのまま平文で載ってるんで>mainfile.php
どうしたもんかなぁと思って chmod 400 して chown www:www しといたんですけどね。どうなんでしょうね。コレ。
まぁしばらく動かしてみて、問題無ければこのまんま、かな。
追記
そういう意味で言えば、Mac OS X Server 10.4: Issues connecting PHP to MySQL には、/etc/my.cnf の socket のパスを /tmp/mysql.sock にするより、/etc/php.ini を用意して mysql.default_socket = /var/mysql/mysql.sock にした方が*安全だ*と書いてあるのに、何故かMacな方々は /etc/my.cnf で /tmp/mysql.sock にする傾向が有る様な気がしますね。
どうしてわざわざ安全じゃない方を選ぶのかしらん。まぁいーけど。
*1:日本語環境だと「サーバ管理」かな?
shiro2005/09/24 04:51どうしてわざわざって...単に「安全性について評価する能力がない」だけかと(^^;