PHP proc_open - wie erlauben?

Status
Für weitere Antworten geschlossen.

Manuela

Benutzer
Mitglied seit
03. Nov 2018
Beiträge
31
Punkte für Reaktionen
0
Punkte
0
Hi,

ich habe auf meiner DS218j das Paket MediaWiki installiert. Klappt soweit ganz gut, mit einer Ausnahme. Ich habe die Erweiterung Scribunto installiert. Diese benötigt für das Funktionieren die PHP-Funktionaltität proc_open

Ich habe in der Webstation den HTTP-Backend-Server auf Apache 2.2 gesetzt sowie das Default-profile für PHP 5.6. Lt. meinen Recherchen sollte proc_open zugelassen sein, wenn es nicht ausdrücklich mit der Variablen disable_functions verboten wurde.

Beim Versuch, einen Lua-Modul zu speichern, erhalte ich die Fehlermeldung
Rich (BBCode):
Lua-Fehler: Der Prozess konnte nicht erstellt werden: proc_open(/dev/null): failed to open stream: Operation not permitted

Was habe ich übersehen, welche Einstellungen muss ich ändern?

Danke für eure Unterstützung,
Manuela
 

Manuela

Benutzer
Mitglied seit
03. Nov 2018
Beiträge
31
Punkte für Reaktionen
0
Punkte
0
Im Zuge meiner Recherchen bin ich auf folgenden Beitrage gestoßen:
DMS 6 and WikiMedia open_basedir Problem

Es scheint sich um das gleiche Thema zu handeln. Die Datei SYNO.SDS.MediaWiki.ini hat auf meinem System folgenden Inhalt:
Rich (BBCode):
extension=mysql.so
extension=mysqli.so
extension=pdo_mysql.so
extension=iconv.so
extension=openssl.so
extension=mcrypt.so

[PATH=/var/services/web/mediawiki]
open_basedir=/var/services/web:/tmp:/var/services/tmp
mysql.default_socket = /run/mysqld/mysqld10.sock
mysqli.default_socket = /run/mysqld/mysqld10.sock
pdo_mysql.default_socket = /run/mysqld/mysqld10.sock
mysql.default_port = 3307
mysqli.default_port = 3307

Leider habe ich wenig Ahnung von Linux, sodass ich nicht weiß, was ich ändern muss. Die Datei löschen? Den open_basedir-Eintrag löschen?
Danke für eure Unterstützung,
Manuela
 

Manuela

Benutzer
Mitglied seit
03. Nov 2018
Beiträge
31
Punkte für Reaktionen
0
Punkte
0
Inzwischen habe ich in den Dateien SYNO.SDS.MediaWiki.ini und phpMyAdmin.ini die Variable open_basedir=/ gesetzt, ohne erkennbare Änderung, die Fehlermeldung ist immer noch die gleiche:

Warning: proc_open(): open_basedir restriction in effect. File(/dev/null) is not within the allowed path(s): (/var/services/web:/tmp:/var/services/tmp) in /volume1/web/mediawiki/extensions/Scribunto/engines/LuaStandalone/LuaStandaloneEngine.php on line 244 Warning: proc_open(/dev/null): failed to open stream: Operation not permitted in /volume1/web/mediawiki/extensions/Scribunto/engines/LuaStandalone/LuaStandaloneEngine.php on line 244 Warning: proc_open(): open_basedir restriction in effect. File(/dev/null) is not within the allowed path(s): (/var/services/web:/tmp:/var/services/tmp) in /volume1/web/mediawiki/extensions/Scribunto/engines/LuaStandalone/LuaStandaloneEngine.php on line 244 Warning: proc_open(/dev/null): failed to open stream: Operation not permitted in /volume1/web/mediawiki/extensions/Scribunto/engines/LuaStandalone/LuaStandaloneEngine.php on line 244
 

Manuela

Benutzer
Mitglied seit
03. Nov 2018
Beiträge
31
Punkte für Reaktionen
0
Punkte
0
Nach dem Neustart von Apache 2.2 enthält die Datei SYNO.SDS.MediaWiki.ini wieder die Codezeile
Rich (BBCode):
open_basedir=/var/services/web:/tmp:/var/services/tmp

Ich habe in der WebStation bei den PHP-Einstellungen ein Häkchen bei PHP open_basedir benutzerspezifisch anpassen gemachen und "/" eingetragen, ohne Effekt.

Gibt es hier wirklich niemanden, der mir Hinweise geben kann?
 

4bob

Benutzer
Mitglied seit
04. Mai 2016
Beiträge
604
Punkte für Reaktionen
1
Punkte
38
Hi; Synology bietet dir die Möglichkeit deine php Einstellungen über die Webstation als Profil einzurichten.
Du hast den Wert so hinzugefügt? /var/services/web:/tmp:/var/services/tmp:/dev/null

Wenn du darüber hinaus Änderungen vornehmen willst musst du über die Konsole hier nachsehen:
/usr/syno/etc/packages/WebStation/php_profile
in diesem Verzeichnis liegen alle Profile, also mindesten eins.
Bei mir bspw... /usr/syno/etc/packages/WebStation/php_profile/6d5a5424-e1e9-4655-97bc-7e8254b67888/conf.d/
Der Ordner beinhaltet eine user_settings.ini dort wirst du fündig.

Benutze die Suche! Du findest hier viele Beitäge die dir weiterhelfen:
Hier z.B. kannst du nachlesen wie eine PHP Info Seite erstellt wird um geladene Module aber auch Konfigurationen anzuzeigen, dort findest du die oben genannten Pfade..
und hier beschrieben, auch um beständig zu bleiben ;)

Bob
 

Manuela

Benutzer
Mitglied seit
03. Nov 2018
Beiträge
31
Punkte für Reaktionen
0
Punkte
0
Bob, danke für die Hinweise. Eine php.info hatte ich bereits erstellt, die meint lustigerweise, dass open_basedir nicht bzw. auf /var/services/web:/tmp:/var/services/tmp:/dev/null gesetzt ist, MediaWiki ist leider anderer Meinung. Ich weiß keinen Rat mehr, ich habe schon alles mögliche durchprobiert, von "none" über "/" bis ganz leer, immer die gleiche Fehlermeldung.
 

4bob

Benutzer
Mitglied seit
04. Mai 2016
Beiträge
604
Punkte für Reaktionen
1
Punkte
38
die meint lustigerweise, dass open_basedir nicht bzw. auf /var/services/web:/tmp:/var/services/tmp:/dev/null gesetzt ist
Du machst eine Änderung der open_basedir über die GUI; startest php durch und die Infoseite zeigt das nicht an? ...dann würde grundsätzlich was mit deinem Setup nicht stimmen.

Anders setzt du ins open_basedir ein Verzeichnis hinzu muss der Webserver auch hier Zugriff haben. Genauer http, so heißt hier der Systemaccount der Webstation. Ist das nicht der Fall meldet jener auch Zugriffsfehler.

Mach doch mal ein Beispiel was du mit Scribunto genau erstellst?

Interessant ist jedenfalls noch was der Webserver Apache ins log schreibt
/var/log/httpd/apache22-error_log und PHP56 hier meldet var/log/php56-fpm.log

Dann noch das Debuggen für Scribunto aktivieren. Evtl. auch noch sehenswert etwas so in der media config die solltest du kennen:
$wgScribuntoEngineConf['luastandalone']['errorFile'] = '/volume1/web/mediawiki/scribunto_lua.log';

Bob
 

4bob

Benutzer
Mitglied seit
04. Mai 2016
Beiträge
604
Punkte für Reaktionen
1
Punkte
38
Das MediaWiki ist sehr speziell :D
Vergiss das was ich vorhin geschrieben habe, das gilt in diesem Fall nicht für‘s MediaWiki von Synology.

Du nennst die config bereits: /volume1/@appstore/MediaWiki/synology_added/SYNO.SDS.MediaWiki.ini

Schau ich mir das custom script vom MW an finde ich es ebenfalls,
es wird vorm Start kopiert und damit php56 angepasst:

Rich (BBCode):
# put php.ini for upgrading
cp -a "$SYNOLOGY_ADDED_PATH/SYNO.SDS.$PKG_NAME.ini" "/usr/local/etc/php56/conf.d/"
reload pkg-WebStation-php56

Folgender Vorschlag, kopiere die infophp ins root vom mediawiki und ruf sie auf, so kannst du alle geladen Optionen einsehen. Die SYNO.SDS.MediaWiki.ini änderst du ab
open_basedir=/var/services/web:/tmp:/var/services/tmp:/dev/null
und startest den Dienst vom MediaWiki neu, das Ergebnis ist dann in der Infoseite direkt sichtbar...anschließend erneut Scribunto – Lua versuchen.

Bob
 

Manuela

Benutzer
Mitglied seit
03. Nov 2018
Beiträge
31
Punkte für Reaktionen
0
Punkte
0
Hallo Bob,

danke für deine ausführlichen Hinweise.

Lua ist super, damit kann ich wunderbar Vorlagen programmieren. Ich habe beispielsweise ein Modul für die Dokumentation von Vorlagen geschrieben, das folgendes kann: auf der Vorlagenseite wird eine Beschreibung der Funktionsweise angezeigt, darunter eine hübsch formatierte Tabelle mit den Parametern, weiters der Wikitext der Vorlage sowie einige Anwendungsbeispiele, die sich automatisch aktualisieren, wenn man die Vorlage ändert. Eine Liste mit Parameternamen sowie deren Beschreibung und die gewünschten Parameter der Anwendungsbeispiele muss man natürlich eingeben, alles kann das Programm nicht automatisieren.

Mit Lua könnte ich noch weitere tolle Dinge machen, z.B. SVG-Code in einem Wiki generieren, dieser Code könnte per Copy&Paste in eine SVG-Datei übernommen werden. Oder Lilypond-Code erzeugen. Wenn es denn in meinem Wiki funktionieren würde....

Wenn es dich interessiert, poste ich meinen Code hier.

Update: immerhin ist die Fehlermeldung jetzt verschwunden, statt dessen kommt
Rich (BBCode):
Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 126

Das ist ein bekannter Fehler, der hier beschrieben wird.

Jetzt stellt sich für mich die Frage, wie ich die Servereinstellungen so ändern kann, dass der Lua-Modul in einem exekutierbaren Pfad liegt. Mit meinen nicht vorhandenen Kenntnissen von Linux... Du kennst dich offensichtlich besser aus, vll hast du noch eine Idee.

Update II: Ich habe versucht, anhand der Anleitung die Berechtigung auf ausführen zu setzen mit folgendem Kommando:
chmod -R -f -v a+x /volume1/web/mediawiki/extensions
Hat genau gar nichts geholfen, was mache ich falsch?

Update III: Hier der Inhalt von fstab, vll. steckt der Fehler ja hier:

none /proc proc defaults 0 0
/dev/root / ext4 defaults 1 1
/dev/vg1/volume_1 /volume1 ext4 usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0,synoacl,relatime 0 0
/dev/vg2/volume_2 /volume2 ext4 usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0,synoacl,relatime 0 0
 
Zuletzt bearbeitet:

4bob

Benutzer
Mitglied seit
04. Mai 2016
Beiträge
604
Punkte für Reaktionen
1
Punkte
38
Hab deine Updates nicht gesehen, besser du verwendest immer bei meinen Beiträgen das "direkt antworten" :)
zum Update I: Schau in die LocalSettings.php vom MW; schalte das Debuggen für Scribunto ein.

Rich (BBCode):
wfLoadExtension( 'Scribunto' );
$wgScribuntoDefaultEngine = 'luasandbox';

# End of automatically generated settings.
# Add more configuration options below.

$wgScribuntoUseGeSHi = true;
$wgScribuntoUseCodeEditor = true;
$wgScribuntoEngineConf['luasandbox']['errorFile'] = '/volume1/web/mediawiki/scribunto_lua.log';

zum Update II: Meine Empfehlung was Linux Anleitungen betrifft, führe nicht alles "blind" aus. Prüfe bitte genauer, bzw. so ( für eine 64bit Intel CPU)
ls -la /volume1/web/mediawiki/extensions/Scribunto/engines/LuaStandalone/binaries/lua5_1_5_linux_64_generic/lua

Bob

PS: Freut mich zu sehen das es vorangeht :)
 

4bob

Benutzer
Mitglied seit
04. Mai 2016
Beiträge
604
Punkte für Reaktionen
1
Punkte
38
Welche DS hast du, bzw. CPU?
Der Beitrag aus dem Wiki zum Fehler 126 sagt auch das du neben der Ausführbarkeit den genauen Pfad mitgibst:
$wgScribuntoEngineConf['luastandalone']['luaPath'] =

Hab die DefaultEngine auf luastandalone umgestellt plus path, schaut dann so aus für meine DS:

Rich (BBCode):
$wgScribuntoDefaultEngine = 'luastandalone';
$wgScribuntoUseGeSHi = true;
$wgScribuntoUseCodeEditor = true;
$wgScribuntoEngineConf['luastandalone']['luaPath'] = '/volume1/web/mediawiki/extensions/Scribunto/engines/LuaStandalone/binaries/lua5_1_5_linux_64_generic/lua'
$wgScribuntoEngineConf['luastandalone']['errorFile'] = '/volume1/web/mediawiki/scribunto_lua.log';

Bob
 
Zuletzt bearbeitet:

Manuela

Benutzer
Mitglied seit
03. Nov 2018
Beiträge
31
Punkte für Reaktionen
0
Punkte
0
Hallo Bob,

weiterhin danke für deine Unterstützung. Ich wollte diesen Thread nicht mit Beiträgen zuspammen, daher die Updates. Aber jetzt bin ich schlauer ;-)

Hier die gewünschte Info zu meinem System:
Modellname: DS218j
Prozessor: MARVELL Armada 385 88F6820
DSM Version: 6.2.1-23824 Update 1


Im Fehlerlog steht nach dem Versuch, ein Programm zu erzeugen, folgendes:
/volume1/web/mediawiki/extensions/Scribunto/engines/LuaStandalone/lua_ulimit.sh: line 6: /volume1/web/mediawiki/extensions/Scribunto/engines/LuaStandalone/binaries/lua5_1_5_linux_64_generic/lua: cannot execute binary file: Exec format error
/volume1/web/mediawiki/extensions/Scribunto/engines/LuaStandalone/lua_ulimit.sh: line 6: /volume1/web/mediawiki/extensions/Scribunto/engines/LuaStandalone/binaries/lua5_1_5_linux_64_generic/lua: Success
/volume1/web/mediawiki/extensions/Scribunto/engines/LuaStandalone/lua_ulimit.sh: line 6: /volume1/web/mediawiki/extensions/Scribunto/engines/LuaStandalone/binaries/lua5_1_5_linux_64_generic/lua: cannot execute binary file: Exec format error
/volume1/web/mediawiki/extensions/Scribunto/engines/LuaStandalone/lua_ulimit.sh: line 6: /volume1/web/mediawiki/extensions/Scribunto/engines/LuaStandalone/binaries/lua5_1_5_linux_64_generic/lua: Success


Sagt dir das irgendwas?

Das Ausführen des ls-Kommandos ergibt folgendes:
~$ ls -la /volume1/web/mediawiki/extensions/Scribunto/engines/LuaStandalone/binaries/lua5_1_5_linux_64_generic/lua
-rwxrwxrwx 1 admin users 195508 Jun 14 2017 /volume1/web/mediawiki/extensions/Scribunto/engines/LuaStandalone/binaries/lua5_1_5_linux_64_generic/lua


Viele Grüße
Manuela
 

4bob

Benutzer
Mitglied seit
04. Mai 2016
Beiträge
604
Punkte für Reaktionen
1
Punkte
38
Sagt dir das irgendwas?

Jepp
Du hast eine 32bit ARM CPU, du musst das Binarie umstellen

/volume1/web/mediawiki/extensions/Scribunto/engines/LuaStandalone/binaries/lua5_1_5_linux_32_generic/lua


Rich (BBCode):
$wgScribuntoDefaultEngine = 'luastandalone';
$wgScribuntoUseGeSHi = true;
$wgScribuntoUseCodeEditor = true;
$wgScribuntoEngineConf['luastandalone']['luaPath'] = '/volume1/web/mediawiki/extensions/Scribunto/engines/LuaStandalone/binaries/lua5_1_5_linux_32_generic/lua'
$wgScribuntoEngineConf['luastandalone']['errorFile'] = '/volume1/web/mediawiki/scribunto_lua.log';

Bob
 

4bob

Benutzer
Mitglied seit
04. Mai 2016
Beiträge
604
Punkte für Reaktionen
1
Punkte
38
-rwxrwxrwx 1 admin users 195508 Jun 14 2017 /volume1/web/mediawiki/extensions/Scribunto/engines/LuaStandalone/binaries/lua5_1_5_linux_64_generic/lua[/FONT]
Manuela

Hier würde ich die Rechte noch anpassen, also 777 ist nicht wirklich gut. Könntest du im Anschluss machen, gehst es jetzt?
 

Manuela

Benutzer
Mitglied seit
03. Nov 2018
Beiträge
31
Punkte für Reaktionen
0
Punkte
0
Hier würde ich die Rechte noch anpassen, also 777 ist nicht wirklich gut. Könntest du im Anschluss machen
Meinst du aus Sicherheitsgründen? Außer mir kann niemand auf das Wiki zugreifen, von außen ist es nicht erreichbar.


Leider nein, die Fehlermeldung ist ein wenig anders, aber nicht essentiell ;-)

/volume1/web/mediawiki/extensions/Scribunto/engines/LuaStandalone/lua_ulimit.sh: line 6: /volume1/web/mediawiki/extensions/Scribunto/engines/LuaStandalone/binaries/lua5_1_5_linux_32_generic/lua: cannot execute binary file: Exec format error
/volume1/web/mediawiki/extensions/Scribunto/engines/LuaStandalone/lua_ulimit.sh: line 6: /volume1/web/mediawiki/extensions/Scribunto/engines/LuaStandalone/binaries/lua5_1_5_linux_32_generic/lua: Success
/volume1/web/mediawiki/extensions/Scribunto/engines/LuaStandalone/lua_ulimit.sh: line 6: /volume1/web/mediawiki/extensions/Scribunto/engines/LuaStandalone/binaries/lua5_1_5_linux_32_generic/lua: cannot execute binary file: Exec format error
/volume1/web/mediawiki/extensions/Scribunto/engines/LuaStandalone/lua_ulimit.sh: line 6: /volume1/web/mediawiki/extensions/Scribunto/engines/LuaStandalone/binaries/lua5_1_5_linux_32_generic/lua: Success


Das NAS habe ich erst kürzlich gekauft, ich dachte nicht, dass da noch ein 32-bit System drauf läuft.
 

4bob

Benutzer
Mitglied seit
04. Mai 2016
Beiträge
604
Punkte für Reaktionen
1
Punkte
38
Genau aus Sicherheitsgründen, auch wenn nur du darauf zugreifen kannst ;)

Schau selbst mit drüber, aber ich sehe nur 32-bit instruction ...
http://www.marvell.com/embedded-processors/armada-38x/assets/ARMADA-38x-Hardware-Spec.pdf

Jetzt kann es nur sein das der ARM nicht unterstützt wird ..
Versuch doch mal beide in der Konsole auszuführen:
Rich (BBCode):
/volume1/web/mediawiki/extensions/Scribunto/engines/LuaStandalone/binaries/lua5_1_5_linux_64_generic/lua
Rich (BBCode):
/volume1/web/mediawiki/extensions/Scribunto/engines/LuaStandalone/binaries/lua5_1_5_linux_32_generic/lua

sollte ein command prompt erscheinen mit STRG + C kommst du da wieder raus.
 

Manuela

Benutzer
Mitglied seit
03. Nov 2018
Beiträge
31
Punkte für Reaktionen
0
Punkte
0
Es ist wie verhext, die Fehlermeldung ist immer die gleiche, egal ob 32 oder 64 bit

$ /volume1/web/mediawiki/extensions/Scribunto/engines/LuaStandalone/binaries/lua5_1_5_linux_32_generic/lua
-sh: /volume1/web/mediawiki/extensions/Scribunto/engines/LuaStandalone/binaries/lua5_1_5_linux_32_generic/lua: cannot execute binary file: Exec format error


Ich habe hier eine Diskussion gefunden, aber bei mir hat die Änderung von 64 auf 32 bit keine Änderung gebracht.

Auch die Windows-execs gehen nicht, wie nicht anders zu erwarten.
 

4bob

Benutzer
Mitglied seit
04. Mai 2016
Beiträge
604
Punkte für Reaktionen
1
Punkte
38
Schade ... cannot execute binary file: Exec format error
Das sagt ganz klar das deine CPU dieses Format nicht unterstützt und so nicht ausführen kann.

Hast du Scribunto Version 1.30 heruntergeladen? Viele Optionen bleiben da nicht; versuch noch ein downgrade auf 1.29. Und suche das Repository evtl. kannst du hier nachfragen. Oder es gibst noch eine ARM taugliche Version für die DS.
 
Zuletzt bearbeitet:

Manuela

Benutzer
Mitglied seit
03. Nov 2018
Beiträge
31
Punkte für Reaktionen
0
Punkte
0
Danke Bob, jetzt weiß ich wenigstens, was los ich. Die Lua-Binaries von 1.29 und 1.30 sind auf das Byte genau gleich groß, daher vermute ich, dass sie identisch sind.

Ich suche weiter...
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat