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

ノイマンの軛 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 へ ドラッグ&ドロップしたところ、上手くいっ...

Mac Mini M2のUnity+VSCodeでまた「一致するワークスペースシンボルがありません」で悩む

  Unity のスクリプト・エディタとして Visual Studio Code を設定する。 Settings...  - External Tools - External Script Editor :  Visual Studio Code Comand + T で関数一覧を表示できるのが便利だが、以前より時々 「一致するワークスペースシンボルがありません」 で 表示されないことがあるので悩んでいた。 肝心なことを先に書いておくと、Visual Studio Codeのログに大量に出力されているエラーに惑わされてはいけない。これらのエラーがあってもワークスペースシンボルは表示される。 さて、Mac Mini M2 でも 「一致するワークスペースシンボルがありません」 だった。 拡張機能の C# もインストールしてある。 .Net Core SDK もインストールしてある。 Unity側で .csproj ファイルを作成する機能をみつけ(以前からあった???) 「Regenerate project files」を実行。 これで、 開いている .cs ファイルに改行でも追加すれば 、ワークスペースシンボルのリストが表示されるようになる。 しかし、 これ を忘れてしまっていて「OmniSharp Log」の大量エラーをみて [fail]: OmniSharp.MSBuild.ProjectLoader This project targets .NET version that requires reference assemblies that are not installed (e.g. .NET Framework). The most common solution is to make sure Mono is fully updated on your machine (https://mono-project.com/download/) and that you are running the .NET Framework build of OmniSharp (e.g. 'omnisharp.u...

高圧洗浄機で屋根を洗う

高圧洗浄機で屋根の汚れを落とすための治具を製作したので、試運転してみた。  鉄の使い方をおぼえると製作物の幅が広がることを実感した。 結果は上々であったが、やはり洗浄機のスプレーガンはそこそこ重いので水平に持ち上げての作業は疲れる。 検討課題 屋根に登らずに洗浄できる範囲も限られているので、安全に屋根に登って作業できるようにしたい。