dockerのalmalinux上でwebサーバーを構築
docker上でalmalinuxのコンテナを起動し、apache、php、perlをセットアップします。
ubuntuのコンテナでも同様の記事があるのでそちらもご参考に
ubuntu版はこちら
Dockerでalmalinuxのコンテナを起動
まず、dockerでalmalinuxのコンテナを起動します。
PS> docker run -tid -p 80:80 --name alma almalinux
PS> docker exec -it alma bash
既存パッケージを更新
[root@ef8534cdfa65 /]# dnf check-update
[root@ef8534cdfa65 /]# dnf upgrade -y
httpd(apache)をインストール・起動
[root@ef8534cdfa65 /]# dnf install -y httpd
[root@ef8534cdfa65 /]# httpd -k start
phpをインストール
[root@ef8534cdfa65 /]# dnf install -y php
phpには、モジュール版とCGI版の2つがありますが、今回はCGI版を動かします。
[root@ef8534cdfa65 /]# php-fpm
もしも、
[17-Jun-2022 17:54:11] ERROR: unable to bind listening socket for address '/run/php-fpm/www.sock': No such file or directory (2)
のようなエラーが出た場合、
[root@ef8534cdfa65 /]# mkdir /run/php-fpm/
[root@ef8534cdfa65 /]# php-fpm
とすれば大丈夫です。
テスト用に、/var/www/cgi-bin/test.phpを作成します。
(エディタはデフォルトでviが入っています。なぜvimはないのか…)
<?php phpinfo(); ?>
最後にlocalhost/cgi-bin/test.php
にアクセスし、phpのシステム情報が表示されれば成功です。
perlをインストール
[root@ef8534cdfa65 /]# dnf install -y perl
テスト用に、/var/www/cgi-bin/test.plを作成
#!/usr/bin/perl
print "Content-Type: text/html\n\n";
print "perl worked!\n";
test.plのパーミッションを、単体で実行できるように変更します
[root@ef8534cdfa65 /var/www/cgi-bin]# chmod +x test.pl
あとはphpのときと同様に、localhost/cgi-bin/test.pl
にアクセスし、無事に動いていることが確認できると思います。