PDFがエクスポートされない

478 views
Skip to first unread message

EQUSYS

unread,
May 15, 2014, 9:53:57 AM5/15/14
to vtige...@googlegroups.com
はじめまして。お世話になります。

VtigerCRMサーバを試験的に構築し、検討中です。vtigercrm-6.0.0-ja-master.zipを使っています。

見積りをPDFでエクスポートすることができず困っています。エクスポートさせようとすると
ウェブブラウザ上のアドレスは

となるのですが、PDFファイルがダウンロードされないのです。

vtigerCRM.jpで提供されているデモサイトでは上手くいきましたのでブラウザの問題ではないようです。

サーバはDebian linux(Wheezy)です。

PDFでエクスポートさせようとした直後のapacheのaccess.logは次のように出力されます。
エラーログは出力されません。
____________
xxx.xxx.xxx.xxx(クライアント) - - [15/May/2014:22:38:16 +0900] "GET /vtigercrm/index.php?module=Quotes&action=ExportPDF&record=8 HTTP/1.1" 200 548 "https://xxx.xxx.xxx.xxx(サーバ)/vtigercrm/index.php?module=Quotes&view=Detail&record=8" "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.132 Safari/537.36"

iptablesなどのファイアウォールは未設定です。

何かライブラリが足りないのか、それともphpか何かの設定が必要なのでしょうか。

宜しくお願いいたします。

EQUSYS

unread,
May 17, 2014, 6:40:57 PM5/17/14
to vtige...@googlegroups.com
進捗、自己レスです。

PHPのエラーにより真っ白な出力になることがあるようなので
php.iniのログ出力関連を設定しながら調査中です。が、エラー
ログを出力させることができず、四苦八苦しています。
IT業界経験はあるものの、訓練されておらず、我流(亜流?)
なので知識を継ぎ接ぎしながら苦闘しております。

一応、Debianで構築するための手順を記録しておきましたので下記に掲載します。

vtigercrmインストールの記録.txt_______________________________________

1)debian wheezy をインストールする。※今回は7.4を使用
 システム導入時に選択するパッケージはWEBサーバー、標準ユーティリティ。

2)インストール後のパッケージ追加
aptitude update 
aptitude install unzip mysql-server php5-mysql php5-imap
途中mysqlのrootパスワードを求められるので記録しておくこと

3)vtigercmsの導入
cd /var/www/
unzip master.zip
mv vtigercrm-6.0.0-ja-master vtigercrm
chown -R www-data:www-data vtigercrm
chmod -R 775 vtigercrm


4)データベースユーザの作成
mysql -uroot -p
Password:mysql導入時に設定したrootのパスワード  
  > CREATE USER 任意データベースユーザ名 IDENTIFIED BY '任意データベースユーザ名';
  > GRANT ALL PRIVILEGES ON *.* TO 任意データベースユーザ名@'%';
  > CREATE DATABASE 任意データベース名 DEFAULT CHARACTER SET = utf8;
quitで終了。

5)ウェブブラウザでサーバにアクセスし、設定を進める。http://xxx.xxx.xxx.xxx/vtigercrm/
Vtigerのようこそ画面が表示されたらボタン「インストール」をクリック。
ライセンスを読んだらボタン「同意する」をクリック。

6)推奨PHP設定にする
5の途中、PHPの設定が必要になるので画面の指示にしたがって編集する。

変更前のメッセージ
_____________________________________________________________________
PHP コンフィギュレーション 必要な値 現在の値
PHP バージョン 5.3.0 5.4.4-14+deb7u9
IMAP 対応 はい はい
Zlib サポート はい はい
GD ライブラリー サポート はい はい

推奨 PHP 設定
display_errors On Off
max_execution_time 600 30
error_reporting E_WARNING & ~E_NOTICE & ~E_DEPRECATED NOT RECOMMENDED
allow_call_time_pass_reference On Off
log_errors Off On
_____________________________________________________________________
PHP設定ファイルの編集
vi /etc/php5/apache2filter/php.ini
display_errors = On
max_execution_time = 600
error_reporting = E_WARNING & ~E_NOTICE & ~E_DEPRECATED
log_errors = Off

allow_call_time_pass_reference の項目はなく、追加しても反映されないので放置

変更後のメッセージ
_____________________________________________________________________
PHP コンフィギュレーション 必要な値 現在の値
PHP バージョン 5.3.0 5.4.4-14+deb7u9
IMAP 対応 はい はい
Zlib サポート はい はい
GD ライブラリー サポート はい はい

推奨 PHP 設定
allow_call_time_pass_reference On Off
_____________________________________________________________________

7)5の続き
ボタン「次へ」をクリックする

警告メッセージが表示されるのでボタン「OK」をクリック。
_____________________________________________________________________
Some of the PHP Settings do not meet the recommended values. This might affect some of the features of vtiger CRM. Are you sure, you want to proceed?
_____________________________________________________________________

システム構成
 データベース情報
  データベース タイプ*  MySQL※固定値
  ホスト名* localhost
  ユーザー名* 任意データベースユーザ名
  パスワード 任意
  データベース名* 任意データベース名
  新規データベースの作成 チェックを入れる
   Rootユーザ名 root
   Rootパスワード mysql導入に設定したrootのパスワード

 システム情報
  通貨* Japan, Yen (¥)※必須

 管理者ユーザーの情報
  ユーザー名 admin※固定値
  パスワード* 任意※必須
  パスワードの再入力 * 同上※必須
  名 任意
  姓 * 任意、必須
  電子メール * 任意※必須
  日付形式 * yyyy-mm-dd※必須
  タイムゾーン * (UTC+09:00) 東京※必須
____________________________________________________________


また進捗がありましたら報告致したいと思います。


slzo

unread,
May 18, 2014, 12:37:35 AM5/18/14
to vtige...@googlegroups.com
以下のデバッグ方法を少し使ったことがありました。あまり覚えてませんが、ちょっと面倒だった気がします。
https://wiki.vtiger.com/index.php/DebugTechniques

PHP5.3まで対応の表記が公式のGuideやWikiに残っているので、PHP5.4は問題が残っているかもです。
http://community.vtiger.com/help/vtigercrm/administrators/installation.html#pre-requisites

debianバージョンについての表記もありました(スクリーンショットはvtigercrm5ですが)
https://wiki.vtiger.com/index.php/Installation_with_LAMP

EQUSYS

unread,
May 18, 2014, 6:57:19 AM5/18/14
to vtige...@googlegroups.com
返答ありがとうございます。励みになります!

 「PHP対応表記」の件、5.3導入について掘り下げる必要がありそうなので
まずは、「デバッグ方法」を適用した環境で検証する方向で進めています。
「debianバージョン」についても、4や5が古いことから優先度を下げています。

結果はまだですが、気になっていることがあるので記載しておきます。

1)vtigercrm/以下のphpファイルの改行コードが「^M」となっていること
Perlなどでは動かないこともあった気がするのですが、VtigerCRM自体が動作して
いるのでphpでは問題ない?

2)my.cnf内での文字コード設定の必要性
pdf出力に影響している?


いずれにせよ、少しずつでも進めていくつもりです。スキル不足ですが
何としてもDebian環境で構築できるようになりたいと思っています。
宜しくお願い致しますm(_ _)m

EQUSYS

unread,
May 18, 2014, 9:52:25 AM5/18/14
to vtige...@googlegroups.com
まずは、「デバッグ方法」を適用した環境で検証する方向で進めています。

これについて報告しながら進めて参りたいと思います。ディレクトリ「vtigercrm」は
apache2のDocumentRootである「/var/www/」に格納しています。

ここから________________________________

PHP
・Turn on log4php.debug library usage, in file config.performance.php
  'LOG4PHP_DEBUG' => true,

    訳:config.performance.phpで、log4php.debugライブラリの使用をオンにします
 ファイル:vtigercrm/config.performance.php
デフォルト:'LOG4PHP_DEBUG' => false,
  変更後:'LOG4PHP_DEBUG' => true,


・Set the log level, in file log4php.properties
  log4php.rootLogger = DEBUG, A1

    訳:log4php.propertiesで、ログレベルを設定
 ファイル:vtigercrm/log4php.properties
デフォルト:log4php.rootLogger=FATAL,A1
  変更後:log4php.rootLogger = DEBUG, A1

Database
・Turn on debugging as adb instanced in include/database/PearDatabase (at end of file)
  if(empty($adb)) {
   $adb = new PearDatabase();
   $adb->connect();
   // ADD THIS LINE
   $adb->setDebug(true);
  }
    訳:PearDatabaseの最後にインスタンス化ADBなどのデバッグをオンにします。
 ファイル:vtigercrm/include/database/PearDatabase.php
デフォルト:
  if(empty($adb)) {^M
   $adb = new PearDatabase();^M
   $adb->connect();^M
  }^M
  変更後:
  if(empty($adb)) {^M
   $adb = new PearDatabase();^M
   $adb->connect();^M
   $adb->setDebug(true);^M
  }^M

Smarty
・In file, Smarty_setup.php add the following to class constructor function
  function vtigerCRM_Smarty() {
   $this->Smarty();
   $this->template_dir = 'Smarty/templates';
   // ...
   // ADD THIS LINE
   $this->debugging = true;
  }

    訳:クラスコンストラクタ関数に以下を追加
 ファイル:Smarty_setup.php
   備考:ファイルがvtigercrm6.0にはなかったため編集しませんでした(vtigercrm5.4にはある)。

PHP Files
・To print all the SQL commands to the browser
  In include/database/PearDatabase.php near line 680

 replace:
  //$this->database->debug = true;
 with:
  $this->database->debug = true;

    訳:ブラウザにすべてのSQLコマンドを印刷する。
 ファイル:vtigercrm/include/database/PearDatabase.php
   実際:
  行番号
    879     function setDebug($value) {^M
    880                 $this->database->debug = $value;^M
    881     }^M
となっておりましたので、setDebugで検索したところ、1075行目に
  行番号
   1072 if(empty($adb)) {^M
   1073         $adb = new PearDatabase();^M
   1074         $adb->connect();^M
   1075         $adb->setDebug(true);^M
   1076 }^M
を発見しました。trueなので変更しませんでした。

・To print DEBUG log data to the logfile logs/vtigercrm.log. In log4php.properties

 replace:
  log4php.rootLogger=FATAL,A1
 with:
  log4php.rootLogger=DEBUG,A1

    訳:vtigercrm.logにデバッグログデータを印刷する。
 ファイル:vtigercrm/log4php.properties
   備考:これは既に設定済み

最後のこの辺は、これは任意のPHPファイルの任意の場所に行を挿入する説明のようですが、よくわかっていませんので設定しませんでした。

・To print a value (or array) to the browser, insert the following in the PHP file:

  trigger_error('TempDebug: $someVariable="'.print_r($someVariable, TRUE) .'"');

Don't forget to remove it afterward!

・Better still, to print an array to the browser in a more legible format we add opening and closing HTML <PRE> tags:

  trigger_error('TempDebug: $smallArray=<PRE>"'.print_r($smallArray, TRUE) .'"</PRE>');

Note however that trigger_error() truncates the output if the array is large. The following works on large arrays:

  trigger_error('TempDebug: $largeArray:...'); print_r("<PRE>"); print_r($largeArray); print_r("</PRE>");

ここまで________________________________

以上の設定を施した後にhttp://xxx.xxx.xxx.xxx/vtigercrm/にアクセスしたところ、日本語が文字化けしながら
なにやらページにコードが吐き出されるようになりました。動作はしているのでログインし、見積りをエクスポートさせた
結果が下記の通りです。

ここから________________________________

(mysql): SELECT tabid, name, ownedby FROM vtiger_tab  
(mysql): SELECT tabid, fieldname, fieldid, fieldlabel, columnname, tablename, uitype, typeofdata, presence FROM vtiger_field WHERE tabid in ('29')  
(mysql): SELECT * FROM vtiger_tab  
(mysql): SELECT fieldname,modulename,tablename,entityidfield,entityidcolumn from vtiger_entityname  
(mysql): SELECT tabid, fieldname, fieldid, fieldlabel, columnname, tablename, uitype, typeofdata, presence FROM vtiger_field WHERE tabid in ('20')  
(mysql): SELECT vtiger_quotes.quote_no AS vtiger_quotesquote_no,vtiger_quotes.subject AS vtiger_quotessubject,vtiger_quotes.potentialid AS vtiger_quotespotential_id,vtiger_quotes.quotestage AS vtiger_quotesquotestage,vtiger_quotes.validtill AS vtiger_quotesvalidtill,vtiger_quotes.contactid AS vtiger_quotescontact_id,vtiger_quotes.carrier AS vtiger_quotescarrier,vtiger_quotes.subtotal AS vtiger_quoteshdnsubtotal,vtiger_quotes.shipping AS vtiger_quotesshipping,vtiger_quotes.inventorymanager AS vtiger_quotesassigned_user_id1,vtiger_quotes.adjustment AS vtiger_quotestxtadjustment,vtiger_quotes.total AS vtiger_quoteshdngrandtotal,vtiger_quotes.taxtype AS vtiger_quoteshdntaxtype,vtiger_quotes.discount_percent AS vtiger_quoteshdndiscountpercent,vtiger_quotes.discount_amount AS vtiger_quoteshdndiscountamount,vtiger_quotes.s_h_amount AS vtiger_quoteshdns_h_amount,vtiger_quotes.accountid AS vtiger_quotesaccount_id,vtiger_crmentity.smownerid AS vtiger_crmentityassigned_user_id,vtiger_crmentity.createdtime AS vtiger_crmentitycreatedtime,vtiger_crmentity.modifiedtime AS vtiger_crmentitymodifiedtime,vtiger_crmentity.modifiedby AS vtiger_crmentitymodifiedby,vtiger_quotes.currency_id AS vtiger_quotescurrency_id,vtiger_quotes.conversion_rate AS vtiger_quotesconversion_rate,vtiger_quotesbillads.bill_street AS vtiger_quotesbilladsbill_street,vtiger_quotesshipads.ship_street AS vtiger_quotesshipadsship_street,vtiger_quotesbillads.bill_city AS vtiger_quotesbilladsbill_city,vtiger_quotesshipads.ship_city AS vtiger_quotesshipadsship_city,vtiger_quotesbillads.bill_state AS vtiger_quotesbilladsbill_state,vtiger_quotesshipads.ship_state AS vtiger_quotesshipadsship_state,vtiger_quotesbillads.bill_code AS vtiger_quotesbilladsbill_code,vtiger_quotesshipads.ship_code AS vtiger_quotesshipadsship_code,vtiger_quotesbillads.bill_country AS vtiger_quotesbilladsbill_country,vtiger_quotesshipads.ship_country AS vtiger_quotesshipadsship_country,vtiger_quotesbillads.bill_pobox AS vtiger_quotesbilladsbill_pobox,vtiger_quotesshipads.ship_pobox AS vtiger_quotesshipadsship_pobox,vtiger_crmentity.description AS vtiger_crmentitydescription,vtiger_quotes.terms_conditions AS vtiger_quotesterms_conditions,vtiger_inventoryproductrel.productid AS vtiger_inventoryproductrelproductid,vtiger_inventoryproductrel.quantity AS vtiger_inventoryproductrelquantity,vtiger_inventoryproductrel.listprice AS vtiger_inventoryproductrellistprice,vtiger_inventoryproductrel.comment AS vtiger_inventoryproductrelcomment,vtiger_inventoryproductrel.discount_amount AS vtiger_inventoryproductreldiscount_amount,vtiger_inventoryproductrel.discount_percent AS vtiger_inventoryproductreldiscount_percent,vtiger_inventoryproductrel.tax1 AS vtiger_inventoryproductreltax1,vtiger_inventoryproductrel.tax2 AS vtiger_inventoryproductreltax2,vtiger_inventoryproductrel.tax3 AS vtiger_inventoryproductreltax3,vtiger_quotes.pre_tax_total AS vtiger_quotespre_tax_total,vtiger_quotes.s_h_percent AS vtiger_quoteshdns_h_percent,vtiger_crmentity.deleted FROM vtiger_crmentity LEFT JOIN vtiger_quotes ON vtiger_quotes.quoteid=vtiger_crmentity.crmid LEFT JOIN vtiger_quotesbillads ON vtiger_quotesbillads.quotebilladdressid=vtiger_crmentity.crmid LEFT JOIN vtiger_quotesshipads ON vtiger_quotesshipads.quoteshipaddressid=vtiger_crmentity.crmid LEFT JOIN vtiger_quotescf ON vtiger_quotescf.quoteid=vtiger_crmentity.crmid LEFT JOIN vtiger_inventoryproductrel ON vtiger_inventoryproductrel.id=vtiger_crmentity.crmid WHERE vtiger_crmentity.crmid='4' LIMIT 1  
(mysql): SELECT vtiger_quotes.quote_no AS vtiger_quotesquote_no,vtiger_quotes.subject AS vtiger_quotessubject,vtiger_quotes.potentialid AS vtiger_quotespotential_id,vtiger_quotes.quotestage AS vtiger_quotesquotestage,vtiger_quotes.validtill AS vtiger_quotesvalidtill,vtiger_quotes.contactid AS vtiger_quotescontact_id,vtiger_quotes.carrier AS vtiger_quotescarrier,vtiger_quotes.subtotal AS vtiger_quoteshdnsubtotal,vtiger_quotes.shipping AS vtiger_quotesshipping,vtiger_quotes.inventorymanager AS vtiger_quotesassigned_user_id1,vtiger_quotes.adjustment AS vtiger_quotestxtadjustment,vtiger_quotes.total AS vtiger_quoteshdngrandtotal,vtiger_quotes.taxtype AS vtiger_quoteshdntaxtype,vtiger_quotes.discount_percent AS vtiger_quoteshdndiscountpercent,vtiger_quotes.discount_amount AS vtiger_quoteshdndiscountamount,vtiger_quotes.s_h_amount AS vtiger_quoteshdns_h_amount,vtiger_quotes.accountid AS vtiger_quotesaccount_id,vtiger_crmentity.smownerid AS vtiger_crmentityassigned_user_id,vtiger_crmentity.createdtime AS vtiger_crmentitycreatedtime,vtiger_crmentity.modifiedtime AS vtiger_crmentitymodifiedtime,vtiger_crmentity.modifiedby AS vtiger_crmentitymodifiedby,vtiger_quotes.currency_id AS vtiger_quotescurrency_id,vtiger_quotes.conversion_rate AS vtiger_quotesconversion_rate,vtiger_quotesbillads.bill_street AS vtiger_quotesbilladsbill_street,vtiger_quotesshipads.ship_street AS vtiger_quotesshipadsship_street,vtiger_quotesbillads.bill_city AS vtiger_quotesbilladsbill_city,vtiger_quotesshipads.ship_city AS vtiger_quotesshipadsship_city,vtiger_quotesbillads.bill_state AS vtiger_quotesbilladsbill_state,vtiger_quotesshipads.ship_state AS vtiger_quotesshipadsship_state,vtiger_quotesbillads.bill_code AS vtiger_quotesbilladsbill_code,vtiger_quotesshipads.ship_code AS vtiger_quotesshipadsship_code,vtiger_quotesbillads.bill_country AS vtiger_quotesbilladsbill_country,vtiger_quotesshipads.ship_country AS vtiger_quotesshipadsship_country,vtiger_quotesbillads.bill_pobox AS vtiger_quotesbilladsbill_pobox,vtiger_quotesshipads.ship_pobox AS vtiger_quotesshipadsship_pobox,vtiger_crmentity.description AS vtiger_crmentitydescription,vtiger_quotes.terms_conditions AS vtiger_quotesterms_conditions,vtiger_inventoryproductrel.productid AS vtiger_inventoryproductrelproductid,vtiger_inventoryproductrel.quantity AS vtiger_inventoryproductrelquantity,vtiger_inventoryproductrel.listprice AS vtiger_inventoryproductrellistprice,vtiger_inventoryproductrel.comment AS vtiger_inventoryproductrelcomment,vtiger_inventoryproductrel.discount_amount AS vtiger_inventoryproductreldiscount_amount,vtiger_inventoryproductrel.discount_percent AS vtiger_inventoryproductreldiscount_percent,vtiger_inventoryproductrel.tax1 AS vtiger_inventoryproductreltax1,vtiger_inventoryproductrel.tax2 AS vtiger_inventoryproductreltax2,vtiger_inventoryproductrel.tax3 AS vtiger_inventoryproductreltax3,vtiger_quotes.pre_tax_total AS vtiger_quotespre_tax_total,vtiger_quotes.s_h_percent AS vtiger_quoteshdns_h_percent,vtiger_crmentity.deleted FROM vtiger_crmentity LEFT JOIN vtiger_quotes ON vtiger_quotes.quoteid=vtiger_crmentity.crmid LEFT JOIN vtiger_quotesbillads ON vtiger_quotesbillads.quotebilladdressid=vtiger_crmentity.crmid LEFT JOIN vtiger_quotesshipads ON vtiger_quotesshipads.quoteshipaddressid=vtiger_crmentity.crmid LEFT JOIN vtiger_quotescf ON vtiger_quotescf.quoteid=vtiger_crmentity.crmid LEFT JOIN vtiger_inventoryproductrel ON vtiger_inventoryproductrel.id=vtiger_crmentity.crmid WHERE vtiger_crmentity.crmid='4' LIMIT 1  
(mysql): SELECT * FROM vtiger_field WHERE tabid='20'  
(mysql): SELECT case when vtiger_products.productid != '' then vtiger_products.productname else vtiger_service.servicename end as productname, case when vtiger_products.productid != '' then vtiger_products.productcode else vtiger_service.service_no end as productcode, case when vtiger_products.productid != '' then vtiger_products.unit_price else vtiger_service.unit_price end as unit_price, case when vtiger_products.productid != '' then vtiger_products.qtyinstock else 'NA' end as qtyinstock, case when vtiger_products.productid != '' then 'Products' else 'Services' end as entitytype, vtiger_inventoryproductrel.listprice, vtiger_inventoryproductrel.description AS product_description, vtiger_inventoryproductrel.*,vtiger_crmentity.deleted FROM vtiger_inventoryproductrel LEFT JOIN vtiger_crmentity ON vtiger_crmentity.crmid=vtiger_inventoryproductrel.productid LEFT JOIN vtiger_products ON vtiger_products.productid=vtiger_inventoryproductrel.productid LEFT JOIN vtiger_service ON vtiger_service.serviceid=vtiger_inventoryproductrel.productid WHERE id='4' ORDER BY sequence_no  
(mysql): SELECT productid as prod_id from vtiger_inventorysubproductrel WHERE id='4' AND sequence_no=1  
(mysql): select taxtype from vtiger_quotes where quoteid='4'  
(mysql): SELECT vtiger_producttaxrel.*, vtiger_inventorytaxinfo.* FROM vtiger_inventorytaxinfo INNER JOIN vtiger_producttaxrel ON vtiger_inventorytaxinfo.taxid = vtiger_producttaxrel.taxid WHERE vtiger_producttaxrel.productid = '3'  
(mysql): select taxname,taxid from vtiger_inventorytaxinfo  
(mysql): select * from vtiger_inventoryproductrel where id='4'  
(mysql): select * from vtiger_inventorytaxinfo where deleted=0 order by taxid  
(mysql): SELECT * FROM vtiger_shippingtaxinfo WHERE deleted=0  
(mysql): SELECT shtax1 FROM vtiger_inventoryshippingrel WHERE id='4'  
(mysql): SELECT shtax2 FROM vtiger_inventoryshippingrel WHERE id='4'  
(mysql): SELECT shtax3 FROM vtiger_inventoryshippingrel WHERE id='4'  
(mysql): select shtax1 from vtiger_inventoryshippingrel where id= '4'  
(mysql): select shtax2 from vtiger_inventoryshippingrel where id= '4'  
(mysql): select shtax3 from vtiger_inventoryshippingrel where id= '4'  
(mysql): SELECT quote_no FROM vtiger_quotes WHERE quoteid = 4  
(mysql): SELECT * FROM vtiger_organizationdetails  
(mysql): SELECT crmid, setype, label FROM vtiger_crmentity WHERE crmid='2'  
(mysql): SELECT * FROM vtiger_currency_info  
(mysql): SELECT currency_symbol FROM vtiger_currency_info WHERE id='1'  

ここまで________________________________

もしかしたら頓珍漢なことしてるのかも知れませんが、せっかく出力させたので載せました。
しかし、私にはこれらのコードが何を意味しているのかさっぱりわかりません。
今後の方向性を考えながら少し休憩したいと思います。

EQUSYS

unread,
May 18, 2014, 10:19:22 AM5/18/14
to vtige...@googlegroups.com
 
1)vtigercrm/以下のphpファイルの改行コードが「^M」となっていること
Perlなどでは動かないこともあった気がするのですが、VtigerCRM自体が動作して
いるのでphpでは問題ない?

これについてですが、もしかするとVtigerCRMはWindows上で開発されている
代物であって、あまり他のプラットフォームを意識していなかったりするかな、
という不安がよぎりました。
しかし負けずに進めていきたいと思います。

EQUSYS

unread,
May 19, 2014, 12:54:39 AM5/19/14
to vtige...@googlegroups.com
ファイルの改行コードを修正する作業を行いました。
スマートではありませんがご容赦下さい。

行末に^Mのあるファイルを探すために次のようにしました。
^MについてはCtrl+vの後にCtrlキーを放さずにCtrl+mとして入力しています。
 カレントディレクトリの場合:grep ^M *.php |cut -d":" -f 1|uniq
 ディレクトリ1階層下の場合:grep ^M */*.php |cut -d":" -f 1|uniq

の要領です。置換はこの様にしました。
 カレントディレクトリの場合:sed -i -e "s/^M//g" *.php
 ディレクトリ1階層下の場合:sed -i -e "s/^M//g" */*.php

この要領でhtmlとphpのファイルを修正しました。
for doでディレクトリ以下を格好良く置換したいのですがスキル不足です;;

しかし結局、解決には至っておりません。

EQUSYS

unread,
May 19, 2014, 7:48:58 PM5/19/14
to vtige...@googlegroups.com
試しにF-RevoCRM6.0(REL_20140501_rev695)を導入してみました。

結果、すんなりとPDFも生成されてしまいました。なのでサーバの環境構築はアレで良かったのだと思います。

 本件はVtigerCRM6のバグのような気がします。しかし、vtigerCRM.jpのデモサイトではPDFも
問題なく生成されるというのはどういうことなのでしょう?あちらは修正済?とすると、これは
既知の問題ということでしょうか?それともデモサイトはWindowsで構築されていて、それなら
問題が発生しないとか、そういうことだったりするのでしょうか?

 外観はF-RevoCRMとVtigerCRMの違いが判りませんし、目的が達成できれば良いので
VtigerCRMがデバッグされたものがF-RevoCRMである、と受け止めて、こちらの導入を検討して
いこうかとも思います。時間があれば両者のソースを比較してみるかもです。

余談ですが
 テストのときにF-RevoCRMの入力で顧客情報や見積り作成をしたのですが、住所入力順が日本仕様に
なっていたのは直感的で良かったです。もし、このような気遣いが随所に見られるのであれば、顧客に
提供するのはF-RevoCRMの方が良いように思いました。色々試していきたいと思います。

なんだかブログみたいになってしまいましたがご容赦頂ければ幸いです。

Masanori Yamamoto

unread,
May 19, 2014, 10:50:17 PM5/19/14
to vtige...@googlegroups.com
山本と申します。vtigerCRMもF-RevoCRMも使っていませんが、
これから使うかもしれないため調査しています。よろしくお願いします。

改行コードの違いはおそらく問題ないと思います。Windows型でもLinux型でも
どちらでもPHPとしては同様に動作します。全てのコードを調べたわけでは
ありませんが、3~4個のファイルを見たところ、vtigerCRMではLinux型である
LFが使われていました。

vtigerCRMとF-RevoCRMの最新のコードを調べてみたところ、日付の書式や住所まわり
の表現、エンコードまわりなどの日本語対応の他、多言語対応で解決できる部分は
vtigerCRM本体の関数を使って日本語化するなど、丁寧なアプローチがとられています。
vtigerCRMの不具合を修正しているように見受けられる部分もあります。(違うかも)

気になる点としては、vtigerCRMには存在しない拡張子.0000664のファイルが多数
あることと、日本語フォントとして小塚ゴシックが指定されている点です。
開発元に確認すれば事情が分かると思うので、機会があれば確認してみます。


--
山本

EQUSYS

unread,
May 20, 2014, 9:52:25 AM5/20/14
to vtige...@googlegroups.com
情報ありがとうございます。
 
改行コードの違いはおそらく問題ないと思います。Windows型でもLinux型でも
どちらでもPHPとしては同様に動作します。全てのコードを調べたわけでは
ありませんが、3~4個のファイルを見たところ、vtigerCRMではLinux型である
LFが使われていました。

CR LFの改行コードは3階層以下に散見されました。F-RevoCRMでも同程度のようです。
 
vtigerCRMの不具合を修正しているように見受けられる部分もあります。(違うかも)

今日、それなりに修正されているということを提供元の方から伺い知りました。
PDF出力の辺りも修正しなければならないようなニュアンスでしたが、そうなると
vtigerCRM.jpのデモサイトはやはり修正済ということになるでしょうか。。。

気になる点としては、vtigerCRMには存在しない拡張子.0000664のファイルが多数
 
こちらでも拡張子.0000664のファイルが60個余りあるのを確認しました。

F-RevoCRMの
./libraries/bootstrap/js/eternicode-bootstrap-datepicker/js/locales/
以下に多くありましたが、これはディレクトリ自体がvtigerCRMには存在せず

./pkg/vtiger/modules/Mobile/modules/Mobile/resources/images/iconza/
以下にもありますが、vtigerCRMの方では.phpとなっていることから
F-RevoCRMの方は、何らかのきっかけで.0000664となってしまっているのでは
ないかと思いました。

既知とは思いますが、参考ページを記します。
http://en.sourceforge.jp/projects/magic3/forums/13249/20895/43347/

 国内向けにするために、F-RevoCRMで多くの修正があったというのであれば
vtigerCRMがDPF出力できるようになったところで、顧客に提供でき得るものか
不安に思えてきました。どちらもソースは自由に入手可能なので個人的に使う分にも
F-RevoCRMの方が良さそう、といってしまうと元も子もないですが。。。

EQUSYS

unread,
May 20, 2014, 11:27:38 AM5/20/14
to vtige...@googlegroups.com
本件と直接関係ありませんでしたが、ディレクトリ以下の全ファイルから^Mを一括削除する方法がありましたので載せておきます。

find . -type f -print0|xargs -0 sed -i -e "s/^M//g"

for文も不要でした。奥が深いです。

参考サイト

話題がそれてすみません(汗

slzo

unread,
May 24, 2014, 11:41:09 AM5/24/14
to vtige...@googlegroups.com
同じ問題が再現できましたが、以下の方法で解決しました:
     aptitude install php5
     aptitude install php5-gd

再現と解決の手順
1.同じ debian 7.4 64bit を仮想環境に入れる。WEBサーバー、標準ユーティリティの他に、デスクトップも選択。以下、デスクトップUI環境で作業。
2.報告頂いた「vtigercrmインストールの記録.txt」にそって環境作成を始める。
3.手順(5)でブラウザでvtigercrmにアクセスするも、PHPが起動せず、PHPソースが表示されてしまう問題が生じる。
4.aptitude install php5 を実行し、Apacheを再起動したところ、vtigercrmのインストール画面が無事起動。
5.vtigercrmインストール時に修正が必要な php.ini の場所は、/etc/php5/apache2filter/php.ini ではなく、/etc/php5/apache2/php.ini だった。
    報告頂いた環境では、libapache2-mod-php5filter ?等が入ってしまっていたので、/etc/php5/apache2filter/php.ini だったと思われる。
    aptitude install php5 実行時にlibapache2-mod-php5が入り、/etc/php5/apache2/php.ini になる。
6.無事vtigercrmのインストールが完了し、見積書を作成しPDFエクスポートを試したところ、ブラウザ画面が真っ白になって何も起こらない。
7.デバッグしたところ、tcpdf ライブラリ のimage関数あたり落ちているようだった。
8.aptitude install php5-gd を実行し、Apacheを再起動したところ、デモサイトと同様にPDFがダウンロードされるようになった。



2014年5月18日日曜日 7時40分57秒 UTC+9 EQUSYS:

EQUSYS T

unread,
May 25, 2014, 1:15:13 AM5/25/14
to vtige...@googlegroups.com
slzo様

 こちらでもPDFが表示されるようになりました、というよりなっていました(?!)。

ご報告頂いた内容で検証するために、まずはPDF出力で空白ページが出力されることを再度確認しようとしましたら

TCPDF ERROR: [Image] No such file or directory in test/logo/vtiger-crm.jpg

という、いままでにでなかったメッセージが表示され、画像ファイルを消した覚えはなかったのですが、とりあえず別のイメージで代用したところ、文字化けしつつもPDFが出力されることが確認できました。
 しかしこれでは解決したことにならないので、改めて環境を構築後、再検証してみます。
構築方法が確立されれば手順をまとめていきたいと思いますので、引き続き宜しくお願い致します。

EQUSYS

unread,
May 27, 2014, 12:59:09 AM5/27/14
to vtige...@googlegroups.com
VtigerCRM6.0jaの導入手順を更新しました。

応援して下さった皆様に感謝致します。ありがとうございました!

 主にパッケージ導入を個別に実行した点とphp5及びphp5-gdが追加された点、それから
php.iniの場所が/etc/php5/apache2/になっている点が異なります。

また、パッケージ導入時に依存関係や削除の表示がありましたのでこれも掲載しました。なので
手順書としてはあまり簡略化されていませんが、今後の参考になればと思いますのでご了承頂ければと思います。

この導入手順では、PDFのエクスポートできないという問題も発生しませんでした。
ただし、PDFの文字化けが発生するようですので、引き続き調べていきたいと思います。

何方かご存知の方がおられましたらご指導頂けましたら幸いです。宜しくお願い致します!


VtigerCRM6.0導入手順(PDF文字化け問題あり)_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

1)debian wheezy をインストールする。※今回は7.4を使用
 システム導入時に選択するパッケージはWEBサーバー、標準ユーティリティ。

2)インストール後のパッケージ追加
aptitude update

aptitude install unzip
VtigerCRMのパッケージを解凍する際に必要

aptitude install mysql-server
途中パスワードが求められるので入力したパスワードは控えておくこと。

aptitude install php5
次のように表示されますので、いずれもキー「Enter」を押して続行。
_____________________________________________________________________
以下の新規パッケージがインストールされます:
  apache2-mpm-prefork{ab} libapache2-mod-php5{a} libonig2{a} libqdbm14{a} 
  php5 php5-cli{a} php5-common{a} 
更新: 0 個、新規インストール: 7 個、削除: 0 個、保留: 0 個。
6,106 k バイトのアーカイブを取得する必要があります。展開後に 18.1 M バイトのディスク領域が新たに消費されます。
以下のパッケージには満たされていない依存関係があります:
 apache2-mpm-prefork : 競合: apache2-mpm[仮想パッケージです]
 apache2-mpm-worker : 競合: apache2-mpm[仮想パッケージです]
以下のアクションでこれらの依存関係の問題は解決されます:

     以下のパッケージを削除する:
1)     apache2-mpm-worker

この解決方法を受け入れますか? [Y/n/q/?]

以下の新規パッケージがインストールされます:
  apache2-mpm-prefork{a} libapache2-mod-php5{a} libonig2{a} libqdbm14{a} 
  php5 php5-cli{a} php5-common{a} 
以下のパッケージが削除されます:
  apache2-mpm-worker{a} 
更新: 0 個、新規インストール: 7 個、削除: 1 個、保留: 0 個。
6,106 k バイトのアーカイブを取得する必要があります。展開後に 18.1 M バイトのディスク領域が新たに消費されます。
先に進みますか? [Y/n/?] 

_____________________________________________________________________

aptitude install php5-mysql

aptitude install php5-imap

aptitude install php5-gd
次のように表示されますので、いずれもキー「Enter」を押して続行。
_____________________________________________________________________
以下の新規パッケージがインストールされます:
  libgd2-xpm{ab} libxpm4{a} php5-gd 
更新: 0 個、新規インストール: 3 個、削除: 0 個、保留: 0 個。
316 k バイトのアーカイブを取得する必要があります。展開後に 900 k バイトのディスク領域が新たに消費されます。
以下のパッケージには満たされていない依存関係があります:
 libgd2-noxpm : 競合: libgd2[仮想パッケージです]
                競合: libgd2-xpm [2.0.36~rc1~dfsg-6.1 がインストール予定となっています]
 libgd2-xpm : 競合: libgd2[仮想パッケージです]
              競合: libgd2-noxpm [2.0.36~rc1~dfsg-6.1 が既にインストール済みです]
以下のアクションでこれらの依存関係の問題は解決されます:

     以下のパッケージを削除する:
1)     libgd2-noxpm             



この解決方法を受け入れますか? [Y/n/q/?]
以下の新規パッケージがインストールされます:
  libgd2-xpm{a} libxpm4{a} php5-gd 
以下のパッケージが削除されます:
  libgd2-noxpm{a} 
更新: 0 個、新規インストール: 3 個、削除: 1 個、保留: 0 個。
316 k バイトのアーカイブを取得する必要があります。展開後に 258 k バイトのディスク領域が新たに消費されます。
先に進みますか? [Y/n/?] 
_____________________________________________________________________



3)vtigercmsの導入
cd /var/www/
unzip master.zip
mv vtigercrm-6.0.0-ja-master vtigercrm
chown -R www-data:www-data vtigercrm
chmod -R 775 vtigercrm


4)データベースユーザの作成
mysql -u root -p
Password:mysql導入時に設定したrootのパスワード  
  > create user 任意データベースユーザ名 identified by '任意データベースユーザ名';
  > grant all privileges on  *.* to 任意データベースユーザ名@'%';
  > create database 任意データベース名 default character set = utf8;
quitで終了。

5)ウェブブラウザでサーバにアクセスし、設定を進める。http://xxx.xxx.xxx.xxx/vtigercrm/
Vtigerのようこそ画面が表示されたらボタン「インストール」をクリック。
ライセンスを読んだらボタン「同意する」をクリック。

6)推奨PHP設定にする
5の途中、PHPの設定が必要になるので画面の指示にしたがって編集する。

変更前のメッセージ
_____________________________________________________________________
PHP コンフィギュレーション 必要な値 現在の値
PHP バージョン 5.3.0 5.4.4-14+deb7u9
IMAP 対応 はい はい
Zlib サポート はい はい
GD ライブラリー サポート はい はい

推奨 PHP 設定
display_errors On Off
max_execution_time 600 30
error_reporting E_WARNING & ~E_NOTICE & ~E_DEPRECATED NOT RECOMMENDED
allow_call_time_pass_reference On Off
log_errors Off On
_____________________________________________________________________
PHP設定ファイルの編集
vi /etc/php5/apache2/php.ini
display_errors = On
max_execution_time = 600
error_reporting = E_WARNING & ~E_NOTICE & ~E_DEPRECATED
log_errors = Off

allow_call_time_pass_reference の項目はなく、追加しても反映されないので放置

apache2を再起動する。
service apache2 restart
_____________________________________________________________________


_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/



slzo

unread,
Jun 4, 2014, 10:30:14 AM6/4/14
to vtige...@googlegroups.com
完璧な手順書を公開していただき感謝です!
PDFの文字化けはGithubの新しいコードで治ってました。

EQUSYS

unread,
Jun 4, 2014, 11:39:38 AM6/4/14
to vtige...@googlegroups.com
情報ありがとうございます。

完璧な手順書を公開していただき感謝です!
 
使い物になるでしょうか?少しでも皆様のお役に立てたのなら光栄に思います。
 
PDFの文字化けはGithubの新しいコードで治ってました。

バージョンが変わってないのに?と思ったのですが、ファイルサイズが変わってました。

vtigercrm-6.0.0-ja-master.zip
 以前:42.6 MB (42,562,037 bytes)
 現在:42.6 MB (42,562,606 bytes)

プログラムスキルがないので確かめられないのですが、もしかしたらPDF日本語出力辺りで更新があったのかも知れませんね。
私も時間を見つけて検証したいと思います。ありがとうございましたっ!


Reply all
Reply to author
Forward
0 new messages