Мне нужно запустить скрипт, который будет выполнять файл 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;
?>
Несколько способов заставить это работать. Мой первый выбор — вызывать скрипт 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.
Попробовал объяснить в комментариях, не хватило места: /
Я решил свой вопрос этим методом:
#!/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);
Это не работает. Я ищу..