Installing Omeka Classic on Reclaim Cloud?

I followed these instructions to run Omeka Classic through Reclaim Cloud. As soon as I fill out the superuser form, the site crashes and defaults to this:

Zend_Db_Statement_Mysqli_Exception

Mysqli prepare error: Table ‘omekatest2.omeka_schema_migrations’ doesn’t exist

Zend_Db_Statement_Mysqli_Exception: Mysqli prepare error: Table 'omekatest2.omeka_schema_migrations' doesn't exist in /var/www/webroot/ROOT/application/libraries/Zend/Db/Statement/Mysqli.php:77 Stack trace: #0 /var/www/webroot/ROOT/application/libraries/Zend/Db/Statement.php(115): Zend_Db_Statement_Mysqli->_prepare('SELECT version ...') #1 /var/www/webroot/ROOT/application/libraries/Zend/Db/Adapter/Mysqli.php(388): Zend_Db_Statement->__construct(Object(Zend_Db_Adapter_Mysqli), 'SELECT version ...') #2 /var/www/webroot/ROOT/application/libraries/Zend/Db/Adapter/Abstract.php(479): Zend_Db_Adapter_Mysqli->prepare('SELECT version ...') #3 /var/www/webroot/ROOT/application/libraries/Zend/Db/Adapter/Abstract.php(794): Zend_Db_Adapter_Abstract->query('SELECT version ...', Array) #4 /var/www/webroot/ROOT/application/libraries/Omeka/Db.php(80): Zend_Db_Adapter_Abstract->fetchCol('SELECT version ...') #5 /var/www/webroot/ROOT/application/libraries/Omeka/Db/Migration/Manager.php(178): Omeka_Db->__call('fetchCol', Array) #6 /var/www/webroot/ROOT/application/libraries/Omeka/Db/Migration/Manager.php(268): Omeka_Db_Migration_Manager->_getAllMigratedVersions() #7 /var/www/webroot/ROOT/application/libraries/Omeka/Db/Migration/Manager.php(120): Omeka_Db_Migration_Manager->_getPendingMigrations(Object(DateTime)) #8 /var/www/webroot/ROOT/application/libraries/Omeka/Db/Migration/Manager.php(134): Omeka_Db_Migration_Manager->canUpgrade() #9 /var/www/webroot/ROOT/application/libraries/Omeka/Controller/Plugin/Upgrade.php(55): Omeka_Db_Migration_Manager->dbNeedsUpgrade() #10 /var/www/webroot/ROOT/application/libraries/Omeka/Controller/Plugin/Upgrade.php(39): Omeka_Controller_Plugin_Upgrade->_dbNeedsUpgrade() #11 /var/www/webroot/ROOT/application/libraries/Zend/Controller/Plugin/Broker.php(287): Omeka_Controller_Plugin_Upgrade->dispatchLoopStartup(Object(Zend_Controller_Request_Http)) #12 /var/www/webroot/ROOT/application/libraries/Zend/Controller/Front.php(928): Zend_Controller_Plugin_Broker->dispatchLoopStartup(Object(Zend_Controller_Request_Http)) #13 /var/www/webroot/ROOT/application/libraries/Zend/Application/Bootstrap/Bootstrap.php(105): Zend_Controller_Front->dispatch() #14 /var/www/webroot/ROOT/application/libraries/Zend/Application.php(384): Zend_Application_Bootstrap_Bootstrap->run() #15 /var/www/webroot/ROOT/application/libraries/Omeka/Application.php(73): Zend_Application->run() #16 /var/www/webroot/ROOT/index.php(23): Omeka_Application->run() #17 {main}

I’ve tried creating the table manually via PHPMyAdmin, but that creates a different issue (unknown column in field list). This doesn’t involve any plugins, so I’m not sure how to fix it.

So, this table should be created by the installer.

What tables do you have in your database after the installer runs? It looks like maybe it encountered an error somewhere?

That’s what I was thinking. I have 18 tables after the installer runs:

  • omeka_collections
  • omeka_elements
  • omeka_element_sets
  • omeka_element_texts
  • omeka_files
  • omeka_items
  • omeka_item_types
  • omeka_item_types_elements
  • omeka_keys
  • omeka_options
  • omeka_plugins
  • omeka_processes
  • omeka_records_tags
  • omeka_search_texts
  • omeka_sessions
  • omeka_tags
  • omeka_users
  • omeka_users_activations

OK, that’s the normal 18 tables that should get created upon install.

Is there a row in the omeka_users table for your initial user you created during the install? That’s the next step, and the one right after that is setting up the migrations table. It seems likely one of those steps failed. Filling in the omeka_options table is the last step; are there any rows in there?

A side question: did you see the “Success” message from the installer?

There isn’t a row in omeka_users for my initial user, but there are three in the omeka_options table:

  • html_purifier_is_enabled
  • html_purifier_allowed_html_elements
  • html_purifier_allowed_html_attributes

I didn’t see the Success message from the installer - it defaulted to this error page.

Did you maybe get an error page, then need to go change the .htaccess to enable error display, then go back and get the message you provided in your first post here? If so, there’s probably actually a different error message you’d gotten the first time around, which you just couldn’t see.

Try this: drop all the installed tables, then run the installer again.

Okay, I ran the installer again and received this error:


Fatal error: Uncaught ArgumentCountError: mysqli_stmt::bind_param() does not accept unknown named parameters in /var/www/webroot/ROOT/application/libraries/Zend/Db/Statement/Mysqli.php:203 Stack trace: 
#0 /var/www/webroot/ROOT/application/libraries/Zend/Db/Statement/Mysqli.php(203): mysqli_stmt->bind_param('s', value: 'estene@upenn.ed...') 
#1 /var/www/webroot/ROOT/application/libraries/Zend/Db/Statement.php(303): Zend_Db_Statement_Mysqli->_execute(Array) 
#2 /var/www/webroot/ROOT/application/libraries/Zend/Db/Adapter/Abstract.php(480): Zend_Db_Statement->execute(Array) 
#3 /var/www/webroot/ROOT/application/libraries/Zend/Db/Adapter/Abstract.php(756): Zend_Db_Adapter_Abstract->query('SELECT `omeka_u...', Array) 
#4 /var/www/webroot/ROOT/application/libraries/Zend/Validate/Db/Abstract.php(350): Zend_Db_Adapter_Abstract->fetchRow(Object(Zend_Db_Select), Array, 2) 
#5 /var/www/webroot/ROOT/application/libraries/Zend/Validate/Db/NoRecordExists.php(43): Zend_Validate_Db_Abstract->_query('estene@upenn.ed...')
#6 /var/www/webroot/ROOT/application/libraries/Omeka/Record/AbstractRecord.php(792): Zend_Validate_Db_NoRecordExists->isValid('estene@upenn.ed...') 
#7 /var/www/webroot/ROOT/application/models/User.php(175): Omeka_Record_AbstractRecord->fieldIsUnique('email') 
#8 /var/www/webroot/ROOT/application/libraries/Omeka/Record/AbstractRecord.php(385): User->_validate() 
#9 /var/www/webroot/ROOT/application/libraries/Omeka/Record/AbstractRecord.php(531): Omeka_Record_AbstractRecord->isValid() 
#10 /var/www/webroot/ROOT/application/models/Installer/Task/User.php(77): Omeka_Record_AbstractRecord->save(false) 
#11 /var/www/webroot/ROOT/application/models/Installer/Default.php(88): Installer_Task_User->install(Object(Omeka_Db))
#12 /var/www/webroot/ROOT/application/models/Installer/Default.php(56): Installer_Default->_createUser() 
#13 /var/www/webroot/ROOT/install/controllers/IndexController.php(61): Installer_Default->install() 
#14 /var/www/webroot/ROOT/application/libraries/Zend/Controller/Action.php(516): IndexController->indexAction() 
#15 /var/www/webroot/ROOT/application/libraries/Zend/Controller/Dispatcher/Standard.php(308): Zend_Controller_Action->dispatch('indexAction') 
#16 /var/www/webroot/ROOT/application/libraries/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) 
#17 /var/www/webroot/ROOT/application/libraries/Zend/Application/Bootstrap/Bootstrap.php(105): Zend_Controller_Front->dispatch() 
#18 /var/www/webroot/ROOT/application/libraries/Zend/Application.php(384): Zend_Application_Bootstrap_Bootstrap->run() 
#19 /var/www/webroot/ROOT/install/install.php(48): Zend_Application->run() 
#20 {main} thrown in /var/www/webroot/ROOT/application/libraries/Zend/Db/Statement/Mysqli.php on line 203

Just wanted to say I’m having the exact same issue while trying to install a brand new Omeka Classic 2.7.1. Really don’t understand where I’m making a mistake and the process fails.

1 Like

Looking at this error on other questions, it looks like it’s a PHP 8 issue?

Yes, this looks like a PHP 8 issue.

We have a fix for this and other PHP 8 compatibility changes in the works, but they’re not yet released.

I’d recommend that people stick to PHP 7.4 right now, with PHP 8 being a very recent major release.

I wrote about this on the Reclaim Cloud forum as well, but I was able to do this successfully with the following configurations:

  • Apache 2.4.46
  • PHP 7.4.13
  • MySQL CE 5.7.32

Thanks everyone, problem solved with PHP 7.4 as you suggested. :slight_smile:

This topic was automatically closed after 250 days. New replies are no longer allowed.