Heim > Fragen und Antworten > Hauptteil
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粉5415653222024-03-29 00:36:05
我终于找到了答案!
我必须在 php 文件中使用函数 exec()
来运行 bash 脚本,如下所示。
$output = exec('./rex.sh ' . $text );
还有一个重要的点。
我将所有 /var/www/
路径文件的访问级别更改为 www-data
。