Heim  >  Fragen und Antworten  >  Hauptteil

Gibt es eine Möglichkeit, Google Lighthouse mit PHP + Bash auszuführen?

Ich habe versucht, Google-Lighthouse auf meiner Website zu verwenden. Ich habe eine PHP-Datei geschrieben, die ein Bash-Skript zum Ausführen von lighthouse-cli aufruft.

run_bash.php:

<?php

if(isset($_GET['subject2'])) {

$text = $_GET['subject2'];

$text = escapeshellarg($text);

$command = './rex.sh 2>&1 >> path/mylog ' . $text ;
$output = shell_exec($command);
echo "<pre>$output</pre>";

}
?>

Mein Bash-Skript:

rex.sh

#!/bin/bash
SITE=""
SITE=
VALUE=$(echo $SITE | awk -F'//' '{print }')
lighthouse $SITE --output html  --output-path ./path/$VALUE.html

Es gibt auch ein einfaches PHP-Formular namens run_bash.php.

Die Frage ist nun: Wenn ich das Bash-Skript in der Shell mit Putty ausführe, funktioniert es einwandfrei, aber wenn ich meine URL aufrufe und run_bash.php ausführe, werden diese Fehler im Browser angezeigt:

Sun, 05 Jun 2022 19:20:59 GMT LH:ChromeLauncher Waiting for browser...............................................................................................
Sun, 05 Jun 2022 19:21:00 GMT LH:ChromeLauncher Waiting for browser.................................................................................................
Sun, 05 Jun 2022 19:21:00 GMT LH:ChromeLauncher Waiting for browser...................................................................................................
Sun, 05 Jun 2022 19:21:01 GMT LH:ChromeLauncher Waiting for browser.....................................................................................................
Sun, 05 Jun 2022 19:21:01 GMT LH:ChromeLauncher Waiting for browser.......................................................................................................

Sun, 05 Jun 2022 19:21:01 GMT LH:ChromeLauncher:error connect ECONNREFUSED 127.0.0.1:33989
Sun, 05 Jun 2022 19:21:01 GMT LH:ChromeLauncher:error Logging contents of /tmp/lighthouse.dVx18OP/chrome-err.log

Unable to connect to Chrome

Ich würde gerne wissen, ob das schon mal jemand gemacht hat? Oder ist das überhaupt möglich?

P粉799885311P粉799885311228 Tage vor428

Antworte allen(1)Ich werde antworten

  • P粉541565322

    P粉5415653222024-03-29 00:36:05

    终于找到了答案! 我必须在 php 文件中使用函数 exec() 来运行 bash 脚本,如下所示。

    $output = exec('./rex.sh  ' . $text  );

    还有一个重要的点。 我将所有 /var/www/ 路径文件的访问级别更改为 www-data

    Antwort
    0
  • StornierenAntwort