GNU/Linux >> Tutoriales Linux >  >> Cent OS

Pasos previos a la configuración

¡Su nube, sus datos, a su manera! - ownCloud 4.0 en CentOS 6.2 + nginx + PostgreSQL

Este documento describe cómo instalar y configurar ownCloud por "ownCloud community" en un servidor web basado en CentOS 6.2 desde el paquete tar en nginx y php-fpm con una base de datos postgreSQL como backend. Para otras distribuciones, puede haber cambios menores en los procedimientos de instalación de los requisitos previos del software. Esta guía no solo ayudará a instalar el producto, sino que también comprenderá por qué ciertos puntos se realizan de la manera en que se realizan (esto es más útil para los usuarios con poco o ningún conocimiento que, como yo hace algún tiempo, recién comenzamos a usar Linux).

¿Qué es ownCloud?

Es una herramienta para compartir archivos/contactos/calendarios de grupos o empresas que, desde mi punto de vista, aprovecha al máximo tanto Dropbox como GroupOffice (a excepción de la integración de correo electrónico hasta ahora), y no es tan desordenada o pesada como Alfresco o Sharepoint.

Enlaces a varias secciones del desarrollador:

  • Página de inicio del producto:http://owncloud.org/
  • IRC:http://webchat.freenode.net/?channels=owncloud
  • Soporte:http://owncloud.org/support/

No garantizo que funcionará para usted, ya que más adelante podría haber cambios en el software, tanto en el requisito previo como en el principal, realizados de tal manera que se rompan o no permitan que los procedimientos mencionados en este tutorial se completen con éxito.
PD Todos los errores agregados son míos. Use comentarios o navegue hasta IRC.

Nota Preliminar

En este tutorial usamos:

  • Medios de instalación de Centos 6.2
  • Nombre de host:owncloud.example.com
  • Dirección IP:192.168.1.100
  • Dirección del enrutador:192.168.1.1
  • Máscara de red:255.255.255.0
  • Suponga (imagine) que el servidor está conectado a la red pública de Internet
  • Usamos nuestra computadora para administrar el servidor de forma remota a través de ssh (masilla en Windows), incluso si tiene el servidor a su lado o lo tiene como una máquina virtual que se ejecuta en su sistema operativo principal
  • GNU vim como nuestro principal editor de texto. Pero siéntete libre de usar cualquier otro de tu agrado

Requisitos

Necesitaremos una instalación limpia (mínima) que funcione de Centos 6.2 (x86 o x86_64 es irrelevante), yo personalmente uso la versión x86_64 y le sugiero que haga lo mismo.

Primero lo primero

Inicie sesión en la consola del servidor como raíz. Se encontrará en el mensaje [[email protected] ~]#.

Prefiero ciertas configuraciones, que son completamente opcionales, pero puede que las encuentre útiles más adelante. Configuré mi terminal para mostrar la salida en color con la fecha, la hora, el nombre del servidor y la carpeta actual en el indicador. También para mostrar el historial de comandos con fecha/hora. También aumento los valores de tamaño de historial predeterminados.

Para hacerlo, ejecute:

vi ~/.bash_profile

Agregue las líneas mencionadas después de la directiva PATH de exportación. En caso de que no lo sepa, al presionar "i" ingresa al modo de inserción, "ESC" sale. Vi es vi :)

#History size to hold 50.000 commands and inflate filesize ten times bigger
export HISTSIZE=50000
export HISTFILESIZE=500000
#Show history with date as example: "24.05.2012 - 14:28:56"
export HISTTIMEFORMAT="%d.%m.%Y - %H:%M:%S "
#Autocolor output of "ls" command
export LS_OPTIONS='--color=auto'
eval "`dircolors`"
#Set prompt to display as example: "Thu May 24 2012  14:28:56 owncloud.example.com of root @ ~]"
#and colorize date, time and location differently. Set all input text to default values.
PS1="\e[1;37m\][\e[1;36m\] \d \D{%Y}  \e[1;31m\]\t \e[1;37m\] \H of \u @ \W] \033[00m\]"

Guardar y salir del archivo. Nuevamente, si no lo sabe, fuera del modo de inserción, ingrese ":wq" y presione enter para guardar y salir, o simplemente presione "ZZ" para hacer lo mismo. Para volver a iniciar sesión en la terminal para aplicar los cambios, ejecute:

exit

Redes

Si no configuró una dirección IP estática durante la instalación, digamos que tiene un enrutador habilitado para DHCP, debe hacerlo ahora; de lo contrario, continúe con el siguiente paso.

vi /etc/sysconfig/network-scripts/ifcfg-eth0

Cambie o agregue solo las líneas mencionadas.

BOOTPROTO="none"
NETWORK="192.168.1.0"
NETMASK="255.255.255.0"
IPADDR="192.168.1.100"
GATEWAY="192.168.1.1"

Guardar y Salir. Luego reinicie la red:

service network restart

Verifique que la red esté reconfigurada ejecutando:

ifconfig

Ahora debería poder acceder al servidor en 192.168.1.100 como raíz. Pero no hagas eso todavía, primero completa el siguiente paso.

Asegurando El Servidor

Antes de continuar, dado que asumimos que el servidor está, de hecho, conectado a Internet, debemos asegurarlo. Haremos tres cosas.

  • Vuelva a configurar el servidor ssh para que no permita el inicio de sesión raíz y cambie el puerto predeterminado 22 a otro, menos común, es decir, 60606,
  • Configure iptables para permitir conexiones entrantes en el nuevo puerto,
  • Agregue nuestro primer usuario del sistema para iniciar sesión con él a través de ssh.
  1. Proteger el inicio de sesión remoto

    Si aún no ha iniciado sesión desde la consola al servidor (me refiero a la consola local, no ssh todavía), inicie sesión como root y luego ejecute:

    vi /etc/ssh/sshd_config

    En la línea trece del archivo predeterminado inalterado (en caso de que se pregunte nuevamente, escriba ":set number" y presione enter fuera del modo de inserción para obtener los números de línea) hay una directiva del Puerto 22. Duplíquelo, cambie el número de puerto a 60606 y elimine el comentario.
    Luego busque (fuera del modo de inserción presione "/" y escriba la frase que está buscando) Directiva PermitRootLogin yes duplique nuevamente y cambie su valor a no y elimínelo también , luego guarde el archivo. Ah, y es ":noh" para desactivar el resaltado.
    Reiniciar sshd después:

    service sshd restart
  2. Configuración de iptables

    Primero verifique las iptables ya existentes:

    iptables -L -v --line-numbers

    En la instalación predeterminada, en la posición '4', habrá una directiva para aceptar nuevas conexiones tcp en el puerto ssh predeterminado, debemos deshacernos de él, por lo tanto, ejecute:

    iptables -D INPUT 4

    Ahora necesitamos permitir conexiones al puerto 60606 en su lugar. Ejecutar:

    iptables -I INPUT 4 -p tcp -d 192.168.1.100 --dport 60606 -j ACCEPT

    Por último, para guardar el estado actual de iptables, ejecute:

    servicio iptables guardar
    servicio iptables reiniciar

  3. Añadiendo primer usuario

    Todo está bien ahora, excepto por una cosa, nos hemos prohibido el uso de ssh, ya que la raíz no está permitida y todavía no hay otros usuarios del sistema. Hora de corregir:

    useradd -c "ownCloud system user" -m -n cloudadmin

    Establecer contraseña para este usuario:

    passwd cloudadmin

    Hecho. Puede establecer la contraseña para el usuario en el primer comando, pero de esta manera el valor de la contraseña será visible durante la entrada en la ventana del terminal y también se guardará en .bash_history del usuario root, eso no es deseable.
    Ahora puede iniciar sesión a través de ssh ejecutando el siguiente comando en la ventana de su terminal en la computadora local:

    ssh [email protected] -p60606

Pasos previos a la configuración

En la mayoría de los casos, la instalación del software es bastante sencilla y podríamos haber "comprobado" la mayor parte durante la instalación inicial, pero prefiero hacer las cosas a mano.
Intencionalmente divido la instalación en secciones.

  1. Iniciar sesión como superusuario

    En este mismo momento, debería estar en el indicador de la consola como usuario de clouddmin. Para obtener privilegios de root, ejecute:

    su -
  2. Repositorios de software

    Para usar el software deseado, se requieren dos repositorios.
    Primero EPEL, ejecute:

    rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-6.noarch.rpm
    Y no, i386 no es un error, es lo mismo para los sistemas de 32 y 64 bits.
    Entonces, Remi, ejecuta:

    rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi
    rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

    Ahora verifique los repositorios epel y remi y, en caso de que no esté allí, configure enable=1 ejecutando:

    vi /etc/yum.repos.d/epel.repo
    vi /etc/yum.repos.d/remi.repo

    Finalmente, actualice su sistema. Incluso CentOS recién instalado puede requerir una actualización primero. Ejecutar:
    yum update -y
  3. Tiempo de precisión

    Es bueno estar sincronizado con el resto del mundo, ejecuta:

    yum instalar ntp
    servicio ntpd iniciar
    chkconfig ntpd en
    ntpd

  4. Algunas otras herramientas

    Para hacer mi vida un poco más fácil, uso vim en lugar de vi, htop en lugar de top, elinks para probar cosas rápidamente desde la terminal y mc, como un administrador de archivos bueno y no solo de doble panel, se requiere wget para descargar cosas y man es esencial cuando quieres leer casi cualquier cosa. Ejecutar:

    yum install vim htop elinks mc wget man -y

Configuración de ownCloud

  1. Requisitos previos de software

    Un montón de cosas de php, ejecute:

    yum install php-fpm php-gd php-ldap php-pear php-xml php-xmlrpc php-eaccelerator php-magickwand php-magpierss php-mbstring php-mcrypt php-shout php-snmp php-soap php-tidy php-pgsql

    Edite php.ini, ejecute:

    vim /etc/php.ini

    Hay cuatro directivas para cambiar,
    la primera debe estar en la línea 736, la directiva post_max_size
    la segunda en la línea 848, la directiva cgi.fix_pathinfo
    la tercera en la línea 885, la directiva upload_max_filesize
    la última en línea 956, directiva date.timezone modifíquelo según la ubicación de su servidor.

    [...]
    post_max_size = 64M
    [...]
    cgi.fix_pathinfo = 0
    [...]
    upload_max_filesize = 64M
    [...]
    date.timezone = "Europe/Prague"
    [...]

    En caso de que no sepa cómo, puede encontrar el nombre de su zona horaria ejecutando:

    cat /etc/sysconfig/clock

    Luego, configure php-fpm para usar unix socket en lugar de tcp stack, ejecute:

    vim /etc/php-fpm.d/www.conf

    Desde la línea doce, haz que se vea así:

    ;listen = 127.0.0.1:9000
    listen = /var/run/php-fpm/php-fpm.sock

    Iniciar php-fpm:

    chkconfig php-fpm en
    servicio de inicio de php-fpm

  2. Backend - PostgreSQL

    Para instalarlo y configurarlo, ejecute:

    yum install postgresql postgresql-libs postgresql-server
    servicio postgresql initdb
    servicio postgresql inicio
    chkconfig postgresql en

    Inicie sesión en postgres como usuario del sistema postgres, cree usuario de base de datos, base de datos y otorgue privilegios

    su - -c "psql" postgres
    CREAR USUARIO clouduser CON CONTRASEÑA 'userpass';
    CREAR BASE DE DATOS clouddb PROPIETARIO clouduser CODIFICACIÓN 'UTF8';
    CONCEDER TODOS LOS PRIVILEGIOS EN LA BASE DE DATOS clouddb A clouduser;
    \q

    Modifique el archivo de configuración de postgresql para permitir inicios de sesión con contraseña:

    vim /var/lib/pgsql/data/pg_hba.conf
    • Buscar

      # Conexiones locales IPv4:
      alojar todas las 127.0.0.1/32 ident

    • Y modificarlo a

      # Conexiones locales IPv4:
      host all all 127.0.0.1/32 contraseña

    Ahora reinicie la base de datos:

    service postgresql restart
  3. servidor web nginx

    Instalar, configurar para iniciar en el arranque y luego detenerlo:

    yum install nginx
    service nginx start
    chkconfig nginx on
    service nginx stop

    Prepare el archivo de configuración para el sitio web ownclod:

    vim /etc/nginx/conf.d/owncloud.conf
    # redirect http to https.
    server {
      listen 80;
      server_name owncloud.example.com;
      rewrite ^ https://$server_name$request_uri? permanent;  # enforce https
    }
    # owncloud (ssl/tls)
    server {
      listen 443 ssl;
      ssl_certificate /etc/nginx/certs/server.crt;
      ssl_certificate_key /etc/nginx/certs/server.key;
      server_name owncloud.example.com;
      root /var/www/owncloud;
      index index.php;
      client_max_body_size 64M; # set maximum upload size
      # deny direct access
      location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
        deny all;
      }
      # default try order
      location / {
        try_files $uri $uri/ @webdav;
      }
      # owncloud WebDAV
      location @webdav {
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param HTTPS on;
        include fastcgi_params;
      }
      # enable php
      location ~ \.php$ {
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param HTTPS on;
        include fastcgi_params;
      }
    }

    Ahora vamos a crear certificados para el servidor, responda a las preguntas de acuerdo con su configuración:

    mkdir -p /etc/nginx/certs/
    cd /etc/nginx/certs/
    openssl genrsa -des3 -out server.key 1024
    openssl req -new -key server.key - out server.csr
    cp server.key server.key.orig
    openssl rsa -in server.key.orig -out server.key
    openssl x509 -req -days 365 -in server. csr -signkey servidor.clave -out servidor.crt

    Vuelva a cargar nginx para habilitar la nueva configuración:

    service nginx reload
  4. archivos y directorios ownCloud

    La instalación de ownCloud consiste en descargar y descomprimir el archivo, con algunos ajustes en el lado del servidor, por lo tanto, ejecute:

    cd /tmp
    wget http://download2.owncloud.org/releases/owncloud-4.0.0.tar.bz2
    tar xjf owncloud-4.0.0.tar.bz2
    mv owncloud /var/www/
    mkdir -p /var/www/owncloud/data
    chmod 770 /var/www/owncloud/data
    chown -R root:apache /var/www/owncloud

    Y una vez más, apache como grupo en el último comando no es un error. php-fpm se ejecuta por defecto como usuario apache

  5. Acceder al sitio

    Abra el puerto 443 para poder acceder al sitio web, ejecute:

    iptables -I INPUT 4 -p tcp -d 192.168.1.100 --dport 443 -j ACCEPT
    servicio iptables guardar
    servicio iptables reiniciar

Ejecución de prueba

Vaya a https://owncloud.example.com a través del navegador de su elección y finalice el procedimiento de instalación.

Elija el nombre de usuario y la contraseña del administrador, elija PostgreSQL como backend de la base de datos y publique los valores apropiados en la configuración de conexión de la base de datos.

Disfrutar.

Solución de problemas

Los archivos de registro se encuentran de la siguiente manera:

/var/www/owncloud/data/owncloud.log
/var/log/php-fpm/www-error.log
/var/log/nginx/access.log
/var /log/nginx/error.log


Cent OS
  1. Cómo configurar un servidor SFTP en CentOS

  2. Cómo configurar el servidor Rsyslog en Debian 11

  3. 4 pasos para configurar el repositorio local en Ubuntu usando APT-mirror

  4. 15 pasos de refuerzo de Linux para el servidor CentOS 7

  5. Cómo configurar la replicación de MySQL en CentOS

Configuración del servidor Kali http

Cómo configurar el servidor NFS en CentOS 8 / RHEL 8

Cómo configurar un servidor SVN en CentOS

Configuración del servidor ISP - OpenSUSE 10

CentOS 8:configuración inicial del servidor

Configuración paso a paso del servidor de correo iRedMail en Centos 8