140701-PHPExcel

 先日、Linux(CentOS)にPHPでMicrosoft社のExcelを操作する「PHPExcel」を使う必要がありました。

 しかし、このライブラリをインストールしただけでは使うことはできず、いくつかのプログラムをインストールする必要があったので下記に明記しておきます。

前提条件

 各ソフトのバージョンは下記の通りです。また、今回、PHPExcelはPHPのフレームワークCakePHPで利用したものです。

  • CentOS 6.5
  • Apache 2.2.15
  • PHP 5.3.3
  • CakePHP 2.5.0

 各ソフトは全てyumでインストールしてものです。PHPExcelはCakePHPの「\app\Vendor\」へインストールしています。

エラー

 上記環境でPHPExcelを実行すると下記のようなエラーが発生しました。

Warning (2): ZipArchive::getFromName(): Invalid or uninitialized Zip object [APP/Vendor/PHPExcel/Reader/Excel2007.php, line 323]
Warning (2): ZipArchive::getFromName() [http://php.net/ziparchive.getfromname]: Invalid or uninitialized Zip object [APP/Vendor/PHPExcel/Reader/Excel2007.php, line 326]
Notice (8): Trying to get property of non-object [APP/Vendor/PHPExcel/Reader/Excel2007.php, line 358]

: : (以下省略)

対策

 上記エラーなどからいろいろと調べた結果、下記処理を行うことで対処できました。

# yum -y install php-devel
# yum install zlib-devel
# yum install pcre-devel
# yum install php-xml
# pecl install zip

 最後の「pecl install zip」を実行するといろいろと表示されますが、インストールが成功すると

You should add “extension=zip.so” to php.ini

と、表示されるのでphp.iniファイルに「extension=zip.so」と書かれていないのを確認して追記します。後はApacheを

# /etc/rc.d/init.d/httpd restart

で再起動させてやります。これでPHPExcelが使用できました。

参考サイト:
WEB開発備忘録 yum構築環境下でのPHP/ZIP Archiveのインストール
なんとなく始めてみた、プログラマー雑記 » CentOSにPECLでAPCをインストールしてみる
PHPExcel① エンジニア足立のコーディング日記| 株式会社ディープ

Excel+PHP Webデータベース開発 Excel 2000~2003・2007対応 (VBA for Professionals)

著者/訳者:西沢 直木

出版社:毎日コミュニケーションズ( 2009-08-27 )

定価:

Amazon価格:¥ 18,860

単行本(ソフトカバー) ( 304 ページ )

ISBN-10 : 483993164X

ISBN-13 : 9784839931643