从Bash运行PHP文件
我需要运行一个脚本来执行一个php文件,但我不能从Bash脚本运行php文件 Test.sh:从Bash运行PHP文件,php,bash,sh,bin,Php,Bash,Sh,Bin,我需要运行一个脚本来执行一个php文件,但我不能从Bash脚本运行php文件 Test.sh: #!/bin/sh php /home/username/public_html/Test3/Test.php 错误在哪里 /var/log/cron: Sep 7 22:56:01 srv CROND[4344]: (root) CMD (sh /home/Username/public_html/Test3/test.sh) Test.php <?php $servername = "
#!/bin/sh
php /home/username/public_html/Test3/Test.php
错误在哪里
/var/log/cron:
Sep 7 22:56:01 srv CROND[4344]: (root) CMD (sh /home/Username/public_html/Test3/test.sh)
Test.php
<?php
$servername = "localhost";
$username = "";
$password = "";
$dbname = "";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$date = date('h:i:s');
$sql = "UPDATE deneme SET CRONTEST='".$date."' WHERE id=1";
$stmt = $conn->prepare($sql);
$stmt->execute();
echo $stmt->rowCount() . " records UPDATED successfully";
}
catch(PDOException $e)
{
echo $sql . "<br>" . $e->getMessage();
}
$conn = null;
?>
有多种方法可以实现此功能。我的第一个选择是直接从cron调用PHP脚本。
为此,请确保您的php脚本是可执行的(chmod 755)
确保CLI php脚本以..开头
#!/usr/bin/php
<?php
同样,请确保指向php的实际位置。
尝试在评论中进行解释,但空间不足:/有多种方法可以使此功能正常工作。我的第一个选择是直接从cron调用PHP脚本。
为此,请确保您的php脚本是可执行的(chmod 755)
确保CLI php脚本以..开头
#!/usr/bin/php
<?php
同样,请确保指向php的实际位置。
试图在评论中解释,但空间不足:/我通过以下方法解决了我的问题:
#!/bin/bash
data=$(/usr/bin/php -q /home/username/public_html/Test3/Test.php);
但我不能使用变量,例如:
#!/bin/bash
data=$(/usr/bin/php -q /home/username/public_html/Test3/Test.php name=Saracoglu);
它不起作用。我正在搜索..我用以下方法解决了我的问题:
#!/bin/bash
data=$(/usr/bin/php -q /home/username/public_html/Test3/Test.php);
但是我不能改变,例如:
#!/bin/bash
data=$(/usr/bin/php -q /home/username/public_html/Test3/Test.php name=Saracoglu);
它不起作用。我正在搜索..我知道它很旧,但我今天才碰到这个。每当Bash脚本不执行PHP脚本时(尽管拥有正确的权限并且“PHP”命令可以自己工作),我发现使用PHP的完整路径可以解决这个问题。i、 e
#!/bin/bash
other code
...
/usr/bin/php /home/username/public_html/Test3/Test.php
您可以使用哪个php
和哪个php
来确定正确的路径。我知道它很旧,但我今天才遇到这个问题。每当Bash脚本不执行PHP脚本时(尽管拥有正确的权限并且“PHP”命令可以自己工作),我发现使用PHP的完整路径可以解决这个问题。i、 e
#!/bin/bash
other code
...
/usr/bin/php /home/username/public_html/Test3/Test.php
您可以使用which php
和where is php
来确定正确的路径。如果您只需在bash中键入php-v
,输出是什么?您可以在控制台中打印错误吗?您是否已将x
添加到文件中?@MarcoSantarossa没有错误errors@DuaneLortie (?)如果您在bash中简单地键入php-v
,输出是什么?您可以打印控制台中的错误吗?您是否已将x
添加到文件中?@MarcoSantarossa没有errors@DuaneLortie(?)这不是和我在回答中写的一样吗?@heemayl在回答data=$(binPath-qpath)中没有代码>这不是我在回答中写的一样东西吗?@heemayl你在回答中没有data=$(binPath-qpath)代码>