mytips.exblog.jp ブログトップ

カテゴリ:FreeBSD( 28 )
AWS, EC2でFreeBSD - 5、料金
インスタンスを起動したり、終了したり、別のサーバからデータをコピーしてきたり、EBSにバックアップしたり、HDDを追加で増設したり、、、
1ヶ月弱利用したときの料金。
これからDNSを切り替えてトラフィックを流すので、まだ、アクセスのない状態のWebサーバ環境構築の期間の値段です。
$18.94 (1500円くらい)
初期費用など掛からないですから、通常のサーバ新規設置を考えると、全然気にならない程度の値段です。


アジアパシフィック(東京)地域 (Region)
Amazon EC2 running Linux/UNIX
$0.027 per Micro Instance (t1.micro) instance-hour (or partial hour) 624 Hrs 16.85
Elastic IP Addresses
$0.00 per Elastic IP address remap - first 100 remaps / month 4 Count 0.00
Amazon EC2 EBS
$0.12 per GB-month of provisioned storage 11.574 GB-Mo 1.39
$0.12 per 1 million I/O requests 3,125,375 IOs 0.38
$0.16 per GB-Month of snapshot data stored 1.636 GB-Mo 0.26
$0.011 per 1,000 puts (when saving a snapshot) 2,552 Requests 0.03

[PR]
by sato025 | 2011-09-04 12:30 | FreeBSD
AWS, EC2でFreeBSD - 4、Apache、PHP、Mysql、SVNセットアップ
Webサーバのセットアップを行う。

古いサーバなので、PHPが5.3では使う準備をしてないので、5.2を使う。

* PHP5.3系がインストールされているので、削除する
* PHPインストール時にApache1.3系でデフォルトセットアップしてしまうので、2.0系に
* mbstring系のオプション他、オプションを加えてセットアップしていく。

makeファイルを読み込んでみて、オプションは、 PHP_MODNAME=mbstringとか動作するはずだが、
例えば
make BATCH=yes WITH_APACHE=yes APACHE_VERSION=21 WITHOUT_IPV6=yes PHP_MODNAME=dom PHP_MODNAME=mbstring PHP_MODNAME=mysql PHP_MODNAME=openssl install clean

どうもうまくいかないので、素直にmakefileを書き換えた方が早いです。

mysql、phpに関わるmakefileや、portのconfigを書き換えておく。

apacheのmakefile
-------------------
--with-openssl
--with-mysql=/usr/local
--with-zlib-dir=/usr
--enable-mbstring
--with-dom
--with-libxml-dir=/usr/local
-------------------

phpとmysqlのオプションは、
/usr/local/etc/pkgtools.conf
ここに書くと確実に動作します。

MAKE_ARGS = {
'databases/mysql51-server' => [
'WITH_XCHARSET=all',
],
'lang/php5' => [
'WITH_APACHE=yes',
'APXS=/usr/local/sbin/apxs',
'WITH_DEBUG=yes',
'WITH_MULTIBYTE=yes',
]
}

--------------------------------------------------
--------------------------------------------------
インストールしていきます。

#まず確認
#一覧
pkg_info -aI


#php5.3は削除
#依存関係も削除(-r)
pkg_deinstall -r php5-5.3.5


#Apache1.3は削除
#依存関係も削除(-r)
pkg_deinstall -r apache-1.3.42


#mysql server
cd /usr/ports/databases/mysql51-server
make install clean

#mysql client
cd /usr/ports/databases/mysql51-client
make install clean

#php + apavhe
cd /usr/ports/lang/php52
make BATCH=yes WITH_APACHE=yes WITH_REGEX_TYPE=php APACHE_VERSION=22 WITHOUT_IPV6=yes WITH_DEBUG=yes install

#svn これは時間がかかります。
cd /usr/ports/devel/subversion
make install

-----------------
PHPのconfig関係

/usr/local/etc/apache22/httpd.conf

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
を追記


------------------
mysqlセットアップ
/usr/local/etc/rc.d/mysql-server start
/usr/local/etc/rc.d/mysql-server restart
/usr/local/etc/rc.d/mysql-server stop
■mysql初期化
cd /usr/local/bin
./mysql_install_db
cd /var/db
chown -R mysql:mysql mysql
起動設定
echo 'mysql_enable="YES"' >> /etc/rc.conf

configをつくる
cp /usr/local/share/mysql/my-medium.cnf /usr/local/etc/my.cnf
chmod 644 /usr/local/etc/my.cnf
キャッシュサイズを変更しておく
query_cache_size=2M

データベース作成
mysqladmin create mydatabase
ログインして
GRANT SELECT,ALTER,INSERT,UPDATE,DELETE,CREATE,DROP,LOCK TABLES ON mydatabase.* TO おれ@localhost IDENTIFIED BY 'おれのパスワード';
[PR]
by sato025 | 2011-09-04 12:05 | FreeBSD
AWS, EC2でFreeBSD - 3、システムのセットアップ
keypairファイルを使って、rootでログイン
こんな感じ。

ssh -i [インスタンス作成時に自分が決めた任意のkeypairファイル名].pem root@ec2-100-01-200-150.ap-northeast-1.compute.amazonaws.com

# まずはターミナルでログイン後、rootのパスワードを変更。
passwd root

# 基本的なセットアップをsysinstallにて
sysinstall


# PortSnapを使うべきだったが、cvsupでPortsのリスト更新
/usr/local/bin/cvsup -L 2 -h cvsup2.jp.FreeBSD.org /usr/share/examples/cvsup/ports-supfile

#bashを使いたいので素の状態ではインストールされてないので、インストール
cd /usr/ports/shells/bash
make
make install

#rsyncインストール
cd /usr/ports/net/rsync
make
make install


cd /usr/ports/ports-mgmt/portupgrade
make install clean


-------------------
だいたいOS周りはセットアップ完了
続けてLAMPサーバー環境を作って行く
[PR]
by sato025 | 2011-09-04 11:38 | FreeBSD
AWS, EC2でFreeBSD - 2、ハードディスクの増設
マイクロインスタンスを選択(一番安価)すると、ディスク容量が、10GB程度しかない。
どうしても不足してしいまうので、あらかじめディスクボリュームを増やした方がよい。
増設したディスクにmysqlのDB保存領域を移動したり、一時作業のファイルをコピーしておいたり使います。

1)コンソール、ELASTIC BLOCK STOREメニューで20GBを調達。
2)作成時、インスタンスが利用している「ゾーン」と同じゾーンに増設しないと、マウントできないので注意。
3)しばらくするとボリュームが作成できるので、続けてコンソール上から「Attach Volume」とすると /dev/ の下に da5 などが認識されます。
4)このままマウントしようとしても、フォーマットがFreeBSD用になっていないので無理。
 *少しハマりました。普通は、FreeBSDのFdisk(sysinstallからConfigure)でセットアップを行うが、EC2環境の為か、Fdisk実行時にクラッシュしてsysinstallが終了してしまいます。
5)Fdiskを利用せず(なので任意のパーティションを作ったりしないで、EBSで作ったボリュームを1ボリュームとして利用する事になる)
newfs /dev/da5
としてFreeBSD用にフォーマット(イニシャライズ?)。3秒くらいで終わります。
6) ボリュームをマウントさせたい場所を作る(ディレクトリを作る)
例えば、 mkdir /mnt (root権限で実行)
7)
mount /dev/da5 / mnt
でマウントできます。
[PR]
by sato025 | 2011-09-04 11:28 | FreeBSD
AWS, EC2でFreeBSD - 1、バックアップ方法
AMIにFreeBSDが選択できるので、サーバの移設を行ってみたのでその記録。
他のLinux系OSの説明は多く探す事ができるが、まだFreeBSD系利用者は多くないようです。
-------------------------
インスタンスのバックアップ方法が気になるので、
・ec2-api-tools
・ec2-ami-tools
の使い方を調べてみたが、FreeBSDはサポート外なので使えません。

バックアップは、コンソール「AWS Management Console」から手動で行うことでできるので、今時点ではこの方法で運用する。
「Instance Actions」から、Create Image(EBS AMI)を選択すると、EBSにバックアップを作ることができる。
作成するときには、一旦、インスタンスは再起動するので、重要なサービス運用には、別のやり方が必要か?
[PR]
by sato025 | 2011-09-04 11:19 | FreeBSD
大変わかりづらい、portsのインストールオプション関係のメモ書き
正式に正しいやり方かどうか分からないが、こねくり回して判明したインストールオプションの指定方法

手動でmakeやmake installならばドキュメントに書かれたオプション設定の方法が通用するが、パッケージ管理アプリケーションportでインストールする場合、どこにオプション指定すれば適用されるのかが、非常に分かりづらい。

時間をかけてじっくりしらべると(それなりに)ちゃんとした方法が用意されている。

----------------------------------------
php5を例に
----------------------------------------

まず、Makefileをちゃんとよむ。
/usr/ports/lang/php5/Makefile
(phpの場合 APACHE "Build Apache module" off をonに編集するのは必須)

Makefileで WITH_APACHE など大文字で書かれは部分は変数になっており、この変数の設定は、
/usr/local/etc/pkgtools.conf
で行うので、Makefileはいじらない。
Makefileでは、後半のスクリプトを確認し、それ以外のオプション設定を前半部分にあるCONFIGURE_ARGS部分に追記する
今回は下記の用に変更した
openssl , mysql , mbstring , domを加えた

CONFIGURE_ARGS= \
--with-layout=GNU \
--with-config-file-scan-dir=${PREFIX}/etc/php \
--disable-all \
--enable-libxml \
--with-libxml-dir=${LOCALBASE} \
--enable-reflection \
--program-prefix="" \
--with-openssl \
--with-mysql \
--enable-mbstring \
--with-dom



終わったら前述で説明した
/usr/local/etc/pkgtools.conf
を編集する
MAKE_ARGS
の部分を探し、ここでの設定はMakefileの大文字部分の変数の値を決める事ができるので、MakefileのCONFIGURE_ARGSで追加した以外のオプションを決める。
つまりMAKE_ARGSの値は、インストールスクリプトであらかじめ想定された条件分岐が用意されていて、それ以外は、Makefileを自分でアレンジする(ってこと??)

portsディレクトリの適応ディレクトリを宣言し、変数に値をセットする書式。
対になるカッコやコンマに注意。(間違えてもエラーメッセージがでるので、試行錯誤しながら調整)

MAKE_ARGS = {
'databases/mysql51-server' => [
'WITH_XCHARSET=all',
],
'lang/php5' => [
'WITH_APACHE=yes',
'APXS=/usr/local/sbin/apxs',
'WITH_DEBUG=yes',
'WITH_MULTIBYTE=yes',
]
}

php5に
apacheで使えるようにし
apache extentionsのディレクトリを指定し
デバッグモードを有効にし
マルチバイトを有効にし
を加えた(Makefileとmbstringの設定が重複してるかな??)

以上。

オプションを指定し直し、再インストールする場合
portupgrade -f lang/php5
らしいけど、ちゃんと更新されない気がする。だめなら、消して再インストールが早いかも。
[PR]
by sato025 | 2008-10-29 12:50 | FreeBSD
apache やmysql 起動や設定
あたらしいFreeBSD環境で

httpd.conf
vi /usr/local/etc/apache22/httpd.conf

vhostの設定
vi /usr/local/etc/apache22/extra/httpd-vhosts.conf

スタート
/usr/local/etc/rc.d/apache22 start

リスタート
/usr/local/etc/rc.d/apache22 restart


/usr/local/etc/rc.d/mysql-server start
/usr/local/etc/rc.d/mysql-server restart
/usr/local/etc/rc.d/mysql-server stop
[PR]
by sato025 | 2008-10-29 12:33 | FreeBSD
FreeBSD7にphp + mysqlをportでセットアップ


バリアント(オプション)の設定などに、クセがあるのでconfigファイルへの書き込みなどを事前に行ってからportinstallする必要があります。
さらにphpのインストールは、驚くことにconfigを編集しないと、apacheで利用できない設定がデフォルトになっています。

1)phpをapacheで使うことを設定する
phpのMakefileを編集(orgをコピーしておくこと)
vi /usr/ports/lang/php5/Makefile

OPTIONS= の中の
APACHE "Build Apache module" off

APACHE "Build Apache module" on
に変更

備考-----------------------
portsのソースのある場所を検索する方法
cd /usr/ports
make search name=apache
など
----------------------

■apache22のインストール
su
cd /usr/ports
portinstall www/apache22

起動を設定
echo 'apache22_enable="YES" >> /etc/rc.conf
echo 'apache22_http_accept_enable="YES"' >> /etc/rc.conf

httpd.confを編集
バックアップしておく
cp /usr/local/etc/apache22/httpd.conf /usr/local/etc/apache22/httpd.conf.org
vi /usr/local/etc/apache22/httpd.conf

それぞれ別の行なので、ディレクティブを確認して適切な場所に下の2行を書き込む
AddType application/x-httpd-php .php
DirectoryIndex index.php index.html index.htm


■php5のインストール
portinstall lang/php5

●php.iniを設定(コメントを外すなど)
バックアップ
cp /usr/local/etc/php.ini-recommended /usr/local/etc/php.ini

変更箇所
display_errors = On
include_path = ".:/usr/local/share/pear:/usr/local/www/apache22/data/libs" (←自分の設定で)
allow_url_include = On
(↑モバイル版 Google Adsenseを使う場合、ネット越しのphpを読み込むので)

mbstring.language = Japanese
(↑クエリーパラメータでエンコードした日本語がある場合の内部処理の挙動が変わります。)
mbstring.internal_encoding = UTF-8
mbstring.http_input = auto
mbstring.http_output = UTF-8
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = 12307;




■phpエクステンションをインストール
これでmysqlと連携できる

cd /usr/ports
portinstall lang/php5-extensions

終わったら

vi /var/db/ports/php5-extensions/options
として
WITH_MYSQL=true
を確認

■mysql初期化
cd /usr/local/bin
./mysql_install_db
cd /var/db
chown -R mysql:mysql mysql
起動設定
echo 'mysql_enable="YES"' >> /etc/rc.conf

configをつくる
cp /usr/local/share/mysql/my-medium.cnf /usr/local/etc/my.cnf
chmod 644 /usr/local/etc/my.cnf
[PR]
by sato025 | 2008-10-29 12:31 | FreeBSD
FreeBSD Ver7 パッケージ関係
portの更新。cvsupはもう使わない

portの更新をする場合、
cvsup -g -L 2 /root/ports-supfile
は、すにで古いやり方だそうだ。

proxy経由などの問題を解消したportsnapを使う


/usr/sbin/portsnap

まず更新対象に、利用の想定が付かない「韓国」「ロシア」言語圏のモジュールをキャンセルしておく

/etc/portsnap.conf

japanaseの文字列を削除して「#」コメントアウトを外す。
REFUSE arabic chinese french german hebrew hungarian
REFUSE korean polish portuguese russian ukrainian vietnamese


コマンドここから

portsnap fetch
portsnap extract (初回利用時のみ)
portsnap update

以降は
portsnap fetch && portsnap update
でメンテナンスしていく


PORTSNAP_UPDATE=yes
これをportsnap.confに書き加えるとアップデートfetchとupdateが自動で実行されるようになる。が、別にたいしたこと無い手間なので入れない。



FreeBSD アップデートやport、pkg関係のコマンド


■FreeBSDセキュリティーアップデート
freebsd-update fetch
freebsd-update install

■インストール済みパッケージ
pkg_info -aI
(portversion -v バージョンの状態確認。最新版があるかどうか調べてくれる)

■インストール済みパッケージの削除
(pkg_info -al コマンドで表示されるバージョン情報でアンインストールするモジュール名を指定する必要がある)
pkg_deinstall mysql-client-5.0.67
依存関係もアンインストール
pkg_deinstall -r mysql-client-5.0.67


■パッケージの更新
portupgradeコマンドを実行しますが、まずこのコマンドをインストール

portinstall sysutils/portupgrade
↑ではだめです。
手動でmake & install

su
cd /usr/ports/ports-mgmt/portupgrade
make install clean
新規の場合/usr/local/sbinのパスを認識してないかもしれないので、ターミナルをリセット(rehash)

whereis portupgrade
として認識しているはず

■portの検索
cd /usr/ports
make search name=autoconf



■portsの不要ファイルの削除

portsclean -C
portsディレクトリのworkディレクトリ内を消す


portsclean -D
古いバージョンを消す


portsclean -P
旧バージョンのpackageを消す
------------------------

pkg_info
portversion -v


依存関係も消す
pkg_deinstall -r mysql-client-5.0.67

clientが先
devel/make++
vi /usr/local/etc/pkgtools.conf

pkg_deinstall php5-5.2.6_2
portinstall lang/php5

-------------
■参考にしたページ
http://freebsd.fkimura.com/freebsd-install7-a0.html
http://www.nw.is.kyusan-u.ac.jp/xoops/modules/bwiki/index.php?FreeBSD%2FBasicSetup
http://iris.homeunix.net/yayoi/freebsd/inst/portupgrade.asp
http://www.toshikazu.org/archives/000084.html
http://www.toshikazu.org/archives/000085.html
http://okwave.jp/qa4105777.html
http://misfits.wordpress.com/freebsd-memo/freebsd-62r-05-httpd-php-mysql/
[PR]
by sato025 | 2008-10-10 18:35 | FreeBSD
FreeBSDのディスク修復作業(2) HDD修復不能パーティーションの強制マウントからバックアップ
不良セクタのあるパーティーションはfsck_ffsを行い検証&修復をしても正常終了しないので、通常のmountコマンドでマウントできないので、強制マウントを行う。
(たぶんないけど、システムクラッシュも覚悟)
まずは、fsck_ffs実行
-------------------
# fsck_ffs /dev/ad1s1g
* /dev/ad1s1g
** Last Mounted on /home
** Phase 1 - Check Blocks and Sizes

CANNOT READ BLK: 8020576
CONTINUE? [yn] y

THE FOLLOWING DISK SECTORS COULD NOT BE READ: 8020634, 8020641, 8020642, 8020643, 8020644, 8020645, 8020646, 8020647, 8020648,
** Phase 2 - Check Pathnames
** Phase 3 - Check Connectivity
** Phase 4 - Check Reference Counts
** Phase 5 - Check Cyl groups
8049 files, 2946572 used, 4412955 free (3195 frags, 551220 blocks, 0.0% fragmentation)

***** FILE SYSTEM STILL DIRTY *****

***** PLEASE RERUN FSCK *****


-----------------

リードオンリーで強制マウント
mount -f -o ro /dev/ad1s1g /old_hdd
df
( /old_hdd にマウントしていることを確認)

ここで救出したいファイルをマウントしたパーティーションからコピーするのだが、ディレクトリ単位で、コピーしたい対象を小分けにコピーしていく。

tar -cvf /my/old_hdd.libs.tar /old_hdd/libs
マウントしたパーティションのlibsディレクトリを /my/の中に old_hdd.libs.tar で圧縮
圧縮が完了したら安全なマシンへネットワークコピーするとか。
[PR]
by sato025 | 2008-10-10 17:39 | FreeBSD
|
検索
タグ
カテゴリ
以前の記事
最新のコメント
最新のトラックバック
Tool
from adgj.net wiki ..
Googleウェブマスタ..
from i yahoo i.com:..
[Mac] NAV fo..
from あるネットワーク管理者(よっ..
ライフログ
その他のジャンル
ファン
記事ランキング
ブログジャンル
画像一覧


var gaJsHost = (("https:" == doc ument.loc ation.protocol) ? "https://ssl." : "http://www.");doc ument.write(unesc ape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));var pageTracker = _gat._getTracker("UA-103429-5");pageTracker._trackPageview();