Búsqueda de sitios web

Instale y configure ownCloud 9.1.4 en openSUSE Leap 42.2


Introducción

ownCloud es un software de código abierto para sincronizar y compartir archivos, al igual que Dropbox. Con solo colocar los archivos en un directorio compartido local, esos archivos se sincronizarán inmediatamente con el servidor y con otros dispositivos utilizando el cliente de sincronización de escritorio ownCloud, la aplicación de Android o la aplicación de iOS.

Este tutorial explica cómo instalar y configurar el lado del servidor de ownCloud en openSUSE 42.2.

Empezando

En primer lugar, instale SuSEfirewall2. Este es un script que genera reglas de iptables a partir de configuraciones almacenadas en

/etc/sysconfig/SuSEfirewall2

. Instálalo con zypper:

zypper in SuSEfirewall2

También hay un módulo de configuración de YaST, pero no le permite configurar todos los ajustes del firewall, por lo que es necesario editar manualmente el archivo de configuración:

$EDITOR /etc/sysconfig/SuSEfirewall2

Allí busca

FW_SERVICES_EXT_TCP

línea y cambiar de la siguiente manera:

FW_SERVICES_EXT_TCP="22 80 443"

Estos son: puertos ssh, http y https.
Guardar y Salir.

A continuación, inícielo y habilítelo para que se inicie en el momento del arranque:

systemctl start SuSEfirewall2
systemctl enable SuSEfirewall2

Reanudar

sshd

:

systemctl restart sshd

Instalar NGINX

NGINX también está disponible en los repositorios de openSUSE, por lo que:

zypper in nginx

Inicie y habilítelo:

systemct start nginx
systemctl enable nginx

Instalación de MariaDB

En cuanto a NGINX, MariaDB también está disponible como paquete openSUSE, por lo que:

zypper in mariadb mariadb-client

Próximo :

systemctl start mysqld
systemctl enable mysqld

Configure su cuenta raíz:

mysql_secure_installation
Enter current password for root (enter for none):
Set root password? [Y/n]
New password:
Re-enter new password:
Remove anonymous users? [Y/n]
Disallow root login remotely? [Y/n]
Reload privilege tables now? [Y/n]

Ahora es posible iniciar sesión en el shell MariaDB y crear una nueva base de datos y un usuario que se utilizará para ownCloud:

mysql -u root -p

En el shell del sistema de base de datos:

mysql> CREATE DATABASE myownclouddb;
mysql> CREATE USER 'ocuser'@'localhost' IDENTIFIED BY 'user_strong_password';
mysql> GRANT ALL PRIVILEGES ON 'myownclouddb.*' TO 'ocuser'@'localhost' IDENTIFIED BY 'user_strong_password';
mysql> FLUSH PRIVILEGES;
mysql> EXIT;

Ahora MariaDB está configurada correctamente para ownCloud.

Instalar PHP-FPM

ownCloud requiere PHP 5.4+. Instale PHP-FPM, que es una alternativa a FastCGI útil cuando se manejan sitios con muchos visitantes. En esta guía usaremos PHP7.
A través de zypper:

zypper in php7-fpm php7-gd php7-mysql php7-mcrypt php7-curl php7-pear php7-zip php7-json php7-ldap

A continuación, copie el archivo de configuración predeterminado php-fpm, ejecutando los siguientes comandos:

cd /etc/php7/fpm
cp php-fpm.conf.default php-fpm.conf

Abra ese archivo con un editor de texto:

$EDITOR php-fpm.conf

Allí, busque (y modifique de la siguiente manera) las siguientes líneas:

error_log = log/php-fpm.log
user = nginx
group = nginx
listen = /var/run/php-fpm.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0660

Guardar y salir.
Ahora modifica

php.ini

:

$EDITOR /etc/php7/cli/php.ini

Descomente la línea 761 y cambie su valor:

cgi.fix_pathinfo=0

Guarde, salga y copie este archivo a

conf.d

:

cp php.ini /etc/php7/conf.d/

El directorio de sesión de PHP7 es

/var/lib/php7

. Cambie su propietario a usuario nginx:

chown -R nginx:nginx /var/lib/php7/
Configure NGINX para que funcione con PHP-FPM

Cree un nuevo archivo de configuración de NGINX, haciendo una copia de seguridad del anterior:

cd /etc/nginx
cp nginx.conf nginx.conf.bk
$EDITOR nginx.conf

En la línea 65, agregue la siguiente configuración:

 location ~ \.php$ {
                root /srv/www/htdocs;
                try_files $uri =404;
                include /etc/nginx/fastcgi_params;
                fastcgi_pass unix:/var/run/php-fpm.sock;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       }

Guarde, salga y pruebe nginx:

nginx -t

Deberías leer las siguientes líneas:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Al final:

systemctl start php-fpm
systemctl enable php-fpm
systemctl restart nginx

Instalar ownCloud

Vaya al directorio raíz web, que es

/srv/www

, y allí descarga ownCloud:

wget https://download.owncloud.org/community/owncloud-9.1.4.tar.bz2

Extrae el archivo:

tar xf owncloud-9.1.4.tar.bz2

En el

owncloud

carpeta extraída, cree un nuevo directorio de datos y cambie su propietario al usuario nginx:

mkdir owncloud/data
chown -R nginx:nginx owncloud/
Configurar un host virtual para ownCloud

El siguiente paso es configurar un Host virtual en NGINX para ownCloud.

mkdir /etc/nginx/vhosts.d && cd /etc/nginx/vhosts.d

Allí, crea un nuevo archivo:

$EDITOR owncloud.conf

Pegue el siguiente contenido en ese archivo:

upstream php-handler {
  #server 127.0.0.1:9000;
  server unix:/var/run/php-fpm.sock;
}

server {
  listen 80; # If you have a SSL certificate (Recommended), change this line with "listen 443 ssl;" and add certificate lines;
  server_name storage.mydomain.com;

  # Path to the root of your installation
  root /srv/www/owncloud/;
  # set max upload size
  client_max_body_size 10G;
  fastcgi_buffers 64 4K;

  # Disable gzip to avoid the removal of the ETag header
  gzip off;

  # Uncomment if your server is build with the ngx_pagespeed module
  # This module is currently not supported.
  #pagespeed off;

  rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
  rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
  rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;

  index index.php;
  error_page 403 /core/templates/403.php;
  error_page 404 /core/templates/404.php;

  location = /robots.txt {
    allow all;
    log_not_found off;
    access_log off;
  }

  location ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README){
    deny all;
  }

  location / {
    # The following 2 rules are only needed with webfinger
    rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
    rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;

    rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
    rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;

    rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;

    try_files $uri $uri/ =404;
  }

  location ~ \.php(?:$|/) {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    fastcgi_param HTTPS on;
    fastcgi_pass php-handler;
    fastcgi_intercept_errors on;
  }

  # Adding the cache control header for js and css files
  # Make sure it is BELOW the location ~ \.php(?:$|/) { block
  location ~* \.(?:css|js)$ {
    add_header Cache-Control "public, max-age=7200";
    # Add headers to serve security related headers
    add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
    add_header X-Content-Type-Options nosniff;
    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Robots-Tag none;
    # Optional: Don't log access to assets
    access_log off;
  }

  # Optional: Don't log access to other assets
  location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|swf)$ {
    access_log off;
  }
}

Guardar, salir y reiniciar servicios:

systemctl restart nginx
systemctl restart php-fpm
systemctl restart mysql

Conclusiones

El lado del servidor ahora está bien configurado. El último paso es ir con un navegador web a: http://almacenamiento.midominio.com y finalizar una configuración gráfica. ¡Al final de este proceso, tu panel de control ownCloud estará completamente disponible!

Artículos relacionados: