2008年9月30日火曜日

sudo

基本的に構築はrootだけでやってたんですが、実務で結構構築を任される事が

多くなってきたのでsudoを使ってみようかな・・と



それのメモ



#visudo

sudoの設定ファイルを書き換える。

標準では

/etc/sudoers (FreeBSD では /usr/local/etc/sudoers)

に設定ファイルは配置されているのだが、それを直接viなどで編集してはいけないらしい。



visudoを実行すると(rootで)コメントがずらずらと出てくる。

※visudoの操作はviとはちょっと異なる

    コマンド実行時に下にヘルプが出るので、保存、終了はそれを参考に

    Ctrl+X:終了 Ctrl+O:保存




編集箇所は一番下の行



# User privilege specification

root    ALL=(ALL) ALL



の部分に

[ユーザー名] ホスト=(権限ユーザー) コマンド

の書式で追記していけば良いみたい

2008年9月27日土曜日

Swapの設定について

Webmin導入時でもあったけどハングアップを防止する設定が出来るみたい。



以下takaichi501011さんのtaka_lifeブログからの記事を参照しています。

http://ameblo.jp/takaichi501011/entry-10126486962.html



スワップ領域の追加方法



①任意の場所にディレクトリ作成

#mkdir /mnt/swap

#cd /mnt/swap



②ddコマンドでswapファイルを作成

#dd if=/dev/zero of=swap bs=1024 count=任意のサイズ





③スワップ領域を拡張する

#/sbin/mkswap swap(デバイス)





④スワップ領域を有効にする

#/sbin/swapon swap(デバイス)

※無効にする際は/sbin/swapoff デバイス



⑤再起動後にこのままでは消えてしまうのでrc.localファイルに

起動後に有効にするコマンドを記述

#vi /etc/rc.local



/sbin/swapon swap(デバイス)を追加



《終了》







メモリオーバーコミット設定

※swap使用量が100%に達しない為の設定です。ハングアップを防ぐため



①/etc/sysctl.confを編集します。

#vi /etc/sysctl.conf

#/sbin/sysctl -p



下記を追加

vm.overcommit_ratio = 99

vm.overcommit_memory = 2



overcommit_ratioは物理メモリの割合を指定します。

99だと99%使用して1%は常に空けれるようにしておくということになります。

overcommit_memoryを2にするとメモリオーバーコミットを許さなくなります。



swappinessの設定

swappnessは1~100まで設定できて大きいほどSwapしまくるみたい。



①/etc/sysctl.confを編集します。

#vi /etc/sysctl.conf

下記を追加

デフォルトは60なので50に設定

vm.swappiness = 50



#/sbin/sysctl -p




overcommit_memory 2

だと

webminとapacheを同時起動するとどちらかがメモリ不足で落ちてしまう。



ので

overcommit_memory 1とした。





今のところ、多少もっさりだが共存出来ているよう at2008.10.04

Xのアンインストール

http://singlese.blog.shinobi.jp/Entry/60/

http://singlese.blog.shinobi.jp/Entry/65/




上記2つの理由からGUI環境をアンインストールすることにした。



インストール済みパッケージリストの取得

#dpkg -l > pkg.list



リストを眺めてXに関係ありそうなもの(何てアバウトなw)を削除



apt-get remove icewm

apt-get remove apt-spy

apt-get remove icewm-common

apt-get remove kdm

apt-get remove w3m

apt-get remove x-window-system

apt-get remove x-window-system-core

apt-get remove x11-common

apt-get remove vnc-common



ランレベルの設定

vi /etc/inittab



id:2:initdefault:

に変更

2008年9月26日金曜日

費用対効果

こないだまで頂いたマシンをWEBサーバーにして公開するゾ!っと意気込んでいたのですが



ふと

・公開するならずっとマシンの電源入れっぱなしにしなきゃいけないんだよな・・・

・電気代どれくらいかかるんかな

・ってか今でも結構切り詰めてるのに、コンスタントに出て行く金はなるべく抑えないとと決めたばかりじゃないか!w

・どれどれ、調べてみるか



という流れで自宅サーバーを公開する場合の電気代を調べてみたのですが





http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=19789&forum=3&16




結構するもんですねぃ・・・

ちょっと家計にやさしくないので、自宅WEBサーバーは諦めモードですorz

これじゃあ安価な共用のレンタルサーバー借りたほうが安い・・・

��仕事の予習や環境構築の練習、自分専用のWEBアプリは作るかもしれないけど)

2008年9月24日水曜日

webmin導入

いちいちSSHで電源管理をするのもうざったいので、以前仕事で使っていたwebminを導入してみる。



まずはダウンロード

wget http://prdownloads.sourceforge.net/webadmin/webmin_1.430_all.deb

次にdebファイルのインストール

dpkg -i webmin_1.430_all.deb



ライブラリ不足のため、エラーが出る。

apt-get -f install



再度インストールを試みるも途中でハングアップしてしまった。

スペック不足か・・・



と思いきや


SWAP設定をしたらなんとかインストール出来た。



で次はポートの開放

iptables -A INPUT -p tcp --dport 10000 -j ACCEPT

設定保存

/etc/init.d/iptables save

再起動

service iptables restart



※ソースからインストールする場合

・必要なパッケージのインストール

apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl libmd5-perl



・ソースダウンロード

http://jp.webmin.com/download

ここから最新版をダウンロード



・解凍とセットアップ

tar zxvf webmin-*

cd webmin-*

./setup.sh





[php] file_get_contentsでのUA詐称

file_get_contentsでのアクセス時にUserAgentを変更する方法。



php.ini の user_agent を設定することで file_get_contents などのアクセス時のUserAgentを変更できるようですね。

��デフォルトは PHP という文字列とバージョンがUserAgentとして設定されています)



次のように ini_set 関数でも設定が可能のようです。

ini_set('user_agent', 'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)');

2008年9月19日金曜日

atコマンド

処理結果はメールで届く。


5分後にシェルスクリプトを実行



$ at -f test.sh now + 5minute

03:50にシェルスクリプトを実行



$ at -f test.sh 03:50

1分後にコマンドを実行。コマンドは直接入力する。



$ at now + 1minute
warning: commands will be executed using (in order) a) $SHELL b) login shell c)
/bin/sh
at> echo 'hello'
at> date
at> <EOT>
job 7 at 2003-10-29 13:11

2分後にperlスクリプトを実行



$ echo './test.pl' | at now + 2minute

キューに入っているジョブの表示



$ atq
6 2003-09-11 04:10 a foobar

未実行のジョブを消す。



$ atq
6 2003-09-11 04:10 a foobar
$ atrm 6
$ atq
$

http://discypus.jp/wiki/?Linux%2Fat%A5%B3%A5%DE%A5%F3%A5%C9

2008年9月17日水曜日

[PHP] phpをコマンドラインから使う

phpをコマンドラインで使う方法

処理バッチとしては使った事があったけど、Cやperlみたく標準入力から対話型のプログラムも作れるみたい



http://www.spencernetwork.org/memo/tips-6.php


2008年9月7日日曜日

PHPインストール

やってきましたPHPインストールw

最新版の5.2.6をオフィシャルからダウンロードして展開



展開したフォルダにcdして

'./configure' '--prefix=/usr/local/php5' '--enable-pic' '--disable-rpath' '--enable-inline-optimization' '--with-bz2' '--with-curl' '--with-gd' '--enable-gd-native-ttf' '--with-gdbm' '--with-gettext' '--with-ncurses' '--with-gmp' '--with-iconv' '--with-openssl' '--with-png' '--with-jpeg' '--with-regex=system' '--with-xml' '--with-xsl' '--with-xmlrpc=shared' '--with-pcre' '--with-zlib' '--with-layout=GNU' '--enable-bcmath' '--enable-exif' '--enable-ftp' '--enable-safe-mode' '--enable-sockets' '--enable-sysvsem' '--enable-sysvshm' '--enable-wddx' '--with-pear=/usr/share/pear' '--with-mysqli=/usr/local/mysql/bin/mysql_config' '--with-mysql=/usr/local/mysql' '--enable-soap' '--enable-spl' '--enable-memory-limit' '--enable-shmop' '--enable-calendar' '--enable-dbx' '--enable-dio' '--enable-mcal' '--enable-mbstring' '--enable-discard-path' '--with-ttf' '--enable-xslt' '--enable-zend-multibyte' '--with-apxs2=/usr/local/apache2/bin/apxs' '--with-libjpeg-dir=/usr' '--enable-so' '--enable-gd-imgstrttf' '--with-jpeg-dir=usr/lib' '--with-freetype-dir=/usr'



いつもながら長っ!w



libxml2が無いよーと怒られるので

apt-get install libxml2-dev



opensslが無いよーと若干本気で切れられるので

apt-get install libssl-dev



bzip2が無いよーと半ば投げやりに呆れられるので

apt-get install libbz2-dev



ここからMDB関連のエラーでにっちもさっちもいかん状態に:;

↓に解決法があります。





libjpeg libpng libfreetype6 libgmp3 libxslt1

それぞれのdevを求められるので、これもaptでインストールしておく





make



rootにsuして

make install



↓DBA(QDBM)エラーの解決法


やっと対応策が判明したので追記



configure: error: DBA: Could not find necessary header file(s).

このエラーでコンパイル停止してしまう。



原因?と思われるものが書いてあるページ(英語)

http://bugs.php.net/bug.php?id=31585&edit=1



どうもQDBMのエラーと思っていたがGDBMのdevelが無いのが原因らしい

��色々試した結果)



やった事


  • qdbm関連モジュールのインストール

    apt-cache search qdbm

    で出てきたパッケージを片っ端からインストール

  • Tru64関連モジュールのインストール

    apt-cache search Tru64

    で出てきたパッケージを片っ端からインストール

  • GDBM関連モジュールのインストール

    apt-cache search gdbm

    で出てきたパッケージを片っ端からインストール




結局以上の事をしたが、おそらく必要だったのは以下のパッケージ

libgdbm-dev

tdb-dev



debianだからだろうか・・・

こんなエラー実務では見たことなかった。

ってかこれだけエラー内容が不明瞭でわかりずりーっつーの





09/04/26現在最新の5.2.9のコンパイルオプションは以下

'./configure' '--prefix=/usr/local/php5' '--with-pic' '--disable-rpath' '--enable-inline-optimization' '--with-bz2' '--with-curl' '--with-gd' '--enable-gd-native-ttf' '--with-gdbm' '--with-gettext' '--with-ncurses' '--with-gmp' '--with-iconv' '--with-openssl' '--with-png-dir=/usr/lib'  '--with-regex=system' '--with-xml-dir=/usr' '--with-xsl' '--with-xmlrpc=shared' '--with-zlib' '--with-layout=GNU' '--enable-bcmath' '--enable-exif' '--enable-ftp' '--enable-safe-mode' '--enable-sockets' '--enable-sysvsem' '--enable-sysvshm' '--enable-wddx' '--with-pear=/usr/share/pear' '--with-mysqli=/usr/local/mysql/bin/mysql_config' '--with-mysql=/usr/local/mysql' '--enable-soap' '--enable-spl' '--enable-shmop' '--enable-calendar'  '--enable-mbstring' '--enable-discard-path' '--with-ttf' ' '--enable-zend-multibyte' '--with-apxs2=/usr/local/apache2/bin/apxs' '--enable-gd-native-ttf  '--with-jpeg-dir=usr/lib' '--with-freetype-dir=/usr' '--with-pgsql=/usr/local/pgsql'

postgresPHPから操作する場合は

/etc/ld.so.conf



/usr/local/pgsql/lib

を追記しておく。

※これをやっていないとapacheの起動でコケる





WEB鯖を立ち上げる時のインストールの順番は以下

・Apache

・(qmail)

・MySQL or Postgres

・PHP

2008年9月1日月曜日

vistaからsambaにアクセスできなくなる

セキュリティなどの設定をしていたら急にsambaにつながらなくなった。

色々ぐぐってみると、ローカルセキュリティポリシーの設定が必要とか出てきたが

そもそもクライアントの設定は変更してないのに、クライアントの設定を変更してもしゃーない気がして

とりあえずsambaをapt-get install sambaでアップデート



最新版は3.2.3らしいのだが、リポジトリが指したバージョンは3.0.24

まぁとりあえず入れてみるかとインストールしてみるとあっけなくアクセス成功



ぐぐった情報は1年前の記事や結構新しめの情報だったのだが、samba自体のアップデートが結構頻繁に行われているようで、時期によってはWEB上に信用できる情報が無い状態があるそうな。。



困られた方はとりあえず対象のプログラムをアップデートをお勧めします。

 


DDNS

DDNSで自宅サーバーを公開する。

http://www.stackasterisk.jp/tech/systemManagement/ddns01_01.jsp




外部から自宅サーバーへのアクセスができることが判明したので、変動するIPにドメインを割り振るため上記のサイトを参考にDDNSの設定を行う。



まだ導入は出来てないけど、あと少しで念願の自前のWEBサーバ公開だv

(その前にPHP位はインストールせんとねw)



後懸念材料としてsambaを導入して、そこまで見ない重要でない動画や画像ファイルを一気に移動したもんだからサーバーの容量をすでに1/4程占めてしまったw