ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
Main Menu
Tweet
Facebook
Line
:-?
フラット表示 前のトピック | 次のトピック
投稿者 スレッド
webadm
投稿日時: 2021-1-7 10:08
Webmaster
登録日: 2004-11-7
居住地:
投稿: 3084
CGI対応
TeXもCGIとして使用しているmathtexが依存しているので、これが一番大仕事。

良く調べたら、最近のTexliveではARM 32biアーキテクチャのlinux版バイナリも配布しているようなので、必要なのはtexliveインストーラをダウンロードしてビルドして起動するだけだということが判明。

./install-tl --repository https://ftp.kddilabs.jp

デフォルトだと全部インストールになるのはいいのだが、メモリが少ないプラットフォームでは/tmpがtmpfsで空きメモリ分しか利用できないので、最後の最後でパンクして失敗してしまうことが判明。

必要なのはlatexなので(これはtexliveソースをビルドしてインストールしても作られない、debianで提供されているtexlive-2012版だとlatexはpdftexのシンボリックリンクになっているので、2020年版でそのようにしてもmathtexは意図した通り動作しなかった)、schemeを選択するSを入力して、plain texとlatexだけインストールするbasic scheme(b)を選択してインストールするだけだった。

インストールが終わると、ちゃんとtexliveのインストールディレクトリにlatexが出来ていた。

mathtexをビルドして動作確認すると問題なく動作した。

mathtex導入前に使用していたmimetexもビルドして動作を確認。

あと使っているのかどうか謎だけど、全文検索のnamazuも入っていたので、namazuもダウンロードしてビルド。

最新のnamazuはnkfとkakasiに依存しているのでそれらもダウンロードしてビルド&インストール。

これでバイナリ版のCGIは全部ARM版になった。

あとは、mysqlを起動してhttpサーバーの動作確認。

mysqlはソースからビルド&インストールしただけだと、コンフィグレーション設定ファイルが無いのでそもそも起動しないことが判明。

現行のサーバーからコピーしてなんとか形を整えて、現行サーバーのデータベース内容をダンプして、wandboard上のmysqlデータベースを作成。mysqladminでユーザーパスワードを設定、これはxoopsがmysqlデータベースを使うのでその設定と同じに設定する必要あり。

あとはhttpサーバーのconfigを現行サーバーからコピーして準備おk。

手元のwindows pcのhostファイルを書き換えて、ローカルネットのwww.rainbowseeker.jpのIPアドレスを現行サーバーからwandboardのそれに定義した行に交換。

これでwww.rainbowseeker.jpにpingするとwandboardにpingすることになるのを確認。

httpサーバーもapachectrl startで起動することを確認。

さっそくブラウザでhttps://www.rainbowseeker.jp/xoopsを開いてみると、一応SSLで接続できているがなにやらエラーが。

This page cannot be displayed due to an internal error.

If you are the administrator of this site, please visit the XOOPS Cube official site for assistance.

Error [Xoops]: Unable to connect to database in file class/database/databasefactory.php line 34


どうもphpからmysqlデータベースへの接続が失敗しているぽい。

mysqlコマンド事態では問題なく設定したユーザー名とパスワードで接続できているので、PHP側固有の問題ぽい。

phpをconfigureする際に--with-mysqlを指定していたのだが、どうやらmysqlがインストールされたディレクトリをパラメータ値として指定する方法もあるぽいので試したら、なにやら未定義シンボルが出て怒られた。

/usr/lib/gcc/arm-fslc-linux-gnueabi/10.2.0/../../../../arm-fslc-linux-gnueabi/bin/ld: ext/mysql/php_mysql.lo: in function `zif_mysql_create_db':
/mnt/share/home/webadm/php-4.4.9/ext/mysql/php_mysql.c:1164: undefined reference to `mysql_create_db'
/usr/lib/gcc/arm-fslc-linux-gnueabi/10.2.0/../../../../arm-fslc-linux-gnueabi/bin/ld: ext/mysql/php_mysql.lo: in function `zif_mysql_drop_db':
/mnt/share/home/webadm/php-4.4.9/ext/mysql/php_mysql.c:1206: undefined reference to `mysql_drop_db'
collect2: error: ld returned 1 exit status
make: *** [Makefile:170: sapi/cli/php] Error 1

調べたところ、MYSQLのバージョンによっては未定義とされる内部関数が意図的にコンパイル対象から外されるようになっていることが判明。

無理矢理定義されるようにして解決したという記事もあるので試して見たがだめだった。もっと事態が悪化した。

In file included from /mnt/share/home/webadm/php-4.4.9/main/php.h:38,
from /mnt/share/home/webadm/php-4.4.9/ext/mysql/php_mysql.c:32:
/mnt/share/home/webadm/php-4.4.9/Zend/zend_API.h:34:23: error: 'zif_mysql_create_db' undeclared here (not in a function); did you mean 'zif_mysql_select_db'?
34 | #define ZEND_FN(name) zif_##name
| ^~~~
/mnt/share/home/webadm/php-4.4.9/Zend/zend_API.h:38:65: note: in definition of macro 'ZEND_NAMED_FE'
38 | ine ZEND_NAMED_FE(zend_name, name, arg_types) { #zend_name, name, arg_types },
| ^~~~

/mnt/share/home/webadm/php-4.4.9/Zend/zend_API.h:40:65: note: in expansion of macro 'ZEND_FN'
40 | ine ZEND_FALIAS(name, alias, arg_types) ZEND_NAMED_FE(name, ZEND_FN(alias), arg_types)
| ^~~~~~~

/mnt/share/home/webadm/php-4.4.9/main/php.h:310:21: note: in expansion of macro 'ZEND_FALIAS'
310 | #define PHP_FALIAS ZEND_FALIAS
| ^~~~~~~~~~~
/mnt/share/home/webadm/php-4.4.9/ext/mysql/php_mysql.c:184:2: note: in expansion of macro 'PHP_FALIAS'
184 | PHP_FALIAS(mysql_createdb, mysql_create_db, NULL)
| ^~~~~~~~~~
/mnt/share/home/webadm/php-4.4.9/Zend/zend_API.h:34:23: error: 'zif_mysql_drop_db' undeclared here (not in a function); did you mean 'zif_mysql_list_dbs'?
34 | #define ZEND_FN(name) zif_##name
| ^~~~
/mnt/share/home/webadm/php-4.4.9/Zend/zend_API.h:38:65: note: in definition of macro 'ZEND_NAMED_FE'
38 | ine ZEND_NAMED_FE(zend_name, name, arg_types) { #zend_name, name, arg_types },
| ^~~~

/mnt/share/home/webadm/php-4.4.9/Zend/zend_API.h:40:65: note: in expansion of macro 'ZEND_FN'
40 | ine ZEND_FALIAS(name, alias, arg_types) ZEND_NAMED_FE(name, ZEND_FN(alias), arg_types)
| ^~~~~~~

/mnt/share/home/webadm/php-4.4.9/main/php.h:310:21: note: in expansion of macro 'ZEND_FALIAS'
310 | #define PHP_FALIAS ZEND_FALIAS
| ^~~~~~~~~~~
/mnt/share/home/webadm/php-4.4.9/ext/mysql/php_mysql.c:185:2: note: in expansion of macro 'PHP_FALIAS'
185 | PHP_FALIAS(mysql_dropdb, mysql_drop_db, NULL)
| ^~~~~~~~~~
make: *** [Makefile:368: ext/mysql/php_mysql.lo] Error 1

なんだよもう(;´Д`)

それと毎回configureし直すたびに一部のヘッダファイル抜けソースが再び自動生成されるので修正し直し。

上の自動生成ファイルの問題を調査したら、どうやら本来はちゃんとヘッダファイルをインクルードする行が挿入されるスクリプトになっているが、それを処理する際にmawkというコマンドを使用しているのだが、それが手元のyocto BSPでは入っていないのが敗因。

mawkもダウンロードしてインストールしないと毎回尻ぬぐいの修正などやってられない。

どうやらphp4でのmysqlサポートはデフォルトなのでconfigure時に指定しなくても良いぽい。

今度は修正なしでphpのビルドが通った。

しかし依然としてxoopsのデータベース接続がだめだ。

php自身は問題ないことは、phpinfo.phpで確認。

また機会を改めて原因を調べよう。

んじゃまた。
フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
   WANDBOARD用のlinux BSP webadm 2020-12-31 23:14
     fsl-image-network-full-cmdlineとセルフビルド環境化 webadm 2021-1-4 0:50
       オープンソースソフトウェアのセルフビルドとインストール webadm 2021-1-4 8:31
       » CGI対応 webadm 2021-1-7 10:08
           PHP4+MySQL5接続問題解決 webadm 2021-1-9 3:25
             Webコンテンツの同期完了 webadm 2021-1-9 4:55
               rsync 3.2.3で嵌まる webadm 2021-1-15 20:21
     Debian 10を試す webadm 2021-1-19 9:44
       Debianはメモリ食いだった webadm 2021-2-4 6:51

 
ページ変換(Google Translation)
サイト内検索