PHP/Ubuntu - QxcbConnection: es Konnte keine Verbindung zum display abgebrochen
Ich bin mit einem php-Skript auf meinem apache/ubuntu server zum Aufruf einer bash-Skript, das löst eine Anwendung, ein python-Skript als argument (IDAPro).
PHP-Code
chdir('/var/www/dashboard/team/static/sql');
$output = exec('sudo -u rohan ./start.sh');
Nun, der obige code funktioniert, wenn ich die PHP-Datei aus dem terminal - aber nur, wenn ich führen Sie es als root-Benutzer an. Unnötig zu sagen, wenn ich führen Sie die bash-Datei direkt läuft es auch.
Aber wenn ich die PHP-Datei über den browser, es funktioniert nicht und ich bekomme die folgende Fehlermeldung im apache-error-log:
QXcbConnection: Could not connect to display
Aborted
Verstehe ich, dass der Apache/php läuft als www-data Benutzer (verwendet die 'whoami', um zu überprüfen), und das ist, warum ich das sudo in meinen exec. Ich habe optimiert und gebastelt, die Berechtigungen für Benutzer ohne Erfolg. Wenn ich die php-Datei aus dem terminal als www-data user, es wirft keine Fehler aber tut nichts, außer die Anzeige der random-echo-tags, die ich am Anfang und Ende des scripts zu Debuggen.
Ich bin ein linux-Anfänger, so dass jede Hilfe wird sehr geschätzt.
InformationsquelleAutor Rohan Sood | 2017-06-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Okay, ich habe es endlich geschafft, es zu lösen.
Ist das Problem nicht mit den Berechtigungen, aber es ist mit den Umgebungsvariablen.
Musste ich die folgende Zeile in meine bash-Skript
Beachten Sie, dass die variable in das terminal und das script ausgeführt wurde, funktioniert nicht. Die Zeile muss in das Skript.
Ich nehme an, dies ist, weil die variable DISPLAY ist nicht gesetzt, wenn Sie das Skript ausführen, wie jedem anderen Benutzer als root, das ist das, was passiert, im Falle von Apache/PHP, wo das Skript ausgeführt wird, als "www-data" Benutzer.
QXcbConnection: Could not connect to display :0.0
oder0.0
wenn das weglassen der SpalteInformationsquelleAutor Rohan Sood
vielleicht könnten Sie so etwas wie die folgende am Anfang des Skripts:
XAUTHORITY
!InformationsquelleAutor João Dantas