从Bash运行PHP文件

从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 = "

我需要运行一个脚本来执行一个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 = "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)