ググって出てきた記事が軒並み古くて役に立たなかったので、令和八年最新版として書いておく。

やり方

  1. CPANMのインストール
    curl -L https://cpanmin.us | perl - App::cpanminus
    
  2. CPANMのパスを.cshrcに書く
    私はZSHを使っているため.zshrcに書いているが、デフォルト環境はcshのはずなので.cshrcに書けば成り立つと思う。
    echo PATH=${HOME}/perl5/bin:${PATH}
    
  3. 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

さくらのレンタルサーバーにLet's EncryptのDNS-01 チャレンジの証明書を持ち込む方法。自動更新できないので実用性はないが、一時的に使う場合に有用。

前提条件

DNS-01 チャレンジの証明書を既に作っている。

やり方

  1. 発行した証明書をhomeに移す
    sudo cp /etc/letsencrypt/live/<サイトディレクトリ>/*.pem .
    sudo chown $USER:$USER privkey.pem fullchain.pem
    
  2. さくらのコンパネから設定するドメインのSSL設定を開く
  3. SSL証明書の種類を選択→独自SSL
  4. 秘密鍵にprivkey.pemをアップロードする
  5. SSL証明書インストールでfullchain.pemの中身を張り付けて登録する

2022/03/02の公式ニュースによると以下の通りあり、転送容量の上限が撤廃されていた。これまでアクセス増に伴う転送制限に過敏になっていたが、もうそこは考えなくてもいいようだ。これでこそ大容量ストレージが生かせるというものだ。

さくらのレンタルサーバを2022年2月15日以前にご契約されたお客さま※、さくらのレンタルサーバ リセール向けサービスおよびさくらのマネージドサーバをご契約のお客さまを対象に、転送量の無制限化を実施いたします。これにより、さくらのレンタルサーバ / マネージドサーバをご利用いただいている全てのお客さまの転送量が無制限となります。

因みに昔はファイルストレージ的な使い方をして詰まらせてしまい、コンテンツブーストで回避していたことが何度かあった。

更新日:
投稿日:

そういやSSI使ったことなかったなと思ったので。

やり方

  1. .shtmlを作る
  2. CGI・PHP・SSI を利用したい | さくらのサポート情報の書式を見てコードを書く

任意の処理結果を出させる例

現在の年を出す場合のやり方

  1. 以下の内容でhoge.plを作成

    #!/usr/local/bin/perl
    
     print qx(date "+%Y");
    
  2. chmod 705 hoge.pl
  3. 以下の内容でpiyo.shtmlを作成
    <!--#exec cmd="./hoge.pl"-->
    

注意点

同一パスにあるコマンドしか実行できないため、以下のような内容は動かない

グローバルなコマンドは動かない

<!--#exec cmd="date +%Y"-->

こんなことをしても動かない

<!--#echo VAR="date +%Y"-->

サブシェルを書いても動かない

<!--#echo VAR="$(date +%Y)"-->

参考

さくらのレンタルサーバーでよく見るHTTP誘導のエラー画面

ここ1年くらいのことだと思うが、さくらのレンタルサーバーを利用しているサイトで以下のようなエラーが出てくることが目立つようになった。

「以下HTTPのURLにアクセスすることで~」と書かれているが、恐らく踏んでも意味がない。何故なら勝手にhttpsとして解釈されるためだ。少なくともChromeやEdgeはそのような挙動をする。

この場合ブラウザのURL欄をhttpsからhttpに直接書き換えてやればアクセスできるのだが、そんなことをする人間はオタクを除き、まずいないだろう。

またそこまでしてもアクセスできない場合がある。それはフレームサイトの場合だ。<frameset>が使われているサイトの場合、モバイルブラウザで開けない可能性がある。少なくともAndroid Edgeでは開けないし、このツイートに関する一連の流れを見ていて、恐らく一般的にはそうなのではないか?と感じたからだ。

HTMLの後方互換性は長らく謳われていたと記憶しているが、そろそろIEの存在のように、葬り去られる時が近づいているのかもしれない。そもそもhttpsでないサイトは危険で、フィッシング詐欺などの被害にあったり、個人情報の漏洩に繋がるとされており、こういったサイトは認められない風潮があるので、ある程度は仕方がないのかもしれない。