Синтаксическая разница между MAMP и Ubuntu Server

У меня есть следующая функция для учета воскресений в расчетах рабочего дня. Он работает на моем тестовом сервере MAMP, работающем на Mac. Когда я перемещаю код на сервер Ubuntu, на котором работает LAMP, он перестает работать (проявляется в том, что страница ничего не загружает).

Я не могу понять почему, и попробовал все различные комбинации одинарных и двойных кавычек.

Функция: —

// function to account for Sundays, and public holidays. Add holiday dates in $holidayDays variable
function get_next_business_date($from, $days) {
$workingDays = [1, 2, 3, 4, 5, 6]; # date format = N (1 = Monday, ...)
$holidayDays = ["*-12-25","*-12-26", "*-01-01", "2014-12-24"]; # variable and fixed holidays

$from = new DateTime($from);
while ($days) {
$from->modify("+1 day");
if (!in_array($from->format('N'), $workingDays)) continue;
if (in_array($from->format('Y-m-d'), $holidayDays)) continue;
if (in_array($from->format('*-m-d'), $holidayDays)) continue;
$days--;
}
return $from->format("Y-m-d"); #  or just return DateTime object
}

$today = date("Y-m-d", strtotime("today"));
$tomorrow = get_next_business_date("today", 1);
$twodays = get_next_business_date("today", 2);
$yesterday  =   date("Y-m-d", strtotime("yesterday"));

Я заблудился относительно того, почему это может быть.

1

Решение

у вас могут быть изменения версии между машинами.

в Ubuntu вы можете проверить файл /var/log/apache2/error.log

tail -f /var/log/apache2/error.log

чтобы увидеть, какая ошибка была брошена.

Чтобы проверить текущую версию PHP на вашем компьютере, вы можете использовать

php -v

из командной строки (требуется php5-кли модуль установлен)

Другой способ — поместить файл PHP с:

<?php
phpinfo();
?>

в вашем веб-каталоге и откройте его с помощью браузера.

1

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

Согласно ответам в различных комментариях, это была проблема версии сервера. Версия PHP на моем тестовом компьютере была более свежей, чем версия вживую.

Если это имеет смысл, я использую MAMP на Mac Mini в качестве тестовой среды с 5.5.3 и LAMP на сервере UBUNTU 12.04 с 5.3. Я не хотел обновлять версию Ubuntu, просто версию PHP, и сделал это в соответствии с этим http://phpave.com/upgrade-php-5-3-php-5-5-ubuntu-12-04-lts/

Следует помнить (если вы не знаете), что каталог по умолчанию для вашего php-кода изменится с / var / www на / var / www / html. Вы можете либо переместить свой PHP в папку / var / www / html, либо изменить папку по умолчанию по ссылке выше. Я подозреваю, что изменение по умолчанию может иметь последствия для будущих версий, так как они будут ожидать, что код будет находиться в / var / www / html.

Также будут некоторые проблемы с разрешениями для этой папки, о которых вы, возможно, захотите знать, если копируете и создаете подпапки.

Надеюсь, это кому-то пригодится.

0

По вопросам рекламы [email protected]