基本的に構築は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
の部分に
[ユーザー名] ホスト=(権限ユーザー) コマンド
の書式で追記していけば良いみたい
WEB開発のあれこれ
PHP,JAVA,Javascript,objective-c,Ajax,Flex,Air,Linuxなどなど
最近雑記帳になりつつある・・・
2011.10.23より忍者ブログより移転
2008年9月30日火曜日
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
以下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:
に変更
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アプリは作るかもしれないけど)
ふと
・公開するならずっとマシンの電源入れっぱなしにしなきゃいけないんだよな・・・
・電気代どれくらいかかるんかな
・ってか今でも結構切り詰めてるのに、コンスタントに出て行く金はなるべく抑えないとと決めたばかりじゃないか!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
まずはダウンロード
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)');
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月18日木曜日
2008年9月17日水曜日
[PHP] phpをコマンドラインから使う
phpをコマンドラインで使う方法
処理バッチとしては使った事があったけど、Cやperlみたく標準入力から対話型のプログラムも作れるみたい
http://www.spencernetwork.org/memo/tips-6.php
処理バッチとしては使った事があったけど、Cやperlみたく標準入力から対話型のプログラムも作れるみたい
http://www.spencernetwork.org/memo/tips-6.php
2008年9月11日木曜日
mb_send_mailのCC、BCC設定
$header .= "
From: 送信元
Cc: CCのメールアドレス
Bcc: BCCのメールアドレス
";
/* メール送信 */
mb_send_mail($email, $subject, $body, "$header");
http://lab.z-nix.jp/2005/12/mb_send_mail_ccbcc.html
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が無いのが原因らしい
��色々試した結果)
やった事
結局以上の事をしたが、おそらく必要だったのは以下のパッケージ
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'
postgresをPHPから操作する場合は
/etc/ld.so.conf
に
/usr/local/pgsql/lib
を追記しておく。
※これをやっていないとapacheの起動でコケる
WEB鯖を立ち上げる時のインストールの順番は以下
・Apache
・(qmail)
・MySQL or Postgres
・PHP
最新版の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'
postgresをPHPから操作する場合は
/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
http://www.stackasterisk.jp/tech/systemManagement/ddns01_01.jsp
外部から自宅サーバーへのアクセスができることが判明したので、変動するIPにドメインを割り振るため上記のサイトを参考にDDNSの設定を行う。
まだ導入は出来てないけど、あと少しで念願の自前のWEBサーバ公開だv
(その前にPHP位はインストールせんとねw)
後懸念材料としてsambaを導入して、そこまで見ない重要でない動画や画像ファイルを一気に移動したもんだからサーバーの容量をすでに1/4程占めてしまったw
登録:
投稿 (Atom)