6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PHP5.4のシステムにPHPExcelをインストールした

Posted at

はじめに要件

PHPからエクセルを操作したい。
最初はPhpSpreadsheetを入れようとしました。

参考:PHPExcelが非推奨になったので後継のPhpSpreadsheetを使ってみる
https://qiita.com/mosaxiv/items/d71890ef203e506b75fc

しかし、PHPのバージョンが古くて入りませんでした。
[InvalidArgumentException]
Package phpoffice/phpspreadsheet at version has a PHP requirement incompatible with your PHP version (5.4.45)

そこで古いPHPExcelを試してみました。

参考:PHPExcelでエクセル出力入門
https://qiita.com/suin/items/7a8d0979b7675d6fd05b

composerのインストール

composerインストール
curl -sS https://getcomposer.org/installer | php

phpexcelインストール
php composer.phar require phpoffice/phpexcel

しかし、エラーとなります。

Problem 1
- phpoffice/phpexcel 1.8.1 requires ext-xmlwriter

php-xmlが無いらしいです。

参考:composerでPHPUnitがインストールできない
http://blue-goheimochi.hatenablog.com/entry/2013/07/24/composer%E3%81%A7PHPUnit%E3%81%8C%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84

php-xmlのインストール

php-xmlインストール
yum install php-xml

しかし、エラーとなります。

Error: Package: php-xml-5.3.3-49.el6.x86_64 (base)
Requires: php-common(x86-64) = 5.3.3-49.el6

remiで入れたPHPだとphp-xmlもremiで入れる必要があります。

参考:PHP 5.5 などで PHP-XML などのインストール方法
https://himenaotaro.hatenablog.com/entry/2016/02/20/162600

remiでphp-xmlインストール
yum install --enablerepo=remi php-xml

PHPExcelのインストール

PHPExcelインストール
php composer.phar require phpoffice/phpexcel

やっと成功します。
しかし、フォルダにテストプログラムをおいて実行すると、ステータス500のエラーとなります。

サーバーのログを見ると、php-xmlが機能していないようです。
PHP Fatal error: Class 'XMLWriter' not found

・・php-xmlを入れた後にはApacheの再起動をしましょう。
service httpd restart

テストプログラムが成功しました!

6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?