Запустите PHP-файл из Bash

Мне нужно запустить скрипт, который будет выполнять файл php, но я не могу запустить файл PHP из Bash Script

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;
?>

0

Решение

Несколько способов заставить это работать. Мой первый выбор — вызывать скрипт PHP напрямую из cron.
Для этого убедитесь, что ваш php-скрипт исполняемый (chmod 755)
Убедитесь, что PHP-скрипт CLI начинается с ..

#!/usr/bin/php
<?php

В командной строке введите «which php» и измените строку «/ usr / bin …» соответственно.
После того, как эти шаги будут выполнены, ваша запись в cron может выглядеть следующим образом. , ,

*/5 * * * * /usr/bin/php -f /var/www/script.php

и снова, убедитесь, что вы указываете фактическое местоположение php.
Попробовал объяснить в комментариях, не хватило места: /

1

Другие решения

Я решил свой вопрос этим методом:

#!/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);

Это не работает. Я ищу..

0