2017-12-15 5 views
1

Ich möchte ein Skript (phantomJS) über PHP exec() oder shell_exec() ausführen. Alles funktioniert gut auf meinem Entwicklungssystem.Sichere Linux Server Setup zum Ausführen von Skripten über PHP exec()?

Ich habe phantomJS auf meinem Produktionsserver installiert und habe es erfolgreich vom Terminal aus ausgeführt, nachdem ich mich über SSH angemeldet habe.

Aber wenn ich es von PHP über exec() oder shell_exec() laufen lasse, erhalte ich Nachrichten sagen:

GLIBCXX_3.xx nicht gefunden

GLIBC_2.xx nicht

gefunden

Das Support-Team unter der Web-Hosting Der Provider sagt, dass er nicht weiß, wie er den Server aktivieren kann, um auf das Skript zuzugreifen und trotzdem die Sicherheit zu wahren:

Wir sind nicht mit den Besonderheiten von ihm vertraut, so dass wir entweder zu mit Deaktivierung der chroot gehen, aber als unser Vorgesetzter erwähnt wird dies für alle Konten auf dem Server ermöglichen, miteinander zu berücksichtigen was die Chroot verhindert.

Sie können Ihre eigenen Systemadministratoren bei der Einrichtung, wie Sie aussehen haben Root-Zugriff zu tun haben, und sehen, ob sie eine Abhilfe entwickeln können, aber auf unser Ende das ist das einzige, was wir vorschlagen können.

Sie laufen CentOS, das ist ein 64-Bit-Linux-Betriebssystem.

Ich habe sehr gute Erfahrungen mit diesem Webhost bis zu diesem Zeitpunkt, also hoffe ich, dass es einen Weg gibt, dies zu beheben, ohne Hosts zu wechseln.

Ich habe vollen Root-Zugriff auf das Konto, so dass ich es in jeder notwendigen Weise konfigurieren kann.

Kann jemand einige Vorschläge machen, wie ich meinen Produktionsserver für den Zugriff auf phantomJS konfigurieren könnte, während ich einen sicheren Server verwalte?

UPDATE

Anscheinend ist meine App in einer "chroot-Umgebung" ohne vollen Root-Zugriff auf GLIB auf dem Server. Der Webhost sagt, dass es einen Mangel an Sicherheit geben wird, wenn mein PHP-Benutzer vollen Root-Zugang erhält.

+0

Hat der Benutzer, der den Webserver zur Ausführung von PHP verwendet (wenn der Apache- oder Nginx-Standardwert www-data wäre), die Berechtigung, den Befehl für phantomJS auszuführen? – commanderZiltoid

+0

Ich werde dies mit dem Webhost bestätigen. – VikR

+0

Es scheint, dass PhantonJS Abhängigkeiten gebrochen hat. Hier ist ein ähnliches Problem, vielleicht unterstützt PhantomJS Ihre CentOS-Version nicht: https://github.com/ariya/phantomjs/issues/13940 – manoelhc

Antwort

1

Sie müssen Ihren PhantomJS-Systemaufruf entfernen und eine API-Schicht oder einen Dienst erstellen, der eine MQ-Warteschlange abonniert und sie dann in PHP integriert, um verschiedene Probleme zu vermeiden, einschließlich der Chroot-Beschränkung.

Verwandte Themen