Project

General

Profile

セットアップ

技術文書
09/03/2026

==============================================================================

ろぜたん (HP Z8 G4) ミドルウェア&AI環境 構築用完全版コマンドリスト

構成: PostgreSQL 18 (/data), PHP 8.4, Nginx (Mainline), Ollama (/data2)

==============================================================================

------------------------------------------------------------------------------

1. 基本リポジトリの準備(CRBとEPELの解放)

------------------------------------------------------------------------------

開発用パッケージ(devel等)の依存関係を解決するために隠しリポジトリ「CRB」を有効化

dnf config-manager --set-enabled crb

Perlモジュールなどの依存解決用にEPELリポジトリをインストール

dnf install -y epel-release

------------------------------------------------------------------------------

2. PostgreSQL 18 のインストールと超爆速U.2 SSD(/data)への配置

------------------------------------------------------------------------------

PostgreSQL公式リポジトリを追加

dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm

OS標準の古いPostgreSQLモジュールを無効化

dnf -qy module disable postgresql

メタデータキャッシュを最新化(最新バージョンを確実に見つけるため)

dnf makecache

PostgreSQL 18 サーバーと開発用パッケージ(pgvector等で後々必要)をインストール

dnf install -y postgresql18-server postgresql18-devel

Intel P5520 U.2 SSD がマウントされている /data 側にデータ保存用ディレクトリを作成

mkdir -p /data/pgsql

作成したディレクトリの所有者を postgres ユーザーに変更

chown postgres:postgres /data/pgsql

ディレクトリの権限を 700(postgresユーザーのみアクセス可能)に設定

chmod 700 /data/pgsql

データベースの初期化を実行(データ保存先を /data/pgsql に指定)

sudo -u postgres /usr/pgsql-18/bin/initdb -D /data/pgsql

systemdのPostgreSQLサービス設定ファイルを開き、データ保存先パスを /data/pgsql に書き換え

sed -i 's|^Environment=PGDATA=.*|Environment=PGDATA=/data/pgsql/|' /usr/lib/systemd/system/postgresql-18.service

systemdの設定を再読み込み

systemctl daemon-reload

PostgreSQL 18 の自動起動を有効化し、今すぐ起動

systemctl enable --now postgresql-18

------------------------------------------------------------------------------

3. PostgreSQL データベースとユーザーの作成

------------------------------------------------------------------------------

ろぜたん用のデータベースユーザーを作成(パスワードは後で変更可能)

sudo -u postgres psql -c "CREATE USER roze_db_user WITH PASSWORD 'your_password_here';"

ろぜたん用のメインデータベースを作成し、所有者を roze_db_user に設定

sudo -u postgres psql -c "CREATE DATABASE roze_main_db OWNER roze_db_user;"

roze_main_db に対するすべての権限を roze_db_user に付与

sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE roze_main_db TO roze_db_user;"

------------------------------------------------------------------------------

4. PHP 8.4 のインストール

------------------------------------------------------------------------------

PHPの最新版を提供するRemiリポジトリを追加

dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm

OS標準のPHPモジュール設定をリセット

dnf module reset php -y

Remiリポジトリの PHP 8.4 モジュールを有効化

dnf module enable php:remi-8.4 -y

PHP-FPMと、DB接続・Web開発に必須となる各種拡張モジュールをインストール

dnf install -y php-fpm php-cli php-pgsql php-mbstring php-xml php-gd php-curl php-zip php-json php-intl php-bcmath php-opcache

PHP-FPM の自動起動を有効化し、今すぐ起動

systemctl enable --now php-fpm

------------------------------------------------------------------------------

5. Nginx (Mainline最新版) のインストール

------------------------------------------------------------------------------

OS標準の古いNginxパッケージが競合を起こすため、関連パッケージを完全に削除

dnf remove -y nginx nginx-core nginx-filesystem

Nginx公式のメインライン版(最新機能版)リポジトリ定義ファイルを作成

cat << 'EOF' > /etc/yum.repos.d/nginx.repo
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/9/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
EOF

リポジトリのキャッシュをクリア

dnf clean all

Nginx公式リポジトリから最新版の Nginx をインストール

dnf install -y nginx

Nginx の自動起動を有効化し、今すぐ起動

systemctl enable --now nginx

------------------------------------------------------------------------------

6. Ollama(ローカルLLM実行エンジン)のインストールと大容量U.2 SSD(/data2)への配置

------------------------------------------------------------------------------

Ollamaの展開に必要な圧縮解凍ソフト zstd をインストール

dnf install -y zstd

Ollamaの公式インストールスクリプトをダウンロードして実行

curl -fsSL https://ollama.com/install.sh | sh

WD SN640 U.2 SSD がマウントされている /data2 側にAIモデル保存用ディレクトリを作成

mkdir -p /data2/ollama

作成したディレクトリの所有者を ollama ユーザーに変更

chown ollama:ollama /data2/ollama

ディレクトリの権限を 775 に設定

chmod 775 /data2/ollama

Ollamaのsystemdサービス設定を上書き(カスタマイズ)するためのディレクトリを作成

mkdir -p /etc/systemd/system/ollama.service.d

環境変数 OLLAMA_MODELS を定義し、モデルのダウンロード先を /data2/ollama に強制する設定ファイルを作成

cat << 'EOF' > /etc/systemd/system/ollama.service.d/environment.conf
[Service]
Environment="OLLAMA_MODELS=/data2/ollama"
EOF

systemdの設定を再読み込みして変更を反映

systemctl daemon-reload

Ollama サービスを再起動して新しい保存先設定を適用

systemctl restart ollama

==============================================================================

これで構築は完了です!

最後に「ollama run llama3.1」を実行してAIモデルをダウンロード&起動できます。

==============================================================================

ip a
ping google.com
exit
grubby --update-kernel=ALL --args="nvme_core.default_ps_max_latency_us=0 pcie_aspm=off"
grubby --info=DEFAULT

1. ホスト名を kkcloud4 に変更

hostnamectl set-hostname kkcloud4

2. ulimit(プロセス・ファイルディスクリプタ)の限界突破

cat < /etc/security/limits.d/99-limits.conf

  • soft nofile 1048576
  • hard nofile 1048576
  • soft nproc 1048576
  • hard nproc 1048576
    root soft nofile 1048576
    root hard nofile 1048576
    root soft nproc 1048576
    root hard nproc 1048576
    EOF

3. systemd管理下のサービス向け限界突破

mkdir -p /etc/systemd/system.conf.d
cat < /etc/systemd/system.conf.d/99-custom.conf
[Manager]
DefaultLimitNOFILE=1048576
DefaultLimitNPROC=1048576
DefaultTasksMax=1048576
EOF

cat < /etc/sysctl.d/99-custom-limits.conf
vm.max_map_count = 1048576
kernel.pid_max = 4194304
net.ipv4.neigh.default.gc_thresh3 = 8192
net.netfilter.nf_conntrack_max = 4194304
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 15
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 65535
EOF

sysctl --system
reboot
mkdir /home/config/script -p
/home/config/script/system_limit.sh
free
nproc --all
lsblk

1. 既存のパーティション情報を完全にクリア

wipefs -a /dev/nvme1n1
wipefs -a /dev/nvme0n1

2. XFSファイルシステムでフォーマット

mkfs.xfs -f /dev/nvme1n1
mkfs.xfs -f /dev/nvme0n1

3. マウントポイント(ディレクトリ)の作成

mkdir -p /data
mkdir -p /data2

4. /etc/fstab への自動マウント登録(UUIDを使って安全に指定します)

echo "UUID=$(blkid -s UUID -o value /dev/nvme1n1) /data xfs defaults,nofail 0 0" >> /etc/fstab
echo "UUID=$(blkid -s UUID -o value /dev/nvme0n1) /data2 xfs defaults,nofail 0 0" >> /etc/fstab

5. マウントの実行

mount -a

6. マウントが成功したか確認

df -hT | grep data
df -j
df -h
history -a
dnf update -y
dnf install -y epel-release
dnf install -y tar bzip2 make automake gcc gcc-c++ pciutils elfutils-libelf-devel kernel-devel kernel-headers
history -a
reboot
dnf install -y dnf-plugins-core
dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel9/x86_64/cuda-rhel9.repo
dnf clean all
dnf module install -y nvidia-driver:latest-dkms
dnf install -y cuda
dnf install -y cuda-toolkit
history -a
reboot
nvidia-smi
lspci | grep -i vga
lspci | grep -i nvidia
lsmod | grep nouveau
modprobe nvidia
dmesg | grep -iE "secure|nvidia|nvrm|lockdown"

1. 今入っているクローズド版ドライバのロックを解除して削除

dnf module remove -y nvidia-driver
dnf module reset -y nvidia-driver

2. Blackwell必須の「オープンカーネルモジュール版」をインストール!

dnf module install -y nvidia-driver:open-dkms

3. 変更をカーネルに反映させるために再起動!

reboot

Files