Skip to content

Linux

AmazonLinux2 へ docker と docker-compose をインストールする

Amazon Linux2 では Amazon Extras で Docker が提供されています。 docker-compose をインストールしたい場合、CPU アーキテクチャに応じた docker-compose のバイナリを選択する必要があります。

ファミリー (一例) アーキテクチャ
t2, t3, t3a amd64
t4g arm

今回は Amazon Linux2 へ docker と docker-compose をインストールする手順をメモしておきます。

Terraform でカーネル 5.10 対応 Amazon Linux2 (ARM) をデプロイする

以前に以下のメモを書きました。

Amazon Linux 2 AMI が、カーネル 5.10 で利用可能に で言及されているますが、カーネル 5.10 に対応した Amazon Linux2 がリリースされています。 この最新 Amazon Linux2 を EC2 にデプロイする Terraform 用の .tf ファイルをメモしておきます。

Linux で連番のディレクトリ / ファイルを作成する

Linux で連番のディレクトリやファイルを作成するには以下を実行します。

1
2
mkdir dir{1..3}
touch file{1..3}.txt

これで意図した通り、連番のディレクトリ / ファイルが作成されました。

1
2
3
4
5
6
7
8
# ls -l
total 0
drwxr-xr-x 2 root root 6 Dec 18 22:17 dir1
drwxr-xr-x 2 root root 6 Dec 18 22:17 dir2
drwxr-xr-x 2 root root 6 Dec 18 22:17 dir3
-rw-r--r-- 1 root root 0 Dec 18 22:17 file1.txt
-rw-r--r-- 1 root root 0 Dec 18 22:17 file2.txt
-rw-r--r-- 1 root root 0 Dec 18 22:17 file3.txt

CML 上の Ubuntu は UI 表示と実機のインターフェイス番号がずれている

Cisco CML2 上で Ubuntu を配置すると最初のインターフェイス名は ens3 です。

file

ですが、実際に Ubuntu 上で認識されるインターフェイスは ens2 から開始しますので注意が必要です。

1
2
3
4
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 52:54:00:0a:97:51 brd ff:ff:ff:ff:ff:ff

Rocky Linux8 + Nginx + PHP 8.1 + h5ai で DirectoryIndex を見栄え良くする

以前に Nginx 関連で下記のメモを書きました。

今回は Rocky Linux 8 上の Nginx と PHP 8.1 環境へ、更に h5ai をインストールして DirectoryIndex の見栄えを改善してみましたので、手順をメモしておきます。 Nginx と PHP をインストールするまでの手順は過去のメモと同じです。

Rocky Linux8 に Nginx と remi から PHP 8.1 をインストールする

Rocky Linux 8 へ Nginx と PHP 8.1 をインストールする手順をメモしておきます。 PHP は remi からインストールしました。

Nginx のインストール

Nginx をインストールします。

1
2
dnf config-manager --add-repo https://s3.sig9.org/repos/nginx.repo
dnf install -y nginx

PHP のインストール

remi から PHP をインストールします。 敢えて現時点で最新のバージョン 8.1 をインストールしてみました。

1
2
dnf -y install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
dnf -y install php81

php-fpm の設定

php-fpm の設定ファイルは /etc/opt/remi/php81/php-fpm.d/www.conf にあります。 ユーザやグループ等の設定を書き換えます。 デフォルトでは listen.acl_users で POSIX ACL が有効になっていた為、これを無効化して listen.ownerlisten.group を利用出来るようにしています。

1
2
3
4
5
6
sed -i -e "s/^user = apache/user = nginx/g" /etc/opt/remi/php81/php-fpm.d/www.conf
sed -i -e "s/^group = apache/group = nginx/g" /etc/opt/remi/php81/php-fpm.d/www.conf
sed -i -e "s/^;listen.owner = nobody/listen.owner = nginx/g" /etc/opt/remi/php81/php-fpm.d/www.conf
sed -i -e "s/^;listen.group = nobody/listen.group = nginx/g" /etc/opt/remi/php81/php-fpm.d/www.conf
sed -i -e "s/^;listen.mode = 0660/listen.mode = 0660/g" /etc/opt/remi/php81/php-fpm.d/www.conf
sed -i -e "s/^listen.acl_users = apache/;listen.acl_users = apache/g" /etc/opt/remi/php81/php-fpm.d/www.conf

Nginx の設定

Nginx の設定ファイルのうち、/etc/nginx/conf.d/default.conf を以下のように修正します。 拡張子 .php のファイルは UNIX ソケット経由で php-fpm へ転送します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
cat << 'EOF' > /etc/nginx/conf.d/default.conf
server {
    listen       80;
    server_name  localhost;

    location / {
        root   /usr/share/nginx/html;
        index  index.php index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        root           /usr/share/nginx/html;
        fastcgi_pass   unix:/var/opt/remi/php81/run/php-fpm/www.sock;
        fastcgi_index  index.php;
        include        fastcgi_params;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    }
}
EOF

PHP テスト用ファイルの作成

phpinfo を呼び出すテスト用ファイルを作成します。

1
2
3
4
5
cat << 'EOF' > /usr/share/nginx/html/info.php
<?php
  phpinfo();
?>
EOF

Nginx と php-fpm の起動

ここまでの準備が完了したら Nginx と php-fpm を起動&自動起動設定します。

1
2
systemctl start nginx.service php81-php-fpm.service
systemctl enable nginx.service php81-php-fpm.service

テスト用ファイルの表示

ブラウザから http://ADDRESS/info.php へアクセスし、phpinfo の内容が表示されれば正常です。

file

参考

/etc/nginx/conf.d/default.conf の初期内容

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
server {
    listen       80;
    server_name  localhost;

    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

Rocky Linux8 へインターネット上からリポジトリ定義を追加し Nginx をインストールする

以前に Rocky Linux に Nginx を公式リポジトリからインストールする というメモを書きました。 意味的には全く同じですが、リポジトリの定義を (エディタで新規作成するのでは無く) インターネット上に配置したものをダウンロードする手順へ変更しましたので改めてメモしておきます。 今回は Rocky Linux8 上で作業しました。