2026/06/19(金)さくらのレンタルサーバーにCachetを設置したログ
ステータス管理画面のCachetをさくらのレンタルサーバーに設置したときのログ。
開発版の3.xを利用しているが、軽く叩いた感じはとりあえず使える気がする。
確認環境
確認時点でのさくらのレンタルサーバーではSQLiteでの動作は出来なかった。これはPHP拡張がJSONをサポートしていないからと思われる。
| Env | Ver |
|---|---|
| Cachet 3.x | 2b0fc68988309647bdc0ba8e0b40862a3b8ddef4 |
| cachethq/core | 87be2387c06264c672dad94c87d00408bf34536d |
| PHP | 8.3.31 |
| MySQL | 8.0 |
Cachetには正確なバージョン番号がなさそうなのでコミットハッシュを書いている。最新のハッシュのコードが入っていることを確認済。
またCachet 3.xの中身は事実上からっぽで、vendor/配下にあるcachethq/coreが本体なので、そちらのバージョンも併記している。
手順
以下のコマンドはすべてzshで実行しているため、さくら標準のcshでは動かない箇所があるかもしれない。
composerがなかったのでcomposerを入れた。ここから先は
~/bin/にPATHが通っていることを前提で進めるphp -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php -r "if (hash_file('sha384', 'composer-setup.php') === 'c8b085408188070d5f52bcfe4ecfbee5f727afa458b2573b8eaaf77b3419b0bf2768dc67c86944da1544f06fa544fd47') { echo 'Installer verified'.PHP_EOL; } else { echo 'Installer corrupt'.PHP_EOL; unlink('composer-setup.php'); exit(1); }" php composer-setup.php php -r "unlink('composer-setup.php');" mkdir ~/bin mv composer.phar ~/bin/composerCacheの取得と設置
git clone -b 3.x https://github.com/cachethq/cachet.git cd cachet composer install --no-dev -o # composerでエラーが出てupdateしろといわれたためupdate、これでインストールまでしてくれる composer update # 本体のアップデート composer update cachethq/core # 環境変数の編集 cp .env.example .env.envの編集
デフォルトでAPP_DEBUGがtrueなのでfalseにした方が良い。まだ開発版のためかTIMEZONEを設定してもトップ画面には反映されない。管理画面の一部では反映される。APP_DEBUG=false APP_TIMEZONE="Asia/Tokyo" APP_URL=https://status.example.com DB_CONNECTION=mysql DB_HOST=DBホスト DB_PORT=3306 DB_DATABASE=データベース名 DB_USERNAME=データベース名 DB_PASSWORD=パスワードCachetのセットアップ
php artisan key:generate php artisan vendor:publish --tag=cachet php artisan migrate # envを閲覧不能にする cat <<'EOF' | tee .htaccess <Files .env> deny from all </Files> EOF # 403になることを確認 curl https://status.example.com/.env php artisan cachet:make:user- crontの設定。ステータスページ表示する機能しかないのにやる意味があるのかは謎。
* * * * * php /home/<username>/www/path/to/artisan schedule:run >> /dev/null 2>&1 - さくらのコンパネからドメインを開き、Web公開フォルダーを
path/to/cachet/publicにする。
備考
Cachet v3.x is currently in development and not yet released. The following instructions are intended for development purposes only and are subject to change.
現時点では上記のようにあり、開発版なのでバグはあると思われる。
トラブルシューティング
Illuminate\Database\QueryExceptionが出る
SQLiteを使っていて次のようなエラーが出る場合、MySQLに変えると直る。恐らくさくらのレンサバに入ってるSQLite拡張がjson_eachをサポートしてないのが原因。
!Illuminate\Database\QueryException
Internal Server Error
SQLSTATE[HY000]: General error: 1 no such table: json_each (Connection: sqlite, SQL: select *
from "webhook_subscriptions" where ("send_all_events" = 1 or exists (select 1 from
json_each("selected_events") where "json_each"."value" is component_updated)))
Expand vendor frames
app/Http/Middleware/TrustProxies.php :32
あとがき
ステータスページを作る以上の機能が中区、外形監視はしてくれなかった
外形監視をして、その結果をステータスに表示してくれるツールだと思っていたら、ステータスの設定を行う機能と、それを表示する機能しかなかった。
つまり手動でメンテナンス中とか出したり、外形監視からAPIを蹴って何か表示するのには使えるが、このツールにはそれ以上の機能はないようだ。
これはダッシュボードを作る画面とAPIを提供してくれるツールということだ。
親切だったユーザー作成ウィザード
install.phpにアクセスして設定を書き換えるみたいな、一瞬ではあるものの脆弱な瞬間がないのは便利だと思った。
簡単なものなら自作できそう
Cachetは画面操作によってステータスを変えたり、履歴を出したりできるが、curlを投げて落ちてたら画面に表示くらいならパパっと作れそうだなと思った。
とはいえ、画面のリッチさや、APIからも操作できることなどを考えると、そんなのを作るのも大変なので、Cachetのようなツールを使った方が楽なのは間違いない。
ほぼ自分しか使ってないサーバーのためにこんなリッチなものが必要なのか…?
まぁあった方が豪華だし…みたいな…。
保守やオペのコストの方が高いので結局使わずじまいになる可能性も無きにしも非ずではある。
2026/01/30(金)さくらのレンタルサーバーに任意のCPANモジュールを入れて使う方法
投稿日:
ググって出てきた記事が軒並み古くて役に立たなかったので、令和八年最新版として書いておく。
やり方
- CPANMのインストール
curl -L https://cpanmin.us | perl - App::cpanminus - CPANMのパスを
.cshrcに書く
私はzshを使っているため以下に.zshrcでの設定例を記述する。デフォルト環境はcshなので、cshの人は.cshrcに同じようなことを書けば成り立つはずだ。echo PATH=${HOME}/perl5/bin:${PATH} - local::libをインストールする
local::libはroot以外にあるCPANモジュールを使うためのものらしい。これを自分のホームディレクトリ配下に入れるようにコマンドを流す。cpanm --local-lib=~/perl5 local::lib && eval $(perl -I ~/perl5/lib/perl5/ -Mlocal::lib)
使い方
以下のようなコマンドを流すとパスを指定してCPANモジュールを取得・展開できる。
# 書式
cpanm -l <パス> <モジュール名>
例えば以下を流すとpwd配下にextlibディレクトリが生成され、IP::Geolocation::MMDBがダウンロードされて展開される。勿論、依存関係も勝手に解決してくれる。
cpanm -l extlib IP::Geolocation::MMDB
モジュールを利用するときはライブラリの配置されているルートを指定し、次にモジュール名を指定するとうまくいくようだ。
use lib './extlib/lib/perl5';
use IP::Geolocation::MMDB;
あとがき
https://cpanmin.us/を見に行くと以下の記述があり、辿ってみると日本の人が作っていてちょっと驚いた。
# This is a pre-compiled source code for the cpanm (cpanminus) program.
# For more details about how to install cpanm, go to the following URL:
#
# https://github.com/miyagawa/cpanminus
2025/08/13(水)さくらのレンタルサーバーにLet's EncryptのDNS-01 チャレンジの証明書を持ち込む
さくらのレンタルサーバーにLet's EncryptのDNS-01 チャレンジの証明書を持ち込む方法。自動更新できないので実用性はないが、一時的に使う場合に有用。
前提条件
DNS-01 チャレンジの証明書を既に作っている。
やり方
- 発行した証明書をhomeに移す
sudo cp /etc/letsencrypt/live/<サイトディレクトリ>/*.pem . sudo chown $USER:$USER privkey.pem fullchain.pem - さくらのコンパネから設定するドメインのSSL設定を開く
- SSL証明書の種類を選択→独自SSL
- 秘密鍵にprivkey.pemをアップロードする
- SSL証明書インストールでfullchain.pemの中身を張り付けて登録する
2024/04/16(火)いつの間にかさくらのレンタルサーバーの転送容量上限が撤廃されていた
2022/03/02の公式ニュースによると以下の通りあり、転送容量の上限が撤廃されていた。これまでアクセス増に伴う転送制限に過敏になっていたが、もうそこは考えなくてもいいようだ。これでこそ大容量ストレージが生かせるというものだ。
さくらのレンタルサーバを2022年2月15日以前にご契約されたお客さま※、さくらのレンタルサーバ リセール向けサービスおよびさくらのマネージドサーバをご契約のお客さまを対象に、転送量の無制限化を実施いたします。これにより、さくらのレンタルサーバ / マネージドサーバをご利用いただいている全てのお客さまの転送量が無制限となります。
因みに昔はファイルストレージ的な使い方をして詰まらせてしまい、コンテンツブーストで回避していたことが何度かあった。
2024/02/12(月)さくらのレンタルサーバーでSSIを使う
投稿日:
そういやSSI使ったことなかったなと思ったので。
やり方
.shtmlを作る- CGI・PHP・SSI を利用したい | さくらのサポート情報の書式を見てコードを書く
任意の処理結果を出させる例
現在の年を出す場合のやり方
以下の内容で
hoge.plを作成#!/usr/local/bin/perl print qx(date "+%Y");chmod 705 hoge.pl- 以下の内容で
piyo.shtmlを作成<!--#exec cmd="./hoge.pl"-->
注意点
同一パスにあるコマンドしか実行できないため、以下のような内容は動かない
グローバルなコマンドは動かない
<!--#exec cmd="date +%Y"-->
こんなことをしても動かない
<!--#echo VAR="date +%Y"-->
サブシェルを書いても動かない
<!--#echo VAR="$(date +%Y)"-->



