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のシステム情報が表示されれば成功です。
phpinfo_alma

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にアクセスし、無事に動いていることが確認できると思います。

コメントする