Вырывая глаза, класс PHPThumb на виртуальном хостинге не работает - PullRequest
0 голосов
/ 09 июля 2011

ОБНОВЛЕНИЕ И РЕШЕНИЕ : Каждый, кто бы ни столкнулся с этой проблемой в будущем, я придумал, как ее решить. Если вы используете класс PHPThumb, вы ДОЛЖНЫ импортировать настройки из файла конфигурации, так как иначе это не будет сделано. Я обнаружил это, открыв файл тестирования, который дал Клинт. Для этого вставьте этот код после определения объекта:

if (include_once($PATH . 'phpThumb.config.php')) {
    foreach ($PHPTHUMB_CONFIG as $key => $value) {
        $keyname = 'config_'.$key;
        $phpThumb->setParameter($keyname, $value);
    }
}

Спасибо людям, которые пытались помочь, и спасибо Клинту, по крайней мере, за то, что он дал мне посмотреть.


Оригинальный вопрос :

Прежде чем я не могу прочитать это сообщение из-за моей вновь обретенной слепоты, мне нужна помощь с чем-то. И прежде чем идти дальше, я должен предупредить вас, что я должен дать ссылку на другие сайты, чтобы показать вам проблемы. Так что приготовьтесь открыть несколько вкладок.

Так что я использую PHPthumb для генерации изображений для сайта моей галереи. На самом деле все шло очень хорошо, пока я не загрузил сценарий, чтобы мой деловой партнер мог начать показывать им (клиентам) альфа-стадию сценария (я знаю, что это говорит о бета-версии).

http://speakwire.net/excitebeta2/?m=2

Проблема становится очень очевидной на двух страницах галереи, на которые я случайно натолкнулся. Изображения не создаются вообще. Если вы заходите в панель администратора, они, кажется, работают, но это всего лишь кеш, сгенерированный с моего рабочего стола. Я тщательно останавливался на каждом шагу и даже пытался манипулировать кодом класса. Я искал другие сценарии, но они не помогли мне, потому что у них не было того, что мне было нужно. Поскольку код проприетарный, я не могу им поделиться. Могу поспорить, что вы думаете: «О мой бог фарс», но вот кое-что, на что вы можете посмотреть - потому что я могу повторить ту же проблему с кодом, который я получил раньше.

http://speakwire.net/phpthumbtest/

Второй сайт имеет ТОЧНУЮ структуру и код, такие как: http://mrphp.com.au/code/image-cache-using-phpthumb-and-modrewrite

Несколько исключений допускают параметры 100x100, но они должны быть изменены, и я знаю, что это не является причиной ошибки, потому что само ее существование является необязательным, и удаление его позволяет людям только делать непослушные вещи. Второе - это то, что я сделал только после того, как ошибка сохранилась, и это было chmod(dirname($path), 0777);, потому что по какой-то странной причине mkdir не дает папке 777 разрешения.

Старое изображение: http://speakwire.net/phpthumbtest/images/flowerupright.JPG

Новое изображение: http://speakwire.net/phpthumbtest/thumbs/100x100/images/flowerupright.JPG

Как видно на новом изображении, он не может записать файл. Это случается по вине PHPThumb. Будь то отсутствие указанных параметров или хостинг не позволяет.

Что подводит меня к сути, скрипт отлично работает на моем настольном WAMP, но не работает, когда на хостинге GoDaddy. Мой бизнес-партнер собирается открыть учетную запись на хостинге, на котором мы планируем разместить людей в ближайшее время, но проблема все еще существует, и если это происходит здесь, это наверняка может произойти и там. Несмотря на то, что это не будет на серверах GoDaddy позже.

Конкретное место, где он терпит неудачу, я вставлю сюда, а остальное вам нужно открыть на сайте mrphp.com.au, чтобы увидеть. Это способ долго размещать здесь.

require('../phpthumb/phpthumb.class.php');
$phpThumb = new phpThumb();
$phpThumb->setSourceFilename($image);
$phpThumb->setParameter('w',$width);
$phpThumb->setParameter('h',$height);
$phpThumb->setParameter('f',substr($thumb,-3,3)); // set the output format
//$phpThumb->setParameter('far','C'); // scale outside
//$phpThumb->setParameter('bg','FFFFFF'); // scale outside
if (!$phpThumb->GenerateThumbnail()) {  // RETURNS FALSE FOR SOME REASON
    error('cannot generate thumbnail');  // And is called due to fail.
}

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

РЕДАКТИРОВАТЬ: http://speakwire.net/phpthumbtest/index2.php

Я добавил это как предложение Клинта, кажется, что imagemagick не работает, может ли это быть проблемой, и как бы я это исправить?

1 Ответ

0 голосов
/ 09 июля 2011

Похоже, проблема с разрешениями.Убедитесь, что в любую папку, в которую вы пишете, apache имеет доступ для записи.

...