PowerPoint 2024ダウンロード版のライセンス認証手順
PowerPoint 2024インストール版(サブスクではない)をAmazonで購入しました。
Amazonで購入すると、ライセンスキーと併せて下記の手順が送られてきます。
- www.office.com/setup/ にアクセスします。
- 指示に従い、25桁のプロダクトキーを入力します。
- ご利用したい Microsoft アカウントでサインインします。Microsoft アカウントをお持ちでない場合は、作成してください。
- Windows PC または Mac に Office アプリをダウンロードしてください。
上記ののダウンロードからインストールまでは割と楽に手順を踏めたのですが、PowerPoint初回起動後のライセンス認証がわかりにくかったので、キャプチャできた画面を使って紹介します。
初回起動すると操作は行えず、下記のダイアログが表示されるので「Microsoft365を購入」をクリックしてみます。
Microsoft365購入画面が表示されるだけなので閉じます。
この間の操作を忘れてしまったのですが、再び何かのダイアログが表示され、サブスクの誘惑に屈することなく操作をしていたら下記の画面が出たので、「プロダクトキーを所有している場合」をクリック。
キャプチャしていませんが、このあとプロダクトキー入力画面が出たので、プロダクトキーを入力すると下の画面が表示されたので、再度「プロダクトキーを所有している場合」をクリック。
このあと再度プロダクトキー入力画面が出たので、プロダクトキーを入力すると、このライセンス認証画面が出たので、メールアドレスを入力(プロダクトキーを入力した方がよかったかもしれません)。
これでライセンス契約同意画面が表示されるので「同意する」をクリック。
このあとも使用可能になる前の設定が表示されますが、たいした問題ではないので省略。
うっかりすると間違えてサブスクリプション購入してしまうので、ダウンロード版を購入された場合はサブスクリプション契約しないよう、注意しましょう。
CentOS9 + Perl5.38.2でPSGI環境を構築する方法
この記事は「Movable Type Advent Calendar 2024」の7日目の記事です。
CentOS9 + Perl5.38.2でPSGI環境を構築する方法を紹介します。
CentOS9のVMを作成すると、Perlはデフォルトで5.32.1になりますが、5.38.2を個別にビルドします。
また、MovableType(PSGI)の利用を前提としてウェブサーバーとして動作できるまでの手順も併せて紹介します。
動作確認にはVirtualBoxを使用しています。
1.mysql関連パッケージのインストール
# rpm -Uvh https://repo.mysql.com/mysql80-community-release-el9-1.noarch.rpm
# dnf install mysql-community-server --nogpgcheckdnf install mysql-community-server --nogpgcheck
# dnf install mysql-community-devel --nogpgcheck
2.gccとmakeのインストール(Perlのビルド用)
# dnf install make gcc
3.httpd関連のインストール
# dnf install httpd httpd-tools httpd-devel
4.firewalldの停止
# systemctl status firewalld
# systemctl stop firewalld
# systemctl disable firewalld
5.httpdの常駐化
# systemctl is-enabled httpd
# systemctl enable httpd
6.mysqlのパスワード変更(赤字が初期パスワード、青字が変更後のパスワード)
# systemctl start mysqld
# grep 'temporary password' /var/log/mysqld.log
2024-11-26T12:52:05.760486Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: ei#(n;i9uf$k
mysql> ALTER USER 'root'@'localhost' identified BY 'rJOIaea%#%(JO';
Query OK, 0 rows affected (0.03 sec)
7.Perl5.38.2のビルドとインストール
インターネットからダウンロードしたPerlのアーカイブ(tar.gz)を任意のフォルダにアップロードして、コマンドを実行します。
デフォルトのPerlとは異なるディレクトリにインストールします。
# tar zxvf perl-5.38.2.tar.gz
# cd perl-5.38.2/
# ./Configure -des -Dprefix=/usr/local/perl-5.38.2./Configure -des -Dprefix=/usr/local/perl-5.38.2
# make
# make install
8.Perlのパス張り替え
Perl5.32.1から5.38.2に張り替えます。
# perl -v
This is perl 5, version 32, subversion 1 (v5.32.1) built for x86_64-linux-thread-multi
:
# cd /usr/bincd /usr/bin
# mv perl perl--
# ln -s /usr/local/perl-5.38.2/bin/perl /usr/bin/perl
# perl -v
This is perl 5, version 38, subversion 2 (v5.38.2) built for x86_64-linux
:
9.cpanmでPerlモジュールのインストール
MovableTypeの動作に必要なモジュールをインストールします。
# perl -MCPAN -e 'install App::cpanminus'perl -MCPAN -e 'install App::cpanminus'
:
Would you like to configure as much as possible automatically? [yes] yes
:
# /usr/local/perl-5.38.2/bin/cpanm HTML::Entities/usr/local/perl-5.38.2/bin/cpanm HTML::Entities
# /usr/local/perl-5.38.2/bin/cpanm DBI/usr/local/perl-5.38.2/bin/cpanm DBI
# /usr/local/perl-5.38.2/bin/cpanm DBD::mysql/usr/local/perl-5.38.2/bin/cpanm DBD::mysql
10.postfixのインストール
# dnf -y install postfixdnf -y install postfix
11.SeLinuxの無効化
エディタで/etc/selinux/configを開き、
SELINUX=enforcing
を
SELINUX=disabled
に変更します。
# vi /etc/selinux/config
12.メールサーバの設定
/etc/postfix/main.cfと/etc/postfix/master.cfを編集します。
詳細は「さくらのVPSに送信メールサーバを設定する方法」を参照してください。
12.httpd起動
starman起動前に通常のCGIでMovableTypeの管理画面にアクセスします。
# systemctl start httpd
13.PSGI環境構築のためのパッケージとモジュールのインストール
# dnf install perl-ExtUtils-MakeMaker
# /usr/local/perl-5.38.2/bin/cpanm/usr/local/perl-5.38.2/bin/cpanm --sudo CGI::Compile--sudo CGI::Compile
# /usr/local/perl-5.38.2/bin/cpanm --sudo CGI::CompilePlack
# /usr/local/perl-5.38.2/bin/cpanm --sudo Plack
# /usr/local/perl-5.38.2/bin/cpanm --sudo XMLRPC::Transport::HTTP::Plack
その他、
CGI::Parse::PSGI
CGI::PSGI
も必要ですが、インストールされていたので省略。
インストールされていることの確認は、モジュールのバージョン表示コマンドを実施。
# perl -MCGI::PSGI -e 'print $CGI::PSGI::VERSION . "\n";'
# perl -MCGI::Parse::PSGI -e 'print $CGI::Parse::PSGI::VERSION . "\n";'
14.httpd.conf修正
# vi /etc/httpd/conf/httpd.conf
PSGI動作のために下記のLoadModuleディレクティブを追加
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
ServerNameディレクティブにVMのIPアドレスを設定。
ServerName 192.168.56.100
一番最後に下記の内容を追加(上記のmod_proxyを設定しておかないと機能しません)。
<IfModule mod_proxy.c>
ProxyPass /cgi-bin/mt/ http://localhost:5000/cgi-bin/mt/
ProxyPassReverse /cgi-bin/mt/ http://localhost:5000/cgi-bin/mt/
</IfModule>
修正後、httpdを再起動します。
# systemctl restart httpd
起動後、/etc/httpd/logs/error_logにエラーが出ていないことを確認。
私はServerNameが設定されていなかったのと、LoadModuleが設定されていないところで躓きました(error_logに表示されているのをみつけて解決)。
15.mt.pid用ディレクトリ作成
ここではMTインストールディレクトリ(/var/www/cgi-bin/mt)配下に作成します。
# mkdir -p /var/www/cgi-bin/mt/pids
16.mt-config.cgiに環境変数追加
下記の1行を追加します。
PIDFilePath /var/www/cgi-bin/mt/pids
17.starman起動
# cd /var/www/cgi-bin/mt
# starman -l 0.0.0.0:5000 --pid /var/www/cgi-bin/mt/pids/mt.pid ./mt.psgi
18.ブラウザからMT管理画面にアクセス
今回の例では、ポート番号5000番を指定して、
http://192.168.56.100:5000/cgi-bin/mt/mt.cgi
にアクセスします。
これでMT管理画面が表示されればOKです。
「MTDDC Meetup Tokyo 2024」の発表スライド
2024年11月23日、「MTDDC Meetup Tokyo 2024」が開催され、久しぶりに登壇させて頂きました。
今回は「プラグインよもやま話」というタイトルでお話ししました。
内容は各種プラグインの作り方がメインで、Perlやプログラムがわからない人でも理解できる程度のサンプルを使って、わかりやすくしているつもりです。
実例がないとわかりにくいものは、リリースしているプラグインを抜粋しています。
また、私自身、プラグインをなんとなく先人達のマネをして作ってきたので、
- 定義ファイル名が「config.yaml」なのはなぜだろう?
- ハンドラの先頭に"$"を付与するのはなぜだろう?
- クラスファイルをlibディレクトリ配下に配置するのはなぜだろう?
- プラグインはどうやって登録されるんだろう?
- コールバックの仕組みはどうなっているんだろう?
といった疑問にも取り組んでみました。
ということで、そのときの発表スライド(PDF)を公開しておきます。
当日発表用にレイアウトを全体的に少し上にずらしているので、修正したら差し替えます。
約200ページあります。目次は次の通りです。
- 自己紹介
- プラグイン基礎
- mt.cgiの仕組み
- プラグインが登録される仕組み
- 各種プラグインの定義と実装
- コールバック
- テンプレートタグ
- グローバルモディファイア
- テンプレート
- トランスフォーマー
- メニュー
- リスティング・リストアクション
- ウィジェット
- パーミッション
- スケジュールタスク
- DataAPI
- オーバーライド
- ローカライズ
- プラグインデータ・プラグイン設定
- アプリケーション
- データベースにテーブル・フィールド追加
- プラグイン資材
- デバグ
- ノウハウ
- パフォーマンス
- 失敗談
- プラグイン・プラグイン開発関連サイト
「MTDDC Meetup Tokyo 2024」に登壇します
間際のご報告となり恐縮ですが、今週末の11/23(土)、「MTDDC Meetup Tokyo 2024」が開催されます。
場所は「LINEヤフー株式会社(東京ガーデンテラス紀尾井町内)」。時間は11:30開場、12:30開始。一般チケット4000円、学生チケット1000円です。
(以下サイトより引用)MTDDCとは、MTDDCは「Movable Type Developers & Designers Conference」の略で、MTに携わる技術者やデザイナー向けのカンファレンスです。
2007年8月に東京で開催した「Movable Type 開発者向けカンファレンス (Movable Type Developer Conference)」が最初で、その後にデザイナー向けのセッションも加えて、MTDDCとして開催しています。
MTDDCおよびMTDDC Meetupは、Movable Typeを中心としたイベントです。
とは言え、Movable Type一色ではなく、Web全般についての各種のセッションも多数展開します。
「Movable Typeを使っていない」という方でも、Webに関係する方であれば、十分お楽しみいただける内容になっています(引用ここまで)。
私も久しぶりに登壇させて頂くことになりました。
出演予定時間は14:30~15:25です。
今回は「プラグインよもやま話(仮)」というタイトルで、プラグインの仕組みやプラグイン開発にまつわる経験談などを交えてお話させて頂く予定です。
MovableTypeにご興味のあるかた、まだ参加を迷われている方、ご参加をお待ちしています。
リリース中のMovableType/WordPressプラグイン一覧ページを作りました
当ブログでリリース中のMovableTypeおよびWordPressの主なプラグインについて、一覧ページを作りました。
現在掲載しているのは、販売実績のある、あるいは最近リリースした下記のプラグインです。
MovableType
- CSVAuthorDataImExporter:ユーザデータをCSVで管理
- CSVDataImExporter:コンテンツデータ・記事をCSVで管理
- ListingFieldEditor:一覧画面でコンテンツデータ・記事カスタムフィールド編集
- PowerEditContentData:コンテンツデータのユーザー切り替え等
- PublishDraft:公開後の下書き保存が可能
- SaveWithoutRebuild:再構築なしのデータ保存が可能
- Trash:WordPressの「ゴミ箱」機能を提供
- Vote:「いいね」ボタンの実装が可能
- Workflow:ワークフロー機能を提供
WordPress
- wp-csv-data-imexporter:投稿・固定ページ・カスタム投稿等をCSVで管理
上記各プラグインのページの先頭にも一覧へのリンクを貼ってます。
スタバにタンブラー持ち込みで安く飲める裏ワザ
突然ですが皆さん、スターバックスやタリーズ、エクセルシオールといった、いわゆる「シアトル系カフェ」でタンブラーを使ったことはありますか?
私はここ2年ほど、ずっとタンブラーを使っています。
タンブラーを使い始めたきっかけは、新幹線に持ち込んだスタパのカフェを車内で盛大にひっくり返してしまったことです笑。そのとき「これからは蓋がロックできるタンブラーで持ち込むことにしよう」と心に誓い、すぐに購入しました。
そんな出来事から使い始めたタンブラー、出張や旅行はもちろんですが、次第に普段使いもするようになりました。
そうすると、こぼさない以外にもメリットがあることに気がつき、みなさんに是非知ってほしいと思い、タンブラーを使ったカフェの購入方法なども加え、本記事で紹介したいと思います。
タンブラーを使うメリットは2つ。1つは「タンブラー割り」というものがあり、タイトルに書いたとおり、スタパ・エクセルシオールでは1杯につき20円、タリーズでは30円割引になります。
もう1つはすでにお分かりかと思いますが、使い捨てのカップを使わないことによる、環境への配慮です。
カフェでのお客さんのタンブラー利用率は、おそらく1割以下ではないでしょうか。
私が注文で並んでいるときや、飲みながら店内を見回したときなど、タンブラーを持参している人やタンブラーで飲んでいる人を一度も見たことがありません。そのくらい利用率は低いと思われます。
それではタンブラーを使った具体的な注文方法を紹介します。
というほどのことではありませんが、注文するときに店員さんにタンブラーを渡せばOKです。蓋付きの場合は蓋を外した状態で渡します。
渡した際に「消毒してもいいですか?」と聞かれることが多いので、「はい」と答えましょう。会計は消毒が終わってからなので、焦らず待ちましょう。
500mlのタンブラーなら、スタバのグランデサイズまでOKです。どのサイズまで入るかはタンブラーの形状によるので、その場で店員さんに確認すると良いでしょう。トッピングなどする場合も適用可能か、確認しましょう。
受け取りは使い捨てのカップのときと同じですが、細長いタンブラーだと注ぎ口が狭いためか、外側にコーヒーの拭き残しがついていることがときどきあるので、予めナフキンを1枚持っておくと良いでしょう。
さて、私はスタバのロゴが入った、サーモス製の500ml用のタンブラーを買って使ってますが、定価5000円近くしました。
いくらタンブラー割りがあるといっても、元のタンブラー代が高いので、なかなか元が取れないのですが、私は週1~2回ほどカフェを利用しているので、この2年でほぼほぼ元は取れましたし、これからもずっと安く飲めます。
タンブラーのゴム部分はパーツとして販売されていますが、まだまだ取り替える必要はなさそうです。
タンブラーを持っていかないといけない、使い終わったら自分で洗わないといけない…といった手間もありますが、この記事を読まれた方、一度タンブラー持参でカフェに行かれてみてはいかがでしょうか。
当プラグインのMTクラウドのPerlバージョン5.38.2対応状況
当プラグインのMTクラウドのPerlバージョン5.38.2対応状況です。
1.はじめに
2024年9月4日、Movable Typeクラウド(MT7/MT8)の、Perl5.36.0からPerl5.38.2へのバージョンアップが行われました。
Movable Type クラウド版の Perl のバージョンを変更しました
バージョンアップにあたり、考えられる影響は以下の通りです。
- サードパーティー製プラグインおよび独自CGIスクリプトが正常に機能しなくなる
ということで、当ブログで販売している主なプラグインの動作確認状況です。
2.主なプラグインの対応状況
- Workflow(MT7/MT8):動作確認済
- CSVDataImExporter(MT7/MT8):動作確認済
- PublishDraft(MT7/MT8):動作確認済
- ListingFieldEditor(MT7/MT8):動作確認済
- PowerListingFieldEditor(MT7/MT8):動作確認済
- SaveWithoutRebuild(MT7/MT8):動作確認済
Finaleで2音のトレモロを入力する方法
Finaleで2音のトレモロを入力する方法を紹介します。
なお、米国時間2024年8月26日、Finaleの開発/販売終了がアナウンスされました。
国内販売代理店契約の即日終了に関して
1.問題点
Finale(バージョン27)で冒頭のような2音(またはそれ以上)のトレモロを入力したいのですが、方法がわかりません。
ということで、Finaleで2音のトレモロを入力する方法を紹介します。
2、Finaleで2音のトレモロを入力する
2音のトレモロを入力するには、トレモロさせたい音符を選択。
メニューバーより「プラグイン」→「TG Tools」→「簡易トレモロ...」を選択。
ダイアログが開くので、連桁(れんこう)の本数等を指定して「適用」をクリック。ここでは「2」を設定します。連桁とは連続した音符の旗をつないで記述することです。
これで2音のトレモロが設定できたので、ダイアログの「閉じる」または×印をクリックして閉じます。
3.連桁を符尾から離す
前述の手順では連桁と符尾がつながっています。
ここではさらに冒頭の画像のように連桁を符尾を離す手順を説明します。
連桁を符尾を離したい音符を選択。
メニューバーより「ウインドウ」→「道具箱ツール・パレット」を選択。
右側に表示された「道具箱ツール・パレット」のアイコンより「連桁伸縮ツール」を選択。
選択した音符の符尾の先端にハンドルが表示されるので、どちらかのハンドルをダブルクリック。ハンドルが表示されない場合、符尾のあたりをクリックしてみてください。
ダイアログが開きます。デフォルトでは「8分音符」のみにチェックが入っていると思いますが「16分音符」にもチェックをいれてOKをクリック。
これでハンドルをドラッグすれば連桁を伸縮できます。上下の移動はできないので、ドラッグ位置が上下にずれても問題ありません。
もう一方のハンドルもドラッグします。これで冒頭のトレモロ記号の入力が完成です。
なお、さきほどのダイアログで「16分音符」にチェックをいれずにハンドルを操作すると。一番上の連桁しか操作できません。
4.連桁を符尾から一部離さない
応用ですが、前項のダイアログで「8分音符」のチェックを外し、「16分音符」と「32分音符」をチェックすれば、一番上の連桁を符尾から離さないことも可能です。
セブンイレブンのネットプリント不具合でお金を多く取られた件
セブンイレブンのネットプリント不具合で、お金を多く取られた件の顛末です。
楽譜を印刷しようと、セブンイレブンのネットプリントアプリに、A3白黒、計21枚をに登録(下図)。
ファイルの詳細画面で、カラーモードは白黒に設定していることがわかります。
ネットプリントのA3白黒は、下の料金表にある通り、1枚20円です。
21枚なので合計420円ですが、お金が認識されないことも考えて、小銭で100円玉4枚に50円玉4枚と、やや多めの計600円を持ってセブンへ。
最初100円4枚を入れて、上から順番に印刷を開始すると、投入したお金の残額が早いことに途中で気づきました。
通常、1枚プリントされるごとに20円引かれていくのですが、3ファイル目か4ファイル目で残額が0になってしまったと思います。
なぜなら、プリントを実行しようとしたときに残額不足のエラーが表示されたからです。
最初に400円を投入しているので、21枚であれば、最後のファイル(計3枚)のプリント実行時まで残額不足のエラーは出ないはずです。
「おかしいな?」と思いながらも残りの50円玉も順次投入していき、5ファイル目のときに、たしか残額30円で、最後の50円を投入したと思います。
結局印刷できたのは18枚。最後の1ファイルが印刷できませんでした。
最後に領収書を印刷できるので、印刷すると「600円」と表示されていました。
投入金額は合っているのですが、それに見合う枚数がプリントされていません。
ということで、すぐに店員さんを呼びました。
私「1枚20円のネットプリントで、600円で18枚しか印刷できなかったんですが…」
店員「ちょっと別の者を呼びますのでお待ちください」
少し待って別の店員さんがきました。
私「1枚20円のネットプリントで、600円で18枚しか印刷できなかったんですが…」
店員「?」
この店員さん、店長さんかと思ったら違っていたようです。
また、私の言っていることを理解できていないのか、
店員「600円で18枚…そうですか…」
という感じで、お金を余分にとられていることをわかってもらえてないようです。
残りの1ファイルの印刷画面を見せて、
私「ほら、ネットプリントで3枚で60円なので、1枚20円ですよね?」
店員「あぁ、そうなんですか…」
私「はい、それで(600円の領収書をみせて)600円で18枚しかプリントできなかったんです。600円なら30枚プリントできるはずですよね?」
店員さん、私を疑っているようで、
店員「本当に600円いれました?」
と言われる始末。というか、領収書に600円と記載されてるんですが。
そういう押し問答が続いて、なかなかこちらの意図をくみ取ってもらえないようなので、
私「18枚だと360円なので、240円返金してもらえますか?」
と伝えましたが、お店側が客からお金を余分に取ってしまっている事を理解されてないみたいで、
私「18枚しかプリントしてないので、本来は360円のところ、600円も払ってますよね?」
とアプローチを変えて、なんとか理解してもらえたようで、
店員「本当に18枚ですか?」
私「はい」
店員「念のため数えますね」
と渡したA3用紙を1枚ずつ数えて、レジに現金を取りに行って、240円を返してもらいました。
返金はしてもらいましたし、決して店員さんが悪いわけではないのですが、
「すいませんでした」
という言葉をもらえなかったのは残念ですし、店員さんの態度も、私が悪いことをしたかのような対応で、しぶしぶ返金してくれた感じで、あの店舗にはしばらく行かないと思います。
気のせいかもしれませんが、返してもらった240円も、わざわざ汚い硬貨を選んだかのような汚れっぷりでした。
それよりも、この記事で一番伝えたいのは、セブンイレブンの関係者の方がこの記事を読まれましたら、ネットプリントシステムの不具合と思われるので、一度調査されることをお勧めします(タイトルもあえてそのようにさせてもらいました)。
600円の領収書は、終始不服そうな面持ちの店員さんに、無言で没収されました。
さて、残りの1ファイルですが、その店舗で印刷するとまた事件に巻き込まれそうなので別の店舗でプリントアウトしました。
念のため、残金が正常に表示されるか動画も撮りましたが、大丈夫でした。
みなさんも、セブンイレブンのネットプリントで余分にお金を取られていないか、気をつけてください。
Movable Typeコンテンツタイプの「テキスト表示エリア」について
Movable Typeコンテンツタイプの「テキスト表示エリア」について紹介します。
コンテンツタイプ作成画面の右側一番下に「テキスト表示エリア」というコンテンツフィールドがあります。
編集エリアにドラッグするとテキストエリアが表示されますが、「※このブロックはコメントのため、管理画面でのみ表示されます。」という注釈が記載されています。
ためしに「テスト」と入力して、保存します。
コンテンツデータ編集画面を表示すると、さきほど入力した文字がそのまま表示されました。
これでお分かりになったと思いますが、このフィールドは、コンテンツデータ編集画面に注釈をいれるためのもの、ということです。
脆弱性対応のため、残念ながらHTMLタグは使えない(そのまま表示される)ようです。
mysql_configのインストール
mysql_configのインストール方法を紹介します。
1.問題点
先日のPerl5.38.2のアップデートで、DBD-mysqlのモジュール不足が発生しました。
cpanでインストールできなかったため、アーカイブをダウンロードしてビルドしようとしたところ、下記のエラーが発生しました。
Can't exec "mysql_config": そのようなファイルやディレクトリはありません at Makefile.PL line 85.
色々調べてみて、下記のコマンドを実行してみたのですが、エラーになりました。
# dnf install mysql-community-devel
引数に一致する結果がありません: mysql-community-devel
エラー: 一致するものが見つかりません: mysql-community-devel
ということで、mysql_configのインストール方法を紹介します。
LinuxはCentOS9です。
2.mysql_configのインストール
まず、下記のコマンドでmysql_configが提供されているパッケージを探します。
# dnf provides mysql_config
私の環境では次の4つが表示されました。
# dnf provides mysql_config
メタデータの期限切れの最終確認: 0:23:38 前の 2024年06月14日 12時02分30秒 に実施しました。
mariadb-connector-c-devel-3.1.13-3.el9.i686 : Development files for mariadb-connector-c
Repo : appstream
一致:
ファイル名 : /usr/bin/mysql_config
mariadb-connector-c-devel-3.1.13-3.el9.x86_64 : Development files for mariadb-connector-c
Repo : appstream
一致:
ファイル名 : /usr/bin/mysql_config
mariadb-connector-c-devel-3.2.6-1.el9.i686 : Development files for mariadb-connector-c
Repo : appstream
一致:
ファイル名 : /usr/bin/mysql_config
mariadb-connector-c-devel-3.2.6-1.el9.x86_64 : Development files for mariadb-connector-c
Repo : appstream
一致:
ファイル名 : /usr/bin/mysql_config
この中から適合するパッケージをインストールします。
# dnf install mariadb-connector-c-devel-3.2.6-1.el9.x86_64
実行結果を掲載しておきます。
# dnf install mariadb-connector-c-devel-3.2.6-1.el9.x86_64
メタデータの期限切れの最終確認: 0:24:35 前の 2024年06月14日 12時02分30秒 に実施しました。
依存関係が解決しました。
====================================================================================================================================================================
パッケージ アーキテクチャー バージョン リポジトリー サイズ
====================================================================================================================================================================
インストール:
mariadb-connector-c-devel x86_64 3.2.6-1.el9 appstream 58 k
依存関係のインストール:
mariadb-connector-c x86_64 3.2.6-1.el9 appstream 198 k
openssl-devel x86_64 1:3.2.2-1.el9 appstream 4.4 M
zlib-devel x86_64 1.2.11-41.el9 appstream 45 k
トランザクションの概要
====================================================================================================================================================================
インストール 4 パッケージ
ダウンロードサイズの合計: 4.7 M
インストール後のサイズ: 5.8 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/4): mariadb-connector-c-devel-3.2.6-1.el9.x86_64.rpm 443 kB/s | 58 kB 00:00
(2/4): mariadb-connector-c-3.2.6-1.el9.x86_64.rpm 1.3 MB/s | 198 kB 00:00
(3/4): zlib-devel-1.2.11-41.el9.x86_64.rpm 1.2 MB/s | 45 kB 00:00
(4/4): openssl-devel-3.2.2-1.el9.x86_64.rpm 6.8 MB/s | 4.4 MB 00:00
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
合計 3.0 MB/s | 4.7 MB 00:01
トランザクションを確認しています
トランザクションの確認に成功しました。
トランザクションをテストしています
トランザクションのテストに成功しました。
トランザクションを実行しています
準備中 : 1/1
インストール中 : zlib-devel-1.2.11-41.el9.x86_64 1/4
インストール中 : openssl-devel-1:3.2.2-1.el9.x86_64 2/4
インストール中 : mariadb-connector-c-3.2.6-1.el9.x86_64 3/4
インストール中 : mariadb-connector-c-devel-3.2.6-1.el9.x86_64 4/4
scriptletの実行中: mariadb-connector-c-devel-3.2.6-1.el9.x86_64 4/4
検証中 : mariadb-connector-c-3.2.6-1.el9.x86_64 1/4
検証中 : mariadb-connector-c-devel-3.2.6-1.el9.x86_64 2/4
検証中 : openssl-devel-1:3.2.2-1.el9.x86_64 3/4
検証中 : zlib-devel-1.2.11-41.el9.x86_64 4/4
インストール済み:
mariadb-connector-c-3.2.6-1.el9.x86_64 mariadb-connector-c-devel-3.2.6-1.el9.x86_64 openssl-devel-1:3.2.2-1.el9.x86_64 zlib-devel-1.2.11-41.el9.x86_64
完了しました!
3.参考サイト
参考サイトは下記です。ありがとうございました。
pip install mysqlclient returns OSError: mysql_config not found on CentOS9 with Python3.9
Perl5.38.2のインストール
Linux環境にPerl5.38.2をインストールしてみました。
ディストリビューションはCentOS8.1です。
1.ソースのダウンロード
ソースからビルドするので、「Perl Source」のページから「perl-5.38.2.tar.gz」をクリックしてダウンロードします。
2.ビルド
ダウンロードしたアーカイブを解凍して、ディレクトリに移動します。
# tar xvf perl-5.38.2.tar.gz
# cd perl-5.38.2
configureは次のオプションを追加しています。
# sh Configure -des -Dusethreads -Dinc_version_list=none
各オプションの意味は次の通りです。
- sh Configure:Configureをシェルで実行します。Configureはシステムに適したビルド設定を行うためのものです。
- -d:デフォルトの設定を使用することを指示します。ユーザーからの入力を求めずに進行します。
- -e:全ての設定を自動的に進めることを意味します。このオプションによりユーザーは一切の質問に対して「yes」と回答したことになります。
- -s:Silentモードを意味します。通常の動作では進行状況が表示されますが、-sを使用すると出力が抑制されます。
- -Dusethreads:Perlをスレッドサポート付きでビルドすることを指示します。これによりPerlでマルチスレッドプログラミングが可能になります。
- -Dinc_version_list=none:Perlインタープリタが特定のバージョンディレクトリを探さないように設定します。このオプションは、異なるバージョンのPerlモジュールが混在するのを防ぐために使われます。
下記のように実行されます。少し時間がかかります。
# sh Configure -des -Dusethreads -Dinc_version_list=none
First let's make sure your kit is complete. Checking...
Locating common programs...
:
If you compile perl5 on a different machine or from a different object
directory, copy the Policy.sh file from this object directory to the
new one before you run Configure -- this will help you with most of
the policy defaults.
#
完了したら、makeを実行します。これもかなり時間がかかります。
# make
# make test
# make install
パスはまだ古いバージョン(5.26.3)のままです。
# perl -v
This is perl 5, version 26, subversion 3 (v5.26.3) built for x86_64-linux-thread-multi
(with 51 registered patches, see perl -V for more detail)
今回インストールしたPerlは、/usr/local/binにインストールされたようです。
# which perl
/usr/local/bin/perl
# /usr/local/bin/perl -v
This is perl 5, version 38, subversion 2 (v5.38.2) built for x86_64-linux-thread-multi
シンボリックリンクを使って、perlのパスを新しいバージョンのものに書き換えます。古いバージョンのperlはリネームしてバックアップしておきます。
# cd /usr/bin
# ls -l perl
-rwxr-xr-x. 2 root root 14328 5月 12 2019 perl
# mv perl perl-5.26.3
# ln -s /usr/local/bin/perl perl
# ls -l perl
lrwxrwxrwx 1 root root 19 6月 13 22:30 perl -> /usr/local/bin/perl
最後にバージョン確認して、5.38.2になっていればOKです。
# perl -v
This is perl 5, version 38, subversion 2 (v5.38.2) built for x86_64-linux-thread-multi
3.参考サイト
参考サイトは下記です。ありがとうございました。
Movable Typeのブロックエディタ(MTBlockEditor)のカスタムブロックについて
Movable Typeのブロックエディタ(MTBlockEditor)のカスタムブロックの紹介です。
1.はじめに
Movable Type 8からMTBlockEditorがデフォルトのプラグインとなりました。
MTBlockEditorではデフォルトで用意されているブロックの他に、任意のブロック(カスタムブロック)を作成することができます。
ここでは、公式マニュアルに掲載されている「Markdown」ブロックを作ってみたいと思います。
参考:カスタムブロック機能を利用して高機能な Markdown を利用する
2.カスタムブロック(Markdown)の作成
左メニューより「ブロックエディタ」→「カスタムブロック」をクリック。
「新規作成」をクリック。
- 名前:Markdown
- 識別子:markdown
を設定。アイコンは設定しなくて大丈夫です。
「ブロック」の「+ブロックを追加」をクリック。
「テキスト(複数行)」をクリック。
- クラス名:source
- ブロック要素:P
- フォーマット:なし
を設定または選択。「ラベル」「説明」「規定値」は設定不要です。
「カスタムスクリプト」に下記の内容を設定。これがMarkdown記法に対応するためのスクリプトになります。
<script src="https://cdnjs.cloudflare.com/ajax/libs/marked/1.1.0/marked.min.js" integrity="sha256-POA+Q3FC8tyo/jZhQrw40H5mKcWAABdxNeUQ/uhIm4U=" crossorigin="anonymous"></script>
<script>
document.addEventListener("DOMContentLoaded", () => {
if (document.body.dataset.hasCompiledHtml) {
return;
}
const source = document.querySelector(".source").innerHTML;
MTBlockEditorSetCompiledHtml(marked(source));
});
</script>
「コンテナ要素で包む」の「編集した内容をDIV要素で囲む」と「ブロックの追加と削除」の「ブロックの追加と削除を許可する」のチェックを外します。「ブロックの追加と削除を許可する」のチェック有無の違いは3項で説明します。
「プレビューの表示」の「プレビューを表示する」はチェックします。チェックすることで、テキストエリアからフォーカスが外れると、プレビュー表示に切り替わりので分かりやすいと思います。
「保存」をクリックして作成完了です。
3.カスタムブロック(Markdown)の利用
ここではコンテンツデータの「テキスト(複数行)」から利用します。
「フォーマット」から「ブロックエディタ」を選択。
「+ブロックを追加」をクリック。
「Markdown」を選択(「名前」で設定した「Markdown」が表示されます)。
ここに表示されたアイコンは下記のSVGで生成されているようです。
data:image/svg xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><style>text{font-family:'Arial';font-weight:bold;font-size:405px}</style><circle r='256' cx='256' cy='256' stroke='none' fill='#666'></circle><text x='256' y='274' text-anchor = 'middle' dominant-baseline = 'central' fill='white'>M</text></svg>
Markdown用のテキストエリアが表示されます。テキストエリアにフォーカスがあたったとき、「名前」で設定した「Markdown」がヘッダに表示されます。
設定画面で、「ブロックの追加と削除を許可する」のチェックを入れると、次のようにMarkdownブロック内に他のブロックが追加可能になります。
Markdown記法で入力してみます。「*~*」がイタリック、「**~**」が太字、「***~***」がイタリック+太字です。
フォーカスが外れると、プレビューが表示されます。
設定画面の「プレビューを表示する」のチェックを外せば、フォーカスが外れてもMarkdown記法がそのまま表示されます。
サイトの不具合について
2024年5月22日からページにアクセスすると、他のページに誘導される事象が発生しました。
切り分けのため、2024年5月23日の19時頃にサイトのすべての情報を削除しましたが事象が改善せず、24日にレンタルサーバ会社に問い合わせ、原因が判明したのがその日の昼頃。
24日の午後から手作業でデータを少しずつ復元させ、現在はほぼ通常運用に戻っています。
備忘録で状況を残しておきます。
1.事象の詳細
最初に気づいたのは、トップページ(index.php)の内容が書き換えられる事象でした。
その後、.htaccessが自動生成され、いくつかのページがトップページに誘導される内容が記載されていました。
そこからさらに(トップページに埋め込まれた、暗号化されたスクリプトで)別のページにリダイレクトされていました。
それらのファイルを削除したり、再構築で上書きしても、すぐに元の内容に書き換えられてしまいます。
topコマンドやpsコマンドでプロセスを確認しても怪しいプロセスはありません。
www配下のすべてのページをバックアップ後、削除しましたが、index.phpや.htaccessが自動生成される事象が解消ぜず、rootユーザーで実行されていると推測し、レンタルサーバ会社のサポートにチャットで問い合わせ。
借りているレンタルサーバのプランには、rootに昇格する権限はありませんでした。
上記の状況を伝えたところ、rootで不審なプロセスが動作していたようで、プロセスを削除して頂き、ようやく事象が解消しました。
その後、MTを新規インストールしてブログの再構築を実施し、画像等のアセットはバックアップデータから丸ごと復元せず、ひとつずつ確認しながら戻しています。
2.原因と対処
おそらく、契約しているアカウントのログインパスワードを破られた後、rootのパスワードも破られて該当のプロセスが仕掛けられたものと思われます。
サポートから「現在動作プロセスが残っております」と言われたのですが、こちらで確認できる範囲のプロセスに該当するものがないことを伝えたところ、サポート側でプロセスを削除して頂けました。
3.今後の対応
サーバログインパスワードはかなり強固なものを設定していましたが、今後は定期的に変更したいと思います。
Movable Typeのダッシュボードプラグインの作り方
Movable Typeのダッシュボードプラグインの作り方を紹介します。
1.はじめに
ダッシュボードプラグインを作る機会があったので、サンプルを使って作り方をまとめてみました。
ここでは下記のサンプルを紹介します。
ユーザーダッシュボードに「サンプルダッシュボードウィジェット」を表示します。
選択すると、下記のようにログインしたユーザー名を表示します。
×印をクリックすると、ウィジェットが削除されます。
このサンプルプラグインの構造は次の通りです。
DashboardSample
├ config.yaml
├ lib
│ └ DashboardSample
│ └ CMS.pm
└ tmpl
└ sample.tmpl
サンプルは下記のURLよりダウンロードできます。
以下、それぞれのファイルについて解説します。
2.config.yaml
下記にサンプルを示します。
name: DashboardSample
id: DashboardSample
widgets:
DashboardSample:
label: サンプルダッシュボードウィジェット
# plugin: $DashboardSample
template: sample.tmpl
order: 1000
singular: 1
set: main
handler: $DashboardSample::DashboardSample::CMS::test
view:
- user
主な項目の意味は次の通りです。
- template:ダッシュボード用テンプレートファイル名
- order:表示順序
- singular:単独表示("1"固定。プルダウンから選択・表示したあと、プルダウンの候補から外すためのもの)
- set:表示領域(main:中央/sidebar:右カラム)
- handler:ダッシュボード表示用ハンドラ名
- view:表示種別(user:ユーザーダッシュボード/system:システム管理画面/website:親サイト/blog:子サイト)
"plugin"という項目もありますが、記述無しでも動作するようなのでコメントアウトしています。
記述する場合は、サンプルのように「id:」の値を"$"つきで記述してください。
3.sample.tmpl
下記にサンプルを示します。
<mtapp:widget
id="DashboardSample"
class="widget DashboardSample"
label="サンプルダッシュボードウィジェット"
can_close="1">
<p><mt:var name="name"></p>
</mtapp:widget>
ここではパラメータ「name」の値だけを表示するようにしています。
<p><mt:var name="name"></p>
ダッシュボードを表示したあとに×印で削除できるようにするには、mtapp:widgetタグに「can_close="1"」を付与します。
4.CMS.pm
下記にサンプルを示します。
package DashboardSample::CMS;
use strict;
use warnings;
sub test {
my $app = shift;
my ( $tmpl, $param ) = @_;
my $user = $app->user;
}
1;
sample.tmplの"name"に値を渡すために、下記の1行を追加しています。
$param->{name} = $user->nickname;