Omeka-S Collecting Module - errors

Hello again

I’m currently attempting to implement the Collecting Module. On the admin side, I set up the collecting form - everything looks OK. But when I enter my site as a public user and fill out the collection form and click submit, it gives me the following error messages:

Omeka S encountered an error
Error
Class 'finfo' not found
Details:
Error: Class 'finfo' not found in C:\MAMP\htdocs\first\OmekaS\application\src\File\TempFile.php:284
Stack trace:
#0 C:\MAMP\htdocs\first\OmekaS\application\src\File\Validator.php(60): Omeka\File\TempFile->getMediaType()
#1 C:\MAMP\htdocs\first\OmekaS\application\src\Media\Ingester\Upload.php(75): Omeka\File\Validator->validate(Object(Omeka\File\TempFile), Object(Omeka\Stdlib\ErrorStore))
#2 C:\MAMP\htdocs\first\OmekaS\application\src\Api\Adapter\MediaAdapter.php(158): Omeka\Media\Ingester\Upload->ingest(Object(Omeka\Entity\Media), Object(Omeka\Api\Request), Object(Omeka\Stdlib\ErrorStore))
#3 C:\MAMP\htdocs\first\OmekaS\application\src\Api\Adapter\AbstractEntityAdapter.php(552): Omeka\Api\Adapter\MediaAdapter->hydrate(Object(Omeka\Api\Request), Object(Omeka\Entity\Media), Object(Omeka\Stdlib\ErrorStore))
#4 C:\MAMP\htdocs\first\OmekaS\application\src\Api\Adapter\ItemAdapter.php(214): Omeka\Api\Adapter\AbstractEntityAdapter->hydrateEntity(Object(Omeka\Api\Request), Object(Omeka\Entity\Media), Object(Omeka\Stdlib\ErrorStore))
#5 C:\MAMP\htdocs\first\OmekaS\application\src\Api\Adapter\AbstractEntityAdapter.php(552): Omeka\Api\Adapter\ItemAdapter->hydrate(Object(Omeka\Api\Request), Object(Omeka\Entity\Item), Object(Omeka\Stdlib\ErrorStore))
#6 C:\MAMP\htdocs\first\OmekaS\application\src\Api\Adapter\AbstractEntityAdapter.php(267): Omeka\Api\Adapter\AbstractEntityAdapter->hydrateEntity(Object(Omeka\Api\Request), Object(Omeka\Entity\Item), Object(Omeka\Stdlib\ErrorStore))
#7 C:\MAMP\htdocs\first\OmekaS\application\src\Api\Manager.php(224): Omeka\Api\Adapter\AbstractEntityAdapter->create(Object(Omeka\Api\Request))
#8 C:\MAMP\htdocs\first\OmekaS\application\src\Api\Manager.php(78): Omeka\Api\Manager->execute(Object(Omeka\Api\Request))
#9 C:\MAMP\htdocs\first\OmekaS\application\src\Mvc\Controller\Plugin\Api.php(99): Omeka\Api\Manager->create('items', Array, Array, Array)
#10 C:\MAMP\htdocs\first\OmekaS\modules\Collecting\src\Controller\Site\IndexController.php(55): Omeka\Mvc\Controller\Plugin\Api->create('items', Array, Array)
#11 C:\MAMP\htdocs\first\OmekaS\vendor\zendframework\zend-mvc\src\Controller\AbstractActionController.php(78): Collecting\Controller\Site\IndexController->submitAction()
#12 C:\MAMP\htdocs\first\OmekaS\vendor\zendframework\zend-eventmanager\src\EventManager.php(322): Zend\Mvc\Controller\AbstractActionController->onDispatch(Object(Zend\Mvc\MvcEvent))
#13 C:\MAMP\htdocs\first\OmekaS\vendor\zendframework\zend-eventmanager\src\EventManager.php(179): Zend\EventManager\EventManager->triggerListeners(Object(Zend\Mvc\MvcEvent), Object(Closure))
#14 C:\MAMP\htdocs\first\OmekaS\vendor\zendframework\zend-mvc\src\Controller\AbstractController.php(106): Zend\EventManager\EventManager->triggerEventUntil(Object(Closure), Object(Zend\Mvc\MvcEvent))
#15 C:\MAMP\htdocs\first\OmekaS\vendor\zendframework\zend-mvc\src\DispatchListener.php(138): Zend\Mvc\Controller\AbstractController->dispatch(Object(Zend\Http\PhpEnvironment\Request), Object(Zend\Http\PhpEnvironment\Response))
#16 C:\MAMP\htdocs\first\OmekaS\vendor\zendframework\zend-eventmanager\src\EventManager.php(322): Zend\Mvc\DispatchListener->onDispatch(Object(Zend\Mvc\MvcEvent))
#17 C:\MAMP\htdocs\first\OmekaS\vendor\zendframework\zend-eventmanager\src\EventManager.php(179): Zend\EventManager\EventManager->triggerListeners(Object(Zend\Mvc\MvcEvent), Object(Closure))
#18 C:\MAMP\htdocs\first\OmekaS\vendor\zendframework\zend-mvc\src\Application.php(332): Zend\EventManager\EventManager->triggerEventUntil(Object(Closure), Object(Zend\Mvc\MvcEvent))
#19 C:\MAMP\htdocs\first\OmekaS\index.php(21): Zend\Mvc\Application->run()
#20 {main}

I would appreciate any help with this.
Thank you.

What versions of Omeka S and the Collecting module are you using?

Hello mebrett,

I’m using:
Collecting module version 1.0.0 released on Nov 07, 2017
Omeka S version 1.1.1 released April 3, 2018

-ataybe01

It appears that your version of PHP was compiled without the File Information extension (finfo). This extension is required by Omeka S and is normally enabled by default as of PHP 5.3.0 (Omeka requires >= 5.6.0). Can you upload a media file normally using the administrative interface? I suspect that you’ll get a similar error message if you try. Talk to your server administrator about recompiling PHP to include the extension.

Hello jimsafley,

Thanks for the feedback - appreciated. I believe I fixed the finfo error. There are two additional issues that I’m currently experiencing:

  1. ImageMagick:
  2. Zend email

The error messages are as follows:

Omeka S encountered an error
Omeka\File\Exception\InvalidThumbnailerException
ImageMagick error: invalid ImageMagick command.

Details:

Omeka\File\Exception\InvalidThumbnailerException: ImageMagick error: invalid ImageMagick command. in C:\MAMP\htdocs\first\OmekaS\application\src\File\Thumbnailer\ImageMagick.php:114
Stack trace:
#0 C:\MAMP\htdocs\first\OmekaS\application\src\File\Thumbnailer\ImageMagick.php(44): Omeka\File\Thumbnailer\ImageMagick->setConvertPath(’/bin/php/php7.1…’)
#1 C:\MAMP\htdocs\first\OmekaS\application\src\File\TempFile.php(249): Omeka\File\Thumbnailer\ImageMagick->setOptions(Array)
#2 C:\MAMP\htdocs\first\OmekaS\application\src\Media\Ingester\Upload.php(83): Omeka\File\TempFile->storeThumbnails()
#3 C:\MAMP\htdocs\first\OmekaS\application\src\Api\Adapter\MediaAdapter.php(158): Omeka\Media\Ingester\Upload->ingest(Object(Omeka\Entity\Media), Object(Omeka\Api\Request), Object(Omeka\Stdlib\ErrorStore))
#4 C:\MAMP\htdocs\first\OmekaS\application\src\Api\Adapter\AbstractEntityAdapter.php(552): Omeka\Api\Adapter\MediaAdapter->hydrate(Object(Omeka\Api\Request), Object(Omeka\Entity\Media), Object(Omeka\Stdlib\ErrorStore))
#5 C:\MAMP\htdocs\first\OmekaS\application\src\Api\Adapter\ItemAdapter.php(214): Omeka\Api\Adapter\AbstractEntityAdapter->hydrateEntity(Object(Omeka\Api\Request), Object(Omeka\Entity\Media), Object(Omeka\Stdlib\ErrorStore))
#6 C:\MAMP\htdocs\first\OmekaS\application\src\Api\Adapter\AbstractEntityAdapter.php(552): Omeka\Api\Adapter\ItemAdapter->hydrate(Object(Omeka\Api\Request), Object(Omeka\Entity\Item), Object(Omeka\Stdlib\ErrorStore))
#7 C:\MAMP\htdocs\first\OmekaS\application\src\Api\Adapter\AbstractEntityAdapter.php(267): Omeka\Api\Adapter\AbstractEntityAdapter->hydrateEntity(Object(Omeka\Api\Request), Object(Omeka\Entity\Item), Object(Omeka\Stdlib\ErrorStore))
#8 C:\MAMP\htdocs\first\OmekaS\application\src\Api\Manager.php(224): Omeka\Api\Adapter\AbstractEntityAdapter->create(Object(Omeka\Api\Request))
#9 C:\MAMP\htdocs\first\OmekaS\application\src\Api\Manager.php(78): Omeka\Api\Manager->execute(Object(Omeka\Api\Request))
#10 C:\MAMP\htdocs\first\OmekaS\application\src\Mvc\Controller\Plugin\Api.php(99): Omeka\Api\Manager->create(‘items’, Array, Array, Array)
#11 C:\MAMP\htdocs\first\OmekaS\modules\Collecting\src\Controller\Site\IndexController.php(55): Omeka\Mvc\Controller\Plugin\Api->create(‘items’, Array, Array)
#12 C:\MAMP\htdocs\first\OmekaS\vendor\zendframework\zend-mvc\src\Controller\AbstractActionController.php(78): Collecting\Controller\Site\IndexController->submitAction()
#13 C:\MAMP\htdocs\first\OmekaS\vendor\zendframework\zend-eventmanager\src\EventManager.php(322): Zend\Mvc\Controller\AbstractActionController->onDispatch(Object(Zend\Mvc\MvcEvent))
#14 C:\MAMP\htdocs\first\OmekaS\vendor\zendframework\zend-eventmanager\src\EventManager.php(179): Zend\EventManager\EventManager->triggerListeners(Object(Zend\Mvc\MvcEvent), Object(Closure))
#15 C:\MAMP\htdocs\first\OmekaS\vendor\zendframework\zend-mvc\src\Controller\AbstractController.php(106): Zend\EventManager\EventManager->triggerEventUntil(Object(Closure), Object(Zend\Mvc\MvcEvent))
#16 C:\MAMP\htdocs\first\OmekaS\vendor\zendframework\zend-mvc\src\DispatchListener.php(138): Zend\Mvc\Controller\AbstractController->dispatch(Object(Zend\Http\PhpEnvironment\Request), Object(Zend\Http\PhpEnvironment\Response))
#17 C:\MAMP\htdocs\first\OmekaS\vendor\zendframework\zend-eventmanager\src\EventManager.php(322): Zend\Mvc\DispatchListener->onDispatch(Object(Zend\Mvc\MvcEvent))
#18 C:\MAMP\htdocs\first\OmekaS\vendor\zendframework\zend-eventmanager\src\EventManager.php(179): Zend\EventManager\EventManager->triggerListeners(Object(Zend\Mvc\MvcEvent), Object(Closure))
#19 C:\MAMP\htdocs\first\OmekaS\vendor\zendframework\zend-mvc\src\Application.php(332): Zend\EventManager\EventManager->triggerEventUntil(Object(Closure), Object(Zend\Mvc\MvcEvent))
#20 C:\MAMP\htdocs\first\OmekaS\index.php(21): Zend\Mvc\Application->run()
#21 {main}


Zend\Mail\Transport\Exception\RuntimeException
Unable to send mail: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set()

Details:

Zend\Mail\Transport\Exception\RuntimeException: Unable to send mail: mail(): Failed to connect to mailserver at “localhost” port 25, verify your “SMTP” and “smtp_port” setting in php.ini or use ini_set() in C:\MAMP\htdocs\first\OmekaS\vendor\zendframework\zend-mail\src\Transport\Sendmail.php:299
Stack trace:
#0 [internal function]: Zend\Mail\Transport\Sendmail->mailHandler(‘ataybe01@gettys…’, ‘Thank you for y…’, ‘

ataybe01@get…’, ‘Date: Mon, 20 A…’, NULL)
#1 C:\MAMP\htdocs\first\OmekaS\vendor\zendframework\zend-mail\src\Transport\Sendmail.php(137): call_user_func(Array, ‘ataybe01@gettys…’, ‘Thank you for y…’, ‘

ataybe01@get…’, ‘Date: Mon, 20 A…’, NULL)
#2 C:\MAMP\htdocs\first\OmekaS\application\src\Stdlib\Mailer.php(86): Zend\Mail\Transport\Sendmail->send(Object(Zend\Mail\Message))
#3 C:\MAMP\htdocs\first\OmekaS\modules\Collecting\src\Controller\Site\IndexController.php(243): Omeka\Stdlib\Mailer->send(Object(Zend\Mail\Message))
#4 C:\MAMP\htdocs\first\OmekaS\modules\Collecting\src\Controller\Site\IndexController.php(81): Collecting\Controller\Site\IndexController->sendSubmissionEmail(Object(Collecting\Api\Representation\CollectingFormRepresentation), Object(Collecting\Api\Representation\CollectingItemRepresentation))
#5 C:\MAMP\htdocs\first\OmekaS\vendor\zendframework\zend-mvc\src\Controller\AbstractActionController.php(78): Collecting\Controller\Site\IndexController->submitAction()
#6 C:\MAMP\htdocs\first\OmekaS\vendor\zendframework\zend-eventmanager\src\EventManager.php(322): Zend\Mvc\Controller\AbstractActionController->onDispatch(Object(Zend\Mvc\MvcEvent))
#7 C:\MAMP\htdocs\first\OmekaS\vendor\zendframework\zend-eventmanager\src\EventManager.php(179): Zend\EventManager\EventManager->triggerListeners(Object(Zend\Mvc\MvcEvent), Object(Closure))
#8 C:\MAMP\htdocs\first\OmekaS\vendor\zendframework\zend-mvc\src\Controller\AbstractController.php(106): Zend\EventManager\EventManager->triggerEventUntil(Object(Closure), Object(Zend\Mvc\MvcEvent))
#9 C:\MAMP\htdocs\first\OmekaS\vendor\zendframework\zend-mvc\src\DispatchListener.php(138): Zend\Mvc\Controller\AbstractController->dispatch(Object(Zend\Http\PhpEnvironment\Request), Object(Zend\Http\PhpEnvironment\Response))
#10 C:\MAMP\htdocs\first\OmekaS\vendor\zendframework\zend-eventmanager\src\EventManager.php(322): Zend\Mvc\DispatchListener->onDispatch(Object(Zend\Mvc\MvcEvent))
#11 C:\MAMP\htdocs\first\OmekaS\vendor\zendframework\zend-eventmanager\src\EventManager.php(179): Zend\EventManager\EventManager->triggerListeners(Object(Zend\Mvc\MvcEvent), Object(Closure))
#12 C:\MAMP\htdocs\first\OmekaS\vendor\zendframework\zend-mvc\src\Application.php(332): Zend\EventManager\EventManager->triggerEventUntil(Object(Closure), Object(Zend\Mvc\MvcEvent))
#13 C:\MAMP\htdocs\first\OmekaS\index.php(21): Zend\Mvc\Application->run()
#14 {main}

These issues are not related specifically to the Collecting module, but are likely a product of your use of an unorthodox environment (MAMP in Windows). Though it’s supported, setting up in Windows requires more work. If at all possible I recommend that you move to a LAMP stack.

In any case, you need to install ImageMagick and set a valid path to the ImageMagick command: https://omeka.org/s/docs/developer/reference/configuration/#thumbnails

You also need to configure a mail transport that’s supported for your machine: https://omeka.org/s/docs/developer/reference/configuration/#mail

Hello jimsafley,

Unfortunately, I cannot move to a LAMP stack at this point. I will follow your instructions and set my mail transport later this evening. Meanwhile, could you tell me if I did correctly setup the paths below?

My ImageMagick path is set as follows: imagemagick_dir’ => 'C:/MAMP/bin/ImageMagick’
My cli path is set as follows:‘phpcli_path’ => ‘C:/MAMP/bin/php/php7.1.5’,

-Thanks for your help.

You’ll need to determine the correct paths yourself, since they’re different for almost every environment. You can use Windows’s WHERE command to get them: https://ss64.com/nt/where.html

Hello jimsafley,

As you suggested, i moved to a LAMP stack and these errors have been resolved.

Thank you again for your help - appreciated.

Best,