Ошибка phpthumb Новый


Привет! внезапно перестали генерироваться картинки на одном из шести сайтов одного аккаунта на сервере. Кроме того, на этом же сервере еще сайтов триста, на котором phpthumb работает.

А у меня вот так:
2016-08-10 00:51:30] (ERROR @ /var/www/user334/data/www/.../core/model/phpthumb/phpthumb.class.php : 1215) PHP warning: realpath(): open_basedir restriction in effect. File(/tmp) is not within the allowed path(s): (/var/www/user334/data)
[2016-08-10 00:52:12] (ERROR @ /var/www/user334/data/www/.../core/model/phpthumb/phpthumb.class.php : 1215) PHP warning: realpath(): open_basedir restriction in effect. File(/tmp) is not within the allowed path(s): (/var/www/user334/data)
[2016-08-10 00:54:46] (ERROR @ /var/www/user334/data/www/.../core/model/phpthumb/phpthumb.class.php : 1215) PHP warning: realpath(): open_basedir restriction in effect. File(/tmp) is not within the allowed path(s): (/var/www/user334/data)
[2016-08-10 00:55:00] (ERROR @ /var/www/user334/data/www/.../core/model/phpthumb/phpthumb.class.php : 1215) PHP warning: realpath(): open_basedir restriction in effect. File(/tmp) is not within the allowed path(s): (/var/www/user334/data)
[2016-08-10 00:58:02] (ERROR @ /var/www/user334/data/www/.../core/model/phpthumb/phpthumb.class.php : 1215) PHP warning: realpath(): open_basedir restriction in effect. File(/tmp) is not within the allowed path(s): (/var/www/user334/data)
[2016-08-10 00:59:11] (ERROR @ /var/www/user334/data/www/.../core/model/phpthumb/phpthumb.class.php : 1215) PHP warning: realpath(): open_basedir restriction in effect. File(/tmp) is not within the allowed path(s): (/var/www/user334/data)
[2016-08-10 01:10:52] (ERROR @ /var/www/user334/data/www/.../core/model/phpthumb/phpthumb.class.php : 1215) PHP warning: realpath(): open_basedir restriction in effect. File(/tmp) is not within the allowed path(s): (/var/www/user334/data)
[2016-08-10 01:10:52] (ERROR @ /var/www/user334/data/www/.../core/model/phpthumb/phpthumb.class.php : 1215) PHP warning: realpath(): open_basedir restriction in effect. File(/tmp) is not within the allowed path(s): (/var/www/user334/data)
[2016-08-10 01:10:52] (ERROR @ /var/www/user334/data/www/.../core/model/phpthumb/phpthumb.class.php : 4360) PHP warning: tempnam(): open_basedir restriction in effect. File() is not within the allowed path(s): (/var/www/user334/data)
[2016-08-10 01:10:52] (ERROR @ /var/www/user334/data/www/.../core/components/phpthumbon/model/phpthumbon/phpthumbon.class.php : 176) [phpthumbon] Could not save thumbnail /var/www/user334/data/www/.../assets/cache_image/assets/photo/face_72x72_f21.png: Array
(
    [0] => phpThumb() v1.7.14-201604151303 in file "phpthumb.class.php" on line 227
    [1] => setSourceFilename(/var/www/user334/data/www/.../assets/photo/face.png) set $this->sourceFilename to "/var/www/user334/data/www/.../assets/photo/face.png" in file "phpthumb.class.php" on line 292
    [2] =>                   file_exists() = 0 in file "phpthumb.class.php" on line 1419
    [3] => file_exists_ignoreopenbasedir() = 1 in file "phpthumb.class.php" on line 1420
    [4] =>                       is_file() = 0 in file "phpthumb.class.php" on line 1421
    [5] =>                 is_executable() = 0 in file "phpthumb.class.php" on line 1422
    [6] => using ImageMagick path from $this->config_imagemagick_path () in file "phpthumb.class.php" on line 1426
    [7] => ImageMagick version checked with "'' --version" in file "phpthumb.class.php" on line 1484
    [8] => ImageMagick did not return recognized version string () in file "phpthumb.class.php" on line 1490
    [9] => ImageMagick convert --version says "" in file "phpthumb.class.php" on line 1492
    [10] => $AvailableImageOutputFormats = array(text;ico;bmp;wbmp;gif;png;jpeg) in file "phpthumb.class.php" on line 970
    [11] => $this->thumbnailFormat set to $this->config_output_format "jpeg" in file "phpthumb.class.php" on line 981
    [12] => $this->thumbnailFormat set to $this->f "png" in file "phpthumb.class.php" on line 988
    [13] => $this->thumbnailQuality set to "96" in file "phpthumb.class.php" on line 998
    [14] => $this->sourceFilename set to "/var/www/user334/data/www/.../assets/photo/face.png" in file "phpthumb.class.php" on line 894
    [15] => setCacheDirectory() starting with config_cache_directory = "" in file "phpthumb.class.php" on line 1006
    [16] => $this->config_cache_directory () is not a directory in file "phpthumb.class.php" on line 1042
    [17] => SetCacheFilename() failed because $this->config_cache_directory is empty in file "phpthumb.class.php" on line 3488
    [18] => starting ExtractEXIFgetImageSize() in file "phpthumb.class.php" on line 3320
    [19] => GetImageSize(/var/www/user334/data/www/.../assets/photo/face.png) says image is 72x72 in file "phpthumb.class.php" on line 3330
    [20] => $this->useRawIMoutput=true after checking $UnAllowedParameters in file "phpthumb.class.php" on line 1592
    [21] => phpThumb_tempnam() returning "/var/www/user334/data/www/..." in file "phpthumb.class.php" on line 4362
    [22] => ImageMagickSwitchAvailable(thumbnail) = 0 in file "phpthumb.class.php" on line 1529
    [23] => IMuseExplicitImageOutputDimensions = 0 in file "phpthumb.class.php" on line 1667
    [24] => ImageMagickSwitchAvailable(density) = 0 in file "phpthumb.class.php" on line 1529
    [25] => GetImageSize(/var/www/user334/data/www/.../assets/photo/face.png) SUCCEEDED: Array
(
    [0] => 72
    [1] => 72
    [2] => 3
    [3] => width="72" height="72"
    [bits] => 8
    [mime] => image/png
)
 in file "phpthumb.class.php" on line 1684
    [26] => GetImageSize(/var/www/user334/data/www/.../assets/photo/face.png) returned [w=72;h=72;f=3] in file "phpthumb.class.php" on line 1689
    [27] => source dimensions set to 72x72 in file "phpthumb.class.php" on line 1692
    [28] => SetOrientationDependantWidthHeight() starting with "72"x"72" in file "phpthumb.class.php" on line 3299
    [29] => SetOrientationDependantWidthHeight() setting w="72", h="72" in file "phpthumb.class.php" on line 3315
    [30] => ImageMagickSwitchAvailable(repage) = 0 in file "phpthumb.class.php" on line 1529
    [31] => Skipping "+repage" because ImageMagick (v) does not support it in file "phpthumb.class.php" on line 1768
    [32] => Skipping $this->fltr[0] (ric|36|36) with ImageMagick in file "phpthumb.class.php" on line 2213
    [33] => Remaining $this->fltr after ImageMagick: (array(1) {   [0]=>   string(9) "ric|36|36" } ) in file "phpthumb.class.php" on line 2216
    [34] => ImageMagick called as ('' -resize 'x72' -gravity center -crop '72x72+0+0' '/var/www/user334/data/www/.../assets/photo/face.png[0]' png:'/var/www/user334/data/www/...' 2>&1) in file "phpthumb.class.php" on line 2235
    [35] => GetImageSize(/var/www/user334/data/www/...) returned [w=;h=;f=] in file "phpthumb.class.php" on line 2252
    [36] => $this->useRawIMoutput set to TRUE because ImageCreateFromPNG(/var/www/user334/data/www/...) failed in file "phpthumb.class.php" on line 2262
    [37] => deleting "/var/www/user334/data/www/..." in file "phpthumb.class.php" on line 2265
    [38] => Skipping rest of GenerateThumbnail() because ($this->useRawIMoutput == true) in file "phpthumb.class.php" on line 367
    [39] => RenderOutput copying $this->IMresizedData (0 bytes) to $this->outputImage in file "phpthumb.class.php" on line 454
)
Естесственно, вместо точек домен прописан, да.
Что делать — не знаю. Переустанавливал модкс, перезаливал сайт полностью, проставлял права…
10 august 2016, 14:58    Алексей Бгатов   
3    1355 +1

Comments (25)

  1. Konstantin 10 august 2016, 17:56 # 0
    вопросы к хосту, его настройке. Ведь как было сказано не пашет именно этот хост независимо от модыкса
    1. Алексей Бгатов 10 august 2016, 18:23 # 0
      на одном из шести сайтов одного аккаунта на сервере. Кроме того, на этом же сервере еще сайтов триста, на котором phpthumb работает.
      1. Konstantin 10 august 2016, 18:55 # 0
        у одного аккаунта может быть 10 хостов на каждом по одному сайту
        а может быть на 1 хосте 10 сайтов. (переключением контекстов к примеру)

        так вот может на том хосте чего то глючит. Попробуйте перенести на другой хост.

        Может я что то не понял (
    2. Abu 10 august 2016, 18:24 # 0
      Сейчас обнаружил, такую же проблему на локалке — сервер по мануалу Василия, только обновлен до php7 и убунта последняя.

      Глючит pthumb, похоже, что после обновления и если удалить кэш phpthumbof/cache.

      Решил преключением на resizer, включением в настройках phpthumbof.use_resizer = true
      1. Алексей Бгатов 10 august 2016, 18:28 # 0
        у меня заглючил он сначала, потом я перетащил всё на phpthumbon. Не помогло
        1. zooks 17 august 2016, 00:36 # 0
          Спасибо. Была проблема с пустыми thumbnails после переноса. Работали только из админки с контекстом mgr.
          После очистки
          assets/components/gallery/cache
          все заработало как надо.

          А эта ошибка лечится в конфигах Apache: нужно добавить папку /tmp к open_basedir
          open_basedir restriction in effect. File(/tmp)
          1. Boris Akimenko 19 august 2016, 10:33 # 0
            На каталог "/var/www/user334/data/tmp" нужно дать права тому же пользователю, что и у остальных каталогов MODx. Не нужно в апаче ничего мудрить.
            1. Boris Akimenko 19 august 2016, 12:17 # 0
              Извиняюсь за прогон на тему прав доступа.
              У меня phpthumbon на MODx 2.5.1 не накладывал watermark и выдавались ошибки такого же плана
              (ERROR @ /var/www/user334/data/www/.../core/model/phpthumb/phpthumb.class.php : 1215) PHP warning: realpath(): open_basedir restriction in effect. File(/tmp) is not within the allowed path(s): (/var/www/user334/data)
              Вопрос я решил следующим образом:
              /путь_к_ядру/model/phpthumb/phpthumb.class.php
              строка 1213
              		if (!$this->config_disable_realpath) {
              			//return .realpath($filename);
              			$filename = open_basedir.$filename;
              		}
              Из логов понятно, что в realPathSafe() передается путь "/tmp" — а это временная папка в корне системы, но нам-то нужна "/tmp" лежащая внутри каталога указанного в open_basedir.
              Короче, я вручную добавил open_basedir. Коряво, но ждать пока отремонтируют не могу.

              К стати, ресайз в phpthumbon на MODx 2.5.1 у меня работал и работает нормально.
              1. Raina 23 august 2016, 06:51 # 0
                Здравствуйте Борис. Возникла такая же ошибка, но по части ресайза, некорректно генерируются миниатюры.
                Если я правильно вас поняла нужно добавить эти строки
                if (!$this->config_disable_realpath) {
                			//return .realpath($filename);
                			$filename = open_basedir.$filename;
                		}
                В 1213 строку? Нужно ли что-то менять?
                1. Boris Akimenko 23 august 2016, 12:23 # 0
                  Здравствуйте, Яна.
                  Нужно менять.
                  Надо найти этот фрагмент кода в районе 1213 строки:
                  		if (!$this->config_disable_realpath) {
                  			return realpath($filename);
                  		}
                  
                  Закоментировать строку
                  return realpath($filename)
                  и добавить строку
                  $filename = open_basedir.$filename;
                  чтобы получилось вот так:
                  		if (!$this->config_disable_realpath) {
                  			//return realpath($filename);
                  			$filename = open_basedir.$filename;
                  		}
                  
                  1. Raina 23 august 2016, 18:02 # 0
                    У меня в файле phpthumb.class.php нет таких строк…
                    1. Boris Akimenko 23 august 2016, 18:15 # 0
                      Создай админа и скинь доступ на почту bakimenko собака gmail точка com
                      1. Raina 23 august 2016, 18:50 # 0
                        Есть ли у вас страница в ВК, ватсап?
                        1. Boris Akimenko 23 august 2016, 18:54 # 0
                          В почту тестовое сообщение пришлите — пришлю номер для ватсапа. Тут не буду писать :)
                          1. Raina 23 august 2016, 20:05 # 0
                            хорошо
          2. Алексей Бгатов 11 august 2016, 12:16 # 0
            Карочи.
            Modx 2.5.1 глючит с phpthumbon. Работает с pThumb с включенной опцией use_resizer.
            1. Raina 23 august 2016, 06:55 # 0
              Здравствуйте Алексей. А как правильно поставить pThumb? Тоесть нужно как-то деактивировать phpthumb?
              Если просто поставить пакет pThumb, не помогает
              1. Владимир 23 august 2016, 07:08 # 0
                Установите pThumb, затем, например, с помощью компонента modDevTools выполните поиск\замену по всему сайту вызовов снипета или модификаторов с phpthumbon на pThumb.
                PS modDevTools ищет в базе, т.е. в статичных шаблонах и файлах не найдет, если они подключены например феномом.
              2. Владимир 23 august 2016, 07:04 # 0
                С pThumb MODX 2.5.1 тоже глючит! Например наложение водяного знака на изображение не работает. Проверял, даже тестовый сайт для проверки делал что б не ошибиться, все подтвердилось.
                1. Raina 23 august 2016, 07:26 # 0
                  Что делать тогда?(((
                  Нужен вывод миниатюр…
                  1. Владимир 23 august 2016, 07:32 # 0
                    Создайте тестовый сайт и проверьте, или у себя поставьте pThumb и вызовите его на отдельной странице. Короче, проверяйте. (и напишите что получилось)
                    Пример вызова феномом в чанке (с выставлением размеров превьюшки), вдруг вам пригодится:
                    {$_modx->runSnippet('!pthumb', [
                          'input' => $_pls['tv.articleimage'],
                          'options' => 'w=400&h=225q=75&zc=C',
                          'toPlaceholder' => 'thumb'
                          ])}
                    
                     <img class="img-responsive" src="{$_modx->getPlaceholder('thumb')}" width="{$_modx->getPlaceholder('thumb.width')}" height="{$_modx->getPlaceholder('thumb.height')}"/>
                    
                    1. Raina 23 august 2016, 07:48 # 0
                      Спасибо Владимир. Я только начинаю, поэтому мне многое не понятно.
                      В общем попробую еще раз поставить pThumb и проверить. И немного позже отвечу что получилось
                      1. Raina 23 august 2016, 08:38 # 0
                        pThumb не работает, тоесть он тоже выводит миниатюры через phpThumbof.
                        Я задаю размеры 156х156 он выводит картинку 156х66
                        Мучаюсь уже неделю, просто из за того что не могу вывести миниатюры заданного размера
                        1. Владимир 23 august 2016, 11:06 # 0
                          он тоже выводит миниатюры через phpThumbof.
                          — ни чего подобного, настройки да, он наследует, и папки, но ни как не связан с phpThumbof.
                          Напишите в личку, посмотрю, помогу чем смогу)
                2. Дмитрий Ломакин 14 september 2016, 21:56 # 0
                  РЕШЕНИЕ:
                  в пуле php-fpm сайта (файл /etc/php5/fpm/pool.d/<ваш сайт>.conf)
                  добавляем параметр
                  php_admin_value[sys_temp_dir] = ***
                  вместо звездочек то же самое что и в php_admin_value[upload_tmp_dir]
                  You need to login to create comments.