I had my fair share of problems getting openupload to run using my limited knowledge of PHP and Linux, but after roughly following this guide I was able to get it working will be rolling it out as an FTP alternative at my workplace. The lack of setup documentation was one of the frustrating problems I ran across though, so I'm going to share what I've been able to put together in order to hopefully make your install easier.
First, to preface the documentation, here's a little bit of information about my setup. As I said, I'm running this on Ubuntu 12.04.1 server (64-bit), with PHP 5.3.10, MySQL 5.5.24, and Apache 2.2.22.
Following the guide mentioned above, I was able to get the basic installation working for the admin user. However, there were still issues with downloading, and also with any non-admin user. This problem is in the the permissions system of openupload. You will likely have to change it to accommodate your setup. You can do this through the site administration (Administration->Rights, then select the group you want to change), or else you can manually edit the MySQL table, but I'd suggest using the administration tool. To do it during setup, the INSTALL file mentions the different modes available. Pick the mode you want, and then go into the sql/txt/modes directory and find the corresponding permissions file. Copy that file (e.g. acl_restricted.txt) to your sql/txt/ directory, overwriting the acl.txt file. Otherwise you can modify the permissions after the setup using either method mentioned above. The bolded text is the table names that control the permissions. For the rest to make sense you may have to look at the table in MySQL first, and then you should get it:
acl
- id - is the primary key and is set manually
- module - refers to the modules of the site, with values of admin, auth, and files
- admin refers to site administration privileges, which should only go to the admin group
- auth is for allowing users to do stuff, or not to
- files refers to the uploading, downloading, or deleting of files
- action - sub-categories of the modules to be more specific about the permissions
- admin actions
- not sure. The admin group uses the wildcard * to allow all
- auth actions
- login - whether the group can login or not, which should always be allowed
- logout - whether the user can click logout, which should be allowed
- profile - whether the user can view and change his or her profile
- register - whether a user can register themselves or not
- files actions
- d - whether the group can download files
- u - whether the group can upload files
- r - whether the group can remove files
- l - whether the group can view their files. This enables the My Files tab
- group_name - which group the acl pertains to
- access - either allow or deny
The plugins work the same way. You can modify them in the administration settings (Administration->Plugins->Plugins ACL), or direct in the MySQL
plugin_acl
plugin_acl
- id - is the primary key and is set manually
- group_name - specifies which group the acl pertains to
- plugin - specifies which of the optionally installed plugins the acl pertains to
- password - allows users to force password entry before file download is allowed
- captcha - allows users to force a captcha entry before file download is allowed
- email - allows users to have emails sent to notify of loaded files, removal links, etc
- mimetypes - Allows restricting uploads by mime type by group
- compress - another ?. I'm guessing this enables some type of invisible compression algorithm
- expire - Enables auto-expiration of links after 30 days. Possibly automatic file deletion as well
If you know of other permission settings I'm missing, please add them in the comments. These are the ones I've figured out or found, and they were enough to get everything working as I need it to.
If you're using plugins, you may also need to change the related options. You can do that in the administration under Administration->Plugins->Plugins Options.
If you're using plugins, you may also need to change the related options. You can do that in the administration under Administration->Plugins->Plugins Options.
- Openupload config file - contains all the main application settings (db information, site template and directory mappings, etc)
- [openupload directory]/www/config.inc.php
- Main page html file - in case you want to add links or anything to the main page
- [openupload directory]/templates/default/index.tpl
- Main CSS file - for modifying the background, alignment of objects, colors, etc
- [openupload directory]/www/templates/default/main.css
- Logo image - the logo that displays in the upper-left corner
- [openupload directory]/www/templates/default/img/openupload.jpg
- Email template - this is the default template used when sending notification emails
- [openupload directory]/templates/default/plugins/email/notify.tpl
The [openupload directory]/templates/default/ directory contains the HTML pages for essentially the entire site.
If you run into problems uploading a file, make sure to check the upload size limits. This is set in the config file and your php.ini file. You'll want to make sure that the HTTP POST limit and the max upload size in your PHP settings match, and that the [openupload directory]/www/config.inc.php also matches that value. By default, the PHP settings allow only 2MB files.
I hope that helps you get started with openupload. There's also another one out there called FileZ, but I haven't tried using that and only mention it in case you want to look into an alternative that has more recent development.
If you run into problems uploading a file, make sure to check the upload size limits. This is set in the config file and your php.ini file. You'll want to make sure that the HTTP POST limit and the max upload size in your PHP settings match, and that the [openupload directory]/www/config.inc.php also matches that value. By default, the PHP settings allow only 2MB files.
I hope that helps you get started with openupload. There's also another one out there called FileZ, but I haven't tried using that and only mention it in case you want to look into an alternative that has more recent development.