ホーム > アーカイブ > 2007-09
2007-09
apache2 で SSL を使うには
- 2007/09/28
- その他
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
- openssl の確認
- 秘密鍵を生成
- csr を生成
- ssl 申込
- 証明書の設定
- 中間証明書の設定
- Apache の設定
- パスフレーズについて
- その他
- 最後に
openssl version
openssl genrsa -des3 -out ./ssl.key/ssl.globalsign.com.key 1024
openssl req -new -key ./ssl.key/ssl.globalsign.com.key -out ./ssl.csr/ssl.globalsign.com.csr
この時、国とか組織とか聞かれるので前もって用意しておきます。
GlobaSign などで ssl の申込を行います。この時にさっき作った csr を使います。
証明書がメール等で送られてくるので、これをコピーして server.crt のようなファイル名にしてサーバの ssl.crt ディレクトリに保存します。権限は 400 で。
これもメール等で送られてくるので、ssl.crt に保存します。400。
以下のような感じです。
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
パスフレーズが設定されていると Apache の再起動の度にパスワードを要求されます。
回避する為には、パスフレーズを削除するか、SSLPassPhraseDialog というディレクトリブを設定することで回避できます。(Nature’s Linux のページに書いてます。)
パスフレーズの削除は以下コマンドで。
cp -p server.key server.key.org
openssl rsa -in server.key -out server.key
今回以下ファイルも修正しました。
vi /etc/sysconfig/apache
修正内容は以下の行がコメントアウトされていたので、コメントを外しました。
OPTIONS=-DSSL
service apache configtest
service apache restart
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 がエラーになって、てこずる
- 2007/09/12
- その他
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