leopardサーバー構築メモ20090821

ブログ | 2009/8/22 00:40
OSX 10.5.8
Apache 2.2.11
MySQL 5.0.84
PHP5.3.0

[webmin]
http://www.webmin.com/download.html
cd /Applications/webmin-1.480
sudo ./setup.sh
アンインストールは
/etc/webmin/uninstall.sh

[アプリケーション]
cotEditor ...テキストエディタ
http://www.aynimac.com/p_blog/files/article.php?...

[MacPorts]
http://www.macports.org/
パッケージからインストール
/User/kuwa/.bash_profile というファイルを作って、(これ必要なくなってるかも)
export PATH=/opt/local/bin:/opt/local/sbin/:$PATH
export MANPATH=/opt/local/man:$MANPATH

Terminalの新しいウインドウで、
sudo port -d selfupdate
sudo port -d sync

[不可視ファイルの表示]
defaults write com.apple.finder AppleShowAllFiles true
killall Finder
非表示
defaults write com.apple.finder AppleShowAllFiles false

[MySQL]
port search mysql5
port variants mysql5
で情報を調べてから、
sudo port install -v mysql5-server
■データベースの作成
sudo /opt/local/bin/mysql_install_db5
cd /opt/local/var/db
sudo chown -R mysql:mysql mysql5
cd /opt/local/var
sudo mkdir run
sudo mkdir run/mysql5
sudo chown -R mysql:mysql run
■自動起動
sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist

最近のは上記plistが見当たらないので、下記ページを参照に(追記:mysql5-serverをインストールすれば入るみたい)
http://d.hatena.ne.jp/kazu_pon/20090802/p1
cd /opt/local/etc/LaunchDaemons
sudo mkdir org.macports.mysql5
cd org.macports.mysql5
sudo curl -O http://robwilkerson.org/_resources/hotlink/blog/mysql5.wrapper
sudo curl -O http://robwilkerson.org/_resources/hotlink/blog/org.macports.mysql5.plist
sudo chown root:wheel *
sudo chmod 755 mysql5.wrapper
sudo chmod 644 org.macports.mysql5.plist
sudo ln -s /opt/local/etc/LaunchDaemons/org.macports.mysql5/org.macports.mysql5.plist /Library/LaunchDaemons/org.macports.mysql5.plist

■webmin設定
/opt/local/lib/mysql5/bin/mysqlshow
/opt/local/lib/mysql5/bin/mysqladmin
/opt/local/lib/mysql5/bin/mysql
/opt/local/lib/mysql5/bin/mysqldump
/opt/local/lib/mysql5/bin/mysqlimport
cd /opt/local ; /opt/local/lib/mysql5/bin/mysqld_safe &

MySQL共有ライブラリディレクトリへのパス
/opt/local/lib/mysql5/mysql
Path to MySQL databases directory
/opt/local/var/db/mysql5

■rootパスワードの設定 (webminでも設定できる)
sudo /opt/local/lib/mysql5/bin/mysqladmin -u root password 'new-password'

■起動と停止
起動
cd /opt/local ; /opt/local/lib/mysql5/bin/mysqld_safe &
終了
sudo /opt/local/lib/mysql5/bin/mysqladmin -u root -p shutdown
接続
cd /opt/local/lib/mysql5/bin/mysql -u root -p
/opt/local/bin/mysql5 -u root -p
でもいい。

とりあえず、空のmy.cnfを作成(ないと自動起動しない)
sudo touch /etc/my.cnf

[apache2のインストール]
sudo port -d install apache2

■webmin設定
/opt/local/apache2
/opt/local/apache2/bin/httpd
/opt/local/apache2/bin/apachectl
/opt/local/apache2/conf/httpd.conf
/opt/local/apache2/conf/mime.types

■自動起動
sudo launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist

[php]
xcodeが古いと、xcode 3.1以上が必要とエラーが出るので
AppleのDeveloper Connectionからダウンロードする。
https://connect.apple.com/

port search php5
port variants php5
で調べてから、
sudo port -d install php5-gd +apache2 +mysql5 +pear

■インストールされたモジュールを調べる
/opt/local/bin/php -m
追加インストール
sudo port install php5-mcrypt
sudo port install php5-curl

■php.ini (/opt/local/etc/php5/php.ini)
cd /opt/local/etc/php5; cp php.ini-production php.ini

この辺りを追加・修正
mbstring.internal_encodeing = UTF-8
date.timezone = Asia/Tokyo
upload_max_filesize = 8M

[PEAR]
■XML_RPC
sudo /opt/local/bin/pear install -f XML_RPC
■Text_Diff
sudo /opt/local/bin/pear install -f Text_Diff
■Cache_Lite
sudo /opt/local/bin/pear install -f Cache_Lite
■Net_POP3
sudo /opt/local/bin/pear install Net_POP3-1.3.7
■Mail_Mime (Net_POP3に必要)
sudo /opt/local/bin/pear install Mail_Mime
■Auth_SASL (Net_POP3に必要)
sudo /opt/local/bin/pear install Auth_SASL-1.0.3

[crontab]
webminで設定(初期のまま)
/usr/lib/cron/tabs

1日1回、時間設定 (システム環境設定「日付と時刻」の自動的に設定は、Offにしておく)
/usr/sbin/ntpdate time.asia.apple.com 1>>/var/log/cron.log 2>>/var/log/cron_error.log

[システム環境設定]
ネットワークを手入力に
省エネルギー設定で、スリープしない、停電後に自動再起動
bluetooth関係は切っておく方が無難

[rootパスワードの設定]
ディレクトリユーティリティにて
編集 > ルートユーザーを有効にする

[BIND] ...LANからドメインでアクセスできるように
ここを参照して、webminで設定
http://earlybirds.ddo.jp/namahage/in...

ネームサーバーの起動には、
sudo /usr/sbin/rndc-confgen -a
をやっとく必要有。

■BINDの自動起動
sudo launchctl load -w /System/Library/LaunchDaemons/org.isc.named.plist
終了
sudo launchctl unload -w /System/Library/LaunchDaemons/org.isc.named.plist

プロセスIDを調べる
ps ax | grep named | grep -v grep

自分のマシンのキャッシュクリア
dscacheutil -flushcache

[mecab]
sudo port install mecab @0.96 +utf8only
■ユーザー辞書の追加
http://www.rottel.net/kuwa/34557

[Jcode.pm] (awstats用)
http://openlab.ring.gr.jp/Jcode/index-j.html
ダウンロードして解凍後、
cd Jcode-*
perl Makefile.PL; make
sudo make install
perlのパス
/opt/local/bin/perl

[sleepモードの設定] ... sleepimageファイル容量の節約
sudo pmset -a hibernatemode 0
sudo rm /var/vm/sleepimage
▼追記 2009/10/17 17:10
Macportのphp5のインストールだけでは、mysqlに接続できなくなっている。
分離されたようだ。下記で追加インストール。
sudo port install php5-mysql

さらに、php.iniを修正する必要あり。
mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock
pdo_mysql.default_socket= /opt/local/var/run/mysql5/mysqld.sock
mysqli.default_socket = /opt/local/var/run/mysql5/mysqld.sock
mysql.default_port = 3306

▼追記 2009/10/20 13:40
mbstringが入ってないじゃないか...
sudo port install php5-mbstring

比較してみると、これまで入っていたもので入らないものがたくさんある。
sudo port install php5-exif
sudo port install php5-curl
sudo port install php5-openssl
sudo port install php5-ftp
sudo port install php5-iconv
sudo port install php5-zip
sudo port install php5-dba
sudo port install php5-calendar
sudo port install php5-gettext
sudo port install php5-posix
sudo port install php5-sorp
sudo port install php5-sqlite
flipflop
Mac portsからPHPインストールしたことがないんでわからないですが、
分離したのはPHP5.3のMySQL Native Driverがらみですかね?
Native Driverだとメモリ使用量が1/2ですけど、ポストマップなんかでも少々はパフォーマンスに有利になったでしょうか?
flipflop | 2009/10/17 18:18
kuwa
phpinfo() を見るとmysqlndっていうのだけが出て、mysqlがでてなかったです。ndっていうのがおそらくnative driverってやつなんですね。

native driver、いずれ調べてみます。どうやって使うんだろう。っていうか、それなんなんだろう。
kuwa | 2009/10/17 18:24
flipflop
え〜そうなんですか・
うちの環境は --with-mysql=mysqlnd --with-mysqli=mysqlnd ってつけてコンパイルしたら、phpinfoには mysql、mysqli、mysqlndの順番で3つ出てきてます。

native driverはlibmysqlから分離して、php独自で作ったドライバって意味のようです。使い方は変わらないです。
flipflop | 2009/10/17 20:36
kuwa
> phpinfoには mysql、mysqli、mysqlndの順番で3つ出てきてます。

いや、
sudo port install php5-mysql
で、そのようにようやく出てきたという流れでした。mysqlndだけだと、phpから接続できなくて、全部インストールし直したりして、あれやこれやはまりました。

使い方は変わらないということは、mysqlndがインストールされていれば、勝手に負荷が下がるということなのかな。それだったらいいですね。
kuwa | 2009/10/20 02:10
flipflop
> mysqlndがインストールされていれば、勝手に負荷が下がる
そんな感じですね。厳密に言うと、ステータスを取得する関数が増えてますので機能アップもしてます。
flipflop | 2009/10/20 08:26
kuwa
macbookでテストしてみたところ、mysqlでもmysqliでもmysqlndを入れることで18%くらい高速化したんじゃないかというベンチマークが出ました。

mysql_connect, mysqli_connect, mysql_pconnect だと、mysql_pconnectが速いようです。


注) とても適当な検証と適当な結論。
kuwa | 編集回数: 1 | 2009/10/21 22:02
縮小 拡大

ログインしておくと、後で編集が可能です。

Rottel内コンテンツ

ユーザー一覧

Rottelとは?
利用規約
開発飲料
利用者の声
ヘルプ
close