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

ノイマンの軛 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

コメント

このブログの人気の投稿

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

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

力と交換様式

  東京駅の八重洲のブックセンターが営業終了になるらしいので、折角なので銀座に行ったついでに立ち寄ってみた。しかし、残念ながら「力と交換様式」の在庫はなかった。 Amazonの以下のような書評がちょっと気になっていた。 柄谷行人氏は非常に長い時間と熱量を以ってマルクスを何とか哲学的にもまともなものとして救い出そうとしていた様に見える。だがそれは無理だったというのが柄谷氏自身の集大成的な仕事の最終的な結論だと思われる   「歴史学者という病」の一節を読んで、以前からずっと「唯物論」というのがよく理解できなかったのだが「唯物論=マルクス主義」というか「マルクス教という宗教の信者がたくさんいただけ」ということにいまさら気づかされて、なんだか少しスッキリした。  唯物史観とは、生産構造こそが社会を支え、生産構造の分析こそが社会を豊かにするといった「哲学」に則る。生産構造と階級闘争、つまり異なる生産構造を持つ主体の対立が階級として現れ、この階級の闘争の積み重ねこそが歴史であるという理解に落ち着く。(中略) 唯物史観を離れて実証へ向かった先生方は存在する。ただし、当時の主だった歴史研究者は、ほぼ全員が唯物史観に近い立場であったことは事実である。 モノの「交換様式」というやつは「肝」であるようだ。 K・マルクスによれば、商品交換とは異なる共同体のあいだで行われる物々交換からはじまるもとのされます(『資本論』)。 縄文イデオロギーを共有し、それゆえ「外部」を持たなかった縄文時代の日本列島の社会に、商品交換は存在しませんでした。しかし、弥生文化が成立すると... 縄文時代は贈与と交換が中心で、モノの売り買いに対する忌避もまた、縄文文化ということらしい。 最近では縄文時代から稲作があったのが明らかになってきている。農業を拒否していたのでなく、モノの売り買いを忌避していたのか。 縄文から弥生になって芸術レベルが格段に落ちたのは明らか。土偶と埴輪では勝負にならない。   ちなみに遮光器土偶は「里芋の妖精さん」説はまさに目から鱗。 妖精といえば「 山田五郎 オトナの教養講座 」で17世紀のイギリスでも大ブームだったといっていた。 ハリーポッターも伊達ではない。 リチャード・ダッド「お伽の樵の入神の一...

ノイマンの軛 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 この講を終わるにあたり、 トランスフォーマーは、現代のコンピュータとは別のタイプの全く新しい発想の計算のアーキテクチャである ことを指摘しておく. この新しいアーキテクチャでポイントとなるのは、メモリアクセスである.コンピュータの計算ではデータの記憶は要となるものである。現代のコンピュータが実行する命令を細かく分解していって、物質で言えば原子のレベルまで細分化したとする。すると、その働きは、既にあるデータに演算を施して新しいデータを計算することと、その際に必要となるデータをメモリから取り出すことと、計算の結果をメモリに記憶することからなる。メモリには番地がついていて、データを取り出したり、格納したりするときは、データのある場所を番地により指定する。 トランスフォーマーのメモリに相当するのは、翻訳対象の一文中の単語のセットである。トランスフォーマーでは、このメモリから読み出すときの番地を指定する必要はなく、ワードエンベーディング間の距離から自動的に決まるようになっている。トランスフォーマーでは、読み出し先も書き込み先もワードエンペーディングのベクトルの内容により自動的に決まる。 現代のコンピュータでは、書き込みや読み出しはデータが格納されている場所のアド...