OpenPhoto / Installation for Linux - Apache ======================= #### OpenPhoto, a photo service for the masses ## Generic Installation Guide This guide is intended to be usable by users of any distribution of Linux running a standard LAMP stack. As such, it is written at a rather high level of abstraction. For distribution-specific details, find a different guide on the sidebar to the left. ### Prerequisites #### Database Options Openphoto can use either MySql or Amazon Simpledb to store metadata about photos. ##### MySql You'll need to provide credentials for a MySql database. If the database doesn't already exist it will be created. If the user doesn't have `CREATE DATABASE` permissions then make sure it's already created. ##### Simpledb First, make sure you're signed up. http://aws.amazon.com/simpledb/ After that, pick up an Access Key ID and Secret Access Key from: https://portal.aws.amazon.com/gp/aws/securityCredentials #### File System Options To store photos, openphoto has a number of options. ##### Amazon S3 First, sign up here: http://aws.amazon.com/s3/ After that, pick up an Access Key ID and Secret Access Key from: https://portal.aws.amazon.com/gp/aws/securityCredentials You will also need a bucket name, but this can be anything. Openphoto will create it if necessary. ##### Local Filesystem This option stores your photos in your local filesystem. You must define the folder where you wish to store your photos and the web-accessable hostname which openphoto will use to construct download URLs. Be sure to make this folder writable by the user Apache runs as. This will either be the domain name assigned to the server, or the IP address. Include any necessary subdirectories. Do not include http://. E.g.: example.com/photos 127.0.0.1/photos ##### Dropbox Dropbox is a backup option which can be combined with either S3 or the local filesystem. To enable it, you need a Key and Secret from: https://www.dropbox.com/developers/apps Be sure to allow Folder access. The folder name can be anything, and will be created if necessary. #### Necessary software To run openphoto, ensure the following software is installed: * Apache * PHP * Apache PHP module * PHP Curl module * PHP mcrypt module * PHP apc module * libpcre development libraries and headers * PHP PEAR One or more of: * PHP imagemagick module * PHP graphicsmagick module * PHP GD module (not recommended; last resort) Non-essential but recommended: * exiftran * PHP oauth module * Mysql (if you will be using it) * PHP pdo mysql module (if you will be using it) Be sure to modify php.ini to enable each PHP module. The best place to find PHP modules is your distro's standard repository. If you can't find it packaged there, use `pecl install `. Find packages at http://pecl.php.net/. Enable the following Apache modules: * rewrite * deflate * expires * headers NOTE: If this is your first time installing Apache on your current distro, be sure to read your distro's documentation on how to set up Apache and how to set up vhosts in Apache. These vary wildly by distro. ---------------------------------------- ### Installing OpenPhoto Download and install the source code. We recommend the default apache root (Often `/var/www`, or `/srv/http`, check your distro documentation for specifics), but it can go anywhere if Apache's user has permissions to access there. #### Using git clone apt-get install git-core git clone git://github.com/photo/frontend.git /yourdomain.com #### Using tar cd wget https://github.com/photo/frontend/tarball/master -O openphoto.tar.gz tar -zxvf openphoto.tar.gz mv openphoto-frontend-* yourdomain.com Once installed, create these three directories for configuration files. Then chown them all to the user Apache will run as. Change username to the appropriate user. mkdir /var/www/yourdomain.com/src/userdata mkdir /var/www/yourdomain.com/src/html/photos mkdir /var/www/yourdomain.com/src/html/assets/cache chown username:username /var/www/yourdomain.com/src/userdata chown username:username /var/www/yourdomain.com/src/html/photos chown username:username /var/www/yourdomain.com/src/html/assets/cache ---------------------------------------- ### Setting up Apache and PHP #### Apache You'll need to copy the sample virtual host configuration file from the source to wherever Apache stores virtual host configuration files in your distro. They are stored in: /yourdomain.com/src/configs/openphoto-vhost.conf After copying, edit the file and replace all instances of `/path/to/openphoto/html/directory` with `/yourdomain.com/src/html`. It may be necessary to enable openphoto's vhost and disable the default here. This differs by distro, so check your distro's Apache docs. By default, any access to ini files is denied with a "Not Found" 404 HTTP code. To enable a 404, or Forbidden return code, change the following lines in the virtual host file. Uncomment: # 403 Forbidden for ini files #RewriteRule \.ini$ - [F,NC] Comment: # 404 Not Found for ini files AliasMatch \.ini$ /404 ### PHP You should also verify that your `php.ini` file has a few important values set correctly. Find php.ini and open in with a text editor. Search for the following values and make sure they're correct. file_uploads = On upload_max_filesize = 16M post_max_size = 16M Now the site should be ready to use. Start/Restart Apache, and open the host in your browser. You should see a setup screen. You'll need your cloud account credentials to continue if you're using them. Once you complete the 3 steps your site will be up and running and you'll be redirected there. The _setup_ screen won't show up anymore, but you can rerun it via the Manage page. ** ENJOY! **