Installing on Cheap Shared Servers
Running CollectiveAccess on a cheap shared server service can be challenging due to the fairly tight resource limits most providers impose. Note that by "cheap shared server" we mean the < US $10/month service from providers like Dreamhost and 1&1, not the more costly "Virtual Private Server" (VPS) options. We have yet to encounter a Linux-based VPS service that didn't work just fine.
Below are accounts of experiences with various shared server services. Please share your own experiences here! Our goal is to identify the snags in installation of these services and devise workarounds. You can't really beat a collections management system that costs $5/month to run!
CA runs acceptably on basic Dreamhost service. Performance is a little pokey but quite tolerable with our database of > 8000 object records. We have multiple cataloguers working on the system.
Video transcoding via the Dreamhost-provided ffmpeg installation work with popular codecs (FLV, MPEG4/h264, Quicktime legacy codecs); images processing with GD (JPEG, PNG, GIF only - no TIFF) work fine with all of the images we tried (we're not uploading really huge images though).
- Installer dies mysteriously while loading largish installation profiles. Since just about every profile counts as "largish" this is a major problem. Loading the database on Dreamhost directly using a MySQL dump of a database installed on another service works fine (that's how we got it to work).
- Generation of PDF-format labels for printing throws 500 Server Errors semi-randomly. This is probably due to the resource-intensive nature of the process. Installing PDFLib (which was an ordeal given the Dreamhost server setup) didn't help. Nor did installation of a custom built PHP interpreter. Printing relatively small blocks of labels (< 200 per run) is our current workaround.
UPDATE: We got the installer to work on Dreamhost by hacking it up to load the profile in pieces, spreading the work across several requests and thus sneaking under Dreamhosts criteria for process killing. This is very hacky looking right now but it works and with just a bit more effort a "step by step mode" can be rolled into the standard installer. We suspect this approach will help with installation in other resource-limited environments as well. If you are trying to install on Dreamhost and run into problems contact us at firstname.lastname@example.org. We will try to have the standard installer updated to support Dreamhost soon.
NOTES: It should be noted that Dreamhost also offers free shared hosting for non-profits. ANOTHER NOTE: The free shared hosting for non-profits appears to be a very nice level of service – better than many of Dreamhost's paid offerings.
UPDATE 19 June 2013: Installing CA may require an increase of the memory_limit in the php.ini file. To do this on a shared server (where you don't have permissions to the php.ini file) follow these directions. You'll want to make sure you're using PHP 5.3 or higher first (overriding php.ini for PHP 5.2 is unfortunately more difficult and is also documented there). You can see what version of PHP you are running under Manage Domains > Edit > Web Options.
Loading the system from a mysql dump, as mentioned above, works very well if you have another installation elsewhere. All the information for your command can be found at MySQL Databases > MySQL Database Management (i.e. mysql -u username -ppassword -h hostname databasename < path/your_system.dump)
If you're having issues uploading media take a look at Manage > Administration > Configure check. You may need to increase the values of some of the suhosin configurations. On a shared server you'll need to set this in the phprc file.
1&1 kills any process that uses the CPU for more than 10 seconds. This means the installer and any media upload worth anything won't work. CA works great on the more expensive 1&1 VPN service (we have a large installation with 20gigs of images) but don't bother trying to run it on their cheap shared service.
FatCow doesn't support InnoDb tables for MySQL, which causes the database schema load to fail. You could get around this with some very minor modifications to the schema, but why bother? Without InnoDb support all sorts of needed database features, like transactions, are unavailable... we'd only be asking for trouble down the line. Bottom line: don't bother trying to run CA on FatCow.
Installation and general use seem to work fine on Pair. No problems reported yet!
Pair systems configures your site to run with 64Mb by default. CA will work with this but functions much better on 128Mb. To configure this memory size, edit the Php.ini file in Fcgi-bin directory (under web services). Add the following entries
memory_limit = 128M post_max_size=8M upload_max_filesize=8M
when you next log in to your CA system you will have the expanded memory space.
CA can function with the minimimum system available under pair (Basic @ $10/month) but procedures are easier under the next higher option (Advanced @ $20/month). This provides 20MB of disk storage and 20 mySQL databases. This makes CA upgrades or reloads of your collection much simpler.
If you are uploading or saving a large database (past the PHPmyAdmin limites) you must do the import or export through mySQL directly.
To accomplish this, install puTTY on your windows system and access your pair host directly (usually your userid.pairserver.com, but its on your account home page anyways). Log into your pair server and direct mySQL to import or export the database using the database master account in your CA configuration files to or from the server containing you database.
mySQL -h db144a.pair.com -u masteruserid -p userid_databasename < importfile.sql
This command will import into an empty databse called userid_databasename on the server db144a.pair.com using the master account masteruserid the contents of the file importfile.sql
To upload the importfile.sql, you can install the ftp client software winSCP on you windows server and use it to upload files directly to your pair server. This is also the process by which you can preload any Media files if you are starting from a database already created on Windows.
Installs and works fine with their standard plan. No problems reported yet!
UPDATE [23 January 2012]: BlueHost still doesn't support PHP 5.3, despite that fact that it has been out for more than two years. The latest versions of CA require PHP 5.3.6 or better so this is something of a non-starter.
UPDATE [09 April 2012]: BlueHost now supports PHP 5.3. You have to talk/chat with support for them to enable it, but it's possible.
UPDATE [19 June 2013]: BlueHost doesn't support ffmpeg on their Shared Web Hosting plan. For ffmpeg users they recommend the Dedicated Web Hosting plan.
UPDATE [17 January 2013]: Like FatCow, Network Solutions doesn't support InnoDb tables for MySQL, which causes the database schema load to fail. Bottom line: don't bother trying to run CA on Network Solutions.
UPDATE [19 June 2013]: Go Daddy doesn't support ffmpeg for their shared hosting accounts, but it can be installed on a virtual or dedicated server.