localhost の php プログラムで wine を起動できない

Linux Mintのソフトウェアとアプリケーションに関する質問

localhost の php プログラムで wine を起動できない

投稿記事by kirakuni » 2018年12月10日(月) 17:11

Linux mint 19 Tara を使っています。

wine を導入して、FLASH8やその他のソフトをインストールしてほぼ思い通りに動いています。
最近Radiant という dicom ビューワのお試し版をインストールしました。
これをlocalhost の php プログラムから動かしたいと思うのですがうまく動いてくれません。

コマンドラインからは、「wine "/home/user/.wine/drive_c/Program Files/RadiAntViewer64bit/RadiAntViewer.exe"」で動くので、

<?php
$output = shell_exec('wine "/home/user/.wine/drive_c/Program Files/RadiAntViewer64bit/RadiAntViewer.exe" 2>&1') ;
echo $output ;
?>

で動きそうなものですがこれをlocalhostから実行すると、次のようなエラーメッセージが出て止まってしまいます。

002e:fixme:msvcrt:_configure_wide_argv (1) stub 002e:fixme:msvcrt:_initialize_wide_environment stub 002e:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded. 002e:err:winediag:nodrv_CreateWindow Make sure that your X server is running and that $DISPLAY is set correctly. 0034:fixme:ole:CoInitializeSecurity ((nil),-1,(nil),(nil),0,3,(nil),0,(nil)) - stub! 0034:fixme:wbemprox:client_security_SetBlanket 0x7f801a4310d0, 0x8e170, 10, 0, (null), 3, 3, (nil), 0x00000000 0034:fixme:wbemprox:client_security_Release 0x7f801a4310d0 002e:fixme:win:RegisterDeviceNotificationW (hwnd=(nil), filter=0x22edd8,flags=0x00000000) returns a fake device notification handle! 002e:fixme:msg:ChangeWindowMessageFilterEx 0x1004c 233 1 (nil) 002e:fixme:msg:ChangeWindowMessageFilterEx 0x1004c 4a 1 (nil) 002e:fixme:msg:ChangeWindowMessageFilterEx 0x1004c 49 1 (nil) 002e:fixme:msg:ChangeWindowMessageFilterEx 0x2004c 233 1 (nil) 002e:fixme:msg:ChangeWindowMessageFilterEx 0x2004c 4a 1 (nil) 002e:fixme:msg:ChangeWindowMessageFilterEx 0x2004c 49 1 (nil) 002e:fixme:msg:ChangeWindowMessageFilterEx 0x10044 4a 1 (nil)

しかし不思議なことに、このphpプログラムをコマンドラインから「php exshell.php」として動かすと実行されます。

パーミッションの問題かとも思い、sudo chown -R www-data:www-data /home/user/.wine などとしてもダメです。
sudo visudo で、www-data ALL=NOPASSWD: ALLとしてもダメです。

FLASH8や他のwine プログラムで確認しても、すべてダメで localhost の php からは wine を動かせません。
どなたかヘルプをお願いします。
kirakuni
序二段
 
記事: 20
登録日時: 2015年11月22日(日) 21:21

Re: localhost の php プログラムで wine を起動できない

投稿記事by kirakuni » 2018年12月11日(火) 08:27

自己解決しました。

昨日、朝から晩までいろんなことをやってみて全滅したので投稿させて頂きましたが、
投稿後に /etc/apache2/envvars を編集して、

export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data

の www-data を私のアカウント(コンピュータ名)にして

shell_exec('DISPLAY=:0 wine ・・・・・・') ;

としたら、起動するようになりました。
であれば、apache のユーザーは www-data で、

sudo chown -R www-data:www-data /home/user/.wine

で動いても良さそうですがそれではダメでした。
ただ、このようにして FLASH8 や notepad を起動すると、猛烈に時間がかかる上に文字化けが発生します。
FLASH8 などはメニューから通常起動すればいいんですけどね。
kirakuni
序二段
 
記事: 20
登録日時: 2015年11月22日(日) 21:21

Re: localhost の php プログラムで wine を起動できない

投稿記事by kirakuni » 2018年12月11日(火) 10:31

文字化けについて

更に自己レスです。
メニューから wine プログラムを立ち上げると文字化けしないのに php から実行すると文字化けするので、
一度 wine をインストールし直してアルファベット文字化け(豆腐のような)対策をせずに php から動かすと文字化けがなくなりました。その代わり、同じプログラムをメニューから立ち上げると文字化けします。

一体どうなってるんでしょう?
kirakuni
序二段
 
記事: 20
登録日時: 2015年11月22日(日) 21:21


Return to ソフトウェアとアプリケーション

オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[0人]