sudo apt install apache2 &&php2 …でインストールしたらphpファイルがダウンロードされるばかりで動かないよ、という壁にぶち当たった。どうもApache2.4系はfast-cgiを入れないといけないらしい。そしてapt installでインストールしたものにはモジュール追加に必須なmod_so.cが入っていない。ソースインストールしたほうがいいですね。
Apache2.4のソースをDLしてくる
必要なもの…Apache2.4本体、apr、apr-util
取ってこれる場所…本体:http://httpd.apache.org/download.cgi
apr、apr-util:http://apr.apache.org/download.cgi
それぞれ
sudo wget url
解凍する。
sudo tar zxvf httpd-バージョン.tar.gz
Apache2.4のインストール
本体を解凍するとその中にsrclibというディレクトリがある。aprとapr-utilはsrclibの中に解凍して、mvでバージョン番号を消したものにリネームする。
sudo mv apr-バージョン apr sudo mv apr-util-バージョン apr-util
Apache2.4ディレクトリに戻ってconfigureする。
sudo ./configure --enable-so --prefix=/etc/apache2
sudo make
sudo make install
PCREっていうのがなくても怒られるのでその時はhttp://pcre.org/からDLしてインストールしとく。
sudo wget https://ftp.pcre.org/pub/pcre/pcre-8.00.tar.gz
sudo tar zxvf pcre-8.00.tar.gz
cd pcre-8.00
sudo ./configure
sudo make
sudo make install
起動
sudo systemctl start apache2
mod_fcgidとfast-cgiの追加
http://httpd.apache.org/download.cgiから取ってくる。
sudo wget https://downloads.apache.org//httpd/mod_fcgid/mod_fcgid-2.3.9.tar.gz
sudo tar zxvf mod_fcgid-バージョン.tar.gz -C /usr/local/src/
cd /usr/loacl/src/mod_fcgid-バージョン
sudo ./configure.apxs
sudo make
sudo make install
configureでこける場合はapxsが入っていない。ので、こうする。
sudo apt-get install apache2-dev
fastcgiについてはhttps://qiita.com/Dr_Sin1/items/e26e2f1ffaa5ea6eebd2を参照。引用しとくと
#アーカイブからダウンロード&解凍
FastCGI Libraryのインストール
curl -O -k -L https://github.com/FastCGI-Archives/FastCGI.com/raw/master/original_snapshot/fcgi-2.4.1-SNAP-0910052249.tar.gz
tar xf fcgi-2.4.1-SNAP-0910052249.tar.gz
# #インストール
cd fcgi-2.4.1-SNAP-0910052249
./configure –prefix=/usr/local
# #fcgio.cppのインクルードがないとmakeに失敗するため追加
mv libfcgi/fcgio.cpp /tmp/original
echo “#include <stdio.h>” > libfcgi/fcgio.cpp
cat /tmp/original >> libfcgi/fcgio.cpp
rm /tmp/original
#
make sudo make install
最初の行は sudo wget urlでOK。
次の行はsudo tar zxvf ファイル名でOK。
php-7.4fpmのインストール
sudo apt install php7.4-fpm
ERROR: [pool www] cannot get uid for user ‘nginx’: Success (0) とか
ERROR: [pool www] cannot get uid for user ‘apache’: Success (0) のエラーが出る場合は
/etc/php/7.4/fpm/pool.d/www.confの47,48行目付近を
listen.owner = www-data
listen.group = www-data
にすると上手くいく場合がある。
モジュールの有効化
sudo a2enmod
必要っぽいものを選ぶ。fastcgiとか。あとはうまくいくまでApacheを再起動、トライ&エラーする。
構文チェックはapache2 -tで。再起動はsudo systemctl restart apache2で。