Ubuntu LAMP (Linux+Apache+Mysql+PHP)
( Actualizado aquí).
Nota: os recomiendo que echéis un vistazo a dos de mis posts si instalais el servidor desde cero:
- Instalar Ubuntu-Server 12.04 LTS (pendiente de actualizar, pero el esquema general sirve)
- Afinar la instalación Ubuntu Server 14.04 LTS LAMP (fqdn, dyndns, ssh,webmin, ppmyadmin)
Lo primero que necesitamos es instalar el servidor LAMP de ubuntu. Podemos hacerlo directamente en la instalación del Ubuntu Server, o posteriormente con los siguientes comandos:
sudo apt-get update sudo apt-get dist-upgrade sudo apt-get install lamp-server^ |
El carácter «^» es importante para que el tipo de instalación del servidor web sea apropiado. En la instalación nos pedirá que introduzcamos el password del root de MySQL. Asegúrate de introducir una buena password que sea fácil de recordar.
Owncloud utiliza los archivos .htaccess de Apache por razones de seguridad. Para poder usarlos necesitamos activar dos módulos con los siguientes comandos
sudo a2enmod rewrite sudo a2enmod headers |
Además tenemos que cambiar el archivo de configuración de apache para que reescriba las reglas adecuadamente. Con lo cual ejecutamos el siguiente comando
sudo nano /etc/apache2/sites-enabled/000-default.conf |
Una vez quí debemos cambiar la línea
#ServerName www.example.com AllowOverride None
Por
ServerName fqdn ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
Finalmente reiniciamos apache
sudo service apache2 restart |
Instalar OwnCloud
Instalamos paquetes necesarios para owncloud
sudo apt-get install php5 php5-mysql php5-gd php-xml-parser php5-intl libcurl3 php5-curl php5-json php5-mcrypt php5-imagick |
Ahora localizamos la última versión de owncloud en el momento de redactar este tuto, ejecutamos en el terminal
$ cd /var/www/html
$ sudo wget https://download.owncloud.org/community/owncloud-7.0.2.tar.bz2
$ sudo tar -xjvf owncloud-7.0.2.tar.bz2
$ sudo rm owncloud-7.0.2.tar.bz2
El resto de la instalación se hace a través del navegador, y nos permite elegir entre otras cosas, el directorio donde se guardarán los datos de usuario que carguemos a través del navegador.
Si decidimos elegir un directorio distinto al que nos indica por omisión, a este directorio hay asignarle el usuario www-data con el siguiente comando
sudo chown -R www-data:www-data /ruta/al/directorio/de/datos/de/owncloud |
La dirección de nuestro owncloud será http://host/owncloud.
Si tenemos un fqdn (fully qualified domain name) lo introducimos en vez de host. Podemos obtener uno gratuito en dyndns.com.
Si no tenemos el fqdn, introducimos la ip del servidor. Si accedemos a él, desde el propio servidor, en vez de host, ponemos localhost.
En nombre de usuario, introducimos el nombre que queramos para el usuario administrador de owncloud, así como la contraseña.
En directorio de almacenamiento puedo elegir el que quiera, pero recuerdo, debemos asignarle el usuario www-data.
En configurar la base de datos introducimos el usuario, password y nombre de la base de datos que hemos creado para owncloud.
Y ya tenemos instalado nuestro servidor owncloud.
Antes de salir, recomiendo entrar en personal y añadir nuestro correo electrónico, para poder recuperar la contraseña en caso de que la perdamos.
Últimos ajustes
Ajustes de php
Necesitamos configurar php para que admita archivos grandes. Podemos hacerlo a través del terminal editando los archivos. /etc/php5/apache2/php.ini /etc/php5/cli/php.ini y pero es más cómodo y seguro hacerlo a través del módulo de webmin.
Para instalar webmin, vamos a http://webmin.com y descargamos el instalador con el comando wget. En el momento actual la última versión es la 1.650
wget http://switch.dl.sourceforge.net/project/webadmin/webmin/1.710/webmin_1.710_all.deb |
Instalamos algunos paquetes necesarios
sudo apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl apt-show-versions python |
Instalamos webmin y borramos el paquete
sudodpkg -i webmin_1.710_all.debsudo rm webmin_1.710_all.deb |
Ahora podemos acceder al interface de webmin a través del navegador, en la dirección
https://ip_servidor:10000 (si accedemos desde el propio servidor https://localhost:10000)
Introducimos nuestro usuario y password y ya estamos dentro.
En el menú otros, seleccionamos PHP Configuration:
Damos al enlace Manage, y después den Resource Limits en cada uno de los ficheros y modificamos para que quede así.
Como maximum memory allocation, recomiendo poner una cuarta parte de la ram del servidor (pero es cuestión de ir probando).
Ajustes del .htaccess
Abrimos el .htaccess de owncloud con el siguiente comando
sudo nano /var/www/html/owncloud/.htaccess |
Y modificamos las siguientes líneas
php_value upload_max_filesize 513Mphp_value post_max_size 513Mphp_value memory_limit 512M |
Para que queden como los valores que modificamos en php.
php_value upload_max_filesize 20000Mphp_value post_max_size 20000Mphp_value memory_limit 2048M |
Y reiniciamos apache
sudo service apache2 restart |
Conexión SSL
Primero activamos el módulo SSL de Apache
sudo a2enmod ssl service apache2 restart |
Editamos el archivo de configuración /etc/ssl/openssl.conf
nano /etc/ssl/openssl.cnf |
Encontramos y cambiamos las siguientes líneas
dir = /root/SSLCertAuth default_days = 3650 # 10 years default_bits = 2048 # recommended by NSA until 2030 countryName_default = ES 0.organizationName_default = Ubuntu Contrib |
Creamos el diretorio para guardar todos los archivos de la autoridad certificadora SSL, en nuestro caso lo llamaremos “SSLCertAuth”. Ejecutamos los siguientes comandos
mkdir /root/SSLCertAuth chmod 700 /root/SSLCertAuth cd /root/SSLCertAuth mkdir certs private newcerts echo 1000 > serial touch index.txt |
Creamos la autoridad certificadora (CA) con el siguiente comando:
openssl req -new -x509 -days 3650 -extensions v3_ca \ -keyout private/cakey.pem -out cacert.pem \ -config /etc/ssl/openssl.cnf |
Nos pide:
Enter PEM pass phrase:introducimos una contraseña que usaremos después para firmar cualquier certificado (hay que recordarla). Vamos introduciendo todos los datos, y tenemos especial cuidado cuando nos pir el Common Name, que debe ser nuestro nombre de internet (fqdn: fully qualified domain name).
Ahora creamos la solicitud de firma del certificado del sitio:
openssl req -new -nodes \ -out apache-req.pem \ -keyout private/apache-key.pem \ -config /etc/ssl/openssl.cnf |
De nuevo introducimos todos los datos que nos pide, y en Common Name de nuevo metemos el fqdn. Los extra atributes… podemos dejarlos en blanco.
Y finalmente generamos el certificado para copiarlo después en el directorio /etc/ssl
openssl ca \ -config /etc/ssl/openssl.cnf \ -out apache-cert.pem \ -infiles apache-req.pem |
Introducimos la password de la CA que creamos antes y despues le decimos a todo que si.
Ejecutamos:
mkdir /etc/ssl/crt mkdir /etc/ssl/key cp /root/SSLCertAuth/apache-cert.pem /etc/ssl/crt cp /root/SSLCertAuth/private/apache-key.pem /etc/ssl/key |
El paso final consiste en configurar apache para que el servicio por misión HTTPS, sea owncloud.
|
Copia y pega la siguiente configuración:
<VirtualHost *:443>
ServerName fqdn
SSLEngine on
SSLCertificateFile /etc/ssl/crt/apache-cert.pem
SSLCertificateKeyFile /etc/ssl/key/apache-key.pem
DocumentRoot /var/www/html/owncloud
CustomLog /var/www/html/logs/ssl-access_log combined
ErrorLog /var/www/html/logs/ssl-error_log
</VirtualHost>
Donde pone fqdn, ponemos nuestro nombre de internet o la ip de nuestro servidor. Damot Ctrl+x para cerrar y “y” para salvar.
Desde dentro de owncloud (Administración) podemos forzar el uso de SSL, lo que es muy recomendable a efectos de seguridad.
Gracias a:
- http://ubuntuserverguide.com/2013/04/how-to-setup-owncloud-server-5-with-ssl-connection.html
- https://www.digitalocean.com/community/articles/how-to-setup-owncloud-5-on-ubuntu-12-10
- http://refugeeks.com/owncloud-setup-guide/
- https://www.rosehosting.com/blog/how-to-install-owncloud-7-on-an-ubuntu-14-04-vps/
- http://www.dev-metal.com/enable-mod_rewrite-ubuntu-14-04-lts/
- http://lobotuerto.com/blog/2008/03/12/como-descomprimir-archivos-tarbz2-y-targzip/
Hola paco anteriormente tenia instalado ubuntu 12.04 y owncloud 6.0.4 cuando hice la actualizacion a 14.04 de ubuntu owncloud dejo de funcionar, instale owncloud 7 pero en el inicio de mi localhost donde te pide usuario y contrasena no inicia la sesion de ahi no avanza sabras a que se debe.
Saludos!!!
Pedazo de tutorial. Enhorabuena. Tengo una duda estoy montándolo en mi ordenador de casa y no se que debería poner en el campo fqdn.
Un saludo y gracias
Un nombre de dominio público que apunte a tu ip pública. Puedes conseguir uno gratuitamente, por ejemplo, en dyndns.com
Hola Paco estoy realizando la instalación desde ceros pero al momento que llego al paso de la modificación del archivo sudo nano /etc/apache2/sites-enabled/000-default.conf reinicio el servicio de apache y me vota el siguiente error the apache2 configtest failed ,
Agradezco su colaboración con este caso
también aprovecho para felicitarte por tan buenos post que e encontrado en tu canal.
Al actualizar wordpress se han «auto-modificado» algunas líneas de código, en particular la opción AllowOverride All. De momento, y en lo que soluciono el problema, te dejo un enlace.
sustituye /var/www por /var/www/html, «et voila».
Saludos y siento el «bug».
Hola Paco, en el paso final me sale error /etc/apache2/conf.d/owncloud5-ssl.conf que no existe el archivo, por lo tanto no puedo poner la configuracion que mencionas, todo lo anterior lo realize sin problemas, pero esto uiltimo no se que hacer…
Saludos!!!!
En un par de días tengo que reconfigurar mi cloud. Echaré un vistazo, a ver si hay algún error «rrarro». Si no lo hay, te tocará volver a empezar. Será algún paso tonto que te hayas saltado. Te cuento en 2 o 3 días.Saludos.
Efectivamente hay un error que ya he corregido. La instrucción es
sudo nano /etc/apache2/conf-enabled/owncloud5-ssl.conf
Hola paco tengo instlado Owncloud 7 en ubuntu 14.04 cuando me conecto de otro lado fuera de la red local las subidas de informacion son rapidas pero las descargas una pesadilla alguna idea o consejo que me puedas dar.
Saludos!!!
Eso es el ancho de banda que tengas contratado. En España la subida es de vergüenza. Yo me he tenido que pasar a los 100Mb con ONO para poder subir a 1mb/s.
Buenas Paco
Pues estaba realizando la parte del SSL y me da fallo en esta sentencia
openssl ca \
-config /etc/ssl/openssl.cnf \
-out apache-cert.pem \
-infiles apache-req.pem
Todo lo demás se me ha creado correctamente.
Gracias de antemano.
Pues… algo raro hay!!!! Alguna vez me ha pasado que he metido la pata en el sitio mas tonto, y creo que algo así te está pasando. Alguna línea, algún #,… algun problema al crear la entidad certificadora.
Excelente aporte, Muchas Gracias
THX!
para las versión 8 hacia adelante sigue funcionando este sistema de certificación????
Si, es independiente de owncloud, la ceriticación se refiere al sitio de apache.
muchas gracias x el manual!
todo perfecto en red local, pero cuando voy a acceder desde el exterior no funciona
¿alguna sugerencia?
gracias
Supongo que en dyndns.com o similar has dado de alta un fqdn y que lo has asociado a la ip de tu router. Supongo que has configurado apache para que identifique el sitio con el fqdn. Si es así, sólo queda comprobar siestá activo el reenvío del puerto 80 y el 443 desde el router al servidor.
Saludos.