Tags: freebsd

新しく開発用サーバを立てることになったのでメモを残します。
いわゆるLAMP環境の設置です。

apache2.2のインストール

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を起動するとちゃんと動きました。

php5のインストール

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

mysqlのインストール

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 で再度ビルドします。

http://dev.mysql.com/doc/refman/5.1/ja/freebsd.html

ports管理やpackage管理でよく混乱するので覚書を残しておく。

cvsup

以下のコマンドで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コマンドが叩かれたときには常にインクルードされるみたい。

以下参照
http://www.jp.freebsd.org/cgi/mroff.cgi?sect=5&cmd=&lc=1&subdir=man&dir=jpman-5.2.0%2Fman&subdir=man&man=make.conf

cvsupは/usr/portsディレクトリでmake updateコマンドでも実行することができる。
ただ、その場合はどのsupfileを読み込むのかということや、どのサーバにアクセスするのかが
わからないので、make.confファイルに記述しておく必要があるみたいだ。

なおsupfileは/usr/share/examples/cvsup/にいくつかのサンプルファイルがある。

  • doc-supfile
  • ports-supfile
  • standard-supfile
  • cvs-supfile
  • gnats-supfile
  • refuse
  • stable-supfile
  • www-supfile

これらのファイルのなかでどのようなコレクションをアップデートするかという記述があるみたいだけど
正直よくわからなかった。
とにかく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

デフォルトでは日本語関係のものが入っていることもあるので適宜抜く。

参照
http://www.freebsd.org/doc/ja/books/handbook/cvsup.html

今回はVmwareのなかのFreeBSDのなかにレポジトリを作りました。
その手順を忘れないようにメモしておきます。

portsからsubversionをFreeBSDにインストール

/usr/ports/devel/subversion

Code:

make install


追記:
今回Subversionをconfigureしたときにこんなエラーメッセージが表示されました。

You should build www/apache22 with db4 support to use subversion with it.
Please rebuild www/apache22 with option WITH_BERKELEYDB and try again.

Or you can disable db4 support. Only ‘fs’ repository backend will be available. To disable db4 support, define WITHOUT_BDB.

こんなメッセージは初めてだ。要約すると
「db4を使ってsubversionを使うなら、WITH_BERKELEYDBのオプションをつけてapacheを再コンパイルしてくれ。」
と言っています。

BERKELEYDBってなんだろうと思って調べてみると、
Subversionのマニュアルをみるとこんなことが書いてありました。

Subversion 1.1 からは、Subversion リポジトリに二つの保存形式が選べます。一つはすべてのデータを Berkeley DB データベースに保存する方法です; もう一つは、独自の形式で構成した通常のフラットファイルの形にデータを保存する方法です。

http://subversion.bluegate.org/doc/ch05.html#svn.reposadmin.basics.backends

後者はFSFSという形式になるのだが、まとめるとFSFS方式の方が
新しく開発され、比較的安定しているようだ。
ということで、今回はFSFS方式でSubversionをコンパイルし直す。

Code:

make WITHOUT_BDB=yes

subversion用の新規ユーザを作る
svn:svn

ホームディレクトリにレポジトリを作る
/home/svn

Code:

svnadmin create repos

EclipseにSubversiveをインストール
参考:http://www.eclipse.org/subversive/documentation/gettingStarted/aboutSubversive/install.php

help -> Software Update -> Find and Install -> Search for new features to install

Subversionのコネクタとプラグイン、Team Providerをインストールする。

今回はsshを使ってチェックイン・チェックアウトすることに。
以下のようにロケーションを設定する。

svn+ssh://***.***.***.***/home/svn/repos

takeshi
2008/10/06

開発環境メモ

現在の開発環境をメモしておきます。

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も入れています。

FreeBSD7.0にPostgreSQL8.2.9をインストールします

基本的にはportsでインストールを行い、
インストール後に表示される指示に従えば
きちんと起動させることができると思います。

Code:

su
cd /usr/ports/databases/postgresql82-server
make configure
make install
vim /etc/rc.conf

以下を追加

postgres:\
:lang=en_US.UTF-8:\
:setenv=LC_COLLATE=C:\
:tc=default:

Code:

cap_mkdb /etc/login.conf
vim /etc/rc.conf

以下を追加

postgresql_enable="YES”
postgresql_class="postgres”

Code:

/usr/local/etc/rc.d/postgresql initdb
/usr/local/etc/rc.d/postgresql start

topコマンドなどでpgsqlが起動しているかを確認

pgsqlというユーザが作成されているのでpgsqlでログイン。

Code:

psql -l

でデータベースの一覧を表示。

1 2 >>

はじめまして。Takeshiといいます。今年の四月から、恵比寿の小さな会社でウェブSE兼プログラマーとして働き始めました。主にLAMP環境でウェブサービスやウェブサイトの構築をやっています。社会人なりたてということもあり、右も左もわからない状況ですが、日々感じたことや、覚えたことなどをメモっていきたいと思います。コメントやトラックバックなどいただけると、とても嬉しいです!それでは、よろしくお願いいたします。

2月 2012
 << <   > >>
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29      

検索

XMLフィード

blog tool