HTML整形ライブラリtidyのインストールに毎度苦戦している為、メモとして残します。
tidy自体需要が少ないのか、ライブラリ自体更新されていないようでphp7系で使おうとするとスムーズにインストールができないことがあります。
linux環境で直接コマンド実行しインストール
php 7.4
CentOS7
# epelの有効化
$ sudo yum-config-manager --enable epel
# remiリポジトリがあるか
$ yum repolist | grep remi
# remiリポジトリがなければインストール
$ yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
# php7系tidyライブラリがあるか
$ yum list | grep tidy
# tidyをインストール
$ yum --enablerepo=remi install -y php74-php-tidy
# 無事インストールできたか確認
$ tidy -v
HTML Tidy for Linux version 5.6.0
AWS Elastic Beanstalkへインストール
環境1
php 7.4 running on 64bit
Amazin Linux 2/3 1.4
container_commands:
# tidyのインストール
21_php:
command: "sudo amazon-linux-extras install epel -y"
22_php:
command: "sudo yum-config-manager --enable epel"
23_php:
command: "[ -z \"$(yum list | grep php74-php-tidy)\" ] && yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm || > /dev/null"
24_php:
command: "yum --enablerepo=remi install -y php74-php-tidy"
files:
# php.iniの設定
"/etc/php.d/01_post_size.ini":
mode: "000755"
owner: root
group: root
content: |
extension = /opt/remi/php74/root/usr/lib64/php/modules/tidy.so
- php7系に対応したtidyをインストールしたい為、epelとremiリポジトリをまず有効にする。
- remiリポジトリがインストールされていなければインストール。(tidyがあるかgrepして確認)
- php7系対応tidyをインストール
- php.iniの設定でextensionのインストール先を指定
※ 4のインストール先は下記のコマンドで調べられます。
rpm -ql php74-php-tidy
一つの実行ブロックにまとめると、非同期になってしまうのかリポジトリ有効になっていない状態でtidyをインストールしようとしてしまうことがありました。
一つの実行ブロックで同期的に処理ができればそちらの方がコードがすっきりしそうです。
▼参考ページ
・CentOS、RHEL、または Amazon Linux を実行している Amazon EC2 インスタンスの EPEL リポジトリを有効にするにはどうすればよいですか?
・Amazon Linux 2でEPELとRemi Repositoryを有効にする
・CentOS7 PHP7.0にtidyをインストール
環境2
php 7.1 running on 64bit
Amazin Linux 2.9.10
packages:
yum:
php71-tidy: []
docker環境へインストール
環境
php 7.4-fpm
FROM php:7.4-fpm
RUN apt-get update && apt-get install -y --no-install-recommends \
libtidy-dev tidy \
&& docker-php-ext-install tidy
dockerのphp:7.4-fpmを使用した場合なのか
Remiリポジトリのインストールは必要なかったです。