Hi,
I’m having problems with uploading files related with php open_basedir
setting. Running on FreeBSD, Apache 2.4 and PHP8.0 (installed from packages). Omeka is 3.0.2
Omeka is placed to /data/www/omeka directory.
If open_basedir has default setting (commented out in php.ini) then file upload fails with this error.
Unable to store file.
Omeka_Storage_Exception: Unable to store file. in /data/www/omeka/application/libraries/Omeka/Storage/Adapter/Filesystem.php:130
Stack trace:
#0 /data/www/omeka/application/libraries/Omeka/Storage.php(67): Omeka_Storage_Adapter_Filesystem->store('/tmp//e15f505df...', 'original/e15f50...')
#1 /data/www/omeka/application/models/File.php(426): Omeka_Storage->__call('store', Array)
#2 /data/www/omeka/application/models/Job/FileProcessUpload.php(23): File->storeFiles()
#3 /data/www/omeka/application/libraries/Omeka/Job/Dispatcher/Adapter/Synchronous.php(25): Job_FileProcessUpload->perform()
#4 /data/www/omeka/application/libraries/Omeka/Job/Dispatcher/Default.php(137): Omeka_Job_Dispatcher_Adapter_Synchronous->send('{"className":"J...', Array)
#5 /data/www/omeka/application/models/File.php(205): Omeka_Job_Dispatcher_Default->send('Job_FileProcess...', Array)
#6 /data/www/omeka/application/libraries/Omeka/Record/AbstractRecord.php(280): File->afterSave(Array)
#7 /data/www/omeka/application/libraries/Omeka/Record/AbstractRecord.php(548): Omeka_Record_AbstractRecord->runCallbacks('afterSave', Array)
#8 /data/www/omeka/application/models/Item.php(338): Omeka_Record_AbstractRecord->save()
#9 /data/www/omeka/application/models/Builder/Item.php(205): Item->saveFiles()
#10 /data/www/omeka/application/libraries/globals.php(567): Builder_Item->addFiles('Upload', 'file', Array)
#11 /data/www/omeka/application/models/Item.php(323): insert_files_for_item(Object(Item), 'Upload', 'file', Array)
#12 /data/www/omeka/application/models/Item.php(233): Item->_uploadFiles()
#13 /data/www/omeka/application/libraries/Omeka/Record/AbstractRecord.php(280): Item->beforeSave(Array)
#14 /data/www/omeka/application/libraries/Omeka/Record/AbstractRecord.php(529): Omeka_Record_AbstractRecord->runCallbacks('beforeSave', Array)
#15 /data/www/omeka/application/libraries/Omeka/Controller/AbstractActionController.php(229): Omeka_Record_AbstractRecord->save(false)
#16 /data/www/omeka/application/controllers/ItemsController.php(88): Omeka_Controller_AbstractActionController->editAction()
#17 /data/www/omeka/application/libraries/Zend/Controller/Action.php(516): ItemsController->editAction()
#18 /data/www/omeka/application/libraries/Zend/Controller/Dispatcher/Standard.php(308): Zend_Controller_Action->dispatch('editAction')
#19 /data/www/omeka/application/libraries/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#20 /data/www/omeka/application/libraries/Zend/Application/Bootstrap/Bootstrap.php(105): Zend_Controller_Front->dispatch()
#21 /data/www/omeka/application/libraries/Zend/Application.php(384): Zend_Application_Bootstrap_Bootstrap->run()
#22 /data/www/omeka/application/libraries/Omeka/Application.php(73): Zend_Application->run()
#23 /data/www/omeka/admin/index.php(28): Omeka_Application->run()
#24 {main}
Now changing open_basedir
like this in php.ini:
open_basedir = "/data/www/:/var/tmp/:/tmp/:/usr/local/bin/:/dev/urandom:"
Allows file uploads. Everything seem’s to be fine exept now every time omeka web page is loaded it produces an error message to log:
Apr 12 10:36:36 brix php[14451]: PHP Warning: is_readable(): open_basedir restriction in effect. File(/usr/local/share/pear//data/www/omeka/plugins/HistoryLog/views/helpers/Url.php) is not within the allowed path(s): (/data/www/omeka/:/var/tmp/:/tmp/:/usr/local/bin/:/dev/urandom) in /data/www/omeka/application/libraries/Zend/Loader.php on line 186
I can’t find the source where and why it goes looking for file “/usr/local/share/pear//data/www/omeka/plu…” .
And also note double slashes ...pear//data...
in search path.
Can anyone give some hints how to solve this?
Thanks!