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

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

コメント

このブログの人気の投稿

Mac Mini M2 に Google Sketchup のデータをもっていった

Google Sketchup の頃、作成した3Dモデルを Web版で開いてみた。   https://app.sketchup.com/app?hl=ja このファイルは Unity で読み込むことができているので、見慣れた光景ではあるが、懐かしさを感じる。 もう、Sketchup は Goolge から米Trimble Navigation Limited に移ってしまっている。 Google Earth に 3D Object がところどころに配置されていたものだった。 Unity で Sketchup で作成した .skp ファイルをインポートすることができる。 Unity経由で  Cluster にも公開してある。 https://cluster.mu/w/a8c634be-0371-4f86-91c6-4f5cacea589c さて、Mac Mini M2 で以前作成したUnityのプロジェクトを開いてみたところ、Sketchup からのデータが表示されていない。 さんざん調べたところ、どうやら Silicon 版Unity では Sketchup ファイルは 現在 サポートされていない。( そのうちサポートされるらしい ) Siliicon Mac の壁にこんなところで遭遇するとは。 対応策としては  intel 版の Unity をインストールして使う Sketchup 2017 をダウンロードして FBX にエクスポートする Web版の Sketchup に課金して FBX にエクスポートする などがあるらしい。Trimble のサイトでは Sketchup 2017バージョンはダウンロードできなくなっているが、Windows用の 2017 を探し出して、昔の .skp ファイルを無事読み込むことができた。Mac Mini M2 登場で、少し前に買って失敗した .... ゲーミング Windows PC が役にたって少し嬉しい。 skp ファイルは 3Dモデルも画像もまとめて取り込むことができたが、FBXだと画像が付いてこないので、今回の場合、使い物にならない。 OBJ形式でエクスポートしてできた .obj と .mtl ファイルと 画像が入ったフォルダの3つを Unity へ ドラッグ&ドロップしたところ、上手くいっ...

2022年にいったゲルハルト・リヒター展を思い出しての塗装

  それでこのキャンバスはどう塗っていこうか  この投稿をInstagramで見る Kimio Tanaka(@kwin7862)がシェアした投稿