2012年8月28日火曜日

Google用にサイトマップ(sitemap.xml)を作成する


サイトのページ数が1000件未満だと

http://www.sitemapxml.jp/

のようなオンラインの無料サービスを使うと楽なんだけど、今回は1000件以上なので、

http://gsitecrawler.com/

にあるGSiteCrawlerを使うことにしました。
約45000件あり、作成に丸1日かかりました。


2012年8月27日月曜日

redmineの「メールによるチケットの登録」でハマったのでメモしておく


redmine2.0.3をインストール後、

http://redmine.jp/guide/RedmineReceivingEmails/

の「メールサーバからメールを転送」に従い、Postfixのaliasに以下のように設定しました。

redmine: "|/var/lib/redmine/extra/mail_handler/rdm-mailhandler.rb -u http://redmine.example.co.jp/ -k LHdYz6oQ1PH3fDGVgtnt -p neomaster -t bug -o project,tracker,priority"

また、redmineの設定項目「受信メール」では、「受信メール用のWebサービスを有効にする」にチェックし、「APIキー」には「LHdYz6oQ1PH3fDGVgtnt」を登録しています。

この状態で、メール経由でチケットの登録しようとすると

<redmine@example.co.jp>: permission denied. Command output: Request was denied
    by your Redmine server. Make sure that 'WS for incoming emails' is enabled
    in application settings and that you provided the correct API key.

というエラーメールが帰ってきます。

http://redmine.jp/faq/issue/mail-handler-errors/

を見ても、「受信メール」のことしか書いていないので、原因がわからず。
2,3時間設定を見なおしたり、redmineのソースを見たりして悩んだ末、ふと、先日設定したアクセス制限が原因かもと思い、Locationディレクティブに

allow from redmine設置サーバのIP

を設定したところ、無事解決しました。

なんだか、とても疲れました。(^^;)

2012年8月22日水曜日

ソフトバンクのガラケーへのデコレメールでハマる。


サーバのプログラムから、各種キャリアのケータイにHTMLメール(デコメール、デコレメールなど)を送信していたのだが、1ヶ月ほど前から、ソフトバンクのデコレメールだけ画像が表示されなくなったという報告を頂いた。

http://creation.mb.softbank.jp/mc/tech/doc/A-089-011-Mail_ContentDevelopmentGuide_1.0.1.pdf

を見ながら、文字コードやエンコーディング、メールの構成、メールのサイズ、インラインオブジェクトの数などいろいろとチェックしたのだが問題なし。

数時間悩み、なにげに Content-ID の長さを短くしてみたところ、あっけなく問題は解消してしまった。
うーーーん。以前までは問題なかったし、PDFにも長さについての記述はなかったのになぁ。
参りました。

redmineとpassengerでアクセス制限にハマる

redmineとpassengerを導入したのだが、アクセス制限でハマったので記録しておく。

普段、apacheでのアクセス制限は


<Directory /var/lib/redmine>
Order deny,allow
deny from all
allow from xxx.xxx.xxx.xxx
</Directory>


のような感じで書くのだが、mod_passengerが優先されるようで、この設定ではうまくいかない。

Directoryディレクティブの代わりにLocationディレクティブを使って


<Location /redmine>
Order Deny,Allow
Deny from all
allow from xxx.xxx.xxx.xxx
</Location>

のようにするとうまくいきました。

なお、「/redmine」はredmineへのURLとなります。
なので、この場合は、http://xxx.xxx.xxx/redmineというURLの場合です。


2012年8月17日金曜日

centos6.3にredmine2.0をインストールする

http://blog.redmine.jp/articles/redmine-2_0-installation_centos/
を参考に、centos6.3にredmine2.0をインストールする。

●各種ツールをインストールする。


・開発ツール(Cコンパイラ等)
 # yum groupinstall "Development Tools"

・RubyとPassengerのビルドに必要なヘッダファイルなど
 # yum install openssl-devel readline-devel zlib-devel curl-devel libyaml-devel

・MySQLとヘッダファイル
 # yum install mysql-server mysql-devel

・Apacheとヘッダファイル
 # yum install httpd httpd-devel

・ImageMagickとヘッダファイル
 # yum install ImageMagick ImageMagick-devel

のインストールを行う。

rubyについては、まずrubyのバージョン管理ツールrvmをインストールし、rvm経由でrubyをインストールする。

 # bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)

でrvmのインストールが完了すると、

 # rvm list known

でインストールできるrubyのバージョンを確認できる。

 # rvm install 1.9.3

で、ruby 1.9.3をインストールする。
他のバージョンのrubyを利用していない場合は、ruby 1.9.3が利用できる状態になっている。
他のバージョンを利用している場合は、

 # rvm use 1.9.3

で、切り替える必要がある。
最後にgemを一括インストールするためのツール、bundlerをインストールする。

 # gem install bundler --no-rdoc --no-ri

●redmineで利用するMySQLの設定をする。

デフォルトキャラクタセットをutf8に設定するために、my.confに以下を追加する。

[mysql]
default-character-set = utf8
[mysqld]
default-character-set = utf8


次に、redmine用データベースとユーザーの作成を行う。

# mysql -uroot -pxxxx
mysql> create database db_redmine default character set utf8;
mysql> grant all on db_redmine.* to user_redmine identified by '********';
mysql> flush privileges;
mysql> exit;

●redmineのインストール。

redmineのインストール

からtar.gzを取得する。
解凍後、/var/lib/redmineにredmineを設置する。

redmineの設定を行う

データベースの接続設定として、
/var/lib/redmine/config/database.yml

production:
  adapter: mysql2
  database: db_redmine
  host: localhost
  username: user_redmine
  password: ********
  encoding: utf8

を保存する。

メールサーバへの接続設定として、
/var/lib/redmine/config/configuration.yml

production:
  email_delivery:
    delivery_method: :smtp
    smtp_settings:
      address: "localhost"
      port: 25
      domain: 'example.co.jp'

を保存する。

redmineに必要なgemパッケージをインストールする

 # bundle install --without development test postgresql sqlite

セッションデータ暗号化用鍵の生成とテーブル作成を行う

コマンド実行は/var/lib/redmine/で行う。

 # rake generate_secret_token
 # RAILS_ENV=production rake db:migrate

●apacheの設定

Passengerのインストール

・Passengerのインストール
 # gem install passenger --no-rdoc --no-ri

・PassengerのApache用モジュールのインストール
 # passenger-install-apache2-module

インストールが完了すると

   LoadModule passenger_module /usr/local/rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.15/ext/apache2/mod_passenger.so
   PassengerRoot /usr/local/rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.15
   PassengerRuby /usr/local/rvm/wrappers/ruby-1.9.3-p194/ruby

のようなのが表示されるので控えておく。

Passengerの設定

/etc/httpd/conf.d/passenger.confに

LoadModule passenger_module /usr/local/rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.15/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.15
PassengerRuby /usr/local/rvm/wrappers/ruby-1.9.3-p194/ruby

Header always unset "X-Powered-By"
Header always unset "X-Rack-Cache"
Header always unset "X-Content-Digest"
Header always unset "X-Runtime"
PassengerMaxPoolSize 20
PassengerMaxInstancesPerApp 4
PassengerPoolIdleTime 3600
PassengerUseGlobalQueue on
PassengerHighPerformance on
PassengerStatThrottleRate 10
RailsSpawnMethod smart
RailsAppSpawnerIdleTime 86400
RailsFrameworkSpawnerIdleTime 0

を保存する。

ファイル所有権の変更

apache上のPassengerでredmineを実行するために所有権を変更しておく。
 # chown -R apache:apache /var/lib/redmine

バーチャルホストの設定

バーチャルホストでredmineを実行できるようにhttpd.confに

 
      ServerName redmine.example.co.jp
      DocumentRoot "/var/lib/redmine/public"
     
         # This relaxes Apache security settings.
         AllowOverride all
         # MultiViews must be turned off.
         Options -MultiViews
     
   

のようなのを追加しておく。


以上で、redmineのインストールは終了です。
あとは、apacheを再起動して、redmine.example.co.jpにアクセスできればOKです。


2012年8月16日木曜日

WebminのSSL化をまとめておく。


WebminのSSL化の手順をまとめておきます。

手順としては、

1)PerlのNet::SSLeayをインストール
2)WebminでSSLの利用設定

となります。

1)
PerlのNet::SSLeayをインストールについて。
yumでモジュールをインストールします。

yum -y install perl-Net-SSLeay

2)
WebminでSSLの利用設定について。

Webmin画面左カラムの「Webmin」→「Webmin 設定」と進む。
Webminの設定項目の一覧がでるので、「SSL 暗号化」を選ぶ。

「可能であればSSLを使用可能にしますか?」で「はい」を選ぶ、「保存」ボタンを押す。
保存後、すぐに設定が効いてSSL接続以外をはじくようになるので、「Error - Bad Request」の
エラーメッセージが表示されます。

これで設定は完了ですので、今後は、
https://ドメイン名:10000
でアクセスしなおします。

ただし、認証については、オレオレ認証なので、セキュリティの警告画面が出ます。
が、気にせず進みましょう。

エクステリアの戸棚

お盆休みにエクステリアの戸棚を作成。
扉の作成に手間取りました。