投稿者 |
投稿 |
|
#1 2011 年 12 月 14 日(水) 20:17
|
会員
登録者: 7 2011
返信数: 7
|
お世話になります。 PHP Excelを利用しようとしておりますが、下記エラーが表示されます。
■エラー表示 Fatal error: Class 'PHPExcel_Shared_ZipStreamWrapper' not found in /var/www/html/Classes/PHPExcel/Autoloader.php on line 29
php.iniに extension=php_zip.dll を追記しました。 phpinfo()でzipを確認したらenableになっており php_zip.dll c *** と書かれていたのでdllファイルは何もしていませんが、 このファイルが見つからないということでしょうか。 もし置く必要があればどこに置けばいいかがネットでも今一つわかりません。
extension_dir = "/usr/local/php5/lib/php/extensions/current" ここに置けばいいのでしょうか。 念のため置いておりますが、状況は変わりません。
■php 5.2.17 ■php Excel 1.7.6 ■php Excelの設置場所 /var/www/html/Classes
■ソース <?php set_include_path(get_include_path() . PATH_SEPARATOR . './Classes/'); include 'PHPExcel.php'; include 'PHPExcel/IOFactory.php'; ?>
何卒、よろしくお願いします。
|
|
#2 2011 年 12 月 15 日(木) 8:57
|
会員
登録者: 8 2009
返信数: 103
|
こんにちは。
エラー内容を読むとクラスがみつからないといってるみたいなので PHPExcelのインストールがうまくいってないのでは?
|
|
#3 2011 年 12 月 15 日(木) 9:02
|
会員
登録者: 7 2011
返信数: 7
|
nullaさん
おはようございます。 早速のご対応、誠にありがとうございます。
PHPExcelは、圧縮されたファイルを解凍して、任意のフォルダに置くという方法で 対応しました。 ただ、htmlファイルのあるフォルダ下にClassesフォルダを置いただけです。 何か設定が必要なのでしょうか。 宜しくお願いします。
|
|
#4 2011 年 12 月 15 日(木) 12:56
|
会員
登録者: 8 2009
返信数: 103
|
私はPHPExcelを展開後 C:\PHPExcel\Classes に置きました。
set_include_path(get_include_path() . PATH_SEPARATOR . '/PHPExcel/Classes/'); と絶対パス指定してExcelファイルの生成ができました。
ちなみにOSの環境はなんでしょう?
私が試した環境はpleiades3.7付属のxamppです。 Windows Vista sp2 php 5.3.5 PHPExcel 1.7.6
|
|
#5 2011 年 12 月 15 日(木) 13:24
|
会員
登録者: 7 2011
返信数: 7
|
nulla さん
ありがとうございます。 OSは Red Hat Enterprise Linux 4 Apache 2.0.64 です。 Pathを /var/www/html/Classes と指定しても同じでした。
宜しくお願いいたします。
|
|
#6 2011 年 12 月 15 日(木) 14:12
|
会員
登録者: 8 2009
返信数: 103
|
Vine Linux 5.2にインストールしてみました。 php 5.3.7 CGI apache 2.2.14 PHPExcel 1.7.6
Fatal error: Class 'ZipArchive' not found in ~~/Excel2007.php on line 225 とおこられたので # pecl install zip # cd /etc/php5/php.d/ # touch zip.ini # vi zip.ini extension=zip.so phpinfo()でZip enabled を確認
これでちゃんと生成できました。 生成用のソースは http://news.mynavi.jp/articles/2009/03/06/phpexcel/001.html を使いました。
$ du -s /var/www/html/Classes の結果はどうですか? 私のは21372です。
最初の投稿で > extension=php_zip.dll とありますけれどそれはWindows用では? Linux系のライブラリは.soです。 (それでWindowsかLinux系なのか、わからなかったです)
|
|
#7 2011 年 12 月 15 日(木) 17:22
|
会員
登録者: 7 2011
返信数: 7
|
nulla さん。
ありがとうございます。
>最初の投稿で >> extension=php_zip.dll >とありますけれどそれはWindows用では?
そうでした。申し訳ありません。 また、extension=zip.so は有効になっておりました。
$ du -s /var/www/html/Classes ですが、21888でした。
|
|
#8 2011 年 12 月 16 日(金) 13:04
|
会員
登録者: 8 2009
返信数: 103
|
こんにちは。
容量増えてますね。 改行コードがCRLFになってたりします? (影響あるかはわかりませんけれど)
Classes/PHPExcel/Shared/ZipStreamWrapper.php はありますよね?
それとパーミッションはどうなってますか? ファイルの所有者権限と実際の実行ユーザーの権限を確認してみてください。
|
|
#9 2011 年 12 月 20 日(火) 18:32
|
会員
登録者: 7 2011
返信数: 7
|
mullaさん。
ありがとうございます。 改行コードはLFでした。
>Classes/PHPExcel/Shared/ZipStreamWrapper.php >はありますよね?
はい。あります。
パーミッションはとりあえず、全てのユーザに実行権限を付けております。 宜しくお願いします。
|
|
#10 2011 年 12 月 26 日(月) 17:08
|
会員
登録者: 8 2009
返信数: 103
|
その後どうでしょうか? 私の環境で再現できない以上、もうわからないです。 すみません。
いちど別のLinuxにインストールして動くかどうか確認してみてください。 もしくは初めから再インストールしてみるとか。
|
|
#11 2012 年 1 月 3 日(火) 6:22
|
管理者
登録者: 10 2005
返信数: 38
|
下記のようにやってファイルの中身は表示されますか? あるいはログや画面にエラーがでてきますか? <?php
header('Content-Type: text/plain; charset=UTF-8');
// パスを勘違いしていたら修正してください echo file_get_contents('/var/www/html/Classes/Shared/ZipStreamWrapper.php'); 単に該当ファイルが表示できるかどうか.という処理です. もし表示できなければそもそもPHPで読めない状況になっていると思われます. たとえば御自身でLinuxをインストールしており,SELinuxが有効といった場合に起こしがちかもしれません. (ベタな再現手順は「/home/[USER]/」にファイルをアップロード⇒「/var/www/html/」配下にコピー)
|