AIサーバー構築

普段使いのノートPCにLM studio入れて使ってましたが…
思考中、めっちゃ重くなるのと…

やっぱり遅い!

と、言う事で、数年前に中古で買ってメイン機として使っていたMacPro Late2013(通称ゴミ箱)Xeon 12core ram:64GB ssd:1TB D700x2
アップルがIntelMacのサポートを打切り、新しいOSが入れられなくなったので
Ubuntuを入れてAIサーバとして利用しようと考えました。

最初はノートPC同様LM studio入れましたが、ubuntuの日本語入力に慣れないので
ollama & Open WebUIの構成で環境構築しノートPCからWeb経由でアクセスする事としたので、その備忘録です。

ちなみに手順もローカルLLMに相談しながらトライ&エラーを繰り返しました。

ローカルLLM作成手順

以下は、Ubuntu 24.04.4 を USB メモリからインストールし、SSH サーバー、Python 環境、Docker、Ollama、Open WebUI のセットアップを行う手順です。

1. Ubuntu 24.04.4 のインストール

  1. 空の USB メモリ(8 GB 以上)を用意します。
  2. ブートUSB作成ツール を準備します。
  3. Ubuntu ディスクイメージをダウンロードします。
    https://releases.ubuntu.com/noble/ubuntu-24.04.4-desktop-amd64.iso
  4. balenaEtcher でイメージを USB メモリに書き込みます。
  5. MacPro をシャットダウンし、Option キー(Alt)を押しながら電源オンします。
  6. ブートセレクタが表示されたらオレンジのディスクを選択し Enter で進めます。
  7. この時点で日本語は無いのでEnglishで進めます言語選択画面
  8. **アクセシビリティ設定画面…とりあえずそのままNext**
  9. キーボードレイアウト設定画面
  10. インターネット接続画面
  11. アップデート画面:Update Nowボタンを押すと、Updateが始まり、Updateが終わると勝手に画面が閉じる
  12. インストール
  13. インストールの種類
  14. アプリケーション
  15. ディスクのセットアップ
  16. マニュアル・パーティショニング
  17. パーティションの編集
  18. アカウント作成
  19. タイムゾーン設定
  20. 最終確認とインストール実行
     

2. SSH サーバーのインストール

sudo apt install openssh-server
sudo systemctl status ssh
sudo systemctl enable ssh
sudo systemctl start ssh

ポート 22 の開放

sudo ufw status
sudo ufw allow 22
sudo ufw reload
sudo ufw status
sudo ufw enable

3. 日本語化

sudo apt update
sudo apt install -y language-pack-ja
sudo dpkg-reconfigure locales
# 以下を選択:
#   ja_JP.UTF-8 UTF-8
#   ja_JP.UTF-8

4. Python 環境の構築

python3 --version
pip3 --version
sudo apt install python3-pip
sudo apt install python3.12-venv
python3 -m venv venv
source venv/bin/activate   # (venv) で確認できる
# ディスエクト:
(venv)user@userName:deactivate
sudo apt install python-is-python3
python --version

5. Docker のインストール

sudo apt update
sudo apt install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
    -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

リポジトリの追加

echo \
"deb [arch=$(dpkg --print-architecture) \
signed-by=/etc/apt/keyrings/docker.asc] \
https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo groupadd docker
sudo usermod -aG docker <ユーザー名>
newgrp docker sudo apt install docker-ce docker-ce-cli containerd.io \ docker-buildx-plugin docker-compose-plugin docker --version docker compose version

6. Ollama のインストール

# ダウンロードとインストール
wget https://ollama.ai/install.sh
sh ./install.sh
# 状態確認
sudo systemctl status ollama
# 外部からの接続を確認
sudo ss -napt | grep ollama
LISTEN 0 4096 127.0.0.1:11434 0.0.0.0:* users:(("ollama",pid=5449,fd=3))
# .serviceファイルの修正
sudo systemctl edit ollama.service
[Service]
Environment="OLLAMA_HOST=0.0.0.0"
Environment="OLLAMA_ORIGINS=192.168.*,172.*"
# サービスを再起動して再度確認
sudo systemctl restart ollama.service
sudo ss -napt | grep ollama
LISTEN 0 4096 *:11434 *:* users:(("ollama",pid=5548,fd=3))
# モデルのインストール
ollama pull llama3:8b
# モデルの実行
ollama run llama3:8b
# モデルのアンインストール
ollama rm llama3:8b

確認:

$ ollama -v
$ ollama --version
$ systemctl status ollama.service

7. Open WebUI を Docker コンテナとして実行

docker run -d -p 3000:8080 \
    --add-host=host.docker.internal:host-gateway \
    -v open-webui:/app/backend/data \
    --name open-webui \
    --restart always ghcr.io/open-webui/open-webui:latest

e.g. コンテナに入るには:

docker exec -it <コンテナ名またはID> bash

 

ローカルLLM

2016年熊本地震以来、新型コロナの流行など…
色々ありすぎて放置していたサーバーも
なんとか新しいサーバーに引越し開始しました。

そして先日の令和8年熊本地震…

世の中はAIブーム

とりあえず…

サーバーの引っ越しついでに、Wordpressのバージョンアップ!

普段使いのノートPCにローカルLLMを入れ
AI君に「こんな事やりたいんだけど設定ファイル作って!」とか…

結構時間かかるので、その間は別件こなしながら
のんびりやっています。

Webサイトの構築 prologue

はじめに

目的

CMSやSNSについての学習の為、WordPressやOpenPNEのカスタマイズや運用の検証と実習を行う事を目的とする。

前提条件

OSはLinuxであれば何でもいいのだが、使い慣れたCentOSと、現在契約中のGMOクラウドPublicのS1パックに、新たに仮想サーバを構築するものとする。

サーバー環境 GMOクラウド提供のPublicクラウドS1パック
OS CentOS 6.2 kvm
クラウドサーバに用意されているテンプレート

考察

目的の為に、必要なアプリケーションについて考える。

Apache2.2

OS標準のバージョンを利用し、問題があれば変更するものとする。

WordPress4.3.1

公式ページ上には「PHP 5.2.4 以上、かつ MySQL 5.0 以上であれば WordPress は動作します」とあるが、いずれもサポートが終了しているバージョンである為、推奨のバージョンで構築する。

推奨動作環境

PHP 5.6以上
MySQL 5.5以上

OpenPNE3.8.17

今回は、WordPressに主眼を置き、WordPressの推奨環境に合わせて構築する。

推奨動作環境

PHP 5.2以上
MySQL 5.1以上

パッケージの決定

考察結果を元に、導入するパッケージを決定する。

Apache2.2

WEBサーバのフロントエンドとして、OS標準のものを利用する。

MySQL5.5

WordPress・OpenPNEのデータ保持の為必須である。

PHP5.6

WWordPress・OpenPNEのスクリプトの実行の為必須である。

php-mysql

PHPからMySQLにアクセスする為のライブラリである。

WordPress4.3.1

現在最新のWordPress本体である。

OpenPNE3.8.17

現在最新のOpenPNE本体である。

Webサイトの構築 Apache2.2
Webサイトの構築 MySQL5.5
Webサイトの構築 PHP5.6
Webサイトの構築 WordPress4.3.1
Webサイトの構築 OpenPNE3.8.17

WordPressの導入

はじめに

前回作成したWEBサーバに、WordPressを導入する。

今回導入するのは、WordPress 4.3.1

WordPress 4.3.1 の動作環境

WordPress 4.3.1 を動作させる為には以下の環境が必要である。

PHP

バージョン 5.6 以上推奨 ※5.6導入済

MySQL

バージョン 5.5 以上推奨

インストール

以下のモジュールをインストールする。

  • WordPress 4.3.1
  • MySQL 5.5

MySQL 5.5のインストール

CentOS6.2に標準装備されるMySQLは5.1である。
その為まず、5.5のリポジトリを追加する。

[bash firstline=”1″]
yum install http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
[/bash]

デフォルトでは、MySQL5.6がデフォルトとなっている。

yumの–disablerepoと、–enablerepoを使ってMySQL5.5をインストールする。

[bash firstline=”1″]
yum -y install –disablerepo=mysql56-community –enablerepo=mysql55-community mysql-server
[/bash]

次に、MySQL用のPHPライブラリをインストールする。

[bash firstline=”1″]
yum -y install –enablerepo=remi-php56 php-mysql
[/bash]

MySQLを起動する。

[bash firstline=”1″]
/etc/init.d/mysqld start
[/bash]

自動起動の設定

以下のコマンドで、サーバの起動時にmysqldが自動起動するように設定する。

[bash firstline=”1″]
chkconfig mysqld on
[/bash]

    

WordPress 4.3.1の設置

WordPress 4.3.1をダウンロードする。
その為、以下のコマンドで、wgetをインストールする。

[bash firstline=”1″]
yum -y install wget
[/bash]

以下のURLからWordPress 4.3.1を、ドキュメントルードにダウンロードし解凍する。

https://ja.wordpress.org/wordpress-4.3.1-ja.tar.gz

[bash firstline=”1″]
cd /var/www/html
wget https://ja.wordpress.org/wordpress-4.3.1-ja.tar.gz
tar xzvf wordpress-4.3.1-ja.tar.gz
[/bash]

ドキュメントルートに出来た wordpress と言うディレクトリがWordPressのディレクトリであるが
ディレクトリ名が長いので短縮する。

[bash firstline=”1″]
mv wordpress wp
[/bash]

次に、ディレクトリのパーミッションを設定する。

[bash firstline=”1″]
chown -R root.root wp
chmod 705 wp
chmod 705 wp/wp-content
[/bash]

最後にブラウザから以下のURLにアクセスしてみる。

http://hoge9.xyz/wp/



問題なく表示されれば、設置は完了である。

データベースの設定とWordPressの初期化

データベースパラメータの決定

WordPressの初期化を行う為に、以下のパラメータを決定します。

データベース名 wp_hoge9
データベースのユーザー名 hoge9usr
データベースのパスワード h*Ge@pwd
データベースホスト localhost
データベースの接頭辞 wp_

データベースとユーザーの作成

mysqlクライアントを起動し、データベースとユーザーを作成する。

まず、mysqlクライアントを起動する。

[bash firstline=”1″]
mysql
[/bash]

データベースを作成する。

[bash firstline=”1″]
mysql> create database wp_hoge9;
[/bash]

ユーザを作成する。

[bash firstline=”1″]
mysql> create user ‘hoge9usr’@’localhost’ identified by ‘h*Ge@pwd’;
[/bash]

アクセス権限を作成する。

[bash firstline=”1″]
mysql> grant create, select, insert, update, delete
-> on wp_hoge9.* to ‘hoge9usr’@’localhost’
-> identified by ‘h*Ge@pwd’;
[/bash]

更新する。

[bash firstline=”1″]
mysql> flush privileges;
[/bash]

mysqlクライアントを終了する。

[bash firstline=”1″]
mysql> quit
[/bash]

WordPressの初期化

ブラウザから以下のURLにアクセスする。

http://hoge9.xyz/wp/

スクリーンショット 2015-09-27 20.13.59



「さぁ、始めましょう!」ボタンを押下する。

スクリーンショット 2015-09-27 20.27.04



先に決めた、各パラメータを入力し「送信」ボタンを押下する。

スクリーンショット 2015-09-28 2.55.06



画面のテキストエリアに表示された設定文字列をコピーして、wp-config.phpを作成する。

「インストール実行」ボタンを押下する。

スクリーンショット 2015-09-27 20.31.53



サイトの必要情報を入力し「WordPressをインストールする」ボタンを押下する。

スクリーンショット 2015-09-27 20.32.46



成功しました!が表示されれば、設定は完了。

最後に、以下のURLにアクセスし、出来上がったサイトを表示してみる。

http://hoge9.xyz/wp/

スクリーンショット 2015-09-28 3.23.59




おわりに

ここまでの作業でPHPのスクリプトが動作する環境が完成したが、あくまで最低限、動作するという環境である。

セキュリティや、データベースとの連携等については、別途記述するものとする。

WEBサーバの構築 Apache+PHP

はじめに

今回はPHPが動作するWEBサーバを構築する。

※セキュリティに関しては後日設定するものとし、最小の手順で構築する。

前提条件

サーバを構築するにあたり前提条件は以下の通り

仮想サーバ

現在利用中のGMOパグリッククラウドに新規に作成

使用OS

CentOS 6.2 x64 kvm

ドメイン

今回は検証用に以下のドメインを、お名前.comで取得。

hoge9.xyz

※DNS登録は、お名前.comのDNSレコード設定で、完了しているものとする。

インストール

以下のモジュールをインストールする。

  • httpd
  • php

※PHPについては、後程インストールするWordPressを考慮し5.6とする。

httpdのインストール

[bash firstline=”1″]
yum -y install httpd
[/bash]

phpのインストール

CentOS6.2に標準装備されるPHPは5.3である、その為まず、5.6のリポジトリを追加する。

[bash firstline=”1″]
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
[/bash]

通常なら、このまま、phpをインストールできるはずなのだが、mirrors.fedoraproject.org に接続する際に、接続エラーが起きる。
原因は、epelリポジトリのミラー「https://mirrors.fedoraproject.org/」のSSL証明書が更新された事にあるらしい。

そこで、まず、以下のコマンドを実行し、NSSをアップデートする。

[bash firstline=”1″]
yum –disablerepo=epel update nss
[/bash]

そして、以下のコマンドで、アップデートする

[bash firstline=”1″]
yum update
[/bash]

ここまでで、問題が出なければ、以下のコマンドで、PHP5.6をインストールする。

[bash firstline=”1″]
yum -y install –enablerepo=remi-php56 php
[/bash]

設定

以下の設定ファイルを編集します。

  • /etc/httpd/conf/httpd.conf
  • /etc/php.ini

httpd.confの編集

276行目付近のServerNameを設定する。

[bash firstline=”276″]
ServerName hoge9.xyz:80
[/bash]

402行目付近のDirectoryIndexにindex.phpを追加する。

[bash firstline=”402″]
DirectoryIndex index.html index.html.var index.php
[/bash]

php.iniの編集

202行目付近のshort_open_tag = Offをコメントアウトする。
※Onにすることにより、PHP短縮タグの利用が可能となる。

[bash firstline=”202″]
; short_open_tag = Off
[/bash]
※デフォルトはOnの為コメントアウトするのみでよい。

起動と動作確認

httpdを起動して、動作確認を行う。

httpdの起動

以下のコマンドでhttpdを起動する。

[bash firstline=”1″]
/etc/init.d/httpd start
[/bash]

ブラウザで以下のURLにアクセスし、動作確認を行う。

http://hoge9.xyz


スクリーンショット 2015-09-27 16.31.46

    

index.html

ドキュメントルート(/var/www/html)に以下の内容で作成する。

[html]
<!DOCTYPE HTML>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>HTMLサンプル</title>
</head>
<body>
<p>HTMLサンプル</p>
<p>Hello World!</p>
</body>
</html>
[/html]

ブラウザで以下のURLにアクセスし、動作確認を行う。

http://hoge9.xyz/index.html


スクリーンショット 2015-09-27 18.04.12

index.php

ドキュメントルート(/var/www/html)に以下の内容で作成する。

[html]
<?php
$myname = "hoge9.xyz";
?>
<!DOCTYPE HTML>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>PHPサンプル</title>
</head>
<body>
<p>PHPサンプル</p>
<p><?php echo ‘Hello, World!’ ?></p>
<p><?= $myname ?></p>
</body>
</html>
[/html]

ブラウザで以下のURLにアクセスし、動作確認を行う。

http://hoge9.xyz/index.php


スクリーンショット 2015-09-27 17.12.33

自動起動の設定

以下のコマンドで、サーバの起動時にhttpdが自動起動するように設定する。

[bash firstline=”1″]
chkconfig httpd on
[/bash]
    

おわりに

ここまでの作業でPHPのスクリプトが動作する環境が完成したが、あくまで最低限、動作するという環境である。

セキュリティや、データベースとの連携等については、別途記述するものとする。

CentOS6.2環境構築

今回、GMOクラウド社の、Publicクラウド上に、仮想サーバーを立てるにあたり、CentOS6.2を導入する事としました。

仮想サーバーを構築する際に、各リソースの設定と共に、OSテンプレートを選択する箇所があったが、これまで、ずっと、CentOSでやってきた事もあって、選択肢はCentOSに絞り込み、以前PleskのPHPバージョンで苦労した経験もあったので、管理ツール無しのCentOS6.2に決めて、仮想サーバーを構築しました。
仮想サーバーの構築が完了し、立ち上げてみると、やはり、どうやら最小構成のCentOS…
ここから、一歩一歩、インストールを行っていかなければなりません。

これは、再構築に備えての、記録です。

まず、自分に必要な機能を列挙してみます。

Webサーバー Apache
メールサーバー Postfix + Dovecot
CMS WordPress 4.3.1

そして、前提条件は、以下の通りです。

レンタルサーバー GMOクラウド Public S1パック
仮想サーバOS CentOS 6.2 kvm
外部IPアドレス 153.122.8.18
ドメイン名 hoge9.xyz      ※検証用に新たに取得したドメイン
ホスト名 hoge9.xyz

 
WEBサーバの構築 Apache+PHP
WordPressの導入

クラウド

3年間使い続けたDualCore Xeonの専用サーバーを解約し、

とうとう、Publicクラウドに乗り換えました。

今まで、お客様の環境で、vCloud Directorは使ったことあったのですが、
今回は、KVMですが、特に問題なく使えています。
※まぁ、リソースの変更の場合再起動が必要ですが…

とりあえず、一通り、サービスのインストール及び設定を終え、
今まで使っていたサービスは、すべて元通り使えるようになりました。
※後日、この過程は、備忘録に記録させて貰う予定です。

リソース変更時の再起動で思い出したのですが…

最近、お客様のPrivateクラウドのブレード構成を変更したのですが、
その際、仮想サーバーはおろか、サービスも停止せずに、
瞬時に交換終了したのには、驚きました。
※SSHでの接続も、切れることはありませんでした。
ほんと、最近の仮想化技術って…

RAID5のディスクの交換でさえ、ハラハラしてしまう私って…(苦笑)

Adobe Creative Cloud

長年使い続けてきた、Adobe Illustrator Photoshop Dreamweaver Fireworks

今回、バージョンアップするのをやめて、
Creative Cloudにしてみた。

月額使用料はかかるけど、
常に最新バージョンが使えて快適

そして、何より助かるのが、Windows Mac どちらでも使えるところ。

今回、ヘッダ画像を作成するのにも、使わせてもらっています(笑)

FusionDrive化 その3

目を覚まし、状態を確認すると…

無事リカバリー完了…
ほっ!

早速、Disk Speed Test

はやっ!

とりあえず、ベンチは終了。

起動も速くなりました。
動画ファイルの変換もサクサクです。

おや?

ふと見ると、TimeMachineのステータスがエラーに…

ネットで調べると、どうやら、FusionDriveの場合、
非FusionDriveのCapsule データは使えないらしい…?
リカバリーには使えたのにね???

それは後回しにして、
Capsuleデータを、別のNASへコピーして削除…
新たにCapsuleデータを作り直して、
TimeMachineも正常動作するようになりました。

かなり、快適な環境になった Mac mini
このまま、しばらく様子を見ていこうと思います。

おわり…

 

カテゴリー: OSX

FusionDrive化 その2

mac miniにHDD + SSDが積めたところで、
とりあえず、mac miniをリカバリーモードで起動してみます。

ディスクユーティリティを起動してみると、
HDDとSSDが認識されています。
とりあえず、HDDのパーティションを削除し、
再度、パーティションの作成をしてみるも、
HDDと SSDそれぞれにパーティションは作成できるが、
二つのディスクとして認識されてしまいます。

ネットや雑誌の記事で色々調べると…

どうやら、ディスクユーティリティは、
バージョン13 ビルド444が必要らしい !

で…早速確認してみるとwww
バージョン13 ビルド428

念のために丸ごとコピーしておいた、
予備のHDDを外付けで起動して、
ディスクユーティリティのバージョンを確認してみると…
BINGO! (^^)
バージョン13 ビルド444
OSのアップデートで更新されていました。

早速、そのディスクユーティリティを起動し、
恐る恐るパーティション作成してみると、
容量 1.26TB の論理ボリュームグループが出来ています。


再度、リカバリーモードで起動し、
TimeMachineバックアップから復元…

無事復元される事を祈りながら…
※TimeMachineからの丸ごと復元は初体験
ドキドキ!

おやすみなさい

つづく…

カテゴリー: OSX