CcHost
ccHost is Creative Commons' open source (GPL licensed) project that powers ccMixter and is the winner of the Linux Journal LinuxWorldExpo Product Excellence Award for Best Open Source Solution. Read more about ccHost here.
Contents
Download
Sign up for our RSS release feed to make sure you don't miss important bug fixes and feature updates.
Current Stable Release
Latest stable build of ccHost 3.0.2 (NEWS) is available in several common archiving formats (.zip, .gz, etc.)
To install: Unpack the contents of the archive on your local machine and see ccadmin/INSTALL.
For those who installed 3.0: There is a data loss bug in 3.0 Specifically: saving any user's profile will revert all menus and submit form customizations to factory defaults. Sorry for any trouble this has caused.
Experimental Thrice-Daily Builds
Currently, ccHost packages are being made three-times a day and are available here:
Our experience has been very good however these are minimally tested builds so download, install and use these packages at your own risk.
Only 30 days worth of builds are saved currently.
Install
As stated above, all the information you need for installation is in the distribution package you downloaded. Treat these notes as addendums, hints and other possibly useful information.
Simple
The easiest way to get going is to start with a web hosting server. Common web hosting services like Dreamhost and WebsiteSource provide an administration interface for setting up a mysql database. Hosting services also provide some FTP or SFTP mechanism to upload the ccHost installation files as well. 99% of all services provide support for PHP as well. If you have questions about support in this area, check the server requirements below and with your hosting service.
- Unzip the ccHost ZIP archive on your local system and copy the files to your server retaining the the directory structure.
- Browse to http://where_you_installed/ccadmin and follow all the instructions from then on.
Advanced
If you have basic knowledge of using FTP and you are comfortable at a terminal command line you can use these steps to before, during and after installation. Many of these can be filed under "you'll be glad you did" by the time you get to the browser-based installation steps later on.
Enabling 'Pretty URLs'
All ccHost commands and URLs based on query strings:
http://your_install_root/index.php?ccm=/media/people/victor
That same URL can be made 'pretty' on Apache installations so that it looks more like:
http://your_install_root/media/people/victor
Here is the block of code in your .htaccess file setting the rewrite rules to get pretty urls:
RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ /index.php?ccm=/$1 [L,QSA]
If you installed to a directory below the site's root make sure to specify that in the RewriteBase directive.
For perfomance reasons (and if you are given access) you should put those directives into an Apache virtual host block in the .conf file for your server:
<VirtualHost *:80> ServerName ccmixter.localhost ServerPath /ccmixter #DocumentRoot /var/www/localhost/htdocs/cchost DocumentRoot /home/rejon/Documents/freelance/creativecommons/src/ccmixter <Directory "/home/rejon/Documents/freelance/creativecommons/src/ccmixter"> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ /index.php?ccm=/$1 [L,QSA] </Directory> </VirtualHost>
getID3
ccHost depends on the getID3 library for verifying uploads. Install getID3 (at least 1.7.3) here: http://www.getid3.org/#download before you install ccHost. (It's a simple download-unpack operation.)
For example (on Linux):
tar xzf getid3.tar.gz cp -a getid3/getid3 /var/www/localhost/htdocs/getid3/
The ccHost installer will 'find' your getID3 installation if it's roughly in the same area of the server, however it is not required that your getID3 be visible on the web and in fact, it's probably more secure if it isn't.
ccHost Terminal Installtion
- Unzip the ccHost ZIP or tar. bz2 archive on your local system and copy the files (retaining the directory structure) to your web-server directory.
- On Linux change the group and permissions of the files so they may be written by the web server (e.g., in the following lines, the web-server account is "apache").
For example:
cp -a cchost-1.0.3 /var/www/localhost/htdocs/cchost chgrp -R apache /var/www/localhost/htdocs/cchost chmod g+w /var/www/localhost/htdocs/cchost/ chmod -R g+w /var/www/localhost/htdocs/cchost/cclib/phptal/phptal_cache/
- Create a new database for ccHost (e.g., named "cchost") and create an administrative user to access it (e.g., "cchostadmin"). For example:
mysql -p -u root mysql> CREATE DATABASE cchost; mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE ON cchost.* TO 'cchostadmin'@'localhost' IDENTIFIED BY 'YOUR_PASSWORD_HERE';
Make sure to change 'YOUR_PASSWORD_HERE' (and maybe 'cchostadmin') to something unique to your site. (Many systems provide phpMyAdmin to take care of these tasks.
- Create directory /var/log/cchost or other location to store log files. Must be writable by the web-server account (e.g., "apache"). For example:
mkdir /var/log/cchost chown apache:apache /var/log/cchost
Finish with Install
Browse to http://where_you_installed_cchost/ccadmin
Everything else you need to know will be on the screen from that point on, including suggested php.ini and .htaccess settings, access permissions requirements, etc.
More .htaccess file settings
Put the following into a file named '.htaccess' in your root directory of a ccHost setup if you can't set your php.ini settings for your hosting setup. These settings should work, but should be tested first. They correct many memory problems people have with ccHost.
# php configs http://www.php.net/manual/en/ini.core.php#ini.memory-limit # http://www.php.net/manual/en/ini.php#ini.list php_value max_input_time 200 php_value max_execution_time 200 php_value memory_limit 20M php_value upload_max_filesize 20M # next line fixes noncompliant & used in php php_value arg_separator.output & php_flag session.use_trans_sid off # turns off annoying autoquotes php_flag magic_quotes_gpc off Options +MultiViews # Stop morons that are hammer your site # Open Clip Art Library had someone DDoS'ing our site <Limit GET> order deny,allow deny from 59.116.0.0/16 </Limit>
Upgrading
Always make a backup of your mySQL ccHost database and the files you change (probably all of the ccfiles directory) before you start the upgrade process. Things go wrong. You have been warned.
Upgrading from 3.0.x to 3.0.2
- Make sure you are logged in as admin on your ccHost installation
- Unzip/tar the package to your local drive (If you have edited custom.xml make sure to read ccadmin/INSTALL)
- Copy the files (except for ccadmin) to you web server
- While Browse to http://your_installation_root/?update=1
Upgrading from 2.x to 3.0.2
This specific upgrade requires a few extra steps
- Make a BACKUP of your mySQL database (can be done via phpMyAdmin or from the command line using mysqldump)
- Make a BACKUP of your cchost directory onto your local machine (don't worry about the /people and /contests directories). If you do not back up your ccHost tree and you made changes (to say ccfiles/home.xml) then ALL YOUR CHANGES WILL BE LOST FOREVER
- Login to ccHost as your admin account and make sure to check 'Remember me'
- Unzip the cchost 3.0 package on your local machine
- Copy everything under the cchost directory EXCEPT ccadmin over your server's ccHost directory
- Delete the file ccextras/cc-language.php
- Delete ALL files under cclib/phptal/phptal_cache
- If you made changes to files (like ccfiles/home.xml or cctemplates/custom.xml), copy your local version over the ones on your server now.
- Browse to: http://where_you_installed/?update=1
Troubleshooting
Bug Found in 3.0
If you installed 3.0 then you must download 3.01 immediately. Please see the Download section for details.
File Access
By far the most common issue with new installs on Unix based systems involves file access permissions. The recommended way of dealing with this is to set the entire ccHost directory structure as all-access (0777) just while you get things going. If everything else is working then you should follow the ccHost file access guildlines.
"There is an error rendering this page"
The most common reason you get this error message on new installations is because the cclib/phptal/phptal_cache directory is not writable by ccHost. You should make sure this is not the case by setting that directory's permission to 0777 and trying again.
The second most common reason are template errors during development of skins and other user interface testing. If you haven't already turn on debug messages login as admin and try to render the page again.
"Down for upgrade, check back soon"
This is actually an indication that something is wrong in the code (i.e. a bug) or your installation. Turn on debug messages and try to access your site. The very least that will do is give ccHost developers the exact location of the problem. After you turn on debugging, look at your cc-errors.txt file and send that along to the developers so they can narrow down the issue for you.
Outputting Debug Messages
In order to help ccHost developers troubleshoot your site you should enable debugging messages in your system. The easiest way to do this is to create a file called _DEBUG_.php with the following contents:
<? CCDebug::Enable(true); ?>
and put that file into the ccextras directory.
Now repeat the steps that led you to the problem and hopefully you will get more detailed information about the error.
Make sure to remove this file in your production installation. Hint: Changing the extension to anything other than .php is the same as removing it
Administration
So you've got your ccHost up and running. now what?
Check out the new official ccHost Administrator's Guide.
This document is based on information gathered from admins who have installed ccHost.
It is brand new, not reviewed and (as of this writing) has tons of spelling and grammatical errors. However, there is a lot of hopefully useful information. Please give the team feedback and by all means become a contributing editor.
Development
Source Code & Documentation
- Browsable Source Code (Anonymous)
- How to Check Out Code
- Online Code Documentation including developer's guide.
Creating Skins
For administrators looking to customize the look of their sites you should read the Admin's Skin Tutorial which also includes a Skin Maker download tool.
For slightly more advanced usage see How to create a skin for ccHost
People
Communication
- Chat: #cc on irc.freenode.net
- Wiki: This page (http://wiki.creativecommons.org/wiki/CcHost)
- Mailing List: https://lists.sourceforge.net/mailman/listinfo/cctools-cchost
Submitting Code
Before going too far down this road you definitely want to hop on the dev mailing list. If you are shy ask to speak with Victor or Jon in private.
Bugs and Feature Requests
Make sure to use the 'ccHost' category when filing bugs. Also, please use a real email so that we can followup on any bugs posted. Be descriptive when posting and commenting on bugs (every bit counts).
Zeitgeist
Goal
The goal of this project is to spread media content that is licensed under Creative Commons throughout the web in much the same way that weblogs spread CC licensed text.
Short Description
"Web-based System Supporting Remixing and Collaboration on Media"
Slightly Longer Description
ccHost is an open source (GPL licensed) project that provides web-based infrastructure to support collaboration, sharing, and storage of multi-media using the Creative Commons licenses and metadata. It is the codebase used by ccMixter and other sites.
Besides its focus on sharing content, ccHost differniates itself from other multi-media hosting programs by emphasizing the reuse (a.k.a. remixing) of content between artists, not only between artists on any given installation of ccHost, but between all installations across the web and any web site that implements the Creative Commons Sample Pool API, including non-ccHost sites such as the freesound project.
Press
Release Notes
Press Releases
Sound Bites
- "ccHost enables you to 'run your own flickr or youtube while having an infrastructure for legally sharing audio, video, text, and other media." Jon Phillips 22:50, 25 August 2006 (UTC)
Please add your own sound bite...
Screenshots
- The text for the front page can be changed by editing ccfiles/home.xml. The other menu functions and so on are generally modified using the admin functions of the site.
Usage Examples
- ccMixter - Primary usage of ccHost is the Creative Commons remix site, ccMixter.
- Open Source Cinema
- Matrix Rayne Online
- remix.linux
- ccmixter South Africa
- fourstones.net Victor's personal website
- Open Clip Art Library ccHost in testing
- TeacherHost - for Instructors to share instructional materials.
- http://adrenalinicsound.com/music/
- ccMixter from CC Taiwan
- Please add your installation here.
Appendix A: Compatibility
Browsers
Tested on: Firefox 1.0+ Mac/PC/Linux, IE 6+ PC, Safari Mac
Cookies must be enabled.
Most skins (the ones people will want to use) require Javascript enabled.
Servers
Primary development is done on Windows XP and up-to-date Linux development systems using Apache, mySQL, and PHP.
Linux
ccHost on Apache (2.0.49 up to at least apache-2.0.55-r1) on Linux,
One should be able to easily install mySQL, PHP, and Apache (if they are not already available) through their distributions packaging system.
Windows IIS Server
Windows users with their installation disks may install optionally the Windows IIS Web Server. This option has been tested. However, there might still be issues with it, and if so, please file a bug.
Even if you using Apache on Windows you may need to have IIS installed if you plan to use mail contact functions.
Windows Apache
There are many good tutorials for setting up a Windows/Apache/MySQL/PHP site (Google search) and all three subsystems now come with Windows installers making the job of installing relatively straightforward.
XAMPP
Windows installations without Apache, mySQL and PHP already installed should consider using XAMPP for Windows, which provides an easy install of Apache web server, MySQL database server, and PHP and perl programming languages. This is an easy way to get up and running, with the underlying technology necessary to use ccHost.
Follow the instructions for installation of XAMPP to know where to put the uncompressed ccHost package to properly work with your local setup.
Mac OS X
NOTE: This setup is similar to Linux.
Verified:
- OS X 10.4.6
- default OS X MySQL build, 4.0.26
- GetID3 1.7.7
- default Apache/PHP
Appendix B: Redistribution
HOWTO Tag a Release
Really, each major release needs to be tagged, but this 2.0.1 is the first SVN release, and we did it post CVS -> SVN migration. In the future, this is the proper way to tag and branch.
svn copy https://svn.sourceforge.net/svnroot/cctools/cchost/trunk \ https://svn.sourceforge.net/svnroot/cctools/cchost/tags/2_0_1 \ -m "Tagging 2.0.1 bugfix release"
Here is more about SVN merging/branching.
Packaging
Sign Package
You should do this for all packages (RPM, tar.gz, zip, tar.bz2, etc)
gpg --detach-sign --armor cchost-VERSION.tar.gz
Verify Package
gpg --verify cchost-VERSION.tar.gz.asc