Gibt es eine Möglichkeit, Google Lighthouse mit PHP + Bash auszuführen?
P粉799885311
P粉799885311 2024-03-28 10:21:11
0
1
439

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粉799885311
P粉799885311

Antworte allen(1)
P粉541565322

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

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

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

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage