スキップしてメイン コンテンツに移動

ノイマンの軛 Von Neumann bottleneck が解けてきた

MacOS Venture に PHPを入れて PukiWiki を移行した

 


Pukiwiki でメモしたデータがあるので Mac Mini M2 に持っていく。

PukiWiki は PHP のアプリケーションであるため、PHP を動かさなければならない。

  1. Mac Mini M2 で Apacheを動かした時、PHPがサポートされていないので CGI で動かす設定をしたが、これだけではだめなようなので、結局、PHP をインストールした。
  2. インストールした PHPは「署名して認証」しないと動かなかった。
  3. PukiWiki は最新版にアップデートする必要があった。

PHP インストール


$ brew install php
...
$ To enable PHP in Apache add the following to httpd.conf and restart Apache:
LoadModule php_module /opt/homebrew/opt/php/lib/httpd/modules/libphp.so

<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>

Finally, check DirectoryIndex includes index.php
DirectoryIndex index.php index.html

The php.ini and php-fpm.ini file can be found in:
/opt/homebrew/etc/php/8.2/

To start php now and restart at login:
brew services start php

httpd.conf を編集したが、エラーがでている。

 $ apachectl configtest
 [Fri Feb 24 20:46:41.855315 2023] [so:error] [pid 13516]
 AH06665: No code signing authority for module
 at /opt/homebrew/opt/php/lib/httpd/modules/libphp.so specified in LoadModule directive.

apachectl restart したが

 <?php
  phpinfo();
 ?>

phpinfo() も動かない。Apache のエラーログを見たところ、error が吐かれている。


$ cat /private/var/log/apache2/error_log

'/opt/homebrew/Cellar/php/8.2.3/lib/php/20220829/opcache.so' not valid
for use in process: mapped file has no Team ID and is not a platform binary
(signed with custom identity or adhoc?)), ....

署名して認証


~/Library/Keychains に login.keychain-db ファイルを確認して codesign を実行。


$ codesign --sign "myCA" --force --keychain ~/Library/Keychains/login.keychain-db \
/opt/homebrew/opt/php/lib/httpd/modules/libphp.so

httpd.conf に署名。

LoadModule php_module /opt/homebrew/opt/php/lib/httpd/modules/libphp.so "myCA"


PukiWki

phpinfo() は動いたが、PukiWiki は動かない。
index.php の error_reportting(E_ALL) をコメントアウトしたところ

<?php
// PukiWiki - Yet another WikiWikiWeb clone.
// $Id: index.php,v 1.9 2006/05/13 07:39:49 henoheno Exp $
// Copyright (C) 2001-2006 PukiWiki Developers Team
// License: GPL v2 or (at your option) any later version

// Error reporting
//error_reporting(0); // Nothing
error_reporting(E_ERROR | E_PARSE); // Avoid E_WARNING, E_NOTICE, etc
//error_reporting(E_ALL); // Debug purpose

エラーが表示された。
「Fatal error: Array and string offset access syntax with curly braces is no longer supported in /Users/xxx/pukiwiki/lib/func.php on line 607」

https://pukiwiki.osdn.jp/?FAQ/45 によると

「PukiWiki 1.4.7 はPHP5.4以降に対応しておらず、まったく動作しません。PukiWiki 1.5.0 へのバージョンアップを行ってください。」

とのことなので最新版の 1.5.4 をダウンロードして展開して 
 pukiwiki/wiki/ フォルダのファイルを以前の wiki フォルダで上書きした。

PukiWiki はちゃんとメンテナンスされているようで、よかった。


参考

【macOS 12 Monterey】コード署名証明書によるPHPモジュール有効化 
https://pointsandlines.jp/server-side/php/code-signing-in-macos-monterey

コメント

このブログの人気の投稿

ノイマンの軛 Von Neumann bottleneck が解けてきた

ディープラーニング  で画像認識の精度が上がり第3次人工知能ブームが巻き起こった。1998年の論文から2012年の画像コンペディションまで14年。 第3次人工知能ブーム https://www.youtube.com/embed/UAlGNAx5ngo?si=tdyeHcNKBMl46HWA 生成AI  ( G enerative Artificial Intelligence )は2017年のトランスフォーマーの論文( "Attention is All You Need" )から2022年の  ChatGPT  ( Chat Generative Pre-trained Transformer )まで5年間。 第4次人工知能ブームというべきか第3次ブームは2段ロケットだというべきか。 概説 人工知能  生成AIは新しい技術なので解説本はまだ少ないが、  ちくま学芸文庫から文庫オリジナルの生成AIまで含めた本がでていた。 第8講 トランスフォーマー・生成 AIの心臓部 P204 この講を終わるにあたり、 トランスフォーマーは、現代のコンピュータとは別のタイプの全く新しい発想の計算のアーキテクチャである ことを指摘しておく. この新しいアーキテクチャでポイントとなるのは、メモリアクセスである.コンピュータの計算ではデータの記憶は要となるものである。現代のコンピュータが実行する命令を細かく分解していって、物質で言えば原子のレベルまで細分化したとする。すると、その働きは、既にあるデータに演算を施して新しいデータを計算することと、その際に必要となるデータをメモリから取り出すことと、計算の結果をメモリに記憶することからなる。メモリには番地がついていて、データを取り出したり、格納したりするときは、データのある場所を番地により指定する。 トランスフォーマーのメモリに相当するのは、翻訳対象の一文中の単語のセットである。トランスフォーマーでは、このメモリから読み出すときの番地を指定する必要はなく、ワードエンベーディング間の距離から自動的に決まるようになっている。トランスフォーマーでは、読み出し先も書き込み先もワードエンペーディングのベクトルの内容により自動的に決まる。 現代のコンピュータでは、書き込みや読み出しはデータが格納されている場所のアド...

御食国志摩の伊勢神宮

  伊勢神宮ははじめてでしたが、大嘗祭のとき皇居の大嘗宮をみに何時間も大行列に並んだことを思い出しました。  正式参拝(御垣内参拝/みかきうちさんぱい)される方々の姿には感銘を受けました。  内宮のガイドの方に「1000年ぶりの天皇の神宮参拝」について尋ねたら「明治天皇は軍艦に乗ってやってきた!」と返ってきて、後で調べたら上陸記念碑も建っているようでした。記紀と違うことも伊勢神宮の文献にはいろいろある、みたいなこともちょといっておられました。 その後、すぐ昼食で、伊勢神宮宇治橋正面「勢乃國屋」の入り口で「蘇民将来子孫門」のみやげ品陳列はかなりの違和感でしたが、そういえば伊勢ではこの注連縄を一年中飾っているという話を聞いたことがありました。 記紀には登場するけど神宮にはでてこない スサノオの気配 ですかね。  次回は早朝に参拝して、お昼はおかげ横丁でいろいろなものを少しづつ食べ歩きしたいものです。  ホテルの食事でも御食国(みけつくに)を感じ、豊かなところだから歴史的にいろいろなものを受け入れ、取り込んでこれたのだと舌で理解しました。五芒星やら蘇民将来子孫門やら。  外宮の多賀宮を参拝したら、元伊勢、籠神社に行かなくてはと、若狭も御食国ですし。 メモ ・   12年くらい前いろいろ調べてまとめたメモ           ・藤原不比等が神を入れ替えた?   本来なら、天皇家の守神にもなったであろう「伊勢の神」を、恐ろしい存在にしてしまったのは、持統天皇と藤原不比等だと思う。祟り神でも、祀りあげれば、恵みをもたらす神に代わるはずだからだ。しかしそれを怠り、伊勢に放逐したわけだ。それはどうしてなのか。  答えは簡単なことだ。スサノヲは天皇家にとって大切な神だったが、もうひとつ「蘇我系の神」の側面があった。乙巳(いっし)の変(645)で蘇我入鹿を滅ぼし、藤原氏は改革者・蘇我氏の手柄を横取りし、スサノヲに簑笠を着せて「悪神」に仕立て上げてしまった。そこで藤原不比等はスサノヲをアマテラスにすり替え、その上で伊勢に封印してしまったのだろう。 ※本記事は、『スサノヲの正体』(新潮新書)の一部を抜粋、再編集したものです。    https://news.yahoo.co.jp/a...

カーナビの Wi-fi とApple CarPlayの仕組み 地図更新に時間がかかる

苦労してカーナビをiPhoneでテザリングした。 地図がダウンロードできて、いざ更新しようとしたら処理に何時間もかかる(車の電源切るな!!!)ような表示がされたので中断した。 USBに地図をダウンロードしておいて、ここから更新できるようなのでダウンロード(全国でなく、東北、関東、中部だけ)して、中身をちょっと覗いてみたら、20万行くらいあるSQL文があった。 更新処理に時間がかかる理由が、わかったような気がした。 追記:  USBに東北、関東、中部の地図をダンロードして、USB経由で更新したところ、5、6分の処理で完了した。 テザリングによる更新の処理時間は、以後の本体部分の地図情報をダウンロードにかかる時間を含めたものと思われる。 追記2:  部分的に地図を更新したら「地図が最新ではありません」と表示されるようになった。  鬱陶しいのでUSBに全国の地図をダウンロードして、車に挿したら「『地図が最新ではありません』と表示されるタイミングで勝手に地図の更新処理を促す画面が起動した。 処理時間は25分と表示されたが、30分以上かかった。 Macから解凍した20GBのファイルをUSBにコーピーするだけで20分くらいかかったので30分程度はかかって当然か。  エンジンかけたまま車から降りたら「警告:キーが見つかりません」と表示されていた。 追記3:  どうやらUSBに更新につかった地図データを入れたままにしていると(USBの)「地図が最新ではありません」といってくるようだった。