NginxとMySQL5.5にCactiをインストールする方法
「Nginx + MySQL5.5」との組み合わせに「Cacti」をインストールするのに戸惑ったので記録として残しておきます。
記事は 2013年(Debian 6〜7・MySQL 5.5)の手順です。MySQL 5.5 は 2018年12月にサポートが終わっていて、今の Debian では MariaDB を使います。Debian 13.7 の VPS(さくらのVPS・2GB プラン・3コア)の MariaDB は 11.8.6 でした(2026年11月5日)。
$ mariadb --version
mariadb from 11.8.6-MariaDB, client 15.2 for debian-linux-gnu (x86_64)
$ apt-cache policy cacti | grep Candidate
Candidate: 1.2.30+ds1-1
| 項目 | この記事(2013年) | Debian 13(2026年11月時点) |
|---|---|---|
| Cacti | 0.8.7 系 | 1.2.30 |
| データベース | MySQL 5.5 | MariaDB 11.8 |
| PHP | PHP 5 | PHP 8.4(php8.4-fpm) |
| poller | spine を登録して切り替え | 同じ(cacti-spine 1.2.30) |
| 確認すること | コマンド |
|---|---|
| PHP-FPM のソケット | ls /run/php/ |
| nginx の文法 | nginx -t |
版は Debian のパッケージ一覧(madison) で 2026年11月5日に確認しました。
※ Nginx と MySQL5.5 は既にインストールしてあるものとします。
cactiをインストールすると、Apache2も強制的に一緒にインストールされますので、不要な方が起動しないように設定してください。
MySQL に Cacti 用ユーザー&データベースを作っておくこと。どっちも cacti(小文字)でOK!
apt-get で Cacti のパッケージをインストール
// インストール
# apt-get install cacti cacti-spine
続いて、Cacti が使うテーブルのSQL 文に 「TYPE=MyISAM」 と記述があるのですが、MySQL5.5 からは 「ENGINE=MyISAM」 に変わり、そのまま流し込むことが出来ません。
この為、データベースにテーブルを作ることが出来ないので、「ENGINE=MyISAM」に変換してから手動で流し込みます。cacti.sql の「TYPE=MyISAM」を「ENGINE=MyISAM」 に変換してやります。
// コピー&解凍
# cp /usr/share/doc/cacti/cacti.sql.gz /tmp/
# gzip -d /tmp/cacti.sql.gz
// 変換
# sed s/TYPE=MyISAM/ENGINE=MyISAM/ /tmp/cacti.sql > /tmp/cacti_sed.sql
SQL文を流し込んでやります。
// 流し込み
# mysql -u root -p cacti < /tmp/cacti_sed.sql
次に、Nginx で「http://example.com/cacti/」でアクセス出来るようにしてやります。Cacti の表示プログラムがあるディレクトリからシンボリックリンクを張ります。
// シンボリックリンク作成
# ln -s /usr/share/cacti/site /home/user/public_html/cacti
Cacti に spine のパスを登録して poller を spine にする。
consol -> settings -> Paths -> Spine Poller File Path に /usr/sbin/spine と登録。
consol -> settings -> poller -> Poller Type を spine にする。
これで Cacti を使えるようになるはずです。
おまけでBasic認証を付ける。
※ Basic認証が無くてもCacti画面で認証はありますので不要な人はスルーしてください。
// 編集
# vi /etc/nginx/sites-available/default
// example.com
server {
listen 80;
root /home/user/public_html;
index index.php index.html;
server_name example.com;
// cacti Basic Auth
location /cacti {
auth_basic "cacti";
auth_basic_user_file $document_root/cacti/.htpasswd;
}
// 以下省略
}
Basic認証用のパスワードファイルを新規で作ります。
// 新規作成
# htpasswd -c /home/user/public_html/cacti/.htpasswd ユーザー名
New password:
Re-type new password:
Adding password for user ユーザー名
// .htpasswd の中身
ユーザー名:Ftwtwetwrwj3q6
※ ユーザーを追加する場合は、「-c」のオプションは取りましょう。「-c」があると上書きされます。
Nginx の設定ファイルを読み込む。
// リロード
# /etc/init.d/nginx reload