新しく開発用サーバを立てることになったのでメモを残します。
いわゆるLAMP環境の設置です。
apacheをportsからインストールします。
Code:
cd /usr/ports/www/apache22 | |
make install | |
apachectl start |
すると以下のようなエラーが。
httpd: apr_sockaddr_info_get() failed for sabani.localhost
httpd: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName
[Wed Nov 26 16:12:35 2008] [warn] (2)No such file or directory: Failed to enable the ‘httpready’ Accept Filter
サーバのドメインネームが無い、ということなのでhostsファイルを編集。
Code:
vim /etc/hosts | |
127.0.0.1 yourdomain |
もう一度apacheを起動するとちゃんと動きました。
cd /usr/ports/lang/php5
Code:
make configure #apacheとmultibyteにチェック | |
make install |
インストールが終わったら
php.ini-distをコピーしてphp.iniを作る。
php.ini-recommendとはrecommendと言いつつ、phpの公式ページでは
php.ini-distを使いなさいとある。なんのこっちゃ。
ちなみにdiffると違いがよくわかる。
error_reportingとかmagic_quoteとかが微妙に違うので注意。
httpd.confに以下の一行があることを確認
Code:
LoadModule php5_module libexec/apache22/libphp5.so |
php5_moduleとlibexec/apache22/libphp5.soの間の変なタブが入っている場合は
そのタブを消してスペースで区切る。
じゃないときちんとphpと認識されないことがあるみたいです。
さらに以下の二行をhttpd.confに追加
Code:
AddType application/x-httpd-php .php | |
AddType application/x-httpd-php-source .phps |
これでapacheのリスタートをかける。
適当にphpファイルを作ってブラウザから閲覧できればOK。
さらに拡張する場合は
/usr/ports/lang/php5-extensions
に移動して
Code:
make configure | |
make install |
multibyteはともかく、必要そうなものを欲張りに入れていく。
特にMySQLとかXML-RPCとか。
参考URL
http://www.php.net/manual/ja/install.unix.apache2.php
phpの拡張でmysql-clientはすでにインストールされているので
ここではmysql-serverのみをインストールする。
Code:
cd /usr/ports/database/mysql50-server | |
make configure | |
make install |
mysqlの公式サイトによると
mysql_install_dbを実行する必要があるとのこと。
http://dev.mysql.com/doc/refman/5.1/ja/freebsd.html
これに従って以下を実行
Code:
cd /usr/local/mysql | |
bin/mysql_install_db --user=mysql | |
bin/mysqld_safe & |
topを見るとmysqldが動いているのが見えます。
mysql_install_dbを実行した際に以下のメッセージが出るので
これに従います。
/usr/local/bin/mysqladmin -u root password ‘new-password’
/usr/local/bin/mysqladmin -u root -h yourdomain password ‘new-password’
そしてこのメッセージでもマニュアルでも
起動コマンドはあくまでも mysqld_safe & にしてくれと書いてある。
なので、できるだけmysqld_safeを使うことにする。
mysqld_safe は Unix や NetWare などの環境で、mysqld サーバ ( デーモン) を起動するときに推奨しているコマンドです。mysqld_safe は、エラー発生時にサーバを再起動したり、ランタイム情報をログ ファイルに記録するなどのセキュリティ機能が加わります。
http://dev.mysql.com/doc/refman/5.1/ja/mysqld-safe.html
ただし、以下の文章がよくわからなかったので、保留事項としておく。
FreeBSD は非常に小さいデフォルトのファイル処理制限があることで知られています。項B.1.2.17. 「’File’ Not Found and Similar Errors」 参照。サーバを –open-files-limit オプションを使用して mysqld_safe に起動しするか、あるいは /etc/login.confg の mysql ユーザーの制限を上げそれを cap_mkdb /etc/login.conf で再度ビルドします。
ports管理やpackage管理でよく混乱するので覚書を残しておく。
以下のコマンドでports treeを最新のものにアップデートする。
この場合はcvsサーバを指定し、portsのsupfileを参照するように指定する。
Code:
cvsup -L 2 -h cvsup.jp.FreeBSD.org /usr/share/examples/cvsup/ports-supfile |
このコマンドでcvsのアップデートをする場合にはmake.confファイルを編集する必要はない。
make.confファイルの編集をするのが必要なのは、/usr/portsにて make update コマンドを実行したときである。
make.confは一般的に以下のように書かれるらしい。
Code:
SUP_FILE= yes | |
SUP= /usr/local/bin/cvsup | |
SUPFLAGS= -l -L 2 | |
SUPHOST= cvsup.jp.FreeBSD.org | |
PORTSSUPFILE=/usr/share/example/cvsup/ports-supfile |
(後藤大地 『FreeBSD ビギナーズバイブル』 p.87より)
make.confファイルは基本的にmakeコマンドの実行時に
デフォルトとは違うオプションとして指定したいものを
記述しておくものらしい。
よってmakeコマンドが叩かれたときには常にインクルードされるみたい。
cvsupは/usr/portsディレクトリでmake updateコマンドでも実行することができる。
ただ、その場合はどのsupfileを読み込むのかということや、どのサーバにアクセスするのかが
わからないので、make.confファイルに記述しておく必要があるみたいだ。
なおsupfileは/usr/share/examples/cvsup/にいくつかのサンプルファイルがある。
これらのファイルのなかでどのようなコレクションをアップデートするかという記述があるみたいだけど
正直よくわからなかった。
とにかくportsをアップデートしたいのでports-supfileで良いみたい。
以下ports-supfileの内容
Code:
*default host=CHANGE_THIS.FreeBSD.org#ここに指定したcvsサーバが入る | |
*default base=/var/db | |
*default prefix=/usr | |
*default release=cvs tag=. | |
*default delete use-rel-suffix | |
*default compress | |
ports-all#全てのportsがアップデートの対象になる |
ただゲーム関係のportsとかアラビア語のportsなどをインストールすることはまずないと思うので
本当ならば必要なものだけを指定したほうが効率的なのは間違いないだろうけど。
/usr/share/examples/cvsup/refuse にてcvsupする必要のないコレクションを指定することができる。
refuseファイルの内容
Code:
doc/bn_* | |
doc/da_* | |
doc/de_* | |
doc/el_* | |
doc/es_* | |
doc/fr_* | |
doc/hu_* | |
doc/id_* | |
doc/it_* | |
doc/mn_* | |
doc/nl_* | |
doc/no_* | |
doc/pl_* | |
doc/pt_* | |
doc/ro_* | |
doc/ru_* | |
doc/sr_* | |
doc/tr_* | |
doc/zh_* | |
ports/arabic | |
ports/chinese | |
ports/french | |
ports/german | |
ports/hebrew | |
ports/hungarian | |
ports/korean | |
ports/polish | |
ports/portuguese | |
ports/russian | |
ports/ukrainian | |
ports/vietnamese |
デフォルトでは日本語関係のものが入っていることもあるので適宜抜く。
現在の開発環境をメモしておきます。
Dell vostro200
CPU: PentiumD 1.6GHz
メモリ:1GB
OS: Windows XP Home Edition (なぜHomeなんだ・・・)
このマシンに仮想マシンを入れています。
Unixですが、いわゆるLAMP環境ですね。
VMware Server 1.0.5
仮想OS: FreeBSD 7.0
Apache 2.2.9
PHP 5.2.6
mySQL 5.1.26
これらはportsでインストールしたりコンパイルしています。
それからSambaをFreeBSDに入れています。
バージョンは3.0.31
それでapacheのドキュメントルートを共有化して
Windowsからeclipseで編集しています。
eclipseではPDTを使っています。
ここにQuantumDBプラグインを入れています。
他にも、phpMyAdminとかmysql workbenchも使っています。
それからphpのxdebugも入れています。
cakePHPにはコンソールからコマンドでの管理もできるようになっている。
ただ、PATHが違っている場合もあるので気をつけましょう。
コンソールからcakeを動かすためには、
cake/console/cakeに実行権限を与えて動かします。
なおphpがコマンドラインから操作できるようになっていないとダメです。
私はFreeBSDで使っているので以下のように編集します。
Code:
vim .bashrc |
PATH="$PATH":cakeコマンドが含まれているパス(絶対パスで)
Code:
vim cake/console/cake |
一行目を変更
#!/usr/local/bin/bash
Code:
cake |
これでヘルプが出ればOKです。
Link: http://x68000.q-e-d.net/~68user/unix/pickup?find
今更だけどFreeBSDでのfind関数の使い方
find 検索開始ディレクトリ 検索条件 コマンド
検索結果に対して処理を行うとき
Code:
find ./ -name Thumbs.db -exec rm {} \; |