お知らせ

現在サイトのリニューアル作業中のため、全体的にページの表示が乱れています。

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)"-->

参考

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

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

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

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

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

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

ドメインをValue-Domainで管理していてネームサーバーもValue-Domainを利用している場合に、さくらのレンタルサーバーで利用しているメールドメインにSPF, DKIM, DMARCのレコードを設定する方法。

手順

以下はexample.comというドメインを利用していると仮定して書いている。またGmailに弾かれない様にするための最低限の設定であるため、なりすまし防止などの高度な設定をする場合は設定画面の項目をよく確認して対応してほしい。

  1. さくらのレンタルサーバーのコントロールパネルにログイン>ドメイン/SSL>ドメイン/SSL
    コントロールパネル>ドメイン/SSL>ドメイン/SSL
  2. 該当ドメインの設定>DKIM設定
    該当ドメインの設定からDKIM設定
  3. DMARCレコードにチェック>設定する
    DMARCレコードにチェック>設定する
  4. 該当ドメインの設定>DNSレコード
    該当ドメインの設定>DNSレコード
  5. レコード情報を確認し、ValueDomainの設定画面に転記する
    レコード情報を確認し、ValueDomainの設定画面に転記する
  6. Value-DomainDNS設定に、上記内容を以下の要領で転記する
    txt @ v=spf1 a:www9999.sakura.ne.jp mx ~all
    txt _dmarc v=DMARC1; p=none; aspf=r; adkim=r
    txt rs20240201._domainkey v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn6x1qUbFlFnEiIGYlJUCQdPszZhmTIJz7HRNNqRLiS2XcfhgMKGf1q04tzz/SBLOX8iksVvfiKzQRRKi8GitcOZ46FU6HXinb+Q4Uih9rHfZi3LHMm6a/Y5zPg5tikkDPW5068o9Vy47CbML6WHd8DcR6wfLokS8JcsImkdPj4U2begce+eUdESkJbUWD3w 8pHCq2RAGlF7POF4gYCyZszEgD7ZpK69JS0FtxyCSP5dUVk5beCZhArIXbosh9hwXwU0tEt0VlO4VQokYgYadVA6DKfv+LuV66AwjC5r36P4fwYtLpd989p5D28+OWBV02bPaUCRvAWTlWB43sNQERQIDAQAB
    
  7. GMailに送信し、SPF, DKIM, DMARCがPASSになっていればOK
    paste-image-2024-3-7_21-2-20-739.png

注意点

DKIMレコードはさくらのコンパネ上では改行されているが半角スペースで繋げて書く。またダブルクォートは外して書く

サーバーサイドでMarkedを使いたかったので。Node.js 20系はC++やclangのバージョンが古くエラーになると思われるので18系にした

前提

  • さくらのレンタルサーバースタンダードプラン
  • zshを利用している

手順

所要時間はさくらのレンタルサーバースタンダードプランで2時間丁度くらい

  1. nodebrewを落としてくる
wget git.io/nodebrew
  1. .zshrcにパスを通す

    1. PATH=${HOME}/.nodebrew/current/bin:${PATH}
  2. コンパイルして使えるようにする

perl nodebrew setup
## バージョン確認
# nodebrew ls-remote
## プロセスが殺されるのを防ぐためにniceで優先度を下げている
## コンパイルには2h程かかる
nice -n 20 nodebrew compile v18.19.0
nodebrew use v18.19.0

試したけどうまくいかなかったやつ

nvm

niceが効かないのでプロセスキルされて終わる

フルスクラッチコンパイル

OpenSSL周りに何か問題があるらしくコンパイルがこける。バージョンが合ってないのかも

# OpenSSL
wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz
tar -zxvf openssl-1.1.1w.tar.gz
cd openssl-1.1.1w
./config --prefix=/home/$USERNAME/openssl --openssldir=/home/$USERNAME/local/openssl
make
make install

# Node.js
wget https://nodejs.org/dist/v18.9.1/node-v18.9.1.tar.gz
tar -zxvf node-v18.9.1.tar.gz
cd node-v18.9.1
./configure --shared-openssl --shared-openssl-includes=/home/$USERNAME/openssl/include/
export LD_LIBRARY_PATH=/home/$USERNAME/openssl/lib
make install DESTDIR=/home/$USERNAME/local PREFIX=

所感

Node.jsなので負荷が心配だったが、Markedでブログ記事をMarkdownからHTMLに落とす程度なら問題なく動いて安心した。