Hace poco me compre una raspberry pi, y bueno intentando sacarle un poco mas de provecho monte un owncloud, lo primera vez lo hice con Apache+php, pero debido aque tengo alguno que otra cosa corriendo en la raspberry, pues se ahogaba nada más empezar…
Así que lo monte con lo siguiente:
Owncloud 4. 5 + nginx + php-fpm
Primero de todo vamos a instalar nginx y lo arrancamos
sudo apt-get install nginx sudo /etc/init.d/nginx start
Podemos comprobar que el proceso se hizo correctamente haciendo una petición al puerto 80 de nuestra raspberry.
Ahora instalaremos el php-fpm
sudo apt-get install php5-fpm sudo apt-get install php-xml-parser php5-intl sudo apt-get install php5-sqlite smbclient curl libcurl3 php5-curl
Bueno pues ya tenemos instalado el tema, ahora lo que debemos hacer es que se empiecen hablar entre ellos dos, vaya que se lleven bien….
Primero vamos a configurar php5-fpm, iremos
sudo vim /etc/php5/fpm/php-fpm.conf
Aquí modificaremos las siguientes lineas según nuestra configuración, yo por ejemplo tengo añadido un usb a la raspberry, de tal manera que envío allí los logs de los servicios(por supuesto tiene que tener permisos el usuario para escribir), evitando que machaque a la tarjeta SD donde esta el SO.
error_log = /mnt/usb/fpm-log/php5-fpm.log log_level = warning include=/etc/php5/fpm/pool.d/*.conf
Después en el php.ini configuraremos las opciones de subir ficheros
sudo vi /etc/php5/fpm/php.ini file_uploads = On upload_tmp_dir = /mnt/descargas/owncloud/tmp upload_max_filesize = 4096M max_file_uploads = 5000 memory_limit = 128M
Importante, el valor upload_max_filesize, ya que es uno de los dos que limitara el tamaño máximo de fichero que podremos subir, también deberemos mirar el valor de la memoria, ya que como bien sabemos nuestra raspberry no dispone de mucha, según el modelo que tengáis y la carga que tenga vuestro sistema asignar este valor.
Importante también el directorio donde vamos a subir el fichero temporal, pensar que si lo dejáis por defecto es probable que os quedéis sin memoria en el SD, bueno con este ya hemos acabado vamos a por el siguiente
En el www.conf, se define la ip de escucha del php-fpm y el puerto.
sudo vi /etc/php5/fpm/pool.d/www.conf listen.allowed_clients = 127.0.0.1 listen = 0.0.0.0:9000 pm.max_children = 5 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 3
Los valores de pm, son importantes, después de hacer diferentes pruebas los que pongo son suficientes para tener un rendimiento decente, por cierto mi raspberry es el modelo de 512MB.
Ahora reiniciamos el fpm
sudo /etc/init.d/php5-fpm restart
Para configurar nginx iremos al fichero nginx.conf
sudo vi /etc/nginx/nginx.conf
Bueno, en el fichero de configuración pondremos mas o menos lo que a cada uno nos interese, yo personalmente solo modifique las lineas siguiente,
user www-data; worker_processes 4; pid /var/run/nginx.pid; events { worker_connections 768; # multi_accept on; }
Ahora vamos a configurar el site para owncloud en nginx.
cd /etc/nginx/sites-available/ sudo vi owncloud
Dentro del fichero de owncloud pondremos, (mirar las rutas y modificaras según vuestro entorno.)
server { listen 80; root /var/www; client_max_body_size 4096M; listen 443 ssl; server_name ***.***.com; ssl_certificate /etc/nginx/ssl/server.crt; ssl_certificate_key /etc/nginx/ssl/server.key; location ~ .php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include /etc/nginx/fastcgi_params; try_files $uri =404; fastcgi_param SCRIPT_FILENAME /var/www/$fastcgi_script_name; } location ~ ^/owncloud/remote.php(/.*)$ { fastcgi_split_path_info ^(.+.php)(/.*)$; fastcgi_pass 127.0.0.1:9000; include fastcgi_params; #rewrite ^ https://$server_name$request_uri? permanent; fastcgi_param HTTPS on; } # owncloud <a class="zem_slink" title="WebDAV" href="http://en.wikipedia.org/wiki/WebDAV" target="_blank" rel="wikipedia">WebDAV</a> location @webdav { fastcgi_split_path_info ^(.+.php)(/.*)$; fastcgi_pass 127.0.0.1:9000; # or use php-fpm with: "unix:/var/run/php-fpm/php-fpm.sock;" fastcgi_param SCRIPT_FILENAME /var/www/$fastcgi_script_name; include fastcgi_params; fastcgi_param HTTPS on; } }
Los puntos en negrita son los que hay que tener cuidado, ya que depende de cada entorno. Este valor «client_max_body_size 4096M;», debe ser el mismo que pusimos en php, que es el tamaño maximo del fichero que vamos a permitir, la parte de webDAV es necesaria en el caso que queramos utilizar el cliente de owncloud.
Vamos a crear los certificados para las conexiones SSL.
Los pasos son:
- Generar la clave RSA
- Generar el CSR(aqui el Common Name debe ser el nombre del dominio)
- Eliminar la clave privada DES3
- General certificado autofirmado
- Poner las rutas en el fichero de owncloud
openssl genrsa -des3 -out server.key 1024 openssl req -new -key server.key -out server.csr Country Name (2 letter code) []: State or Province Name (full name) []: Locality Name (eg, city) []: Organization Name (eg, company) []: Organizational Unit Name (eg, section) []: Common Name (eg, your name or your server's hostname) []: Email Address []: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: cp server.key server.key.org openssl rsa -in server.key.org -out server.key openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Ahora vamos a crear el link simbólico del site.
sudo ln -s /etc/nginx/sites-available/owncloud /etc/nginx/sites-enabled/owncloud
Comprobamos que la configuración es correcta.
sudo -i nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Por ultimo, pero no menos importante, vamos a bajar el owncloud
wget http://mirrors.owncloud.org/releases/owncloud-4.5.7.tar.bz2 tar zvfj owncloud-4.5.7.tar.bz2 mv owncloud /var/www/ && chown -R www-data:www-data /var/www/owncloud
Por ultimo accedemos a la url http://ip/owncloud y empezamos la configuración, recordar que durante la configuración podréis elegir el lugar donde dejará los archivos.
Eso es todo,
Ale a disfrutarlo!