Я пытаюсь переместить старую установку CakePHP 1.3.8 между серверами и проблемы с отображением определенных изображений.
Старый сервер: Ubuntu 14.04.5 LTS Apache 2.4.7 MySQL 5.5 PHP 5.5.9 PHP (GD, MYSQL)
Новый сервер: Centos 7.5.1804 Apache 2.4.6 MySQL 5.4 PHP 5.4 PHP (GD, MYSQL)
Я проверил, что DocumentRoot указывает на каталог Cake/app/webroot, а также имеет директиву AllowOverride All в конфигурации сайтов. Также проверены файлы (3).htaccess, mod_rewrite и т.д.
Отладка установлена на "2" в core.php, но единственная зарегистрированная ошибка касается функции изображения:
imagejpeg() [<a href='http://php.net/function.imagejpeg'>function.imagejpeg</a>]: Filename cannot be empty
Примеры того, что происходит в каждом проекте page-
Все остальное, включая доступ к базе данных, работает. Я почти ничего не знаю о cakephp, но просматривая различные файлы, мне кажется, что эта функция вызывается из файла "detail.ctp" в каталоге views/projects:
<?php echo $html->image('/App/ContentImageView/'.$image3.'/250/400',array('title'=>'Project Image', 'id'=>'MainImg', 'alt'=>'Project I mage', 'class'=>'border2')); ?>
И функция из app_controller.php
function ContentImageView($img_path, $w = '75', $h = '75'){
Configure::write('debug', 2);
debug($img_path, $showHTML = true, $showFrom = true);
if (empty($img_path)) return;
$image = str_replace('@@', '/', $img_path);
if (empty($image)) return;
$this->autoLayout = false;
$this->autoRender = false;
if(empty($image)) return;
//image resize parameters
$FileConfig = array();
$FileConfig['source_image'] = WWW_ROOT . '/'. $image;
$FileConfig['dynamic_output'] = true;
$FileConfig['maintain_ratio'] = true;
$FileConfig['width'] = $w;
$FileConfig['height'] = $h;
ini_set('memory_limit', -1)
$this->ImageLib->clear();
$this->ImageLib->set($FileConfig);
$this->ImageLib->resize()
}
Весь код отлично работает на старом сервере, поэтому я думаю, что это какая-то проблема с конфигурацией, но я просто не могу на нее наложить.
Спасибо всем.
Я устанавливаю Centos 6.9 VM с PHP 5.3.3, и проблема отсутствует. Должно быть изменение PHP, как указывал ndm. Вместо того, чтобы пытаться выяснить, где код должен быть обновлен, мы продвигаемся вперед на Centos 6.9, так как этот сайт скоро будет удален.
Еще раз спасибо всем, кто ответил.
$this->ImageLib
(debug(get_class($this->ImageLib))
)? Возможно, он использует какой-то модуль PHP, такой какgd
который установлен на старом сервере, но не новый?