Apelog

Web開発では複数ユーザーでディレクトリを共有管理したいケースが良くある、そういった場合の設定方法。

/var/www/htmlfoo, bar, apacheの3ユーザーで管理するとする、設定環境はCentOS5。

設定方法

管理用グループ(webadmin)を作成

# /usr/sbin/groupadd webadmin

管理用グループ(webadmin)に3ユーザー追加。追加時に他のグループにも所属させる場合は同時に指定する事。特にwheelユーザーからしかrootになれない状態で間違ってwheelから外してしまうと悲惨な事に。

# /usr/sbin/usermod -G webadmin foo
# /usr/sbin/usermod -G webadmin bar
# /usr/sbin/usermod -G webadmin,apache apache

対象ディレクトリをwebadminが操作できるようにグループを指定し書き込み権限を与える。

# chgrp webadmin /var/www/html
# chmod g+w /var/www/html

このままだとファイルを生成した際に所有権がそれぞれのユーザーになってしまうので、グループ権限でファイルを作成するようにする。

# chmod g+s /var/www/html

以上でグループで管理出来る環境になる。

複数設定する場合はfindでディレクトリだけ検索した結果に対して変更すると楽。

find . -type d -print | xargs chmod g+w

Zend_Mailでメールする際のFromヘッダ作成時にメールアドレスのみ渡して名前を渡さない場合

"" <foo@bar.com>

の様な形で生成されてしまう。

この状態でDoCoMo宛にメール送信を行うとDoCoMo端末から返信が出来なかった(確認したのはD905とPROSOLID μ)

ダブルクォーテーションで囲われた所が無ければ返信が出来たのでFromヘッダ生成メソッド部を変更。

public function setFrom($email, $name = '')
{
    if ($this->_from === null) {
        $email = strtr($email,"\r\n\t",'???');
        $this->_from = $email;

        $this->_storeHeader('From', $email, true);
    } else {
        /**
         * Error
         */
    }
    return $this;
}

Ruby製のプロジェクト管理ソフトウェアRedmineのインストール手順。

Redmineの特徴

  • Ruby(Rails) + (MySQL | PostgreSQL | SQLite)
  • 複数プロジェクト管理
  • プロジェクト毎のWiki、リポジトリ、フォーラムなど
  • ユーザー認証、マイページ

など。

よくTracと比較され、Tracはプラグインで拡張しないと使いにくいと言われている、個人的にもデフォルトだとRedmineの方が圧倒的に使いやすかった。

インストール環境

  • CentOS 5
  • Ruby 1.8.5
  • RubyGems 1.1.0
  • Ruby on Rails 2.0.2
  • Mongrel 1.1.4
  • MySQL 5.0.22
  • Redmine Rev:1319

インストール手順

パッケージ管理で必要なものをインストール(Rootで作業)

$ yum install -y ruby rdoc ruby-devel mysql-server

Ruby用パッケージ管理RubyGrmsをインストール。最新版はここから確認

$ wget wget http://rubyforge.org/frs/download.php/34638/rubygems-1.1.0.tgz
$ tar -zxvf rubygems-1.1.0.tgz
$ ruby rubygems-1.1.0/setup.rb
$ rm -Rf rubygems-1.1.0*

Ruby on Railsインストール

$ gem install rails --include-dependencies

Mongrelインストール

$ gem install mongrel

MySQLにデータベースを用意

$ mysql -u root
> create database redmine;

インストールディレクトリを準備

$ mkdir -p /home/redmine

Redmineインストール from SVN

$ cd /home/redmine
$ svn checkout http://redmine.rubyforge.org/svn/trunk/ .

DBコンフィグを編集

$ cp config/database.yml.example config/database.yml

$ vi config/database.yml

# デフォルトだとsocketの場所が違うので合わせて指定する
# [production]のにsocket項目を追加

production:
adapter: mysql
database: redmine
host: localhost
username: root
password:
socket: /var/lib/mysql/mysql.sock

メールコンフィグを編集

$ vi config/environment.rb

# メール機能を使用する場合(SMTP)
# SMTP server configurationの項目を使用するSMTPサーバーの情報に変更

# 使用しない場合
config.action_mailer.perform_deliveries = false

データベースに初期データをセットアップ

$ rake db:migrate RAILS_ENV="production"

使用言語を登録

$ rake load_default_data RAILS_ENV="production"
> ja

Mongrel起動

mongrel_rails start -d -e production

# デフォルトで3000番ポートで起動
# 変更する場合は -p 8080 の様に -p オプションで指定

確認

設置したサーバーの3000番ポート(http://yourdomain:3000/)へアクセス

Apacheとの連携

今回は必要無かったのでそのまま動かせている。

ReverseProxyやSCGIを利用した方法があるらしいのでSSL使いたいとかでApacheにした場合は別途書きます。

基本的にSVN自体はコマンドラインとEclipse(Subversive)でほとんど問題は無いものの、メディアファイル系の管理などはやはりファインダーから行えた方が便利なので、WindowsでTortoiseSVNと同じ様なクライアントであるSCpluginを入れてみる。

Scplugin http://scplugin.tigris.org/

0.6系は不安定だったらしく微妙らしいものの、2007年末辺りにリリースされた0.7系は安定しているらしい。上記URLからパッケージを落としてきてインストールしてログオフ/再起動。

アンインストール

  • /Library/Contextual Menu Items/SCFinderPlugin.plugin
  • /Library/Receipts/SCPlugin.pkg

を削除してログオフ/再起動。

SELinux無効化

CentOSでSELinuxを無効化するメモ

# getenforce // 確認
Enforcing #有効

# setenforce 0 // 無効化

# getenforce // 確認
Permissive // 無効

// 起動時に無効化
# vi /etc/sysconfig/selinux
SELINUX=enforcing
↓
SELINUX=disabled