業務でSugarCRMというオープンソースのCRMソフトを使用することになりました。

SugarCRMとは?

SugarCRM(シュガー・シーアールエム)は、有償版とオープンソースの両方で開発が進められている顧客関係管理(CRM)ソフトウェア。また、このソフトウェアを開発しているアメリカ合衆国の企業。 SugarCRMは、LAMP環境で動作し、40以上の言語に翻訳されている。無償版の配布のほか、有償版を販売している。

本格的な業務作業に入る前にロリポップ(PHP5.3)にSugarCRMをインストールして、ちょっとだけお触りしてみました(*´д`*)

インストール時に、はまりどころが幾つかあったので、その問題点と対応方法をまとめておきます。

インストール方法

最新安定版のSugarCRM 5.2(2012/06/14時点)はPHP5.3に対応しておらずインストールできなかったため、開発版のSugarCRM 5.5のインストール方法を説明します。
SugarCRM 5.2のインストール方法は補足を参照して下さい。

  1. MySQLに空のデータベースを作成します。
    データベース名、データベースホスト、ユーザ名、パスワードはインストール時に聞いてくるのでメモしておきます。
  2. サーバにログインしてSugarCRMをダウンロードします。

    コマンド例

    % cd
    % mkdir tmp
    % chmod 777 tmp
    % echo `pwd`/tmp
    # tmpディレクトリのフルパスをメモしておきます。
    % cd web
    % wget http://www.sugarforge.org/frs/download.php/6720/SugarCE-Full-5.5.1-Ja-dev.zip
    % unzip SugarCE-Full-5.5.1-Ja-dev.zip
    % rm SugarCE-Full-5.5.1-Ja-dev.zip
    % mv SugarCE-Full-5.5.1-Ja-dev sugarcrm
    % vi sugarcrm/index.php
    =========
    # 2行目にini_set関数を追加します。
    
    もしindex.phpとinstall.phpを編集しなかった場合は次のようなエラーが発生します。
    
    SugarCRM_システムチェック
    
    Session Save Path Setting
    The session.save_path setting in your php configuration file (php.ini) is not set or is set to a folder
    which did not exist. You might need to set the save_path setting in php.ini or verify that the folder sets in save_path exist.
    session.save_pathが設定されていないために怒られているようです。 確かにロリポップではsession.save_pathが設定されていません。
    % /usr/local/php5.3/bin/php -i | grep session.save_path
    session.save_path => no value => no value
    仕方がないので、自前でセッションファイルを格納するディレクトリ(tmpディレクトリ)を用意して、ini_set関数でsession.save_pathにtmpディレクトリを設定するようにしています。 注意点 もしインストールに失敗してインストールをやり直すことがあれば、tmpディレクトリ内のセッションファイルを削除してから再度実行して下さい。
  3. http://サイトアドレス/sugarcrm/ にブラウザでアクセスして「次へ」ボタンを押下します。

    SugarCRMはEC-CUBEのようにブラウザ上でインストール作業を行います。

    SugarCRM_インストール開始
  4. 言語の選択に「Japanese-日本語」、「同意します」にチェックを付けて「次へ」ボタンを押下します。

    SugarCRM_ライセンス確認
  5. インストールタイプの選択に「通常インストール」を選択して「次へ」ボタンを押下します。

    SugarCRM_インストールオプション
  6. データベースタイプの指定に「MySQL」を選択して「次へ」ボタンを押下します。

    SugarCRM_データベースタイプ
  7. データベースの設定を行って「次へ」ボタンを押下します。

    データベース名、データベースホスト、ユーザ名、パスワードは予めメモしておいたものを入力します。
    Sugarデータベースの管理者ユーザ名は「管理者ユーザと同じ」、デモデータの追加は「いいえ」を選択します。

    SugarCRM_データベース設定
  8. 許可ボタンを押下します。

    SugarCRM_データベース認証確認

    ポップアップの文言を見ていると予めデータベースは作成する必要がなかったような気が。。。
  9. adminユーザのパスワードを入力して「次へ」ボタンを押下します。

    SugarCRM_サイト設定
  10. ロケールの設定を行います。そのまま「次へ」ボタンを押下します。

    SugarCRM_ロケール設定
  11. 設定を確認して問題がなければ「インストール」ボタンを押下します。

    SugarCRM_設定の確認

    アップロードファイルサイズのところで
    警告:PHPの設定を、最低でも20MBのファイルのアップロードを許可するように変更する必要があります。
    という警告が出ていますが無視しても問題ありませんでした。
  12. インストールが完了しました。「次へ」ボタンを押下します。

    SugarCRM_セットアップ実行
  13. SugarCRMへの登録を求められますが無視しても結構です。「次へ」ボタンを押下します。

    SugarCRM_登録
  14. ログイン画面が表示されます。

    ユーザ名「admin」とadminのパスワードを入力して「ログイン」ボタンを押下します。

    SugarCRM_ログイン画面
  15. ホーム画面が表示されます。

    もしタイムゾーンの設定を聞いてきたら「Asia/Tokyo(GMT+9)」を選択して保存して下さい。

    SugarCRM_ホーム画面

問題点

画面キャプチャを見て頂いたらわかるとおり、ログイン画面やホーム画面にスタイルが適用されていません。
理由はCSSとJavaScriptへのアクセスが403エラーになっているためでした。
どうやらファイルやディレクトリのパーミッションに原因があるようです。
そこでSugarCRMの全てのファイルとディレクトリのパーミッションを変更しました。

コマンド例

% cd ~/web
% find sugarcrm -type f -print | xargs chmod 644
% find sugarcrm -type d -print | xargs chmod 755

パーミッション変更後は、画面が正しく表示されるようになりました。

SugarCRM_ログイン画面(修正後)

SugarCRM_ホーム画面(修正後)

テーマを変更する度にCSSとJavaScriptが読み込まれない現象が発生するので、その場合は再度上記のコマンドを実行してください。

全てのファイルとディレクトリのパーミッションを変更するというやり方は、本来変更してはいけないものまで変更してしまう可能性があるのであまりおススメできませんが、SugarCRMの動作を確認する程度であれば問題ないと思います。

補足

公式ページにSugarCRM 5.2をPHP5.3にインストールする方法が掲載されていました( TДT)
 PHP5.3環境でインストールする - SugarForum.jp

コマンド例

# SugarCRMをダウンロードするところまではSugarCRM 5.5の場合と全く同じです。
# SugarCRM 5.2をダウンロードします。
% wget http://www.sugarforge.org/frs/download.php/6343/SugarCE-Full-5.2.0k-Ja.zip
# ファイルの解凍処理、ディレクトリ名の変更を行います。
% vi sugarcrm/install/welcome.php
=========
163行目のPHPのバージョンチェックを次のように修正します。
if (version_compare(phpversion(),'5.1.0') < 0) {
=========
# 後の部分はSugarCRM 5.5の場合と全く同じです(ini_set関数の追加を行って下さい)

ちなみにSugarCRM 5.2では問題点で述べたようなスタイルが適用されない現象が発生しませんでした。 
始めからSugarCRM 5.2をインストールしておけば良かった。。。