Unable to install Plugins

Describe the issue or problem
Please tell us what happens and what you expected to happen.

Hello, our team is having issues with installing plugins. When going to the plugin library, selecting a plugin such as bootstrap3, clicking “Install” then clicking “OK”, nothing appears to happen.

We’re using OJS 3.3.0.12 and the error logs show the following

[19-Jun-2024 09:51:27 Pacific/Honolulu] PHP Warning: Undefined array key “certification” in E:\ojs-3.3.0-12\lib\pkp\classes\plugins\PluginGalleryDAO.inc.php on line 194
[19-Jun-2024 09:51:27 Pacific/Honolulu] PHP Warning: Undefined array key “certification” in E:\ojs-3.3.0-12\lib\pkp\classes\plugins\PluginGalleryDAO.inc.php on line 194
[19-Jun-2024 09:51:27 Pacific/Honolulu] PHP Warning: Undefined array key “certification” in E:\ojs-3.3.0-12\lib\pkp\classes\plugins\PluginGalleryDAO.inc.php on line 194
[19-Jun-2024 09:51:27 Pacific/Honolulu] PHP Warning: Undefined array key “certification” in E:\ojs-3.3.0-12\lib\pkp\classes\plugins\PluginGalleryDAO.inc.php on line 194
[19-Jun-2024 09:51:27 Pacific/Honolulu] PHP Warning: Undefined array key “certification” in E:\ojs-3.3.0-12\lib\pkp\classes\plugins\PluginGalleryDAO.inc.php on line 194
[19-Jun-2024 09:51:30 Pacific/Honolulu] PHP Warning: opendir(C:\Windows\Temp\bootstrap34e0a7a9c20): Access is deni (code: 5) in E:\ojs-3.3.0-12\lib\pkp\classes\file\FileManager.inc.php on line 335
[19-Jun-2024 09:51:30 Pacific/Honolulu] PHP Warning: opendir(C:\Windows\Temp\bootstrap34e0a7a9c20): Failed to open directory: No such file or directory in E:\ojs-3.3.0-12\lib\pkp\classes\file\FileManager.inc.php on line 335
[19-Jun-2024 09:51:30 Pacific/Honolulu] PHP Fatal error: Uncaught TypeError: readdir(): Argument #1 ($dir_handle) must be of type resource or null, false given in E:\ojs-3.3.0-12\lib\pkp\classes\file\FileManager.inc.php:336
Stack trace:
#0 E:\ojs-3.3.0-12\lib\pkp\classes\file\FileManager.inc.php(336): readdir()
#1 E:\ojs-3.3.0-12\lib\pkp\classes\plugins\PluginHelper.inc.php(64): FileManager->rmtree()
#2 E:\ojs-3.3.0-12\lib\pkp\controllers\grid\plugins\PluginGalleryGridHandler.inc.php(280): PluginHelper->extractPlugin()
#3 E:\ojs-3.3.0-12\lib\pkp\classes\core\PKPRouter.inc.php(395): PluginGalleryGridHandler->installPlugin()
#4 E:\ojs-3.3.0-12\lib\pkp\classes\core\PKPComponentRouter.inc.php(257): PKPRouter->_authorizeInitializeAndCallRequest()
#5 E:\ojs-3.3.0-12\lib\pkp\classes\core\Dispatcher.inc.php(144): PKPComponentRouter->route()
#6 E:\ojs-3.3.0-12\lib\pkp\classes\core\PKPApplication.inc.php(362): Dispatcher->dispatch()
#7 E:\ojs-3.3.0-12\index.php(68): PKPApplication->execute()
#8 {main}
thrown in E:\ojs-3.3.0-12\lib\pkp\classes\file\FileManager.inc.php on line 336

We’re operating OJS on a Windows server if that helps. I’ve also attempted to upload the Bootstrap3 plugin from the Github link but received a “File size error” message. I’ll explore the FTP method last but wanted to see if there was some obvious fix for why the plugin page route isn’t working.

Thank you in advance for your help.

When you want to install or update a plugin, both the Temp directory as well as the target parent directory (e.g. plugins/generic, plugins/importexport etc.) need to have write access for the webserver (apache) user and group.

Temp should given write access permanently, the above mentioned plugin directories only temporarily during install/update due to security reasons.