2010-12-01

サーバ構築

WEB構築


web共有をon
/library/webserver/documentsが公開フォルダ。

/etc/apache2/httpd.confをいじる


AddHandler cgi-script .cgi .pl 有効
ssl関係も有効
LoadModule php5_module libexec/apache2/libphp5.so有効

の中に

    AddType text/html shtml
    AddHandler server-parsed shtml
    AddHandler cgi-script .cgi .pl
    Options Indexes MultiViews ExecCGI Includes
を追加



CGIのヘッダを
perl -pi -e 's|#!d:/shin/STS/server/perl/bin/perl -w|#!/usr/bin/perl|' *.cgi
とか
find a -name "*.cgi" -exec perl -i -pe 's|#!d:/shin/STS/server/perl/bin/perl -w|#!/usr/bin/perl|' {} \;

とかして一括変更



IMAP構築


postfixの設定ファイルを編集
main.cf 
最後の行に


###MacOSXSABA_main.cf_Start###
inet_interfaces=all
mynetworks_style=subnet
mydomain=ponkan.ddo.jp
myhostname=ponkan.ddo.jp

smtpd_tls_cert_file=/System/Library/OpenSSL/certs/server.crt
smtpd_tls_key_file=/System/Library/OpenSSL/certs/server.key
smtpd_tls_loglevel=1
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:/etc/postfix/smtpd_scache
tls_random_source = dev:/dev/urandom

smtpd_sasl_auth_enable=yes
smtpd_use_pw_server=yes
enable_server_options=yes
smtpd_pw_server_security_options=plain, login, cram-md5
smtpd_sasl_security_options=noanonymous, noplaintext
broken_sasl_auth_clients=yes
smtpd_recipient_restrictions=permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
smtpd_sasl_local_domain=$mydomain
###MacOSXSABA_main.cf_End###

を追加


master.cf 
以下2つの行の#を外す

smtp      inet  n       -       n       -       -       smtpd

  -o smtpd_tls_security_level=encrypt

サービスに追加して自動起動するように

IMAPがきくように、自動設定ツールをインストール

macで複数ファイル内容の一括置換

macでというか、unixでというか。

例えば、現在のフォルダの中のすべてのcgiの先頭行を
#!/usr/bin/perlから#!/usr/local/bin/perlに変更したい時

find ./ -name "*.cgi" -exec perl -i -pe 's|#!/usr/bin/perl|#!/usr/local/bin/perl|' {} \;

を、ターミナルから実行。

解説

find [dir name] ← UNIXコマンドの一。条件に合うファイルを指定したフォルダ以下から探す。
-name "[target name]"← 名前で検索しろよ、というoption。*はワイルドカードとして使用。
-exec [cmd] {}←見つかったファイルのパスを{}に代入してcmdの内容を実行しろ、というoption。
  \; ← findここで終わり、の宣言。( \は;をshellではなくfindに渡すためのエスケープ文字)

で、

perl ← 実行するのはperlスクリプトですよ、って宣言。
-e ← perlを実行して処理が済んだらperlを終了しますよってoption。
-p ← 置換をファイルの先頭から最後までループでやるよっていうoption
-i ← 複数ファイル一括処理option。

's|[a]|[b]|'  ← aという文字列をbに置換しろよ、という命令。


ということでした。



findのoption一覧
検索の条件-基本機能
-name [file name]指定した文字列のファイル・ディレクトリを検索
-user [user name]指定したユーザーが所有するファイル・ディレクトリを検索
-group [group name]指定したグループが所有するファイル・ディレクトリを検索
-type [filetype]ファイルの種類を指定して検索
b:ブロック型特殊ファイル c:キャラクタ型特殊ファイル d:ディレクトリ l:シンボリックリンク f:通常ファイル
検索の条件-日時機能
-atime (+/-)n最後にアクセスしたのがn日前のファイル・ディレクトリを検索(+n:n日以上、-n:n日以下)
-ctime (+/-)n最後にステータスが修正されたのがn日前のファイル・ディレクトリを検索(+n:n日以上、-n:n日以下)
-mtime (+/-)n最後にデータが修正されたのがn日前のファイル・ディレクトリを検索(+n:n日以上、-n:n日以下)
-mmin (+/-)n最後にデータが修正されたのがn分前のファイル・ディレクトリを検索(+n:n分以上、-n:n分以下)
-newer [file name]指定したファイルよりも後に更新されているファイル・ディレクトリを検索
検索の条件-サイズ機能
-size n[c/k/b]nのサイズのファイルを検索(c:バイト、k:キロバイト、b:ブロック-1ブロック=512バイト)
検索結果の処理機能
-ls詳細を一覧表示する
-print検索結果の標準出力
-fprint [file name]検索結果を指定したファイルに書き出す
-exec [command] {} \;検索結果をコマンドに引き渡して実行
pealのoption一覧

-0[octal]       specify record separator (\0, if no argument)
  -a              autosplit mode with -n or -p (splits $_ into @F)
  -C[number/list] enables the listed Unicode features
  -c              check syntax only (runs BEGIN and CHECK blocks)
  -d[:debugger]   run program under debugger
  -D[number/list] set debugging flags (argument is a bit mask or alphabets)
  -e program      one line of program (several -e's allowed, omit programfile)
  -f              don't do $sitelib/sitecustomize.pl at startup
  -F/pattern/     split() pattern for -a switch (//'s are optional)
  -i[extension]   edit <> files in place (makes backup if extension supplied)
  -Idirectory     specify @INC/#include directory (several -I's allowed)
  -l[octal]       enable line ending processing, specifies line terminator
  -[mM][-]module  execute "use/no module..." before executing program
  -n              assume "while (<>) { ... }" loop around program
  -p              assume loop like -n but print line also, like sed
  -P              run program through C preprocessor before compilation
  -s              enable rudimentary parsing for switches after programfile
  -S              look for programfile using PATH environment variable
  -t              enable tainting warnings
  -T              enable tainting checks
  -u              dump core after parsing program
  -U              allow unsafe operations
  -v              print version, subversion (includes VERY IMPORTANT perl info)
  -V[:variable]   print configuration summary (or a single Config.pm variable)
  -w              enable many useful warnings (RECOMMENDED)
  -W              enable all warnings
  -x[directory]   strip off text before #!perl line and perhaps cd to directory
  -X              disable all warnings