さくらインターネットにSugarCRMのインストールでPHPのIMAPを追加する方法

トップ  >  その他の情報  >  さくらインターネットにSugarCRMのインストールでPHPのIMAPを追加する方法
<独り言>
こんな情報書いていますが、これを読んで役に立つ人はいるのだろうか?(笑)
まあ、さくらインターネットでSugarCRMを使いたい人はいるかもしれないですね。
また自分がやらなければいけなくなる時に備えてメモ書き残しておきましょう。
</独り言>

さくらインターネットのレンタルサーバ(スタンダードプラン以上)のPHPはIMAP関数が有効になっていません。

サーバの主な仕様
http://support.sakura.ad.jp/manual/rs/tech_server.html

IMAP関数のところに×がついている・・・
こういうのってあまり大きく書かれていないから、いざIMAPを使っているソフトを使おうとした時に、えっ???って気づくんですよね・・・orz

ImpressCMSではIMAP機能を使ったメール送受信はしていないからわかりませんでした。

実はSugarCRMを使いたいなと思って、インストールした時、インストーラにIMAPがないと言われたのです。

えーさくらインターネットじゃSugarCRM使えないの???とか思ったのですが、ネットで調べたら、ちゃんとやっている人がいるんですねぇ。

PHPを独自にコンパイルして、インストールしてその際にIMAP機能を追加すればいいというのがわかりました。もちろん公式サポート外の使い方になるので、さくらインターネットのサポートは受けられません。

そこでImpressCMSはさくらインターネットのPHPを使い、SugarCRMだけ独自インストールのPHPを使うということができるか調べたら、これもできそうだとわかりました。

参考にしたサイトはこちらです(ありがとうございます)。

さくらインターネットにPHP5.2.8をインストール
http://nyanchew.com/phpinstall

さくらインターネットにPHP5をインストールする
http://phptips.seesaa.net/article/36638035.html

以下にその方法をメモ書きとして残します(2012年8月時点の情報です)。

1.PHPとIMAPをダウンロードします。

インターネットからPHPとIMAPをダウンロードします。
さくらインターネットはこの時点で5.2.17だったので、同じバージョンをGoogleさんで探しました。

php-5.2.17.tar.gz
imap-2007f.tar.gz

2.FTPでサーバへ転送します。
 FFFTP等のソフトを使って、サーバ上に/home/あなたのアカウント/php というフォルダを作成し、そこへこの二つのファイルを転送します。

3.SSHでログインします。
 さくらインターネットはSSHでログインできるので、teraterm 等のソフトを使ってログインします。

4.解凍します。
 以下のコマンドでphpフォルダに降りて、ls で転送したファイルがあることを確認します。
cd php
ls 

解凍します。

tar xvzf  php-5.2.17.tar.gz
tar xvzf  imap-2007f.tar.gz

これで二つのフォルダが作成されます。
php-5.2.17
imap-2007f

5.confファイルを作成して転送します。
 インターネットを参考にして、Imap付のコンフィグファイルを作成します。この作業はパソコンでやってから、FFFTPで転送したほうがいいかな?

conf.sh ファイルの内容はこうなりました。

#!/bin/sh
./configure \
 --with-imap=$HOME/php/imap-2007f/ \
 --with-imap-ssl \
 --prefix=$HOME \
 --with-config-file-path=$HOME/www/cgi-bin \
 --program-suffix=5 \
 --with-pear=$HOME/share/pear5 \
 --enable-force-cgi-redirect \
 --enable-mbstring=all \
 --enable-mbregex \
 --with-openssl=/usr \
 --enable-soap \
 --with-zlib=/usr \
 --with-gd=/usr/local \
 --with-jpeg-dir=/usr/local \
 --with-curl \
 --enable-exif \
 --with-freetype-dir=/usr/local \
 --with-ttf \
 --with-png-dir=/usr/local \
 --with-xsl=/usr/local \
 --with-gettext=/usr/local \
 --enable-zip \
 --with-mcrypt \
 --with-pcre-dir=/usr/local \
 --with-iconv=/usr/local \
 --with-mysql=/usr/local/mysql/5.5 \
 --with-mysqli=/usr/local/mysql/5.5/bin/mysql_config \
 --with-pdo-mysql=/usr/local/mysql/5.5


上記のうち、この2行がImap関数が使えるようになる肝です。

--with-imap=$HOME/php/imap-2007f/ \
 --with-imap-ssl \

これを指定しておかないと、configureの際にU8T_CANONICAL... noといったエラーが表示されました。

このファイルをFFFTP等のソフトを使って、/home/あなたのアカウント/php へ転送します。
ファイルを転送後、パーミッション(属性)は、755にして実行可能にしてください。
(転送したファイルを右クリック、属性の変更でやる)

この前にIMAPのc-clientのコンパイルをやりましたが、不要かもしれません。
いるかもしれないので、やったことを一応書いておきます。
  cd  imap-2007f
  ./configure
  make bsf (もしかしたらmake だけだったかもしれない)



この手順でコンパイルされたc-client.aができたが・・・いるのか?

6.PHPをコンパイル!!
php フォルダにいることを確認します。いなければ移動してください。
pwd

./conf.sh

ずらずらずらーとメッセージが流れてエラーで止まらなければOK。
"thank you for using PHP"と最後に表示される(だったかな???)

make bsf  (もしかしたらmake だけだったかもしれない)

/home/あなたのアカウント/bin/ フォルダにphp5-cgi5 というモジュールができていることを確認してください。

7.できたphpのモジュールをコピーする。

本来のphpのインストールではここで、make install とやってサーバにインストールしますが、ここはさくらインターネットのレンタルサーバなので、それはできません。

自分で自分のフォルダにコピーします。

cd /home/あなたのアカウント/www
mkdir scrm →ここはSugarCRMをインストールしようとしたフォルダです。
cd scrm
mkdir cgi-bin →さくらインターネットではcgi-bin という名前にしなくてもいいそうだが。
cd cgi-bin

ここにコンパイルされたモジュールをコピーします。

cp -p /home/あなたのアカウント/bin/php5-cgi5    php5.cgi

8. .htaccess ファイルを作成します。

SugarCRM を使った時だけ、今回作成したIMAP付きPHPを使うようにする為に .htaccess ファイルを作成します。

scrm フォルダに戻ります。
cd ..

内容はこんな感じですが、SugarCRMの中に .htaccess ファイルがあるので、その上に2行を追加します。

意味はscrmフォルダの .php のファイルが呼ばれた時は、/cgi-bin/php5.cgiを呼び出すということになります。これでSugarCRMの時だけ、このPHPを使うということになります。

Action php-script /cgi-bin/php5.cgi
AddHandler php-script .php

# BEGIN SUGARCRM RESTRICTIONS
RedirectMatch 403 (?i).*\.log$
RedirectMatch 403 (?i)/+not_imported_.*\.txt
RedirectMatch 403 (?i)/+(soap|cache|xtemplate|data|examples|include|log4php|metadata|modules)/+.*\.(php|tpl)
RedirectMatch 403 (?i)/+emailmandelivery\.php
RedirectMatch 403 (?i)/+cache/+upload
RedirectMatch 403 (?i)/+files\.md5$
RedirectMatch 403 (?i)/+sugarcrm\.log\.*
RedirectMatch 403 (?i)/+cron\.php
RedirectMatch 403 (?i)/+config\.php
# END SUGARCRM RESTRICTIONS


9.php.ini ファイルを作成します。
cgi-bin フォルダに移動します。

cd cgi-bin
vi php.ini

内容はこんな感じ。SugarCRMを動かすために、session.save_pathを追加しています。

mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
post_max_size = 20M
upload_max_filesize = 50M
memory_limit = 40M
mbstring.http_input = auto
mbstring.http_output = pass
mbstring.detect_order = auto
mbstring.substitute_character = none
default_charset = UTF-8
session.save_path = /home/あなたのアカウント/trust/phpsession


10.phpinfo関数でPHPにIMAPが組み込まれたか確認してください。
 phpinfo() を動かしてください(具体的なやり方は検索してね)


注:/home/あなたのアカウント/ のあなたのアカウントにはさくら
インターネットで取得したユーザ名が割り当てられます。適切に読み替
えてください。

2012/8/7追記
SugarCRMのレンタルサーバ情報に、この情報を追加しておきました。
PHP+IMAPを独自インストールして・・・笑

さくらインターネットにしたらサポート外のことをする人が増えると困るかな?
でもSugarCRMを使いたい為に、さくらインターネットにする人が増えたらいいですよね!!

2012/8/8追記
さくらインターネット側にCRONの設定をしましたが、インバウンドメールが
取れないという問題が発生していましたが、ここでコンパイルしたPHPを
使っていないからだと判明しました。

例にあるように、単に php -f cron.php とかやると、さくらインターネットの
標準装備のPHPを実行するようで、それにはIMAP機能が入っていないので
動かなくて当たり前でした。

フルパスで以下のように指定してやれば、ちゃんとインバウンドメールも定期的に
受信できるようになりました。頻繁に見るわけではないので間隔は10分おきにしています。

/home/あなたのアカウント/www/scrm/cgi-bin/php5.cgi -f cron.php


2012/8/10追記
注記:上記の情報はApacheとPHPのソフトを理解でき、UNIXのコマンドが使える
レベルの方を想定して書いたものです。

Lamp(linux,Mysql,PHPですな)をインストールできる方なら、別段、当たり前の
レベルなのですが、上記を理解できないなら、さくらインターネットとサーバーを共
有している他のユーザにに迷惑をかけるのでやらないでくださいね。

最近は、Wamp(Windowsですな)やMamp(Macですな)という造語ができていますが、
一般の人には暗号にしか聞こえません(笑)
プリンタ用画面
カテゴリートップ
その他の情報