セットアップ
技術文書
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