Difference between revisions of "CcHost"

From Creative Commons
Jump to: navigation, search
(.htaccess file settings)
(Total redo)
Line 5: Line 5:
 
[[Category:ccMixter]]
 
[[Category:ccMixter]]
  
 +
'''ccHost''' is the open source ([http://creativecommons.org/licenses/GPL/2.0/ GPL] licensed) project that powers Commons licenses and metadata. It is used by [http://ccmixter.org ccMixter] and is the winner of the [http://creativecommons.org/weblog/entry/6026 LinuxWorld Journal Product Excellence Award] for '''Best Open Source Solution.''' Read more about ccHost [[#Zeitgeist|here]].
  
{{incomplete}}
+
= Download =
'''ccHost''' is an open source ([http://creativecommons.org/licenses/GPL/2.0/ 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 used by [http://ccmixter.org ccMixter] and [[#Usage Examples|other sites]].
 
  
== Information  ==
+
=== Current Stable Release ===
  
=== Short Description ===
+
Latest stable builds of ccHost are available in several common archiving formats (.zip, .gzip, etc.)
  
"Web-based System Supporting Remixing and Collaboration on Media"
+
[http://sourceforge.net/project/showfiles.php?group_id=80503&package_id=156675 ccHost download page]
  
=== Sound Bites ===
+
To install: Unpack the contents of the archive on your local machine and see the README.
  
''Please add your own sound bite...''
 
  
* "ccHost enables you to '''run your own flickr or youtube while having an infrastructure for legally sharing audio, video, text, and other media.''" [[User:Jon Phillips|Jon Phillips]] 22:50, 25 August 2006 (UTC)
+
=== Experimental Thrice-Daily Builds ===
  
 +
Currently, ccHost packages are being made three-times a day and are available here:
  
=== Goal ===
+
[http://mirrors.creativecommons.org/cchost/packages/ ccHost 3x daily builds]
  
The goal of this project is to spread media content that is licensed under
+
Our experience has been very good however these are minimally tested builds so ''download, install and use these packages at your own risk.''
Creative Commons throughout the web in much the same way that weblogs spread
 
CC licensed text. ccHost is web-based infrastructure that may be used to host
 
and allow for commenting, remixing, and distribution globally. The more
 
installations of ccHost and its variations, the more content there will be
 
available for enjoyment and artistic re-use in a sane and legal setting. ccHost
 
is what is used for the infamous Creative Commons CC Mixter project which
 
supports legal media sharing and remixing. For more information, contact Jon
 
Phillips at jon@creativecommons.org.
 
  
=== [[ccHost FAQ|Frequently Asked Questions]] (FAQ) ===
+
Only 30 days worth of builds are saved currently.
  
=== Releases and Downloads ===
+
= Install =  
  
'''Current Version is 2.0.1'''
+
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.
  
==== ccHost files on Source Forge ====
+
=== Simple  ===
  
* http://sourceforge.net/project/showfiles.php?group_id=80503&package_id=156675
+
The easiest way to get going is to start with a web hosting server. Common web hosting services like [http://www.dreamhost.com/ Dreamhost] and [http://www.websitesource.com 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.
  
==== [[ccHost Screenshots|Screenshots]] ====
+
#Unzip the ccHost ZIP archive on your local system and copy the files to your server retaining the the directory structure.
 
+
#Browse to '''<nowiki>http://where_you_installed/ccadmin</nowiki>''' and follow all the instructions from then on.
==== [[CcHost Release Notes|Release Notes]] ====
 
 
 
==== [[CcHost Press Releases|Press Releases]] ====
 
  
==== Experimental Thrice-Daily Builds ====
+
=== Advanced ===
  
Currently, cchost packages are being made three-times a day and are available here: http://mirrors.creativecommons.org/cchost/packages/
+
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.
  
''Download, install and use these packages at your own risk.''
+
==== Enabling 'Pretty URLs' ====
  
Only 30 days worth of builds are saved currently.
+
All ccHost commands and URLs based on query strings:
  
=== SVN (Source Code Repository) ===
+
<nowiki>http://your_install_root/index.php?ccm=/media/people/victor</nowiki>
  
* [http://sourceforge.net/svn/?group_id=80503 HOWTO use this project's Subversion (SVN)] - use module 'cchost'
+
That same URL can be made 'pretty' on Apache installations so that it looks more like:
* [http://svn.sourceforge.net/viewcvs.cgi/cctools/cchost/trunk/ Browsable Anonymous SVN]
 
* [http://wiki.creativecommons.org/Source_Repository_Information Help with cctools SVN setup]
 
  
==== HOWTO Tag a Release ====
+
<nowiki>http://your_install_root/media/people/victor</nowiki>
  
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.
+
Here is the block of code in your .htaccess file setting the rewrite rules to get pretty urls:
  
 
<pre>
 
<pre>
svn copy https://svn.sourceforge.net/svnroot/cctools/cchost/trunk \
+
RewriteEngine On
https://svn.sourceforge.net/svnroot/cctools/cchost/tags/2_0_1 \
+
RewriteBase /
-m "Tagging 2.0.1 bugfix release"
+
RewriteCond %{REQUEST_FILENAME} !-d
 +
RewriteCond %{REQUEST_FILENAME} !-f
 +
RewriteRule ^(.*)$ /index.php?ccm=/$1 [L,QSA]
 
</pre>
 
</pre>
  
[http://svnbook.red-bean.com/nightly/en/svn.branchmerge.using.html Here is more about SVN merging/branching].
+
If you installed to a directory below the site's root make sure to specify that in the RewriteBase directive.
 
 
=== Packaging ===
 
 
 
==== Sign Package ====
 
 
 
You should do this for all packages (RPM, tar.gz, zip, tar.bz2, etc)
 
<pre>
 
gpg --detach-sign --armor cchost-VERSION.tar.gz
 
</pre>
 
 
 
==== Verify Package ====
 
<pre>
 
gpg --verify cchost-VERSION.tar.gz.asc
 
</pre>
 
 
 
=== 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
 
** [http://sourceforge.net/mailarchive/forum.php?forum=cctools-cchost Archive]
 
 
 
=== Bugs, Patches 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).''
 
 
 
* [https://sourceforge.net/tracker/?atid=559966&group_id=80503&func=browse Report Bugs]
 
* [https://sourceforge.net/tracker/?group_id=80503&atid=559969 Request Features]
 
* [[HOWTO Patch|Submit Patches]]
 
 
 
=== Support ===
 
 
 
==== Browsers ====
 
 
 
* Tested on: Firefox 1.0+ Mac/PC/Linux, IE 6+ PC, Safari Mac
 
* Javascript, XHTML 1.0+, CSS 2
 
 
 
== Usage Examples ==
 
 
 
*[http://ccmixter.org ccMixter] - Primary usage of ccHost is the Creative Commons remix site, ccMixter.
 
*[http://www.opensourcecinema.com/cchost Open Source Cinema]
 
*[http://www.matrix-rayne.com Matrix Rayne Online]
 
*[http://remix.machinehasnoagenda.com/ remix.linux]
 
*[http://www.ccmixter.co.za/ ccmixter South Africa]
 
*[http://fourstones.net fourstones.net] Victor's personal website
 
*[http://www.openclipart.org/cchost/ Open Clip Art Library ccHost in testing]
 
*[http://www.esolpc.com/teacherhost/ TeacherHost] - for Instructors to share instructional materials.
 
*http://adrenalinicsound.com/music/
 
* http://creativecommons.org.tw/formoz
 
* '''Please add your installation here.'''
 
 
 
== Installation ==
 
  
=== General Requirements ===
+
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:
* PHP 4 (PHP 5 works if you sync to latest code.)
 
* MySQL 4 (MySQL 5 works if you sync to latest code; MySQL 3 is not supported.)
 
* GetID3
 
**Install the GetID3 (1.7.3) library from here: http://www.getid3.org/#download before you install ccHost. (It's a simple download-unpack operation.)
 
* Cookies enabled in one's browser.
 
* '''Platforms''': This system has been tested on Apache 1 and 2 Windows and Linux.  It also works with IIS on Windows.  If you receive an error about DOCUMENT_ROOT, ignore it.  IIS doesn't use DOCUMENT_ROOT, and ccHost doesn't seem to mind.  If you have tested ccHost on System X or any other platform, please register as a ccDeveloper and update this page!  Thanks. =)
 
** Apache 2.0.49 up to at least apache-2.0.55-r1 works with cchost 2.0.1
 
* '''Optional''': Here is the block of code in the Apache virtual host for setting the rewrite rules to get pretty urls:
 
  
 
<pre>
 
<pre>
Line 155: Line 84:
 
</pre>
 
</pre>
  
=== Web Hosting Services ===
+
==== getID3 ====
Common web hosting services like [http://www.dreamhost.com/ Dreamhost] and [http://www.websitesource.com WebsiteSource] provide an administration interface from which to setup 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 requirements below and with your hosting service.
 
  
==== .htaccess file settings ====
+
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):
 +
 
 +
<pre>
 +
tar xzf getid3.tar.gz
 +
cp -a getid3/getid3 /var/www/localhost/htdocs/getid3/
 +
</pre>
 +
 
 +
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:
 +
<pre>
 +
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/
 +
</pre>
 +
*Create a new database for ccHost (e.g., named "cchost") and create an administrative user to access it (e.g., "cchostadmin").  For example:
 +
<pre>
 +
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';
 +
</pre>
 +
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:
 +
<pre>
 +
mkdir /var/log/cchost
 +
chown apache:apache /var/log/cchost
 +
</pre>
 +
 
 +
==== Finish with Install ====
 +
 
 +
Browse to <nowiki>http://where_you_installed_cchost/ccadmin</nowiki>
 +
 
 +
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.
 
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.
Line 186: Line 156:
 
</pre>
 
</pre>
  
=== Windows ===
+
=== Upgrading ===
 +
'''Always''' make a backup of your mySQL ccHost database and the files you changes (probably all of the ccfiles directory) before you start the upgrade process. Things go wrong. You have been warned.
 +
 
 +
==== General ====
 +
In general, small updates and patches come in a few files and only require that you copy over cclib and ccextras. Once you've copied the new system files
 +
 
 +
#Log in as administrator to your current install (make sure to check 'Remember Me')
 +
#Browse to: <nowiki>http://where_you_installed/?update=1</nowiki>
 +
 
 +
==== Upgrading from 2.x to 3.0 ====
 +
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 (skip the /people and /contests directories). If you skip this step 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 in ccfiles (like home.xml), copy your local version over the ones on your server now.
 +
#Browse to: <nowiki>http://where_you_installed/?update=1</nowiki>
 +
 
 +
= Administration =
 +
 
 +
So you've got your ccHost up and running. now what?
 +
 
 +
''Victor is currently gathering data and writing up an Admin's Guide. If you information you think would be useful please [https://lists.sourceforge.net/mailman/listinfo/cctools-cchost
 +
let him know].''
 +
 
 +
 
 +
= Development =
 +
 
 +
=== Source Code & Documentation ===
 +
 
 +
* [http://svn.sourceforge.net/viewcvs.cgi/cctools/cchost/trunk/ Browsable Source Code (Anonymous)]
 +
* [http://wiki.creativecommons.org/Source_Repository_Information How to Check Out Code]
 +
* [http://mirrors.creativecommons.org/cchost/docs/ Online Code Documentation] including developer's guide.
 +
 
 +
=== People ===
 +
 
 +
* [[User:fourstones|Victor Stone]]
 +
* [[User:Jon Phillips|Jon Phillips]]
 +
 
 +
=== 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
 +
** [http://sourceforge.net/mailarchive/forum.php?forum=cctools-cchost Archive]
 +
 
 +
=== Submitting Code ===
 +
 
 +
Before going too far down this road you definitely want to hop on the [https://lists.sourceforge.net/mailman/listinfo/cctools-cchost dev mailing list]. If you are shy ask to speak with Victor or Jon in private.
 +
 
 +
[[HOWTO Patch|Submit Patches]]
 +
 
 +
=== 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).''
 +
 
 +
* [https://sourceforge.net/tracker/?atid=559966&group_id=80503&func=browse Report Bugs]
 +
* [https://sourceforge.net/tracker/?group_id=80503&atid=559969 Request Features]
  
==== XAMPP ====
 
It is recommended to download [http://www.apachefriends.org/en/xampp.html XAMPP] for Windows, which provides an easy install of Apache web server, MySQL database server, and PHP and perl programming languages. This is the easiest way to get up and running, as this system replicates the standard Open Source (and Linux) setup of a time-tested server, [http://www.apache.org/ Apache], along with the required MySQL database and PHP programming language, all 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.
 
  
==== Windows IIS Server ====
+
[[Category:CcHost]]
 +
[[Category:Developer]]
 +
[[Category:opensource]]
 +
[[Category:Technology]]
  
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.
+
= Zeitgeist =
  
=== Mac OS X ===
+
=== 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.
  
''NOTE: This setup is similar to Linux.''
+
=== Short Description ===
  
==== Tested Setups ====
+
"Web-based System Supporting Remixing and Collaboration on Media"
  
* OS X 10.4.6
 
* default OS X MySQL build, 4.0.26
 
* GetID3 1.7.7
 
* default Apache/PHP
 
  
=== Linux ===
+
=== Slightly Longer Description ===  
 +
'''ccHost''' is an open source ([http://creativecommons.org/licenses/GPL/2.0/ 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 [http://ccmixter.org ccMixter] and [[#Usage Examples|other sites]].
  
Primary development is done on up-to-date Linux development systems using apache, mysql, and php. One should be able to easily install mysql, php, and apache (if they are not already available) through their distributions packaging system.
+
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 [http://ccmixter.org/media/viewfile/pool_api_doc.xml Sample Pool API], including non-ccHost sites such as the [http://freesound.iua.upf.edu/ freesound project].
  
===Step-by-step instructions ===
+
=== Press ===
====Simple or hosted environment====
 
If you are using a shared server or other hosted site (like Dreamcast, etc.) then your hosting service probably provided you with a web interface for creating a database, doing file uploads and setting permissions for files and directories.
 
#Create a new database for ccHost BEFORE running this installation.
 
#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 environment====
+
==== [[CcHost Release Notes|Release Notes]] ====
If you have basic knowledge of using FTP and you are comfortable at a UNIX/Linux command line you can use these steps to install:
 
  
#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. 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").
+
==== [[CcHost Press Releases|Press Releases]] ====
#*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/
 
#Install the GetID3 (1.7.3) library from here: http://www.getid3.org/#download .  Unpack the package, and then copy the GetID3 directory to the location it will be accessed.  For example:
 
##tar xzf getid3.tar.gz
 
##cp -a getid3/getid3 /var/www/localhost/htdocs/cchost/
 
#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
 
##Browse to <nowiki>http://where_you_installed_cchost/ccadmin</nowiki>
 
##*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.
 
  
Take Note: On the last screen of the installation process you'll be prompted to read about specific issues regarding file permissions. '''DO NOT SKIP THIS STEP!'''
+
==== Sound Bites ====
===Upgrade existing ccHost installations===
 
#Log in as administrator
 
#Copy this installation over your current installation.
 
#Browse to: <nowiki>http://where_you_installed/?update=1</nowiki>
 
  
Note to 1.x ccHost installations: phpBB2 is no longer used for reviews. There is a script for importing existing phpBB2 format reviews into the new native reviewing system. Contact fourstones@users.sourceforge.net for details.
+
* "ccHost enables you to '''run your own flickr or youtube while having an infrastructure for legally sharing audio, video, text, and other media.''" [[User:Jon Phillips|Jon Phillips]] 22:50, 25 August 2006 (UTC)
  
=== Notes ===
+
''Please add your own sound bite...''
 +
 
 +
==== [[ccHost Screenshots|Screenshots]] ====
  
* Installing the CCHost software involves downloading the source files from [http://sourceforge.net/project/showfiles.php?group_id=80503&package_id=156675 sourceforge], and running a simple installation script.  Permissions will need to be set on several folders, namely cclib/phptal/phptal_cache.
 
 
* 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.
 
* 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.
  
== Development ==
 
  
=== Documentation ===
 
  
* [http://mirrors.creativecommons.org/cchost/docs/ PHPDOC Documentation of PHP Code]
+
=== Usage Examples ===
* '''Victor's Developers Guide''' Coming Soon!
+
 
 +
*[http://ccmixter.org ccMixter] - Primary usage of ccHost is the Creative Commons remix site, ccMixter.
 +
*[http://www.opensourcecinema.com/cchost Open Source Cinema]
 +
*[http://www.matrix-rayne.com Matrix Rayne Online]
 +
*[http://remix.machinehasnoagenda.com/ remix.linux]
 +
*[http://www.ccmixter.co.za/ ccmixter South Africa]
 +
*[http://fourstones.net fourstones.net] Victor's personal website
 +
*[http://www.openclipart.org/cchost/ Open Clip Art Library ccHost in testing]
 +
*[http://www.esolpc.com/teacherhost/ TeacherHost] - for Instructors to share instructional materials.
 +
*http://adrenalinicsound.com/music/
 +
*[http://creativecommons.org.tw/formoz ccMixter Tawain]
 +
* '''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.
  
=== Discussion ===
+
===== XAMPP =====
 +
Windows installations without Apache, mySQL and PHP already installed may want to considering using [http://www.apachefriends.org/en/xampp.html 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.
  
* [[ccHost Localization]] - steps for i18n internationalization/localization
+
Follow the instructions for installation of XAMPP to know where to put the uncompressed ccHost package to properly work with your local setup.
  
=== [[ccHost Roadmap|Roadmap]] ===
 
=== [[ccHost Release Procedure|Release Procedure]] ===
 
=== [[ccHost Community Building|Community Building]] ===
 
=== [[ccHost Testing|Testing and Debugging]] ===
 
=== [[ccHost Sample Pools|Sample Pools]] ===
 
  
== People ==
+
==== Mac OS X ====
  
* [[User:Victor Stone|Victor Stone]]
+
''NOTE: This setup is similar to Linux.''
* [[User:Jon Phillips|Jon Phillips]]
+
 
 +
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.
 +
 
 +
<pre>
 +
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"
 +
</pre>
  
== [[ccHost History|History]] ==
+
[http://svnbook.red-bean.com/nightly/en/svn.branchmerge.using.html Here is more about SVN merging/branching].
  
== Research ==
+
=== Packaging ===
  
* Possible solution for forms and other enhancements - http://www.gamingheadlines.co.uk/wod/formstyle/
+
==== Sign Package ====
  
[[Category:CcHost]]
+
You should do this for all packages (RPM, tar.gz, zip, tar.bz2, etc)
[[Category:Developer]]
+
<pre>
[[Category:opensource]]
+
gpg --detach-sign --armor cchost-VERSION.tar.gz
[[Category:Technology]]
+
</pre>
  
<!-- test -->
+
==== Verify Package ====
 +
<pre>
 +
gpg --verify cchost-VERSION.tar.gz.asc
 +
</pre>

Revision as of 01:33, 31 August 2006


ccHost is the open source (GPL licensed) project that powers Commons licenses and metadata. It is used by ccMixter and is the winner of the LinuxWorld Journal Product Excellence Award for Best Open Source Solution. Read more about ccHost here.

Download

Current Stable Release

Latest stable builds of ccHost are available in several common archiving formats (.zip, .gzip, etc.)

ccHost download page

To install: Unpack the contents of the archive on your local machine and see the README.


Experimental Thrice-Daily Builds

Currently, ccHost packages are being made three-times a day and are available here:

ccHost 3x daily builds

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.

  1. Unzip the ccHost ZIP archive on your local system and copy the files to your server retaining the the directory structure.
  2. 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 changes (probably all of the ccfiles directory) before you start the upgrade process. Things go wrong. You have been warned.

General

In general, small updates and patches come in a few files and only require that you copy over cclib and ccextras. Once you've copied the new system files

  1. Log in as administrator to your current install (make sure to check 'Remember Me')
  2. Browse to: http://where_you_installed/?update=1

Upgrading from 2.x to 3.0

This specific upgrade requires a few extra steps

  1. Make a BACKUP of your mySQL database (can be done via phpMyAdmin or from the command line using mysqldump)
  2. Make a BACKUP of your cchost directory onto your local machine (skip the /people and /contests directories). If you skip this step and you made changes (to say ccfiles/home.xml) then ALL YOUR CHANGES WILL BE LOST FOREVER
  3. Login to ccHost as your admin account and make sure to check 'Remember me'
  4. Unzip the cchost 3.0 package on your local machine
  5. Copy everything under the cchost directory EXCEPT ccadmin over your server's ccHost directory
  6. Delete the file ccextras/cc-language.php
  7. Delete ALL files under cclib/phptal/phptal_cache
  8. If you made changes to files in ccfiles (like home.xml), copy your local version over the ones on your server now.
  9. Browse to: http://where_you_installed/?update=1

Administration

So you've got your ccHost up and running. now what?

Victor is currently gathering data and writing up an Admin's Guide. If you information you think would be useful please [https://lists.sourceforge.net/mailman/listinfo/cctools-cchost let him know].


Development

Source Code & Documentation

People

Communication

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.

Submit Patches

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



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.

XAMPP

Windows installations without Apache, mySQL and PHP already installed may want to considering 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