Функция Imagick, которая работает на одном сервере и не работает на другом

У меня проблема с перемещением моего скрипта с одного сервера на другой.

Сценарий PHP читает PDF-файл и создает изображение для каждой страницы PDF-файла. Этот скрипт в настоящее время работает в среде, которая имеет следующие характеристики

  • Версия PHP: 7.4.8
  • Версия Imagick: 3.4.4

Теперь я переместил скрипт в среду со следующими характеристиками:

  • Версия PHP: 7.4.28
  • Версия Imagick: 3.7.0

Код:

$img = new Imagick($percorsoBaseDir); //LINE OF THE ERROR
$img->setResolution(600, 600);
$num_pages = $img->getNumberImages();
$img->setImageCompressionQuality(100);
$images = NULL;
for ($i; $i < $num_pages; $i++)
{
   ..... [My script] ....
}

И ошибка:

AH01071: Got error 'PHP message: PHP Fatal error: Uncaught ImagickException: Failed to read the file in /var/www/vhosts/mysite.com/httpdocs/wp-content/plugins/custom_plugin/includes/woocommerce/Step_2.php:222\nStack trace:\n#0 /var/www/vhosts/mysite.com/httpdocs/wp-content/plugins/custom_plugin/includes/woocommerce/Step_2.php(222): Imagick->readImage()\n#1 /var/www/vhosts/mysite.com/httpdocs/wp-includes/shortcodes.php(356): step_2_function()\n#2 [internal function]: do_shortcode_tag()\n#3 /var/www/vhosts/mysite.com/httpdocs/wp-includes/shortcodes.php(228): preg_replace_callback()\n#4 /var/www/vhosts/mysite.com/httpdocs/wp-content/plugins/js_composer/include/helpers/helpers.php(247): do_shortcode()\n#5 /var/www/vhosts/mysite.com/httpdocs/wp-content/plugins/js_composer/include/templates/shortcodes/vc_column_text.php(31): wpb_js_remove_wpautop()\n#6 /var/www/vhosts/mysite.com/httpdocs/wp-content/plugins/js_composer/include/classes/shortcodes/core/class-wpbakeryshortcode.php(451): require('/var/www/...', 

Я также пытался бросить:

getcwd() //to verify that the file exists

и:

is_readable ($ pathBaseDir) //to verify that the file exist and is readable
is_writable ($ pathBaseDir) //to verify that the file exist and is writable

и они оба возвращают TRUE.

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

Не могу понять в чем может быть ошибка, у вас было что-то подобное? Как я мог решить?

Благодарю вас!

Я чувствую, что в этой ошибке есть что-то еще Failed to read the file in /var/www/vhosts/..... Как будто это может закончиться тем, что это проблема с разрешением или что-то еще? Есть ли что-нибудь в ваших журналах ошибок php, что может пролить больше света на эту усеченную ошибку?

JNevill 06.04.2022 16:17

@JNevil Я редактирую свой вопрос, добавляя полное сообщение об ошибке.

Sebastiano S. 06.04.2022 16:39

Существует ли этот файл: /var/www/vhosts/mysite.com/httpdocs/wp-content/plugins/custo‌​m_plugin/includes/wo‌​ocommerce/Step_2.php‌​?

JNevill 06.04.2022 16:41

@JNevil файл «Step_2.php» существует. Я также проверил абсолютный путь.

Sebastiano S. 06.04.2022 17:01
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
4
31
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я обнаружил проблему: я установил Ghost Script на свой сервер с помощью этой команды:

apt-get install ghostscript 

И теперь это работает!

Другие вопросы по теме