日本PHPユーザ会 掲示板

日本PHPユーザ会運営の掲示板です。※ただいまテスト運用中です。

日本PHPユーザ会 掲示板 » PHP 5 » PHPExcelでのエラー

PHPExcelでのエラー

ページ: 1

投稿者 投稿
会員
登録者: 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';
?>

何卒、よろしくお願いします。
会員
登録者: 8 2009
返信数: 103
こんにちは。

エラー内容を読むとクラスがみつからないといってるみたいなので
PHPExcelのインストールがうまくいってないのでは?
会員
登録者: 7 2011
返信数: 7
nullaさん

おはようございます。
早速のご対応、誠にありがとうございます。

PHPExcelは、圧縮されたファイルを解凍して、任意のフォルダに置くという方法で
対応しました。
ただ、htmlファイルのあるフォルダ下にClassesフォルダを置いただけです。
何か設定が必要なのでしょうか。
宜しくお願いします。
会員
登録者: 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
会員
登録者: 7 2011
返信数: 7
nulla さん

ありがとうございます。
OSは Red Hat Enterprise Linux 4
Apache 2.0.64
です。
Pathを /var/www/html/Classes と指定しても同じでした。

宜しくお願いいたします。
会員
登録者: 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
返信数: 7
nulla さん。

ありがとうございます。

>最初の投稿で
>> extension=php_zip.dll
>とありますけれどそれはWindows用では?

そうでした。申し訳ありません。
また、extension=zip.so は有効になっておりました。

$ du -s /var/www/html/Classes
ですが、21888でした。
会員
登録者: 8 2009
返信数: 103
こんにちは。

容量増えてますね。
改行コードがCRLFになってたりします?
(影響あるかはわかりませんけれど)

Classes/PHPExcel/Shared/ZipStreamWrapper.php
はありますよね?

それとパーミッションはどうなってますか?
ファイルの所有者権限と実際の実行ユーザーの権限を確認してみてください。
会員
登録者: 7 2011
返信数: 7
mullaさん。

ありがとうございます。
改行コードはLFでした。

>Classes/PHPExcel/Shared/ZipStreamWrapper.php
>はありますよね?

はい。あります。

パーミッションはとりあえず、全てのユーザに実行権限を付けております。
宜しくお願いします。
会員
登録者: 8 2009
返信数: 103
その後どうでしょうか?
私の環境で再現できない以上、もうわからないです。
すみません。

いちど別のLinuxにインストールして動くかどうか確認してみてください。
もしくは初めから再インストールしてみるとか。
管理者
登録者: 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/」配下にコピー)

ページ: 1

日本PHPユーザ会 掲示板 » PHP 5 » PHPExcelでのエラー

日本PHPユーザ会 掲示板 は UseBB 1 フォーラムソフトウェア を使用しています