いやまぁ
sh ./configure -h
でチェックしろ、って話しではあるのですが。
PHP7.3系とPHP7.4系で、configure のオプションがちょいと変わっております。……ちょろっとべっくらこいたよおいちゃん。
おいちゃん、PHPは自力コンパイルする事が多くて、もうちょっと正確には
・周辺のライブラリは、差し障りがないかぎり yum*1で入れる:勿論、 -devel でね(はぁと)
・PHP自体は、php.netのダウンロードのページからwgetしてきてコンパイル
って方法をとる事が多いです。
んで。まぁ
--enable-pcntl \ --enable-sysvsem \ --enable-sysvshm \ --enable-sysvmsg \
とかいう「普段書くコードの趣味丸わかり」なオプションはともかくとして。ちょいと引っかかった2つがあって、微妙に手間取ったので、備忘録兼ねて。
いち。
PHP7.4を入れる時に、どうも「oniguruma」「sqlite」が必須のようでございまっする。
なので、とりあえず
sudo yum install oniguruma-devel sqlite-devel
で、コンパイル前にinstallしておきましょう。 -y オプションは、なんとなし、割と使わない事が多いです。いやまぁどうせYesと答えはするのですが、えぇ。
に。
ここがハマった。ちと案件でGDを使ってるのがあったのですが、PHP7.3までの
--with-gd \ --with-jpeg-dir=/usr/lib \ --with-zlib-dir=/usr/lib \
が、通らない orz
調べたところ、上述は
--enable-gd \ --with-jpeg \ --with-zlib \
に変わっている模様。
あと、地味にハマったのが
・一端「 --enable-gd」だけでコンパイルしたらjpegが有効になってない
・ので「--with-jpeg」を加えたらライブラリが足らん
sudo yum install libjpeg-devel
・で、「--with-jpeg」付けて再度コンパイルしたんだけど有効にならん orz
答えは簡単で「まず先に make clean してから」。
おそらく「一端gdのエクステンション自体はコンパイルされちゃった」から、そいつ消さないと有効にならない orz
コンパイル2回分くらいハマりました orz
なので、configureするまえに「make clean」するとよかとかと思われます。
なんか、英語でも「jpegが有効にならねぇ」的なのがちらほらと散見されたので、ナレッジ残しておくとよいかなぁ、とか思いつつ、めも。
*1:もうdnfのほうがよいんだろうなぁ……