スキップしてメイン コンテンツに移動

投稿

2014の投稿を表示しています

ついでに調べたLAMPのバージョン(CentOS 5 と CentOS 6)

2014/10/22 時点で、標準リポジトリからインストール可能なバージョンを調べた。 ■ CentOS 5.11 パッケージ名 バージョン httpd 2.2.3-91 php 5.1.6-44 php53 5.3.3-23 mysql-server 5.0.95-5 mysql51-mysql-server 5.1.70-1 mysql55-mysql-server 5.5.37-1 ■ CentOS 6.5 パッケージ名 バージョン httpd 2.2.15-31 php 5.3.3-27 mysql-server 5.1.73-3 # yum install パッケージ名 MySQL5.5は、CentOS 6.5の標準リポジトリからはインストールできないようだ。

CentOS 7 で LAMP (Linux + Apache + MySQL + PHP)

CentOS 7 から MySQL が MariaDB になったので、こんな感じでインストールする。 # yum install httpd mariadb-server php php-mysql 後は、必要なphpモジュールを追加でインストールして終わり。 ちなみに、インストールされたバージョンは、2014/10/21現在でこんな感じ # yum list installed httpd.x86_64 2.4.6-18.el7.centos mariadb-server.x86_64 1:5.5.37-1.el7_0 php.x86_64 5.4.16-23.el7_0.1 MySQL が MariaDB になった理由は、Wikipedia 参照で。 ■ MariaDB - Wikipedia http://ja.wikipedia.org/wiki/MariaDB

VMware Player の 「非営利目的」 って

気になったので調べてみたら、調べてくれていた方がいた。 ■ VMwarePlayerの「非営利目的の使用(商用利用)」はどこまで? http://blog.cnu.jp/2012/08/31/vmwareplayer/ ありがたく読ませていただいた。 とりあえず、会社でテスト環境として使用する分にはいいみたい。 -- 2015/1/31 追記 VMwareへのお問い合わせに、次のような記述が・・・ 引用 VMware Playerの業務利用に関するお問い合わせ VMware Playerは個人利用に限り、非商用利用において無償で提供されます。会社や組織として関知された形でのご利用の場合は、VMware Fusion Professionalを必要数量分ご購入ください。 ん~、やっぱり会社で使うのはNGっぽい。

仮想ハードディスク(vmdk,vhd,etc)の変換

vmdkやvhdなんかの仮想ハードディスクイメージを変換する方法 $ qemu-img convert -f 変換元形式 -O 変換後形式 変換元ファイル名 変換後ファイル名 形式として指定できるのは、こんな感じ イメージ形式 qemu-imgの引数 VMDK (VMware) vmdk VHD (Virtual PC / Hyper-V) vpc raw raw qcow2 qcow2 hoge.vmdk を hoge.vhd に変換する例 $ qemu-img convert -f vmdk -O vpc hoge.vmdk hoge.vhd 他のイメージ形式や、その他引数の詳細は、下記参照で。 ■ Red Hat Enterprise Linux 6 仮想化マニュアル 9.3.qemu-img の使い方 https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Linux/6/html/Virtualization_Administration_Guide/sect-Virtualization-Tips_and_tricks-Using_qemu_img.html

共有メモリサイズを知る apacheチューニング ~ COW (Copy on Write) ~

apacheをチューニングする必要があったので、いろいろ調べてた。 ■Linux のプロセスが Copy on Write で共有しているメモリのサイズを調べる http://d.hatena.ne.jp/naoya/20080212/1202830671 ここに載ってるperlのスクリプトを動かそうと思ったら、Perl の Linux::Smaps っていうモジュールが必要だった。 チューニング中のサーバには入れることができなかったので、他の方法を探していたらあった。 ■2010-09-23の技術こねた http://blog.livedoor.jp/kurt0027/archives/52376188.html シェルスクリプトで書かれていたので、早速使ってみた。 ■使い方 例:apache の子プロセスが共有しているメモリサイズを調べる。 # /bin/bash ./smaps.sh $(pgrep -u apache httpd) PID VSZ RSS Shared 21462 89292KB 67748KB 62176KB(92%) 23219 88276KB 65316KB 61160KB(94%) ・・・

ディレクトリ階層別に容量を集計する

# du --max-depth=N /* 例えば、/var/www/html/ 以下にバーチャルホストのDocumentRootが /var/www/html/host1 /var/www/html/host2 /var/www/html/host3 /var/www/html/host4 みたいにあった場合、バーチャルホストごとに集計したかったら # du -s /var/www/html/* # du --max-depth=2 /var/www/

スローアタック

スローアタックって? http://www.drk7.jp/MT/archives/001527.html http://2u-moomin.blog.so-net.ne.jp/ http://www.keyman.or.jp/kc/30006788/ 対策 http://code.zobe.jp/2012/10/defense_against_slowhttptest_using_mod_security2_section1/ http://code.zobe.jp/2012/10/defense_against_slowhttptest_using_mod_security2_section2/ http://code.zobe.jp/2012/10/defense_against_slowhttptest_using_mod_security2_section3/ http://code.zobe.jp/2012/10/you_shoud_not_blindly_use_modsecurity2_crs_base_rules/

あまりにもレベルが低すぎる

お前ら今まで何してた? そんなこともわからずに サーバ管理者気取ってたのか? って言ってやりたい障害が頻発した。 火消し役は後任の俺。 ログの見方すらわからないらしい。 不正メール中継のチェック方法も知らないらしい。 もうね、あほかと。

Ubuntu で VMware Player をコマンドラインから起動する

VMware VIX をダウンロードする。 VMware VIX ダウンロード ダウンロードした VMware VIX をインストールする。 sudo ./VMware-VIX-1.13.2-1744117.x86_64.bundle コマンドラインから VMware Player 仮想マシン「CentOS6.vmx」を起動する。 vmrun -T player start /home/fuga/vmware/CentOS6/CentOS6.vmx nogui

bindをchroot環境で動かす

# yum install bind bind-chroot ~ 略 yum でインストールすると、owner が root になるので、named に変更。 # chown named:named /var/named chroot後のrootディレクトリを確認 # cat /etc/sysconfig/named ~ 略 ROOTDIR=/var/named/chroot # ls -l /var/named/chroot drwxr-x---. 2 root named 4096 4月 23 00:29 2014 dev drwxr-x---. 4 root named 4096 5月 1 22:43 2014 etc drwxr-x---. 3 root named 4096 4月 23 00:29 2014 usr drwxr-x---. 6 root named 4096 4月 23 00:29 2014 var named.confを編集 # vi /etc/named.conf ~ 略 DNSサーバとして必要な設定をする。chroot環境を意識する必要はない。 CentOS 6のBIND起動時にGenerating /etc/rndc.keyで固まるのを防ぐ。 # rndc-confgen -a -r /dev/urandom マウント状態を確認 # df -ah Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_01-lv_root 37G 1.7G 34G 5% / proc 0 0 0 - /proc sysfs 0 0 0 - /sys devpts 0 0 0 - /dev/pts tmpfs 495M 0 495M 0% /dev/shm /dev/sda1 485M 121M 339M ...

RHEL 7 RC が出た

Red Hat Enterprise Linux 7 RC は、ここからダウンロードできる。 RHEL 7 RC is available http://seven.centos.org/2014/04/rhel-7-rc-is-available/?utm_source=rss&utm_medium=rss&utm_campaign=rhel-7-rc-is-available

LSBに準拠した起動スクリプトのリターンコード

サービス停止状態でstartに成功したとき、終了コードは 0 /etc/rc.d/init.d/myservice start; echo $? サービス起動中にstatusを実行したとき、終了コードは 0 /etc/rc.d/init.d/myservice status; echo $? サービス起動中にstartを実行したとき、終了コードは 0 /etc/rc.d/init.d/myservice start; echo $? サービス起動中にstop成功したとき、終了コードは 0 /etc/rc.d/init.d/myservice stop; echo $? サービス停止状態でstatusを実行したとき、終了コードは 3 /etc/rc.d/init.d/myservice status; echo $? サービス停止状態でstopを実行したとき、終了コードは 0 /etc/rc.d/init.d/myservice stop; echo $? 失敗した時に使えるコードは、0 と 3 以外。

passwd コマンドをバッチで処理する

サーバー移行なんかで、大量にユーザーアカウントを登録しなければならないときなんかに便利。 # echo パスワード | passwd ユーザー名 --stdin ただし、パスワードに(特定の)記号が含まれているとうまくいかない。 特定の記号って何って? ごめんよ、調べて教えて。

正規表現のメモ

正規表現のメモ。 ぼちぼち増やしていきます。 1.du と find 使って、90日以前の日付ごとのログファイル容量を算出 # du -hc `find . -type f -name "*_log.[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]" -mtime +89` 2.find で *.scc と Thumbs.db を探して消す # find . \( -name '*.scc' -o -name 'Thumbs.db' \) -delete 3.grepでorするときは「\(hoge\|moge\)」、egrepでorするときは「(hoge|moge)」 # grep -e "192\.168\.0\.111.*\(GET\|POST\).*\.php.* HTTP" access_log.201412* > ~/201412.log 4.server-status から時間と起動プロセス数を抜く grep -e 'Current Time\|requests currently being processed' /var/tmp/httpd_status_20140908.log 5.0x99AA形式を%99%AAに変換する EmEditor 置換 0xを消してから置換 検索文字列:([\d|\w]{2}+) 置き換え:%\1

DNS ゾーンファイルの例

■正引きゾーンファイル $ORIGIN example.dom. $TTL 3600   ; 1 hour @       IN  SOA ns1.example.dom. hostmaster.example.dom. (                     2014012345 ; serial                     3600       ; refresh (1 hour)                     1200       ; retry (20 min.)                     1209600    ; expire (2 weeks)                     900        ; minimum (15 min.) ) @       IN  NS      ns1.example.dom. @       IN  NS      ns2.example.dom. @       IN  MX      10  mail.example.dom. @       IN  TXT     "v=spf1 mx ~all"   ...

root宛のメールは転送してでも見ろ

root宛のメールを確認して見つけた障害。 ・freshclamに失敗し、ウィルス定義ファイルが更新されていなかった。約3年。 ・DBのバックアップが失敗していた。約1年。 ・rsyncでの同期が失敗していた。約1年。 ・apacheのログローテーションが失敗していた。約2ヶ月間のうち、3回。 ・・・恥ずかしい限りです・・・ というわけで、root宛のメールをmailコマンドで確認するのが面倒だという方は、外部メールアドレスへ転送すべし! # vi /etc/aliases ・・・ root:  hoge@example.dom,fuga@example.dom 複数アドレスへ転送する場合は、カンマで区切って記述する。 で、aliasesを修正したら、 # newaliases

mb_send_mail()するならReturn-Pathを第5引数に

mb_send_mail()を使ってメールを送信する場合は、第5引数に Return-Path を指定する。 さもなければ、Return-Path は apache@hoge.dom (コマンドラインから実行したときは、実行アカウント名@hoge.dom)になる。 第5引数に Return-Path を指定する方法はこんな感じ <?php // 日本語だよって宣言して mb_language('ja'); // UTF-8で組んでるなら、文字エンコードをUTF-8に合わせて mb_internal_encoding("UTF-8"); // ヘッダーとReturn-Pathを指定して、mb_send_mail() mb_send_mail("dare@doko.koko", "メールの送信テスト", "これは、メールの送信テストです。", "From:ore@example.dom", "-f ore@example.dom"); 問い合わせフォームなんかでメールアドレスを入力させるインターフェイスがある。 問い合わせ者へ受付メールを送信するのが一般的だが、もし、問い合わせ者がメールアドレスを入力ミスした場合、550 unknown user の送信先は Return-Path になるため、正しく指定しないと誰も間違いに気づかない。 まぁ、問い合わせ先の担当者が、問い合わせ者が入力したメールアドレスへメールを送れば気づくけどね。 どうせなら、最初から気づいた方がいいと思うけど。