はいね的のーとぶっく

Just another WordPress weblog

[svn]特定リビジョンのファイルの一覧表示


Subversionで特定のリビジョンでコミットされたファイルの一覧を表示する方法です。

方法

CODE:
  1. $ svn log -r xxx -v

[linux]sendmailでのサブミッション・ポート利用


昨今の SPAM(スパム)メール、いわゆる迷惑メール対策として、大手商用プロバイダでも色々な対策を取るようになってきました。そのような対策としてプロバイダ側が採用した方法が、『 SMTP ポート(TCP 25番) を制限する 』という手法です。制限のかけられているプロバイダでは、通常メールを送信するためのポート 25 番を禁止にし、専用ポート 587 番を利用するように告知がなされています。このポート 587 がサブミッション・ポート、と呼ばれています。

現状、よくあるケースとして、プロバイダさんの側で SMTP ポートを制限されてしまい、外部のメールサーバ(会社なり別のホスティングしているサーバだったり)からのメール送信ができなくなってしまう問題が発生しています。そこで、サーバ側では、どのようにメール送信を許可させるか、サブミッション・ポート 587 を使って外部ネットワークのメールサーバからメールを送る方法を以下に整理しました。

方法

  1. sendmail.mc の編集

    まず、/etc/mail/sendmail.mc を開き、下記のように修正します。

    CODE:
    1. dnl DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl
    2. //このコメントされている dnl を削除します。
    3.         ↓
    4. DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl

    また、以下の項目がコメントされていない(先頭に dnl が無い)事を確認しておく必要があります。そうしないと SMTP ポートとして 25 番が開かなくなり、外部サーバから送られてくるメールも受信できなくなってしまいます。

    CODE:
    1. DAEMON_OPTIONS(`Port=smtp,Addr=210.239.46.254, Name=MTA')dnl

  2. sendmail.cf の再構築

    sendmail.mc から sendmail.cf の再構築→sendmail の再起動によりポート 587 の利用ができるようになります。

    CODE:
    1. # m4 /etc/mail/sendmail.mc> /etc/mail/sendmail.cf

    ※この際、下記のようにエラーが出る場合があります。

    CODE:
    1. /etc/mail/sendmail.mc:10: m4: cannot open `/usr/share/sendmail-cf/m4/cf.m4': No such file or directory

    エラーが出た場合は、下記のように"sendmail-cf"パッケージをインストールした後に、再度上記の"m4"コマンド実行します。

    CODE:
    1. yum install sendmail-cf

    最後に、サービスを再起動して設定を反映させます。

    CODE:
    1. /sbin/service sendmail restart

  3. 動作確認

    動作確認は telnet コマンドで簡単に行えます。

    CODE:
    1. # telnet localhost 587
    2. Trying 127.0.0.1...
    3. Connected to localhost (127.0.0.1).
    4. Escape character is '^]'.
    5. 220 sion.pocketstudio.jp ESMTP Sendmail 8.13.4/8.13.4; Fri, 1 Jul 2005 18:13:24 +0900

    このようにポート 587 が正常に応答してくれれば問題ありません。【 QUIT 】 と入力して通信を終了させます。

    CODE:
    1. Connection refused

    と表示されたら sendmail.mc の記述が間違っているかもしれません。もう一度、記述を確認してみる必要があります。

関連リンク

[Linux]CentOSのファイアウォールの設定


CentOS では、インストール時にファイアウォールで許可するサービスを指定出来ます。ここでは、インストール後にファイアウォールのポートを開放する方法を説明します。

方法

"/etc/sysconfig/iptables" を直接編集しても良いのですが、ここでは、"system-config-securitylevel" ユーティリティーを利用します。

CODE:
  1. sudo system-config-securitylevel

関連リンク

[Linux]SSHのセキュリティ


http://sourceforge.jp/magazine/07/04/03/0148224

[Linux]CentOSインストール


http://d.hatena.ne.jp/kopug/20070526/1180162629

[JQuery]プラグインの一覧


JQueryで使えるプラグインをリストアップします。

その他

  • jQuery.socialbutton
    各種ソーシャルネットワーキングサイトの「いいね!」ボタンを、超カンタンに導入できるjQueryプラグインです。

[Linux]サーバーのホスト名を変更する


サーバーのホスト名を変更する方法を記述します。ホスト名をきちんと設定しないとsudoができないときがあるので、気をつけましょう。

方法

下記ファイルの該当箇所を修正する。

CODE:
  1. $ vi /etc/hostname
  2. $ vi /etc/hosts

[Ubuntu]起動時に立ち上るサービスの設定


パソコン起動時に、自動的に立ち上るサービスを設定する方法を記載します。今回はUbuntuなどのDebian系での設定方法を主に記載しております。

方法

  1. 起動スクリプトを用意する

    ディレクトリ「/etc/init.d/」へ起動スクリプトを設置する。
    ソースインストールなどの場合、自動的に起動スクリプトが生成されている場合が多いので、生成されたスクリプトを該当ディレクトリにインストールしてください。

  2. ランレベルに合わせて自動起動及び停止させる設定を行う

    Debian 系の場合は,update-rc.d コマンドを使って登録します.
    このコマンドは、rc.dディレクトリに起動スクリプトのシンボリックリンクを張ってくれます。

    CODE:
    1. # update-rc.d apache defaults 91

    実行すると、ランレベル 2 3 4 5 に S91apache が、ランレベル 0 1 6 に K91apache が作成されます.
    (ちなみに91 を省略すると、デフォルトの 20 が用いられます)
    ランレベル 2 3 4 5 で起動、というのはデフォルトです。

    ランレベルを明示的に指定するなら,以下のように実行します.

    CODE:
    1. # update-rc.d apache start 91 2 3 4 5 . stop 91 0 1 6 .

    また、Debian系におけるランレベルは下記の通りです。
    init0 = 停止
    init1 = シングルユーザーモード
    init2 = マルチユーザーモード
    init3 = マルチユーザーモード
    init4 = マルチユーザーモード
    init5 = マルチユーザーモード
    init6 = 再起動

  3. 設定を消去する場合

    登録を抹消するには、以下のように実行します。

    CODE:
    1. # update-rc.d -f apache remove

    実行すると、S??donothing と K??donothing がなくなります。

    いずれも、-n オプションをつけて実行すると実際の作業自体は行われません。ですので、まず -n オプションをつけて実行し、問題なさそうであれば、本番に挑むのがよろしいのではないかと思います。

関連リンク

[Linux]MySQLのソースインストール


MySQLをソースからコンパイルしてインストールする方法を記載します。

方法

  1. MySQL用のグループとユーザーを作成します

    CODE:
    1. # groupadd mysql
    2. # useradd -g mysql -d /var/lib/mysql mysql
    3.  
    4. //MySQL用のデータ収納dir作成
    5. # mkdir /var/lib/mysql
    6. # chown mysql:mysql /var/lib/mysql

  2. MySQLをインストールします

    公式サイトよりソースをダウンロード、展開します。

    CODE:
    1. $ cd /usr/local/src
    2. $ tar zxvf mysql-5.1.53.tar.gz
    3. $ cd mysql-5.1.53
    4. ./configure \
    5.      --prefix=/usr/local/stow/mysql-5.1.53 \
    6.      --with-charset=utf8 \
    7.      --with-extra-charsets=all \
    8.      --with-innodb \
    9.      --enable-local-infile \
    10.      --with-unix-socket-path=/var/lib/mysql/mysql.sock \
    11.      --with-mysqld-user=mysql \
    12.      --localstatedir=/var/lib/mysql \
    13.      --enable-assembler \
    14.      --with-wrap \
    15.      --enable-thread-safe-client \
    16.      --without-debug

    コンパイルを行い、インストールします。

    CODE:
    1. $ make all
    2. $ make check
    3. $ make install

  3. データベースを初期化します

    CODE:
    1. $ /usr/local/stow/mysql-5.1.53/bin/mysql_install_db --user=mysql

  4. コンフィグレーションファイルの作成

    CODE:
    1. # cp -p /usr/local/src/mysql-5.1.53/support-files/my-medium.cnf /etc/my.cnf
    2. # vi /etc/my.cnf

  5. 自動起動スクリプトの設定

    MySQL の自動起動スクリプトを使うことで、サーバーマシンが起動するときに自動的に MySQL を起動させることができます。
    MySQL の自動起動スクリプトは MySQL のソースファイル(support-files/mysql.server)に含まれています。
    これを /etc/init.d/mysql ファイルとしてコピーします。

    CODE:
    1. install -o root -g root -m 755 /usr/local/src/mysql-5.1.53/support-files/mysql.server /etc/init.d/mysql

関連リンク

[Linux]PostgreSQLのソースインストール


PostgreSQLをソースからコンパイルしてインストールする方法を記載します。

方法

  1. PostgreSQL用のグループとユーザーを作成します

    CODE:
    1. # groupadd postgres
    2. # useradd -g postgres -d /var/lib/pgsql postgres
    3.  
    4. //PostgreSQL用のデータ収納dir作成
    5. # mkdir /var/lib/pgsql
    6. # chown postgres:postgres /var/lib/pgsql

  2. PostgreSQLをインストールします

    公式サイトよりソースをダウンロード、展開します。

    CODE:
    1. $ cd /usr/local/src
    2. $ tar zxvf postgresql-7.4.5.tar.gz
    3. $ cd postgresql-7.4.5
    4. $ ./configure \
    5.      --enable-shared \
    6.      --enable-multibyte \
    7.      --prefix=/usr/local/stow/postgresql-7.4.5

    コンパイルを行い、インストールします。

    CODE:
    1. $ make all
    2. $ make check
    3. $ make install

  3. データベースを初期化します

    CODE:
    1. $ sudo -u postgres /usr/local/bin/initdb -L /usr/local/share -D /var/lib/pgsql -E EUC_JP --no-locale

    「Success. You can now start the database ~」と表示されれば成功です。

  4. 自動起動スクリプトの設定

    PostgreSQL の自動起動スクリプトを使うことで、サーバーマシンが起動するときに自動的に PostgreSQL を起動させることができます。
    PostgreSQL の自動起動スクリプトは PostgreSQL のソースファイル(contrib/start-scripts/linux)に含まれています。
    これを /etc/init.d/postgresql ファイルとしてコピーします。

    CODE:
    1. install -o root -g root -m 755 /usr/local/src/postgresql-7.4.5/contrib/start-scripts/linux /etc/init.d/postgresql

関連リンク