投稿者: manualmaton Page 30 of 253

弁当箱のフィードバック結果。

本格的に弁当を作り始めたのが4月の中頃。そこから、

  • 大きな二段のドーム型
  • 小さめの二段のドーム型

と変えていき、以下の知見を得ました。

  • 蓋はドーム型。盛り付けが映えて蓋が洗いやすい。
  • もう少し洗うパーツを減らしたい。
  • 下手に小さくすると運ぶときに倒れてしまう。

そこで、こちらを選択。

フタをドーム状にした弁当箱、一段です。

それをこの形に盛り付けました。そこで思ったことは

  • おかずに合わせてご飯の量を自由に決められる。(丼もやりやすい)
  • 洗うときのパーツが激減。(今までは4~5。こちらは2~3)
  • まず倒れる心配がない平らな形状。

と、ほぼ理想通り。後は、これに合うような盛り付けをもっと考えていくフェイズです。

七夕の統率者戦。(統率者メモ2024/07/08)

とんでもない灼熱の中、涼しい室内で統率者を行いました。

『モダンホライゾン3』構築済みのみの戦い

こちらが担当したのは青緑の土地ランプ。

様々な土地コンボを満載しているだけあって

《暗黒の深部》と《演劇の舞台》のコンボが揃い、

戦場にマリット・レイジ降臨。

その後、エネルギーデッキにやられたものの2人ほど倒せた結果となります。

バトル帯での対戦

《高名な者、ミシュラ》では身代わり合成機とのコンボが出たものの、無限を決められて敗北。

同卓の方に《工匠の主任、ウルザ》のデッキを貸与して

こちらは《13代目ドクター&ヤズミン・カーン》のドクターデッキ。

場は制圧したものの、対面の《誇らしい守護者、ユウマ》の超・長期的アドバンテージの前に敗北。

結局、持ってきたボードゲームでは遊べなかったものの、

自分が使っているデッキを人に回してもらうことでよりよいプレイングの参考になりましたし、ユウマは使いたい統率者だったということで、今後の構築の指針になりました。

同卓いただきましてありがとうございます。また、お疲れ様でした。

Growi、再構築と今後の予定。

起きたこと

関東一円に発生した落雷の影響で停電発生。その時にGrowi用/リバースプロキシとして動かしていたミニPC(Chuwi Herobox)の電源がつかない事象が発生です。

  • Redmine用サーバ:OK
  • Nextcloud用サーバ:OK
  • Growi/Redmineへのリバプロ:NG

ある意味で、日常のログのみのGrowiだけで済んだのは不幸中の幸い。

生きているNextcloud用サーバにGrowiだけでも新規で入れることにします。

取り急ぎの対処: Ubuntu 20.04にGrowi v7.xを導入。

ここが結構詰まりました。自宅環境はUbuntu20.04だったので、割と勝手が違っていたのです。

元々入っていたnodeのバージョンが低かった

sudo curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash
sudo aptitude install nodejs

として、14→18に修正。

検証として使っていたmongodのデータが邪魔をしていた

mongodbもそれに伴い再設定を行いました。

sudo apt purge mongo*

として設定ファイルを含めて全削除。

sudo mv /var/lib/mongodb /path/to/backup/directory/mongo_$(date +%Y%m%d)

で既存データも全て退避させます。

DNSの切り替え

これは一瞬で済みました。

Growiの再インストール

ここからはこの手順通りに。

https://barrel.reisalin.com/books/growi/page/ubuntu-2204growi-v7x

OSのバージョンが一段落ちていてもなんとかインストールまで済ませました。

今後の課題

「自宅用サーバが一つ壊れた」という事実に揺るぎはなく。

新たなPCを購入する必要がありますが、今使っているChuwi の Heroboxのような安価でファンレスPCがない(後継機からファンがつくようになりました)問題に直面しています。

とはいえ、ファンレスが熱暴走に弱いというのもまた事実ですし、昨今のWebアプリがCPUパワーを相当に必要とすることからも、抜本的なハードウェアの再考に迫られています。

息抜きの軽ゲー。(ボードゲーム『ジャイプル』ソロプレイ)

ちょっとした息抜きに『ジャイプル』のソロバリアントを行いました。

ルールは先に示したとおりです。

一本目を一点差で敗北後、二本目と三本目は快勝。

勝ったゲームは共に価格が高い商品を固め取りできたのも幸いです。

そして、たアップグレードトークンも、没入感が段違い。

重いゲームが買える値段であるために、かなり覚悟を決めた商品ではありますが、お気に入りのゲームですので手にしておいてよかったです。

紫陽花の撮り納めと輪行。

話は一週間ほど前。

毎年恒例である王子・飛鳥山の紫陽花撮影をしてきました。

「ついでだから」とブロンプトンも携えて。

  • リクセン&カウルのリアアタッチメントを廃して
  • 常時輪行袋を携帯するように
  • それに伴い、ハンドルにつけていた小物入れをサドルに移動

と、装備を原点回帰。いつでも輪行できるようにしたという形。

自転車の走行は快適。気がつけばレインボーブリッジの袂まで進み、

東京タワーも納めることができました。

「今日はここで自転車を走らせよう」という気分ですぐにいける構成は正しかったです。

情報カードのクリップボード、差し替え。

何かと便利で使用を続けている情報カード。

カードが散らばりやすいという欠点はあるためにB6のクリップボードを利用してきました。

上が使っていたもの。

  • 留め具の力が予想以上に強く、取り回しがしづらい
  • 構造上、タイトルのところを挟まってしまうのでメモの題名や概要を書けない

を解消するため、下のプラスチック製に切り替えです。

こうすることで、

  • 上部が参照しやすくなり
  • クリップの力がほどよいために書きやすく

なりました。地味に下に出っ張りがあるので紙が落ちるのをある程度防いでくれるのもお気に入り。

この手の文具は即時性が命なので、カスタムしがいがあります。

Ubuntu 20.04のOpenSSLのEOL対応並びにOpenSSHの脆弱性対応

概要

  • Ubuntu 20.04をインターネットに公開している
  • 諸々の事情で22.04にアップグレードできない
  • 2023/09/11にサポート終了となったOpenSSLの1.1.1をアップグレードしたい。
  • OpenSSHの脆弱性、CVE-2024-6387 の対応を行いたい

方を対象としています。

参考環境

OS:Ubuntu 20.04

  • OpenSSLのバージョン確認
openssl version -a
OpenSSL 1.1.1f  31 Mar 2020
built on: Wed May 24 17:14:51 2023 UTC
platform: debian-amd64
options:  bn(64,64) rc4(16x,int) des(int) blowfish(ptr) 
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -fdebug-prefix-map=/build/openssl-mSG92N/openssl-1.1.1f=. -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAESNI_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
OPENSSLDIR: "/usr/lib/ssl"
ENGINESDIR: "/usr/lib/x86_64-linux-gnu/engines-1.1"
Seeding source: os-specific
  • OpenSSHのバージョン確認
ssh -V
OpenSSH_8.2p1 Ubuntu-4ubuntu0.9, OpenSSL 1.1.1f  31 Mar 2020

参考とした手順

実施する前の留意点

  • コピペだけで済むように、エディタを使わない手順にしています。
  • 実際に筆者が実施した手順をそのまま載せています。typo等はご容赦ください。
  • 作業影響が極めて大きいため、作業時間の見積や日時調整は迅速かつ丁寧に行ってください。
    • 特にmake / make testは思っている以上に時間がかかります。
  • この手順では、sslのパスが変わります。同一サーバ内の他のプログラムがsslを参照している場合は、特に注意してください。

さっくりとはならない手順

  1. システム全体のバックアップ
  2. 【OpenSSL】必要なライブラリをインストールします。
  3. 【OpenSSL】githubレポジトリから最新安定版のソースコードをダウンロードします。
  4. 【OpenSSL】ソースからインストールしていきます。
  5. 【OpenSSL】設定を行います。(コンフィグを反映させ、パスを通します)
  6. 【OpenSSL】バージョンアップを確認します。
  7. 【OpenSSL】自動アップデートを無効化します。
  8. システム全体の再起動を行います。(1回目)
  9. 【OpenSSH】コンフィグに必要なディレクトリの作成を行います。
  10. 【OpenSSH】インストールに必要なパッケージをインストールします。
  11. 【OpenSSH】作業用ディレクトリに移動します。
  12. 【OpenSSH】ソースをダウンロードします。
  13. 【OpenSSH】OpenSSHをソースからビルドします。
  14. システム全体の再起動を行います。(2回目)
  15. 【OpenSSH】バージョンアップを確認します。

実施した手順

全体のバックアップを取得します。

任意の方法でシステム全体のバックアップを取ります。とはいえ、EOL/脆弱性対応のため切り戻しは基本的に許されません。

必要なライブラリのインストール

sudo aptitude install build-essential zlib1g-dev libssl-dev libpam0g-dev libselinux1-dev libkrb5-dev checkinstall zlib1g-dev git

aptitudeを用いています。必要に応じてaptを使ってください。

【OpenSSL】root昇格

OpenSSLをソースコードからコンパイルしてインストールする一連の作業は管理者権限で実行します。

sudo su -

【OpenSSL】ソースコードの取得

  • 作業用ディレクトリに移動
cd /hoge && pwd

任意のディレクトリを指定します

  • git clone
git clone https://github.com/openssl/openssl -b openssl-3.3.1

2024/07/03現在の最新版をダウンロードします。

※root昇格済みなのでsudoが不要であることにご注意ください

  • ディレクトリ移動
cd openssl

【OpenSSL】ソースからインストール

  • コンフィグ
./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared zlib
  • コンフィグ成功時の出力
Configuring OpenSSL version 3.3.1 for target linux-x86_64
Using os-specific seed configuration
Created configdata.pm
Running configdata.pm
Created Makefile.in
Created Makefile
Created include/openssl/configuration.h

**********************************************************************
***                                                                ***
***   OpenSSL has been successfully configured                     ***
***                                                                ***
***   If you encounter a problem while building, please open an    ***
***   issue on GitHub <https://github.com/openssl/openssl/issues>  ***
***   and include the output from the following command:           ***
***                                                                ***
***       perl configdata.pm --dump                                ***
***                                                                ***
***   (If you are new to OpenSSL, you might want to consult the    ***
***   'Troubleshooting' section in the INSTALL.md file first)      ***
***                                                                ***
**********************************************************************
  • make
make

makeは時間がかかります。状況を時折確認しながら待ちましょう。

  • 整合性確認
make test

make 同様に時間がかかります。

  • インストール
make install

【OpenSSL】インストール後の設定

  • 設定ファイル追記
cat <<- __EOF__ | tee -a /etc/ld.so.conf.d/openssl-3.3.1.conf
/usr/local/ssl/lib64
__EOF__
  • 設定反映
ldconfig -v
  • 既存プログラムの退避
mv /usr/bin/c_rehash /path/to/backup/c_rehash.$(date +%Y%m%d)

任意の退避ディレクトリを指定します

mv /usr/bin/openssl /path/to/backup/openssl.$(date +%Y%m%d)

任意の退避ディレクトリを指定します

  • パスを通す
cat <<- __EOF__ | tee -a /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/ssl/bin"
__EOF__
  • 通したパスを反映
source /etc/environment
  • パス確認
echo $PATH

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/ssl/bin"

と表示されることを確認します

【OpenSSL】バージョンアップ後の確認

openssl version -a
OpenSSL 3.3.1 4 Jun 2024 (Library: OpenSSL 3.3.1 4 Jun 2024)
built on: Wed Jul  3 02:04:25 2024 UTC
platform: linux-x86_64
options:  bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DZLIB -DNDEBUG
OPENSSLDIR: "/usr/local/ssl"
ENGINESDIR: "/usr/local/ssl/lib64/engines-3"
MODULESDIR: "/usr/local/ssl/lib64/ossl-modules"
Seeding source: os-specific
CPUINFO: OPENSSL_ia32cap=0xfffa3203578bffff:0x7a9

これで、Ubuntu20.04でもOpenSSL3.3.1を利用することが可能になりました。

システム全体の再起動(1回目)

  • システムの再起動を行います。
sudo reboot

【OpenSSL】自動アップグレード無効

強制的に3.3系に上げるので、その後、1.1.xがアップグレードされる可能性を防ぎます。

  • apt を使用する場合
sudo apt-mark hold openssl
  • aptitude を使用する場合
sudo aptitude hold openssl

これに続けて、CVE-2024-6387の対応を行います。

【OpenSSH】ディレクトリ作成と設定

sudo mkdir /var/lib/sshd && sudo chmod -R 700 /var/lib/sshd/ && sudo chown -R root:sys /var/lib/sshd/

【OpenSSH】作業用ディレクトリ移動

cd /hoge && pwd

任意のディレクトリを指定します。

【OpenSSH】ソースのダウンロードと展開

  • ソース取得
wget -c http://mirror.exonetric.net/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz

上記CVEの脆弱性に対応したバージョンを用います。

  • ソース展開
tar -xzf openssh-9.8p1.tar.gz
  • ディレクトリ移動
cd openssh-9.8p1

【OpenSSH】展開したソースコードをインストール

  • OpenSSLの位置を確認
which openssl
  • 結果確認
/usr/local/ssl/bin/openssl

本手順でSSLのバージョンアップを行った場合の環境となります。

  • コンフィグ
./configure --with-kerberos5 --with-md5-passwords --with-pam --with-selinux --with-privsep-path=/var/lib/sshd/ --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/ssl

--with-ssl-dir=/usr/local/sslは、opensslがあるディレクトリを指定します。

  • make
make
  • インストール
sudo make install

システム全体の再起動(2回目)

  • システムの再起動を行います。
sudo reboot

【OpenSSH】バージョンアップ確認

  • バージョン確認

この時点でSSH接続できていれば、ほぼ設定完了です。

ssh -V
OpenSSH_9.8p1, OpenSSL 3.3.1 4 Jun 2024

バージョンアップされていることを確認します。

自動アップグレード無効

強制的に9.x系に上げるので、その後、8.xがアップグレードされる可能性を防ぎます。

  • apt を使用する場合
sudo apt-mark hold openssh-server
  • aptitude を使用する場合
sudo aptitude hold openssh-server

システム全体の確認

  1. ログインできることを確認します。
  2. 他のサービスが正常に稼働していることを確認します。

検証結果:ノートPCへの単体Growi導入。

これの結果となります。

  • 中古PCに
  • NWに繋げず(つまり、クライアントLinuxのみで)
  • アプリを動かす

限定環境での感想です。

結論:モバイル環境下でのGrowi単体運用は難しい。

結論から言ってしまうと、この形。以下、理由を述べていきます。

理由1:重い

昨今のWebアプリの宿命と言えます。特にサーバーサイドレンダリングを重視しているGrowi v7以降は、低電圧版CPUでは満足に動かせません。(ビルドに15分以上かかりました)

理由2:スペックが低い機器は重いため、すぐ書ける・気軽に書ける特性が損なわれている。

Chromebookを選んでいた理由でもあります。

紙と同じぐらいの速度や携帯性を求めているので、重くしたのでは本末転倒です。

理由3:バッテリー消費。

これも、小さくない欠点でした。クライアントとサーバを兼ねるため、CPUにかかる負荷は増大。それにつれてバッテリーも消費してしまいます。

理由4:検証機を兼ねているノートPC

こちらは個人的な所見。

検証を兼ねているので、かなり頻繁にOSの再インストールを行います。そのたびにバックアップやリストアをするのは面倒です。

そういうわけで、「PCに沿ったアプリを選定する」大切さを学びました。

秘密の鍵による超特性素材採取。

『ライザのアトリエ3』終盤になって手に入る各キャラクターの最強武器。

  • パトリツィア
  • フェデリーカ

などは投入できる素材が宝石やインゴットなどで固められています。

これらは超特性を付与するのが難しいので、ちょっとした技が必要です。

超特性おさらい

『ライザのアトリエ3』のシステムであり、既存の3つの特性の他につけられる特別な特性です。

  • 無限ジェム稼ぎを可能にする(超純度)
  • 属性値を更に上げる(超濃度)
  • コアアイテムのクリティカルを確定させる(必中クリティカル)
  • ロールレベルを上げる(英雄/守護者/救護者の心得)

など、いずれも強力なものばかり。

ただし、これには「素材からしか引き継がれない」という制約があります。

つまり、超特性を付与した調合素材(宝石やインゴットなど)からは引き継がれず、地道に素材集めをするしかありません。

前述したように、元から「宝石」「インゴット」を持つ素材は限られているので鍵の力を使います。

秘密の鍵「レア採取ポイント出現」

ここでは、「宝石」を持つ素材を集めるケースです。

必要なのは秘密の鍵のアドベンチャー効果『レア採取ポイント出現』。(アンコモン/レアに発現)

続いて、ゴールデンアックスが必要です。効果1の採取ランクと効果2の採取量アップをもたせておきます。

これらを装備した状態でネメド地方の沿岸灯台までファストトラベルします。

灯台近くにある木が視界に入っている状態で、レア採取ポイント出現の鍵を使います。

木全体が光り、超特性付きの素材が採取可能になります。

採取道具を斧(ゴールデンアックス)に切り替え、チャージスイングで一気に取ります。

効果2が発言した状態なら、一回のフルスウィングで20〜25個程度のトライホーンが採取可能です。

これは、宝石を持つ数少ない素材の一つ。しかも、木から取れるのでチャージスイングで効率的に採取可能です。

あとは、これらを用いて調合/リビルドを行います。

投入可能素材が宝石(必須素材のアルクァンシェル含む)とインゴットと制約のあるパトリツィアの最強武器「エフロレッセンス」に超特性「英雄の心得」を付与することができました。

Ubuntu 20.04 / nginx環境でgrowiをv6.x→v7.0.xにアップグレード。(nginxリバースプロキシのWebSocket設定)

概要

長らくUbuntu 20.04で動かしているgrowi。こちらもv7.0.xにアップグレードできることを確認しました。

Apacheと同様、nginx環境でも、WebSocketを適切に設定する必要がありました。

環境

さっくりとした手順

  1. nodeのアップグレードを行います。
  2. growiサービスを停止します。
  3. growiのバージョンアップを行います。
  4. growiサービスを再開します。
  5. nginxのリバースプロキシ設定を書き換え、nginxサービスの再起動を行います。
  6. バージョンアップを行います。

nodeのアップグレード

node -v

OSが少々古いため、Ubuntu 20.04のnodeはv18.16.0。Growi7系の対象外だったので、nodeを最新安定版に変えるところからスタートします。

  • n packageのインストール
sudo npm install -g n
  • nでnode 20系の安定版をインストール
sudo n --stable
  • バージョンアップ確認
node -v

20.15.0を確認します。

growiのアップグレード前のサービス停止

  • growiのステータス確認(停止前)
systemctl status growi.service

※ サービススクリプト名は自分の環境に合わせます。
※ active(running)を確認します

  • growiのサービス停止
sudo systemctl stop growi.service
  • growiのステータス確認(停止後)
systemctl status growi.service

inactive (dead)を確認します

growiのアップグレード

  • growiディレクトリの移動
cd /opt/growi

自分の環境に合わせます。

  • 必要パッケージのインストール
sudo aptitude install git-lfs

git-lfsを入れないとclone/build時に画像が表示されません

  • lfs -pull
sudo git lfs pull
  • リリースタグ取得
sudo git fetch --tags
  • リリースタグ確認
sudo git tag -l

2024/06/30現在のv7系最新版、v7.0.11があることを確認しました。

  • gitのバージョンを一時的に退避
sudo git stash
  • チェックアウト
sudo git checkout 【バージョン】

上述した通り、v7.0.11を入力しました。

  • yarn
sudo yarn

v6.xよりも時間がかかります。

  • アプリのビルド
sudo yarn app:build

こちらも時間がかかります。

アップグレード後のgrowiサービス開始

  • 再開前のステータス確認
systemctl status growi.service

inactive (dead)を確認します

  • サービス再起動
sudo systemctl start growi.service
  • 再開後のステータス確認
systemctl status growi.service
サービススクリプトを[growi]にしている場合

active (running)を確認します

nginxのバーチャルファイルを編集

v7.xは、WebSocketによる通信設定を正常に行わないと既存ドキュメントの編集ができません。(編集画面が空白になります)

そのため、nginxの設定を見直します。

  • 既存のgrowiバーチャルファイルを退避
sudo mv /etc/nginx/sites-available/growi.conf /path/to/backup/directory/growi.conf.$(date +%Y%m%d)

大幅に変更する必要があるため、cpではなくmvします。

  • 新規の設定ファイルを作成

【】内を自分の環境に合わせます。

cat <<- __EOF__ | sudo tee -a /etc/nginx/sites-available/growi.conf
upstream growi {
       server 【growiのIPアドレス】:3000;
}

server {
        listen 80;
        server_name 【サーバ名】;
        server_tokens off;
        return  301 https://$host$request_uri;
        access_log 【growiのアクセスログのフルパス】;
        error_log 【growiのエラーログのフルパス】 warn;
}

map $http_upgrade $connection_upgrade {
    default Upgrade;
    ''      close;
}

server {
        listen 443 ssl;
        server_name 【サーバ名】;
        server_tokens off;
        ssl_session_timeout 1d;
        ssl_session_cache shared:SSL:50m;
        ssl_session_tickets off;
        ssl_dhparam /etc/nginx/dhparam.pem;
        ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
        ssl_prefer_server_ciphers off;
        add_header Strict-Transport-Security 'max-age=63072000';


        ssl_certificate 【サーバ証明書のフルパス】;
        ssl_certificate_key 【サーバ秘密鍵のフルパス】;

        access_log /var/log/nginx/growi/ssl_access.log;
        error_log /var/log/nginx/growi/ssl_error.log warn;


    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Port $server_port;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://growi;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        proxy_read_timeout 900s;
    }
}

__EOF__

こちらの設定ファイルはGrowiの公式ドキュメントに沿ったものです。

  • nginxの構文チェック
sudo nginx -t
  • nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
  • nginx: configuration file /etc/nginx/nginx.conf test is successful

を確認します。

  • nginx再起動
sudo systemctl restart nginx.service

バージョンアップ確認

  1. 設定したgrowiのサイトにアクセスします。
  2. チェックアウトしたバージョンであることを確認します。
  3. 既存のページにアクセスし、編集できること(編集画面が白くならないこと)を確認します。

Page 30 of 253

Powered by WordPress & Theme by Anders Norén