Installing Campsite on Shared Hosting Using PHP-CGI
The main problem of hosting setups that run PHP as CGI is that they do not allow you to add modules, to set your PHP configuration as you wish. Campsite has advanced features which require PHP to run as a module for performance reasons. Campsite is primarily a publishing application for medium to large publications, and that’s where the bulk of our focus goes.
That said, we are not abandoning shared-hosting users to their fate, and this wiki is here to help you along the way of installing Campsite on your shared host. And you can help other people interested in running Campsite in these kinds of setups by sharing your tips and experience here (as a defense from spam, we keep the wiki closed, but we’ll gladly provide you with a login if you write us a mail at contactATcampwareDOTorg).
Campsite already CAN be installed on most shared hosting setups. We say most, not each and every, because we have seen plenty reports of successful installations in PHP-CGI environments, while occasionally we hear a report of someone’s failure with some particular hosting provider.
Installation
Campsite requires the Apache user (e.g. apache on Centos or www-data on Ubuntu) to have rights to write to the following directories.
- document_root (only during installation)
- /conf (only during installation)
- /templates
- /templates_c
- /plugins (only during plugin installation)
Enterprise Features and Shared Hosting
What you may run into difficulties with on certain shared-hosting setups (though not necessarily, depending on your provider’s configuration) is if you want to use Campsite’s enterprise features, which rely on Apache crontabs.
Those features are:
- Automatic publishing: Modifies the status of issues and articles scheduled for certain actions.
- Events Notifier: Sends emails to administrative users containing the latest events that took place in Campsite.
- Indexer: Indexes the article content (update the search engine database).
- Statistics: Updates Web site statistics.
- Subscriptions Notifier: Sends emails to subscribers alerting them when their subscription ends.
How they work:
- tasks run as cron jobs on your system
- Individual cron job files are saved to install/cron_jobs/ directory
- There is an all_at_once file in the same directory which includes all the cron jobs.
For more about these features, please see https://www.campware.org/manuals/campsite/3.3/index.php?id=198
Troubleshooting: User Reports
Pippa reports:
Installation went fine... Then I got this: "You don't have permission to access /admin.php on this server. Additionally, a 403 Forbidden error was encountered while trying to use an !ErrorDocument to handle the request." And the Apache error file said: "Options ExecCGI is off in this directory: /home/mydomain/public_html/index.php" It means that !ExecCGI is not working, many hosts turn it off for better security. At first I tried to set execCGI enabled via the .htaccess file as an option. But my host has also turned off setting this one as an option in .htaccess. I filed a ticket and asked them to turn it on for my domain, they did and the error was gone. I could normally access the site and the adminpanel after that.
Myths
We have noticed some misinformation regarding certain Campsite requirements, so we’ll be collecting them in this section of the wiki:
- “Apache has to be the owner of files” – Campsite files do not have to be owned by the Apache user . All you need is that the Apache user have a right to write to certain directories (please see above under Installation)
If you notice any similar misconceptions, please let us know at contactATcampwareDOTorg