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?
我终于找到了答案! 我必须在 php 文件中使用函数
exec()
来运行 bash 脚本,如下所示。还有一个重要的点。 我将所有
/var/www/
路径文件的访问级别更改为www-data
。