ssh 公開鍵認証
sshd_config 設定 ( ssh接続で鍵の利用を許可する)
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PermitRootLogin no
PasswordAuthentication no
resolv.conf 設定 (yumコマンドが使えるように設定)
/etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 127.0.0.1
ログインユーザーのホームディレクトリ(~/.ssh)に
# RSA1鍵を作成(ssh version1)
ssh-keygen -t rsa1
#DSA鍵を作成(ssh version2)
ssh-keygen -t dsa
permissionの設定
cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
作成済みの秘密鍵のパスワードを変更する場合
ssh-keygen -p -f ~/.ssh/id_rsa
Enter old passphrase: (旧パスワード)
Key has comment '~/.ssh/id_rsa'
Enter new passphrase (empty for no passphrase): (新パスワード)
Enter same passphrase again: (新パスワード)
Your identification has been saved with the new passphrase.
sshpass インストール
sshpass とは?
sshpass( Non-interactive ssh password authentication ) を使うと
コマンドラインにてssh接続のパスワードを指定することができ、ログインできるようになる。
sshpass リポジトリ登録
rpm -ivh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
sshpass インストール
yum -y install sshpass
sshpass コマンド書式
sshpass -p 'パスワード' ssh -i 秘密鍵 ユーザ名@ホスト名( IPアドレス)
参考サイト
http://server-setting.info/centos/sshpass-ssh-auto-connect.html
CandyCane インストール
DocumentRoot作成
mkdir /var/www/www.candycane.co.jp
cd /var/www/www.candycane.co.jp
CandyCaneをダウンロード
wget https://github.com/yandod/candycane/archive/master.zip
unzip candycane-master.zip
rm -rf candycane-master.zip
mv candycane-master htdocs
cd htdocs
chmod -R 777 app/tmp/
chmod -R 777 app/Config
chmod -R 777 app/files
chmod -R 777 app/Plugin
chown -R apache:apache /var/www/www.candycane.co.jp
Apacheの設定
vim /etc/httpd/conf.d/www.candycane.co.jp.conf
********************************************************************
#
# httpd configuration settings for use with mailman.
#
# Listen for virtual host requests on all IP addresses
#NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot "/var/www/www.candycane.co.jp/htdocs"
ServerName www.candycane.co.jp
DirectoryIndex index.html index.php
ErrorLog logs/www.candycane.co.jp_error_log
CustomLog logs/www.candycane.co.jp_access_log common
<Directory "/var/www/www.candycane.co.jp/htdocs">
# AuthType Basic
# AuthUserFile /etc/httpd/.htpasswd
# AuthName "Basic Certification"
# require valid-user
AllowOverride ALL
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
********************************************************************
candycane用のDBを構築
**********************************************************
mysel -u root -p
create database candycane default character set utf8;
grant all privileges on candycane.* to candy_user@localhost identified by 'candy_password';
flush privileges;
exit;
**********************************************************
hosts 設定
vim /etc/hosts
127.0.0.1 localhost.localdomain localhost www.candycane.co.jp
Apache再起動
service httpd configtest
service httpd restart
httpd -S
dotProject インストール
作業ディレクトリー作成
cd mkdir /var/www/work
dotProjectをダウンロード
http://sourceforge.jp/projects/sfnet_dotproject/releases/
DocumentRootを作成
cd mkdir /var/www/www.dotproject.co.jp
dotProjectを設置
mv /var/www/work/dotproject-2.1.8.tar.gz .
tar zxvf dotproject-2.1.8.tar.gz
rm -rf dotproject-2.1.8.tar.gz
mv dotproject htdocs
chown -R apache:apache /var/www/www.dotproject.co.jp
cd htdocs/
chmod -R o+w includes files files/temp locales/en
Apacheのconfファイル作成
cd /etc/httpd/conf.d/
vim www.dotproject.co.jp.conf
**************************************************************************
#
# httpd configuration settings for use with mailman.
#
# Listen for virtual host requests on all IP addresses
#NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot "/var/www/www.dotproject.co.jp/htdocs"
ServerName www.dotproject.co.jp
DirectoryIndex index.html index.php
ErrorLog logs/www.dotproject.co.jp_error_log
CustomLog logs/www.dotproject.co.jp_access_log common
<Directory "/var/www/www.dotproject.co.jp/htdocs">
# AuthType Basic
# AuthUserFile /etc/httpd/.htpasswd
# AuthName "Basic Certification"
# require valid-user
AllowOverride ALL
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
**************************************************************************
Apache再起動
service httpd restart
設定が有効になったことを確認
httpd -S
port 80 namevhost www.dotproject.co.jp (/etc/httpd/conf.d/www.dotproject.co.jp.conf:8)
Syntax OK
リクエスト開始時にセッションを自動的に開始させる
session.auto_start = 1
dotProject用にschema構築
mysql -u root -p
CREATE DATABASE dotproject default character set utf8;
GRANT USAGE ON * . * TO 'dp_user'@'localhost' IDENTIFIED BY 'dp_password';
GRANT ALL PRIVILEGES ON `dotproject` . * TO 'dp_user'@'localhost';
samba インストール
sambaをインストール
新規ユーザーを作成
useradd smb_user
passwd smb_user
既存ユーザをSambaサーバーアクセス用ユーザに設定
pdbedit -a smb_user
new password: +++++++
retype new password: +++++++
共有ディレクトリ作成
mkdir /var/www/
chown nobody:nobody /home/samba
Samba設定ファイル編集
*******************************************************************
[global]
dos charset = CP932
display charset = UTF-8
workgroup = WORKGROUP
# ログイン時 ユーザー名 & パスワード の認証が必要
security = user
# 内部からのアクセスのみ許可
hosts allow = 192.168. 127.
# (プリンタ共有無効化)※Sambaでプリンタを共有しない場合
load printers = no
# (プリンタ共有無効化)※Sambaでプリンタを共有しない場合
disable spoolss = yes
[homes]
comment = HomeDirectories
# /home/ユーザー名/sambaをホームディレクトリにする
path = %H/samba
browseable = no
writable = yes
# ※ファイル削除時に自動的にごみ箱へ移動されるようにする
vfsobjects = recycle
# ごみ箱のディレクトリ名(/home/ユーザ名/.recycle)
recycle:repository = .recycle
# ごみ箱へ移動時にディレクトリ構造を維持しない
recycle:keeptree = no
# 同名のファイルがごみ箱にある場合に別名で移動
recycle:versions = yes
# ごみ箱へ移動時にタイムスタンプを更新しない
recycle:touch = no
# ごみ箱へ移動するファイルのサイズ上限(0:無制限)
recycle:maxsize = 0
# ここで指定したファイルはごみ箱へ移動せずに即削除する
recycle:exclude = *.tmp~$*
[public]
comment = Public Stuff
path = /home/samba
public = no
writable = yes
only guest = yes
# ※ファイル削除時に自動的にごみ箱へ移動されるようにする
vfsobjects = recycle
# ごみ箱のディレクトリ名(/home/ユーザ名/.recycle)
recycle:repository = .recycle
# ごみ箱へ移動時にディレクトリ構造を維持しない
recycle:keeptree = no
# 同名のファイルがごみ箱にある場合に別名で移動
recycle:versions = yes
# ごみ箱へ移動時にタイムスタンプを更新しない
recycle:touch = no
# ごみ箱へ移動するファイルのサイズ上限(0:無制限)
recycle:maxsize = 0
# ここで指定したファイルはごみ箱へ移動せずに即削除する
recycle:exclude = *.tmp~$*
# sambaログの吐き出しルールを記述
vfs objects = full_audit
full_audit:facility = local1
full_audit:prefix = %m|%I|%S
full_audit:failure = connect disconnect mkdir rmdir pwrite rename unlink
full_audit:success = connect disconnect mkdir rmdir pwrite rename unlink
*******************************************************************
Samba起動
service smb start
nmb起動
nmb start
chkconfig smb on
chkconfig nmb on
rsyslogでsambaのログ吐き出しルールを設定
ログの吐き出し先を/etc/rsyslog.confに記述する。
現状だと/var/log/messagesに設定したログが吐き出されてしまうが、
messagesはsamba以外のログも吐き出されるので、sambaのログと切り分ける。
vim /etc/rsyslog.conf
$template sharetmpl, "/var/log/samba/%$year%-%$month%.log"
local1.* ?sharetmpl
ごみ箱内ファイル自動削除スクリプト作成
(1週間ごとに30日間アクセスのないごみ箱内のファイルを自動的に削除)
vim /etc/cron.weekly/recyclewatch
************************************************************
#!/bin/bash
for user in `ls /home/`
do
if [ -d /home/$user/.recycle ]; then
tmpwatch -f 720 /home/$user/.recycle/
fi
done
************************************************************
スクリプトに実行権限付加
chmod +x /etc/cron.weekly/recyclewatch
SELinuxの停止法
SELINUX=enforcing
↓
SELINUX=disabled
sambaユーザの確認
pdbedit -L
sambaユーザー削除
pdbedit -x hoge
trac インストール
Python2.6をインストール
wget http://www.python.org/ftp/python/2.6.2/Python-2.6.2.tgz
tar zxvf Python-2.6.2.tgz
cd Python-2.6.2
./configure --prefix=/usr/local/python --enable-shared
make
make install
libpython2.6.so.1.0を/usr/libにコピー。これがないとPythonが動かない。
cp libpython2.6.so.1.0 /usr/lib/
パスを通す
PATH=/usr/local/python/bin:$PATH
設定を反映
source ~/.bash_profile
正しくパスが通っているか確認
python -V
Python 2.6.2
Genshiインストール
wget http://ftp.edgewall.com/pub/genshi/Genshi-0.6-py2.6.egg
easy_install Genshi-0.6-py2.6.egg
tracが使用するライブラリ「genshi」と「babel」をeasy_installでインストール
easy_install genshi
easy_install babel
// trac導入
cd /var/www/
mkdir work
cd work
wget http://www.i-act.co.jp/project/products/downloads/Trac-0.12.3.ja2.zip
yum --enablerepo=rpmforge install python-clearsilver
yum --enablerepo=rpmforge install python-sqlite2.i386
yum -y install mod_python sqlite-devel
wget http://peak.telecommunity.com/dist/ez_setup.py
python ez_setup.py
unzip Trac-0.12.3.ja2.zip
cd trac
python setup.py install
trac メニューの日本語化
svn co http://svn.edgewall.org/repos/trac/trunk
cd trunk
python setup.py compile_catalog -f
python setup.py install
tracディレクト作成
mkdir /var/www/trac
trac-admin /var/www/trac/test_project initenv
vim /var/www/trac/test_project/conf/trac.ini
repository_dir = /var/www/svn-repos
// tracへログインする時に使用するユーザを設定
// user1をユーザとして追加(TRAC-ADMIN権限をもつユーザ)
trac-admin /var/www/trac/test_project permission add admin TRAC_ADMIN
htpasswd -c /var/www/trac/.htpasswd admin
chown -R apache:apache /var/www/trac
// デフォルトで登録されている匿名ユーザ権限の確認
trac-admin /var/www/trac/test_project permission list anonymous
// 権限の削除(リポジトリを匿名ユーザには見せない設定例)
trac-admin /var/www/trac/test_project permission remove anonymous BROWSER_VIEW
vim /etc/httpd/conf.d/trac.conf
<Location /projects >
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /var/www/trac
PythonOption TracUriRoot /projects
</Location>
<LocationMatch "/[^/]+/login">
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /var/www/trac
PythonOption TracUriRoot /projects
AuthUserFile /var/www/trac/.htpasswd
AuthName "Trac User Authorize"
AuthType Basic
Require valid-user
</LocationMatch>
cd /usr/lib/python2.4/site-packages/
unzip Trac-0.12.3.ja2-py2.4.egg
service httpd restart
wget http://sourceforge.jp/projects/shibuya-trac/svn/view/plugins/ganttcalendarplugin.tar.gz?root=shibuya-trac&view=tar
tar zxvf shibuya-trac-ganttcalendarplugin.tar.gz
cd ganttcalendarplugin/trunk/
python setup.py bdist_egg
python setup.py install
service httpd restart
Subversion インストール
yumリポジトリからsubversionをインストール
yum -y install subversion mod_dav_svn
リポジトリのディレクトリを作成
mkdir /var/www/svn-repos
svnadmin create /var/www/svn-repos
svnadmin create /var/www/svn-repos/repos
リポジトリ用のグループとユーザを作成
groupadd subversion
chown hoge1:subversion hoge1
chown hoge2:subversion hoge2
権限を変更しておく
chmod -R 775 /var/www/svn-repos
chown -R apache:subversion /var/www/svn-repos
ユーザ名とパスワードを設定
vim /var/www/svn-repos/conf/passwd
hoge1 = hoge1
hoge2 = hoge2
モジュールを有効にする
vim /etc/httpd/conf/httpd.conf
// 以下のコメントをはずします。
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
↓
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
subversion設定ファイルを作成
vim /etc/httpd/conf.d/subversion.conf
<Location /svn-repos>
DAV svn
SVNPath /var/www/svn-repos
# SVNParentPath /var/www/svn-repos
Order allow,deny
Allow from all
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /var/www/svn-repos/conf/htpasswd
Require valid-user
AuthzSVNAccessFile /var/www/svn-repos/conf/authz
# Limit write permission to list of valid users.
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
# Require SSL connection for password protection.
# SSLRequireSSL
#AuthType Basic
#AuthName "Authorization Realm"
#AuthUserFile /h/to/passwdfile
#Require valid-user
</LimitExcept>
</Location>
subversion設定ファイルを作成
vim /var/www/svn-repos/conf/svnserve.conf
[general]
anon-access = read
auth-access = write
subversionユーザの権限設定
vim /var/www/svn-repos/conf/authz
[/]
hoge1 = rw
hoge2 = rw
Apacheの再起動
service httpd configtest
service httpd restart
ユーザ認証ファイル作成
htpasswd -c /var/www/svn-repos/conf/htpasswd hoge1
htpasswd /var/www/svn-repos/conf/htpasswd hoge2
chown apache:subversion /var/www/svn-repos/conf/htpasswd
リポジトリにsampleコンテンツの trunk / branches / tags フォルダを作成
svn mkdir -m "create" file:///var/www/svn-repos/sample
svn mkdir -m "create" file:///var/www/svn-repos/sample/trunk
svn mkdir -m "create" file:///var/www/svn-repos/sample/branches
svn mkdir -m "create" file:///var/www/svn-repos/sample/tags
post-commitの設定 (svn update)
cp /var/www/svn-repos/hooks/post-commit.tmpl /var/www/svn-repos/hooks/post-commit
chmod 774 /var/www/svn-repos/hooks/post-commit
vim /var/www/svn-repos/hooks/post-commit
(例.1)
*******************************************************
#!/bin/sh
SVNUSER=hoge1
SVNPASS=hoge1
SVNOPTS="--username ${SVNUSER} --password ${SVNPASS} --non-interactive"
LANG=en_US.UTF-8 /usr/bin/svn ${SVNOPTS} update /var/www/svn_hoge/sample/trunk
/usr/bin/ssh -i /var/www/.ssh/id_rsa apache@192.168.154.128 'cd /var/www/work/ && LANG=en_US.UTF-8 svn update'
rsync -a -e "/usr/bin/ssh -i /var/www/.ssh/id_rsa" /var/www/svn_hoge/sample/trunk/ apache@192.168.154.128:/var/www/sample/trunk/
*******************************************************
(例.2)
*******************************************************
#!/bin/sh
# POST-COMMIT HOOK
#svn update
if [ -e /var/www/svn-repos/hoge.co.jp/work ];
then
svn update /var/www/svn-repos/hoge.co.jp/work
else
mkdir /var/www/svn-repos/hoge.co.jp/work
svn checkout file:///var/www/svn-repos/hoge.co.jp /var/www/svn-repos/hoge.co.jp/work
fi
#ftp mirror
# -R: ファイルをアップロード
# -X .svn/: .svnファイルはアップしない
# --delete: 削除されたものはアップロード先でも削除する
# --only-newer: 新しいファイルのみ
# --no-perms: パーミションを無視
echo "exit" | lftp -p 21 -u user,passwd -e "mirror -R -X .svn/ --only-newer --delete /var/www/svn-repos/hoge.co.jp/work/trunk /home/hoge/www/contents" hoge.sakura.ne.jp
*******************************************************
ViewVC導入
yum -y install yum-plugin-priorities // CentOS6の場合
yum -y install yum-priorities // CentOS5の場合
vim /etc/yum.repos.d/CentOS-Base.repo
[base]
priority=1
[updates]
priority=1
[extras]
priority=1
// RPMfogeに接続するためのyumコマンド関連ファイルをダウンロードし設定する。
wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
rpm -ihv rpmforge-release-0.3.6-1.el5.rf.i386.rpm
// RPMforgeからパッケージをインストールする際に署名の警告が出ないように、
// DAGからキー(公開鍵)をインポートする。
// 公開鍵は、/etc/pki/rpm-gpg/ディレクトリにRPM-GPG-KEY-rpmforge-dagとしてインストールされる。
rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
// yumコマンドでパッケージを検索する際にRPMforgeを検索するようになり、
// 大量のRPMforgeが検索されてしまうため、検索に優先順位をつけて
// 1.オフィシャルなリポジトリ -> 2.RPMforge リポジトリの順に検索するように設定する。
vim /etc/yum.repos.d/rpmforge.repo
enabled = 0
yum -y --enablerepo=rpmforge install viewvc
vim /etc/viewvc/viewvc.conf
root_parents = /var/www/svn-repos: svn
address = plus_heureux@yahoo.co.jp
use_localtime = 1
vim /usr/share/viewvc/templates/include/header.ezt
// 7行目に追加
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
vim /etc/httpd/conf.d/viewvc.conf
ScriptAlias /viewvc /var/www/cgi-bin/viewvc.cgi
ScriptAlias /query /var/www/cgi-bin/query.cgi
Alias /viewvc-static /var/www/viewvc
<Location "/viewvc">
Order deny,allow
Deny from All
Allow from 127.0.0.1
Allow from 192.168.154.
</Location>
service httpd restart