ホーム > アーカイブ > 2007-09

2007-09

apache2 で SSL を使うには

ssl のオプションがいるよう。。

sudo ./configure --prefix=/usr/local/apache/httpd-2.2.4 --enable-module=so --enable-ssl

ソースからインストールした apache を chkconfig -add する

以下 2 サイトを参考に。
猫ぐらし: 自分でインストールしたサービスを chkconfig –add するためには

http://makisuke.seesaa.net/article/6066867.html

apache2.2 起動と自動起動設定

http://kazmax.zpp.jp/apache/apache2.html

はじめての SSL 設定

今までサーバをちょこちょこさわっていたけれど、実はsslの設定をちゃんとしたことがなかった。ということではじめて、sslの設定をやってみました。

参考サイト1:[CSR生成] Apache1.3 + mod_ssl + OpenSSL(新規・更新)|SSLサーバ証明書ならグローバルサイン

参考サイト2:Technical Note : SSLを利用するApacheウェブサーバーの構築方法 – Nature’s Linux Tech Portal

  1. openssl の確認
  2. openssl version
  3. 秘密鍵を生成
  4. openssl genrsa -des3 -out ./ssl.key/ssl.globalsign.com.key 1024
  5. csr を生成
  6. openssl req -new -key ./ssl.key/ssl.globalsign.com.key -out ./ssl.csr/ssl.globalsign.com.csr

    この時、国とか組織とか聞かれるので前もって用意しておきます。

  7. ssl 申込
  8. GlobaSign などで ssl の申込を行います。この時にさっき作った csr を使います。

  9. 証明書の設定
  10. 証明書がメール等で送られてくるので、これをコピーして server.crt のようなファイル名にしてサーバの ssl.crt ディレクトリに保存します。権限は 400 で。

  11. 中間証明書の設定
  12. これもメール等で送られてくるので、ssl.crt に保存します。400。

  13. Apache の設定
  14. 以下のような感じです。

    SSLEngine on
    
    SSLCertificateChainFile /usr/local/apache/conf/ssl.crt/dvcacert.cer
    
    SSLCertificateFile /usr/local/apache/conf/ssl.crt/ssl.globalsign.crt
    
    SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/ssl.globalsignkey
  15. パスフレーズについて
  16. パスフレーズが設定されていると Apache の再起動の度にパスワードを要求されます。
    回避する為には、パスフレーズを削除するか、SSLPassPhraseDialog というディレクトリブを設定することで回避できます。(Nature’s Linux のページに書いてます。)
    パスフレーズの削除は以下コマンドで。

    cp -p server.key server.key.org
    
    openssl rsa -in server.key -out server.key
  17. その他
  18. 今回以下ファイルも修正しました。

    vi /etc/sysconfig/apache

    修正内容は以下の行がコメントアウトされていたので、コメントを外しました。

    OPTIONS=-DSSL
  19. 最後に
  20. service apache configtest
    
    service apache restart

絶対使う!Capistrano

OpenPNE インストール

初めて OpenPNE をインストールしてみる。セットアップガイドを参考にインストールし簡単には動いたけれど、携帯からのメール投稿とクーロンの設定、あと MySQL の初期設定で少しはまる。

ファイルの設置

これはマニュアルそのまま。
今回は /var/www/sns に設置。

設定ファイルの変更

これもマニュアルそのまま。
OPENPNE_URL
適当に設定
DSN
適当に設定
ENCRYPT_KEY
以下でランダム文字列を取得
mkpasswd -l 56
mkpasswd がない時は、
yum install expect
MAIL_SERVER_DOMAIN
メールアドレスの@マーク以降に使用
OPENPNE_DEBUGGING
以下だけ 0 に変更。
define('OPENPNE_DEBUGGING', 0);
データベースの設定

はじめに MySQL を使用する時の初期設定を行う。

service mysqld start
mysql -u root
mysql> set password for root=password('PWD');
mysql> UPDATE mysql.user SET Password=PASSWORD('PWD') WHERE User='root';
mysql> flush privileges;
mysql> exit;
service mysqld restart

以下は OpenPNE 用の設定

mysql -u root -p
mysql> grant all privileges on openpne.* to openpne@localhost identified by 'PWD';
mysql> create database openpne;
mysql> exit;
cd setup/sql/mysql40/install/
mysql -u username -p DBNAME < install-2.8-create_tables.sql
mysql -u username -p DBNAME < install-2.8-insert_data.sql

Apacheの設定

適当に

メールサーバの設定

/opt/etc/postfix2/main.cf
virtual_alias_maps = pcre:/opt/etc/postfix2/virtual.openpne
または
virtual_alias_maps = regex:/opt/etc/postfix2/virtual.openpne

pcre と regexp のどちらが使えるかは postconf -m でわかる。
/opt/etc/postfix2/aliases
openpne-request: "|/usr/local/bin/php /var/www/sns/bin/mail.php"
/opt/etc/postfix2/virtual.openpne
/^get(@.*)?$/ openpne-request
/^p[0-9].*-[0-9a-z]{12}(@.*)?$/ openpne-request
/^t[0-9].*-[0-9a-z]{12}(@.*)?$/ openpne-request
/^b[0-9].*-[0-9a-z]{12}(@.*)?$/ openpne-request

cronの設定
chmod 0755 /var/www/sns/bin/*.cron

crontab -e

クーロンの設定はマニュアル参照

ここで一回つまづく何故かクーロンのサービスを再起動させないとクーロンタブの内容が反映されなかった。

残りの設定は本当にマニュアルどおり。

これで終わり。

追記

サービスの設定

以下でサーバー再起動時も勝手に立ち上がるように
chkconfig postfix on
chkconfig mysqld on
chkconfig apache on

mac で etags を使って php 用のタグファイルを作ってみる

symfonyで開発日記 : emacsのetagsを活用する

http://blog.symfony.jp/2007/08/13/emacs-etags/

を参考に。

実行したコマンドは以下。

etags `find . -name "*.php"`

久々に MacPort

sudo port selfupdate

とするとその時点でエラー。。 久々すぎてどうやってインストールしたかもちゃんと覚えていない。

仕方がないので

えせSEの1日1Hack : MacPortが便利なので、まずは基本コマンドをまとめておく

http://www.key-p.com/blog/ohnishi/article.php?id=112

を見ながら順にセットアップしてみる。

selfupdate のエラーは、Mac Install DISC 1 の Xcode Tools/XcodeTools.mpkg をインストールすることで解決しました。

cperl-mode がエラーになって、てこずる

Index of /modules/by-module/CPAN/ILYAZ/cperl-mode

から cperl-mode をダウンロードして elisp ディレクトリにコピー

そのままだとエラーになるので、emacs から Shift+B でバイトコンパイルして一つ目のエラーはわからないのでコード自体を削除。(? がシンタックスエラー)

次のエラーは以下のページを参考に修正。

Yet Another Hackadelic – cperl-mode で Non-hex digit used for Unicode escape な現象が起きる

会社 PC の .emacs 設定

会社 PC の .emacs 設定

wb-line-number

http://homepage1.nifty.com/blankspace/emacs/wb-line-number.html

kill-summary.el

http://mibai.tec.u-ryukyu.ac.jp/~oshiro/Programs/elisp/kill-summary.el

kill-summary.el の234行目を修正して、truncate-string を truncate-string-to-width に変更

mac で利用する時は、”C-xC-h” を “\C-x\C-h” のように変更する必要がある


;;;; -*- mode: lisp-interaction; syntax: elisp; coding: utf-8-unix -*-
;; ~/elisp をライブラリパスに追加
(setq load-path
      (append
       (list
	(expand-file-name "~/elisp/")
	)
       load-path))

;; 日本語設定 (UTF-8)
(set-language-environment "Japanese")
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-buffer-file-coding-system 'utf-8)
(setq default-buffer-file-coding-system 'utf-8)

;; ChangeLog の設定
(setq user-full-name "Xxx Xxx")
(setq user-mail-address "xxx@xxx.com")
(defun memo ()
  (interactive)
    (add-change-log-entry
     nil
     (expand-file-name "~/memo/diary.txt")))
(define-key ctl-x-map "M" 'memo)

;; タブの基本設定
(setq tab-width 4)
(setq c-basic-offset 4)

;; フォントロックモード (強調表示等) を有効にする
(global-font-lock-mode t)

;; 一時マークモードの自動有効化
(setq-default transient-mark-mode t)

;; C-x C-u が何もしないように変更する (undo の typo 時誤動作防止)
(global-unset-key "C-xC-u")

;; 括弧の対応をハイライト.
(show-paren-mode 1) 

;; バッファ末尾に余計な改行コードを防ぐための設定
(setq next-line-add-newlines nil) 

;; C-x l で goto-line を実行
(define-key ctl-x-map "l" 'goto-line) 

;; 時間を表示
(display-time) 

;; 列数表示
(column-number-mode 1) 

;; メニューバーを消す
(menu-bar-mode -1)

;; バックアップファイルを作成しない
(setq make-backup-files nil)

;; grep-find の結果に .svn ディレクトリを含まないようにする(mac だとこの方法ではうまくいかない)
(setq grep-find-command "find . -type f -path '*.svn*' -prune -o -print0 | xargs -0 -e grep -nH -e ")

;; C-h でカーソルの左にある文字を消す
(define-key global-map "C-h" 'delete-backward-char)

;; C-h に割り当てられている関数 help-command を C-x C-h に割り当てる
(define-key global-map "C-xC-h" 'help-command)

;; C-z のキーバインドを開放
(global-unset-key "C-z")

;; toggle-truncate-lines を "C-z l" に定義する
(define-key global-map "C-zl" 'toggle-truncate-lines)

;; 画面の左端に行番号を表示できるように
(require 'wb-line-number)
;; "C-z n" に定義する
(define-key global-map "C-zn" 'wb-line-number-toggle)

;; C-o に動的略語展開機能を割り当てる
;;(define-key global-map "C-o" 'dabbrev-expand)
;;(setq dabbrev-case-fold-search nil) ; 大文字小文字を区別

;; 日本語・英語混じり文での区切判定
;; http://www.alles.or.jp/~torutk/oojava/meadow/Meadow210Install.html
(defadvice dabbrev-expand
  (around modify-regexp-for-japanese activate compile)
  "Modify `dabbrev-abbrev-char-regexp' dynamically for Japanese words."
  (if (bobp)
      ad-do-it
    (let ((dabbrev-abbrev-char-regexp
           (let ((c (char-category-set (char-before))))
             (cond
              ((aref c ?a) "[-_A-Za-z0-9]") ; ASCII
              ((aref c ?j) ; Japanese
               (cond
                ((aref c ?K) "cK") ; katakana
                ((aref c ?A) "cA") ; 2byte alphanumeric
                ((aref c ?H) "cH") ; hiragana
                ((aref c ?C) "cC") ; kanji
                (t "cj")))
              ((aref c ?k) "ck") ; hankaku-kana
              ((aref c ?r) "cr") ; Japanese roman ?
              (t dabbrev-abbrev-char-regexp)))))
      ad-do-it)))

;; BS で選択範囲を消す
(delete-selection-mode 1)

;; The local variables list in .emacs と言われるのを抑止
(add-to-list 'ignored-local-variables 'syntax) 

;; ミニバッファ中での補完機構を補強
(iswitchb-mode t)

;; kill リングバッファの内容を表示しながらヤンクできるようにする
(autoload 'kill-summary "kill-summary" nil t)
(define-key global-map "ey" 'kill-summary)

;; php-mode
(autoload 'php-mode "php-mode")
(setq auto-mode-alist
      (cons '(".php'" . php-mode) auto-mode-alist))
(setq php-mode-force-pear t)
(add-hook 'php-mode-user-hook
  '(lambda ()
     (setq tab-width 4)
     (setq c-basic-offset 4)
     (setq indent-tabs-mode nil)
     (setq php-manual-path "/usr/local/share/php/doc/html")
     (setq php-manual-url "http://www.phppro.jp/phpmanual/")))

;;;; ruby-mode (要 ruby-mode.el)
(autoload 'ruby-mode "ruby-mode"
  "Mode for editing ruby source files" t)
(setq auto-mode-alist
      (append '((".rb$" . ruby-mode)) auto-mode-alist))
(setq interpreter-mode-alist (append '(("ruby" . ruby-mode))
                                     interpreter-mode-alist))
(autoload 'run-ruby "inf-ruby"
  "Run an inferior Ruby process")
(autoload 'inf-ruby-keys "inf-ruby"
  "Set local key defs for inf-ruby in ruby-mode")
(add-hook 'ruby-mode-hook
          '(lambda ()
            (inf-ruby-keys)))

;; cperl-mode の設定。インデントをいい感じに、他。
(autoload 'perl-mode "cperl-mode" "alternate mode for editing Perl programs" t)
(setq cperl-auto-newline t)
(setq cperl-indent-parens-as-block t)
(setq cperl-close-paren-offset -4)
(setq cperl-indent-level 4)
(setq cperl-label-offset -4)
(setq cperl-continued-statement-offset 4)
(setq cperl-highlight-variables-indiscriminately t)
(add-hook 'cperl-mode-hook
          (lambda ()
            (set-face-italic-p 'cperl-hash-face nil)))
(add-hook 'cperl-mode-hook
	  '(lambda ()
	     (define-key cperl-mode-map "C-cc" 'cperl-check-syntax)
	     (setq indent-tabs-mode nil)))

;; リセットされた場合に UTF-8 に戻す
;; http://0xcc.net/blog/archives/000041.html
(set-default-coding-systems 'utf-8)

colinux に php をインストール

いろいろ足りなくてなかなかおわらない。

一番はまったのが、./configure –with-mysql が失敗する現象。これは yum install mysql-devel を実行すると解消された。エラーがでる時は *-devel もインストールすると解消することが多そう。

最終的なコンパイルオプションは
sudo ./configure --prefix=/usr/local/php/php-5.2.4 --with-apxs2=/usr/local/apache/current/bin/apxs --with-mysql --enable-mbstring --with-gd --with-mcrypt

mysql もインストールした、/etc/rc.d/init.d/mysqld に起動スクリプトあり

ホーム > アーカイブ > 2007-09

ぴくちゃー
ブログパーツ
あわせて読みたいブログパーツ
なかの人
携帯アクセス解析
Yahoo Widget

ページの上部に戻る