Starting with a base install of Ubuntu 12.04 server, install the pre-reqs, these include the reqs for LDAP auth and external storage on a SMB server
sudo apt-get install nginx php5-fpm php5 php5-json php5-gd curl php5-curl\
libcurl3-gnutls libapr1 libaprutil1 libcurl3 libaprutil1-ldap libcap2\
libltdl-dev libltdl7 libtool m4 php-pear php-xml-parser php5-cli\
php5-dev shtool ssl-cert php5-ldap smbclient |
sudo apt-get install nginx php5-fpm php5 php5-json php5-gd curl php5-curl\
libcurl3-gnutls libapr1 libaprutil1 libcurl3 libaprutil1-ldap libcap2\
libltdl-dev libltdl7 libtool m4 php-pear php-xml-parser php5-cli\
php5-dev shtool ssl-cert php5-ldap smbclient
stop the nginx and php5-fpm services
sudo service nginx stop
sudo service php5-fpm stop |
sudo service nginx stop
sudo service php5-fpm stop
create a directory for owncloud to exist in
get the latest source for owncloud from http://owncloud.org/support/install/
wget http://download.owncloud.org/community/owncloud-5.0.0.tar.bz2 |
wget http://download.owncloud.org/community/owncloud-5.0.0.tar.bz2
untar the source
move the source into place
sudo mv owncloud /var/www/ |
sudo mv owncloud /var/www/
create a data directory for the data
sudo mkdir -p /var/www/owncloud-data |
sudo mkdir -p /var/www/owncloud-data
remove the default nginx config from site-enabled
sudo unlink /etc/nginx/sites-enabled/default |
sudo unlink /etc/nginx/sites-enabled/default
create a new file for sites available, something like this
sudo nano /etc/nginx/sites-available/owncloud |
sudo nano /etc/nginx/sites-available/owncloud
link the file to sites-enabled
sudo ln -s /etc/nginx/sites-available/owncloud /etc/nginx/sites-enabled/owncloud |
sudo ln -s /etc/nginx/sites-available/owncloud /etc/nginx/sites-enabled/owncloud
edit php-fpm to use a unix socket instead of a TCP socket
sudo nano /etc/php5/fpm/pool.d/www.conf |
sudo nano /etc/php5/fpm/pool.d/www.conf
comment out
and add
listen = /var/run/php5-fpm.sock |
listen = /var/run/php5-fpm.sock
Uncomment the permissions
listen.owner = www-data
listen.group = www-data
listen.mode = 0660 |
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
For the SSL certificate, this might be of use
I usually use Percona instead of the Ubuntu build of MySQL
import the Percona gpg key
sudo gpg --keyserver hkp://keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A
sudo gpg -a --export CD2EFD2A | sudo apt-key add - |
sudo gpg --keyserver hkp://keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A
sudo gpg -a --export CD2EFD2A | sudo apt-key add -
now edit sources.list
sudo nano /etc/apt/sources.list |
sudo nano /etc/apt/sources.list
add these lines
# for percona
deb http://repo.percona.com/apt precise main
deb-src http://repo.percona.com/apt precise main |
# for percona
deb http://repo.percona.com/apt precise main
deb-src http://repo.percona.com/apt precise main
now install percona
sudo apt-get update
sudo apt-get install percona-server-common-5.5 percona-server-server-5.5 libmysqlclient18 libmysqlclient16 |
sudo apt-get update
sudo apt-get install percona-server-common-5.5 percona-server-server-5.5 libmysqlclient18 libmysqlclient16
with the database server installed, now create the database
mysql -uroot -p
CREATE USER 'owncloud'@'localhost' IDENTIFIED BY 'password';
CREATE DATABASE IF NOT EXISTS owncloud;
GRANT ALL PRIVILEGES ON owncloud.* TO 'owncloud'@'localhost' IDENTIFIED BY 'password'; |
mysql -uroot -p
CREATE USER 'owncloud'@'localhost' IDENTIFIED BY 'password';
CREATE DATABASE IF NOT EXISTS owncloud;
GRANT ALL PRIVILEGES ON owncloud.* TO 'owncloud'@'localhost' IDENTIFIED BY 'password';
add the components for mysql
sudo apt-get install php5-mysql libaprutil1-dbd-mysql |
sudo apt-get install php5-mysql libaprutil1-dbd-mysql
create the config file to use the mysql server
sudo nano /var/www/owncloud/config/autoconfig.php |
sudo nano /var/www/owncloud/config/autoconfig.php
add the following lines
<?php
$AUTOCONFIG = array(
"dbtype" => "mysql",
"dbname" => "owncloud",
"dbuser" => "owncloud",
"dbpass" => "password",
"dbhost" => "localhost",
"dbtableprefix" => "",
"adminlogin" => "Administrator",
"adminpass" => "Admin-password",
"directory" => "/var/www/owncloud-data",
); |
<?php
$AUTOCONFIG = array(
"dbtype" => "mysql",
"dbname" => "owncloud",
"dbuser" => "owncloud",
"dbpass" => "password",
"dbhost" => "localhost",
"dbtableprefix" => "",
"adminlogin" => "Administrator",
"adminpass" => "Admin-password",
"directory" => "/var/www/owncloud-data",
);
reset the directory permissions
sudo chown -R www-data:www-data /var/www/owncloud
sudo chown -R www-data:www-data /var/www/owncloud-data
sudo chmod 777 /var/www/owncloud-data/ |
sudo chown -R www-data:www-data /var/www/owncloud
sudo chown -R www-data:www-data /var/www/owncloud-data
sudo chmod 777 /var/www/owncloud-data/
You should now be able to start the services
sudo service php5-fpm start
sudo service nginx start |
sudo service php5-fpm start
sudo service nginx start
and login to the application using the username and password from autoconfig.php