Usando Linux para muchas cosas y disfrutando de videojuegos, en dispositivos moviles, consolas y pc. Using Linux for many things and enjoying video games, mobile devices, consoles and pc

Aprende a instalar Magento 2 y comienza a vender YA rapido

DriveMeca instalando y configurando Magento 2 en Linux Ubuntu Xenial Server
El mundo cada vez es mas pequeño al estar interconectados en todo momento. Esto también pasa en la forma en que compramos o vendemos productos (digitales, físicos, servicios, etc). Ecommerce (comercio electrónico) abre muchas posibilidades siempre que tengamos una base fuerte para manejar nuestra tienda virtual lo que nos lleva al tema del articulo de hoy donde te mostrare paso a paso, en español y con screenshoots como instalar y configurar Magento 2.0.4.
Magento podemos decir que es conocido por ser muy estable y poderoso para manejar grandes catálogos de productos sin ningún problema. Ahora, no es muy sencillo de instalar y configurar como otras soluciones en el medio llevando a muchos a pensarlo varias veces antes de decidirse por el (imagino que por eso me estas leyendo ahora, cierto?).


Requerimientos para instalar Magento en Linux Ubuntu Xenial Server




-Abrimos una consola de texto e instalamos dependencias. Usaremos una configuracion LEMP (Linux + Nginx + MariaDB + PHP 7)
sudo apt install php mariadb-server varnish nginx php-curl php-dom php-xsl php-intl php-mbstring php-zip php-simplexml php-gd php-mcrypt php-mysql


Configuramos MariaDB para Magento 2

-Aseguramos la configuracion de nuestro MariaDB colocandole contraseña a la cuenta root. Los valores por default son suficientes por lo que daremos Enter en las preguntas despues de crear la contraseña
sudo mysql_secure_installation

-Entramos a crear la db de Magento y un usuario con privilegios
sudo mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 52
Server version: 10.0.25-MariaDB-0ubuntu0.16.04.1 Ubuntu 16.04

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> create database magentodb;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all on magentodb.* to 'musr'@'localhost' identified by 'password';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> exit;
Bye


Configuramos PHP 7 para Magento 2

-Los cambios para PHP 7 son minimos, solo aumentar el valor de memoria limite
sudo vi /etc/php/7.0/fpm/php.ini
memory_limit = 1024M


Configuramos Ngix para Magento 2

-Crearemos un nuevo conf por lo cual movemos el archivo default con otro nombre
sudo mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bck

-Creamos un nuevo default. Las lineas que comienzan con el simbolo # son comentarios
sudo vi /etc/nginx/sites-available/default
# Default server configuration
#
server {
listen 127.0.0.1:8080 default_server;
listen [::]:8080 default_server;

set $MAGE_ROOT /var/www/html/magento2/;
set $MAGE_MODE developer;

# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;

server_name _;
root $MAGE_ROOT/pub;

index index.php;
autoindex off;
charset off;

location /setup {
root $MAGE_ROOT;
location ~ ^/setup/index.php {
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

location ~ ^/setup/(?!pub/). {
deny all;
}

location ~ ^/setup/pub/ {
add_header X-Frame-Options "SAMEORIGIN";
}
}

location /update {
root $MAGE_ROOT;

location ~ ^/update/index.php {
fastcgi_split_path_info ^(/update/index.php)(/.+)$;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
include fastcgi_params;
}

# deny everything but index.php
location ~ ^/update/(?!pub/). {
deny all;
}

location ~ ^/update/pub/ {
add_header X-Frame-Options "SAMEORIGIN";
}
}

location / {
try_files $uri $uri/ /index.php?$args;
}

location /pub {
location ~ ^/pub/media/(downloadable|customer|import|theme_customization/.*\.xml) {
deny all;
}
alias $MAGE_ROOT/pub;
add_header X-Frame-Options "SAMEORIGIN";
}

location /static/ {
if ($MAGE_MODE = "production") {
expires max;
}

# Remove signature of the static files that is used to overcome the browser cache
location ~ ^/static/version {
rewrite ^/static/(version\d*/)?(.*)$ /static/$2 last;
}

location ~* \.(ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2)$ {
add_header Cache-Control "public";
add_header X-Frame-Options "SAMEORIGIN";
expires +1y;

if (!-f $request_filename) {
rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last;
}
}
location ~* \.(zip|gz|gzip|bz2|csv|xml)$ {
add_header Cache-Control "no-store";
add_header X-Frame-Options "SAMEORIGIN";
expires off;

if (!-f $request_filename) {
rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last;
}
}
if (!-f $request_filename) {
rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last;
}
add_header X-Frame-Options "SAMEORIGIN";
}

location /media/ {
try_files $uri $uri/ /get.php?$args;

location ~ ^/media/theme_customization/.*\.xml {
deny all;
}

location ~* \.(ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2)$ {
add_header Cache-Control "public";
add_header X-Frame-Options "SAMEORIGIN";
expires +1y;
try_files $uri $uri/ /get.php?$args;
}
location ~* \.(zip|gz|gzip|bz2|csv|xml)$ {
add_header Cache-Control "no-store";
add_header X-Frame-Options "SAMEORIGIN";
expires off;
try_files $uri $uri/ /get.php?$args;
}
add_header X-Frame-Options "SAMEORIGIN";
}

location /media/customer/ {
deny all;
}

location /media/downloadable/ {
deny all;
}

location /media/import/ {
deny all;
}

location ~ (index|get|static|report|404|503)\.php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_buffers 1024 4k;

fastcgi_param PHP_FLAG "session.auto_start=off \n suhosin.session.cryptua=off";
fastcgi_param PHP_VALUE "memory_limit=768M \n max_execution_time=600";
fastcgi_read_timeout 600s;
fastcgi_connect_timeout 600s;
fastcgi_param MAGE_MODE $MAGE_MODE;

fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

gzip on;
gzip_disable "msie6";

gzip_comp_level 6;
gzip_min_length 1100;
gzip_proxied any;
gzip_types
text/plain
text/css
text/js
text/xml
text/javascript
application/javascript
application/x-javascript
application/json
application/xml
application/xml+rss;

location ~ \.php$ {
deny all;
}
}


Configuramos Varnish para Magento 2

-Varnish es un acelerador web cuya función básicamente es servir paginas estáticas guardadas en cache y solo dejar que el servidor web maneje las solicitudes de paginas dinámicas. Esto es muy importante para servidores web con altas cargas y ayudara a que tu tienda online no sufra de lentitud. Copiamos el script de inicio para que sea manejado por systemd
sudo cp /lib/systemd/system/varnish.service /etc/systemd/system/

-Modificamos el script cambiando el puerto y la cantidad de memoria usada por Varnish
sudo vi /etc/systemd/system/varnish.service
ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,1024m

-Activamos Nginx para que sea ejecutado cada vez que prendamos el equipo e iniciamos el servicio
sudo systemctl enable nginx
sudo systemctl restart nginx

-Verificamos este ejecutandose
sudo systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: active (running) since sáb 2016-08-06 16:24:32 COT; 5s ago
  Process: 20848 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status=0/SUCCESS)
  Process: 20856 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
  Process: 20852 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
 Main PID: 20859 (nginx)
    Tasks: 3
   Memory: 2.8M
      CPU: 103ms
   CGroup: /system.slice/nginx.service
           ├─20859 nginx: master process /usr/sbin/nginx -g daemon on; master_process on
           ├─20860 nginx: worker process                           
           └─20861 nginx: worker process                           

ago 06 16:24:32 ubuser systemd[1]: Starting A high performance web server and a reverse proxy server...
ago 06 16:24:32 ubuser systemd[1]: Started A high performance web server and a reverse proxy server.

-Activamos Varnish y lo ejecutamos
sudo  systemctl enable varnish
sudo  systemctl restart varnish

-Verificamos este ejecutandose
sudo  systemctl status varnish
● varnish.service - Varnish HTTP accelerator
   Loaded: loaded (/etc/systemd/system/varnish.service; enabled; vendor preset: enabled)
   Active: active (running) since sáb 2016-08-06 16:28:03 COT; 44s ago
     Docs: https://www.varnish-cache.org/docs/4.1/
           man:varnishd
 Main PID: 20920 (varnishd)
   CGroup: /system.slice/varnish.service
           ├─20920 /usr/sbin/varnishd -j unix,user=vcache -F -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,102
           └─20931 /usr/sbin/varnishd -j unix,user=vcache -F -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,102

ago 06 16:28:03 ubuser systemd[1]: Started Varnish HTTP accelerator.
ago 06 16:28:05 ubuser varnishd[20920]: Debug: Platform: Linux,4.4.0-31-generic,x86_64,-junix,-smalloc,-smalloc,-hcritbit
ago 06 16:28:05 ubuser varnishd[20920]: Platform: Linux,4.4.0-31-generic,x86_64,-junix,-smalloc,-smalloc,-hcritbit
ago 06 16:28:05 ubuser varnishd[20920]: Debug: Child (20931) Started
ago 06 16:28:05 ubuser varnishd[20920]: Child (20931) Started
ago 06 16:28:05 ubuser varnishd[20920]: Info: Child (20931) said Child starts
ago 06 16:28:05 ubuser varnishd[20920]: Child (20931) said Child starts

-Activamos y ejecutamos el servicio php7.0-fpm
sudo systemctl enable php7.0-fpm
sudo systemctl restart php7.0-fpm

-Verificamos este ejecutandose correctamente
sudo systemctl status php7.0-fpm
● php7.0-fpm.service - The PHP 7.0 FastCGI Process Manager
   Loaded: loaded (/lib/systemd/system/php7.0-fpm.service; enabled; vendor preset: enabled)
   Active: active (running) since sáb 2016-08-06 16:30:28 COT; 17s ago
  Process: 21241 ExecStartPre=/usr/lib/php/php7.0-fpm-checkconf (code=exited, status=0/SUCCESS)
 Main PID: 21254 (php-fpm7.0)
   Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
    Tasks: 3
   Memory: 31.6M
      CPU: 128ms
   CGroup: /system.slice/php7.0-fpm.service
           ├─21254 php-fpm: master process (/etc/php/7.0/fpm/php-fpm.conf)                      
           ├─21256 php-fpm: pool www                                                            
           └─21257 php-fpm: pool www                                                            

ago 06 16:30:27 ubuser systemd[1]: Starting The PHP 7.0 FastCGI Process Manager...
ago 06 16:30:28 ubuser systemd[1]: Started The PHP 7.0 FastCGI Process Manager.


Descargamos Magento 2 en Linux Ubuntu Xenial Server

-Nos cambiamos al directorio web y descargamos Magento 2 en su ultima versión (2.0.4 en este momento) desde el repositorio Git Magento
cd /var/www/html/
sudo git clone https://github.com/magento/magento2.git
Clonar en «magento2»...
remote: Counting objects: 1172366, done.
remote: Compressing objects: 100% (2673/2673), done.
remote: Total 1172366 (delta 1710), reused 0 (delta 0), pack-reused 1169110
Receiving objects: 100% (1172366/1172366), 286.43 MiB | 603.00 KiB/s, done.
Resolving deltas: 100% (649048/649048), done.
Comprobando la conectividad… hecho.
Extrayendo archivos: 100% (24989/24989), done.

-Entramos al directorio de Magento y continuamos
cd magento2/
sudo git checkout tags/2.0.4
Extrayendo archivos: 100% (12380/12380), done.
Note: checking out 'tags/2.0.4'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD se encuentra en b6bb8e5... MAGETWO-48486: Magento 2.0.4 Publication

-Damos permiso total en la carpeta magento2 y reiniciamos los servicios nginx y php7.0-fpm
sudo chmod -R 777 /var/www/html/magento2/
sudo systemctl restart nginx
sudo systemctl restart php7.0-fpm

-Este paso es importante. Abrimos un browser y navegamos a https://www.magentocommerce.com/ Allí creamos una cuenta (es GRATIS) y generamos una llave publica y privada que se nos pedirá en un paso mas adelante. Menú Connect - Secure Keys. Damos click al botón Generate new, escribimos un nombre y se nos mostrara la llave publica junto a la privada
DriveMeca instalando y configurando Magento 2 en Linux Ubuntu Xenial Server

-Instalamos módulos para Magento teniendo cuidado cuando llegue a pedirnos un usuario y contraseña para el repositorio de Magento. Alli debemos pegar en Username nuestra llave publica y en Password la llave privada (la llave privada no se vera cuando la pegues). Aceptamos guardar las credenciales en el directorio del usuario desde el que estamos instalando
sudo composer install
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
  - Installing magento/magento-composer-installer (0.1.6)
    Downloading: 100%         

  - Installing braintree/braintree_php (2.39.0)
    Downloading: 100%         

  - Installing justinrainbow/json-schema (1.6.1)
    Downloading: 100%         

  - Installing symfony/console (v2.6.13)
    Downloading: 100%         

  - Installing symfony/process (v2.8.4)
    Downloading: 100%         

  - Installing symfony/finder (v2.8.4)
    Downloading: 100%         

  - Installing seld/jsonlint (1.4.0)
    Downloading: 100%         

  - Installing composer/composer (1.0.0-alpha10)
    Downloading: 100%         

  - Installing magento/composer (1.0.2)
    Authentication required (repo.magento.com):
      Username: 78605c946e18190ec0f7xxxxxxef5xxxx <---Llave publica
      Password: <-- Llave privada
    Downloading: 100%         
Do you want to store credentials for repo.magento.com in /home/drivemeca/.composer/auth.json ? [Yn] 

  - Installing magento/zendframework1 (1.12.16)
    Downloading: 100%         

  - Installing psr/log (1.0.0)
    Downloading: 100%         

  - Installing monolog/monolog (1.16.0)
    Downloading: 100%         

  - Installing oyejorge/less.php (v1.7.0.3)
    Downloading: 100%         

  - Installing pelago/emogrifier (v0.1.1)
    Downloading: 100%         

  - Installing phpseclib/phpseclib (0.3.10)
    Downloading: 100%         

  - Installing tedivm/jshrink (v1.0.1)
    Downloading: 100%         

  - Installing tubalmartin/cssmin (v2.4.8-p4)
    Downloading: 100%         

  - Installing zendframework/zend-stdlib (2.4.9)
    Downloading: 100%         

  - Installing zendframework/zend-config (2.4.9)
    Downloading: 100%         

  - Installing zendframework/zend-console (2.4.9)
    Downloading: 100%         

  - Installing zendframework/zend-servicemanager (2.4.9)
    Downloading: 100%         

  - Installing zendframework/zend-math (2.4.9)
    Downloading: 100%         

  - Installing zendframework/zend-crypt (2.4.9)
    Downloading: 100%         

  - Installing zendframework/zend-eventmanager (2.4.9)
    Downloading: 100%         

  - Installing zendframework/zend-code (2.4.9)
    Downloading: 100%         

  - Installing zendframework/zend-di (2.4.9)
    Downloading: 100%         

  - Installing zendframework/zend-validator (2.4.9)
    Downloading: 100%         

  - Installing zendframework/zend-escaper (2.4.9)
    Downloading: 100%         

  - Installing zendframework/zend-uri (2.4.9)
    Downloading: 100%         

  - Installing zendframework/zend-loader (2.4.9)
    Downloading: 100%         

  - Installing zendframework/zend-http (2.4.9)
    Downloading: 100%         

  - Installing zendframework/zend-i18n (2.4.9)
    Downloading: 100%         

  - Installing zendframework/zend-filter (2.4.9)
    Downloading: 100%         

  - Installing zendframework/zend-inputfilter (2.4.9)
    Downloading: 100%         

  - Installing zendframework/zend-log (2.4.9)
    Downloading: 100%         

  - Installing zendframework/zend-modulemanager (2.4.9)
    Downloading: 100%         

  - Installing zendframework/zend-form (2.4.9)
    Downloading: 100%         

  - Installing zendframework/zend-mvc (2.4.9)
    Downloading: 100%         

  - Installing zendframework/zend-json (2.4.9)
    Downloading: 100%         

  - Installing zendframework/zend-serializer (2.4.9)
    Downloading: 100%         

  - Installing zendframework/zend-server (2.4.9)
    Downloading: 100%         

  - Installing zendframework/zend-soap (2.4.9)
    Downloading: 100%         

  - Installing zendframework/zend-text (2.4.9)
    Downloading: 100%         

  - Installing zendframework/zend-view (2.4.9)
    Downloading: 100%         

  - Installing symfony/stopwatch (v3.0.4)
    Downloading: 100%         

  - Installing symfony/filesystem (v2.8.4)
    Downloading: 100%         

  - Installing symfony/event-dispatcher (v2.8.4)
    Downloading: 100%         

  - Installing sebastian/diff (1.4.1)
    Downloading: 100%         

  - Installing fabpot/php-cs-fixer (v1.11.2)
    Downloading: 100%         

  - Installing lusitanian/oauth (v0.7.0)
    Downloading: 100%         

  - Installing symfony/dependency-injection (v2.8.4)
    Downloading: 100%         

  - Installing symfony/config (v2.8.4)
    Downloading: 100%         

  - Installing pdepend/pdepend (2.2.2)
    Downloading: 100%         

  - Installing phpmd/phpmd (2.3.3)
    Downloading: 100%         

  - Installing phpunit/php-token-stream (1.4.8)
    Downloading: 100%         

  - Installing symfony/yaml (v2.8.4)
    Downloading: 100%         

  - Installing sebastian/version (1.0.6)
    Downloading: 100%         

  - Installing sebastian/recursion-context (1.0.2)
    Downloading: 100%         

  - Installing sebastian/exporter (1.2.1)
    Downloading: 100%         

  - Installing sebastian/environment (1.3.5)
    Downloading: 100%         

  - Installing sebastian/comparator (1.2.0)
    Downloading: 100%         

  - Installing phpunit/php-text-template (1.2.1)
    Downloading: 100%         

  - Installing doctrine/instantiator (1.0.5)
    Downloading: 100%         

  - Installing phpunit/phpunit-mock-objects (2.3.8)
    Downloading: 100%         

  - Installing phpunit/php-timer (1.0.7)
    Downloading: 100%         

  - Installing phpunit/php-file-iterator (1.3.4)
    Downloading: 100%         

  - Installing phpunit/php-code-coverage (2.2.4)
    Downloading: 100%         

  - Installing phpunit/phpunit (4.1.0)
    Downloading: 100%         

  - Installing league/climate (2.6.1)
    Downloading: 100%         

  - Installing sjparkinson/static-review (4.1.1)
    Downloading: 100%         

  - Installing squizlabs/php_codesniffer (1.5.3)
    Downloading: 100%         

..
..


-Cambiamos permisos
sudo chmod -R 755 /var/www/html/magento2/
sudo chmod -R 777 /var/www/html/magento2/var/
sudo chmod -R 777 /var/www/html/magento2/pub/
sudo chmod -R 777 /var/www/html/magento2/app/etc/


Instalamos Magento 2 en Linux Ubuntu 16.04 Server

-Abrimos un navegador y nos vamos al URL http://ip-servidor/setup/ Se nos pedirá aceptar la licencia. Damos click al botón Agree and Setup Magento
DriveMeca instalando y configurando Magento 2 en Linux Ubuntu Xenial Server

-La instalación de Magento 2 consta de 6 pasos. El primero verificara si tenemos correctamente instalado y configurado PHP. Damos click al botón Start Readiness Check
DriveMeca instalando y configurando Magento 2 en Linux Ubuntu Xenial Server

-Si haz seguido mis pasos todo debe darte en verde, sino, verifica el error, corrige y vuelve a chequear dando click al botón Try Again. Damos click al botón Next para continuar al paso 2
DriveMeca instalando y configurando Magento 2 en Linux Ubuntu Xenial Server

-El paso 2 es configurar la conexión a MariaDB con los datos Database Server Host (localhost), Database Server Username (musr), Database Server Password (password de la db) y Database Name (magentodb). Damos click al botón Next para continuar al paso 3
DriveMeca instalando y configurando Magento 2 en Linux Ubuntu Xenial Server

-El paso 3 nos permite activar el dominio internet por el que se conectaran a nuestro Magento ecommerce (por motivos de este articulo paso a paso usaremos la ip privada del servidor). El instalador generara un URL para servir de entrada al administrador al backend (modulo web administrativo)
DriveMeca instalando y configurando Magento 2 en Linux Ubuntu Xenial Server

-En Advanced Options, mas abajo, podemos activar un certificado SSL en caso de tenerlo entre otras opciones. Damos click al botón Next para continuar al paso 4
DriveMeca instalando y configurando Magento 2 en Linux Ubuntu Xenial Server

-En el 4to paso elegimos nuestra zona horaria, la moneda y el idioma por default de nuestra tienda en linea. Por default se instalaran todos los módulos. Damos click al botón Next para continuar al paso 5
DriveMeca instalando y configurando Magento 2 en Linux Ubuntu Xenial Server

-El 5to paso de la instalación es crear una cuenta de administrador. Esta sera la encargada de crear usuarios, crear paginas, categorías, productos, etc. Damos click al botón Next para continuar al paso 6
DriveMeca instalando y configurando Magento 2 en Linux Ubuntu Xenial Server

-Si llegaste hasta el 6to paso ya estas listo para instalar Magento 2 en Linux Ubuntu Server. Damos click al botón Install Now. Hora de ir por un café ;-)
DriveMeca instalando y configurando Magento 2 en Linux Ubuntu Xenial Server

-Comienza la instalación, podemos darle click a Console Log para ver en que va el proceso
DriveMeca instalando y configurando Magento 2 en Linux Ubuntu Xenial Server

-Dependiendo la potencia de tu equipo, puede que pasen una buena cantidad de minutos hasta que llegue al 100% de instalado. Ya podemos abrir una pestaña en nuestro navegador internet e ir al URL del administrador mostrado al final del log
DriveMeca instalando y configurando Magento 2 en Linux Ubuntu Xenial Server

-Entramos con la cuenta de administrador creada en pasos anteriores
DriveMeca instalando y configurando Magento 2 en Linux Ubuntu Xenial Server

-Y ya estamos en la consola o backend de Magento 2. A partir de aquí podemos crear categorías, cambiar el idioma de la tienda, políticas de precios, etc
DriveMeca instalando y configurando Magento 2 en Linux Ubuntu Xenial Server


Creamos tareas Cron para Magento 2 en Linux Ubuntu Xenial

-Muy importante (y es la razon del mensaje mostrado en la esquina superior derecha del backend) es crear las tareas de cron
sudo crontab -e
*/1 * * * * www-data php /var/www/html/magento2/bin/magento cron:run
*/1 * * * * www-data php /var/www/html/magento2/update/cron.php
*/1 * * * * www-data php /var/www/html/magento2/bin/magento setup:cron:run

-Reiniciamos el servicio de cron para que tome los cambios
sudo systemctl restart cron

-Esta es nuestra tienda en linea creada con Magento 2, muy básica, ciertamente, pero en ti esta agrandarla
DriveMeca instalando y configurando Magento 2 en Linux Ubuntu Xenial Server


Artículos recomendadosComo instalar Nextcloud en Linux Centos / Ubuntu Server
                                           Como instalar Clamav y usarlo en Linux paso a paso
                                           Como instalar Wine en Ubuntu
                                           Como activar los efectos de capas de Gimp en Ubuntu
                                           Como crear una imagen transparente en Gimp
                                           Como instalar MySQL Workbench en Linux Ubuntu paso a paso


Ya estamos listos para organizar nuestra tienda en linea y quien sabe, a lo mejor ser el próximo Amazon. Te gusto el articulo? hazme un favor, compártelo en tus redes sociales (compartir es sexy). Escríbeme en los comentarios aquí debajo y pasa la voz compartiendo el tweet.
Sígueme en twitter google+facebook o email y podrás estar enterado de todas mis publicaciones.
Disfrútenlo.

Share/Bookmark

Como instalar Nextcloud en Linux Centos / Ubuntu Server

DriveMeca instalando Nextcloud en Linux Ubuntu o Linux Centos paso a paso
Hablar de la nube o cloud hoy en dia es común aunque aun hay personas que siguen pensando que el tener su propio servidor cloud es algo solo de empresas o gente con buen poder adquisitivo. Esto no necesariamente es cierto ya que hay muchas soluciones para todos los gustos y como este blog trata temas de opensource hoy te enseñare como tener tu propio cloud server GRATIS.
Para esto usaremos Nextcloud y mostrare dos escenarios; uno instalándolo en un Linux Centos 7 y el otro instalándolo en un Linux Ubuntu Xenial Server terminando con la instalación de un cliente Nextcloud en Linux Ubuntu MATE (aunque puedes instalarlo en cualquier Ubuntu Desktop reciente).
Para los que no lo sepan, Nextcloud es un fork o continuación bajo otro nombre/empresa del popular ownCloud continuando con la facilidad de uso ademas de otras características ya conocidas de esta solución cloud.


Instalamos Nextcloud en Linux Centos


Requerimientos para instalar Nextcloud en Linux Centos


-Si ya tienes LAMP en tu servidor Linux Centos, muchos de los requerimientos ya estaran instalados faltandonos uno que otro. Abrimos una consola e instalamos
yum install httpd php php-mysql sqlite php-dom php-mbstring php-gd php-pdo php-json php-xml php-zip php-gd curl php-curl php-pear wget mariadb-server mariadb bzip2 firewalld

-Instalamos repositorio Epel. Necesario para instalar php-mcrypt

-Instalamos
yum install php-mcrypt

Activamos Apache y PHP para NextCloud en Linux Centos 7

-Modificamos php.ini para permitir archivos de máximo 64MB
vi /etc/php.ini
post_max_size = 64M
upload_max_filesize = 64M

-Reiniciamos Apache para que tome los cambios de PHP
systemctl restart httpd

Activamos y configuramos MariaDB para NextCloud en Linux Centos 7

-En nuestra configuracion LAMP ya debemos tener el servidor MariaDB activo y listo para crear dbs

-Creamos la db para nextcloud con un usuario con permisos para solo esta base de datos. Cambiamos password por nuestra propia contraseña para el usuario ncusr
mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 5.5.47-MariaDB MariaDB Server

Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> create database nextcloudb;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all on nextcloudb.* to 'ncusr'@'localhost' identified by 'password';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> exit;
Bye


Creamos políticas de firewall para NextCloud en Linux Centos 7

-Activamos el firewall y lo ejecutamos
systemctl enable firewalld
systemctl start firewalld

-Creamos los permisos para los protocolos http (80) y https (443). De esto depende que podamos conectarnos via web desde otro equipo
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload

Instalamos NextCloud en Linux Centos 7

-Nos movemos al directorio html de apache y descargamos la ultima version de Nextcloud, en este momento la 9.0.53
cd /var/www/html
wget -c https://download.nextcloud.com/server/releases/nextcloud-9.0.53.tar.bz2

-Descomprimimos el archivo
tar jxvf nextcloud-9.0.53.tar.bz2

-Damos permisos recursivamente a la carpeta nextcloud
chown -R apache.apache nextcloud/


Configuramos NextCloud en Linux Centos 7

-Abrimos un browser y navegamos a http://ip-servidor-de-nextcloud/nextcloud Creamos una cuenta de administrador con su contraseña. El proceso de instalación nos dirá que tan fuerte es nuestra contraseña con un código de colores, a mas llena la barra inferior, mas poderosa.
DriveMeca instalando Nextcloud en Linux Ubuntu o Linux Centos paso a paso

-Damos click a Storage & database y se mostraran mas opciones. Escogemos MySQL/MariaDB y escribimos los datos de la db creada anteriormente, usuario (ncusr), password (la contraseña que hayas elegido al crear la db), nextcloudb (nombre de la db creada), localhost (servidor local de mariadb) y damos click al botón Finish setup. Esperamos unos minutos mientras se termina la configuracion
DriveMeca instalando Nextcloud en Linux Ubuntu o Linux Centos paso a paso

-Nos recibe Nextcloud invitándonos a descargar clientes para conectarnos, pero esto lo veremos mas adelante. Cerramos la ventana de clientes dando click a su x superior derecha
DriveMeca instalando Nextcloud en Linux Ubuntu o Linux Centos paso a paso

-La interfaz sera familiar a los que ya habían usado ownCloud (es idéntica). De tipo minimalista
DriveMeca instalando Nextcloud en Linux Ubuntu o Linux Centos paso a paso

-Cuenta con un menú superior izquierdo con acciones (ficheros, actividad, galería, aplicaciones) por medio de las cuales podremos cambiarnos para realizar otras tareas
DriveMeca instalando Nextcloud en Linux Ubuntu o Linux Centos paso a paso

-En la misma barra azul, pero a la derecha, veremos el menú de usuario. En el caso del admin tendremos una opción extra Admin. Damos click a Personal
DriveMeca instalando Nextcloud en Linux Ubuntu o Linux Centos paso a paso

-En personal podemos activar nuestra foto de perfil (máximo 20 mb de tamaño), nuestro email (para que nos lleguen notificaciones y otras tareas), podemos cambiar nuestra contraseña y lo mas importante, cambiar el idioma a Español
DriveMeca instalando Nextcloud en Linux Ubuntu o Linux Centos paso a paso

-Así se ve en nuestro Español, genial cierto?
DriveMeca instalando Nextcloud en Linux Ubuntu o Linux Centos paso a paso

-Si vamos a Administración en el menú de usuario veremos muchas opciones para personalizar Nextcloud. Sugiero tener cuidado y solo hacer cambios si sabes lo que estas haciendo. Una buena practica es anotar que cambiaste, así si se presentan errores después, ya sabes porque fue
DriveMeca instalando Nextcloud en Linux Ubuntu o Linux Centos paso a paso


Creando cuentas de usuario en Nextcloud

-En el menú de usuario vamos a Usuarios. Allí creamos un usuario sin privilegios, solo necesitamos escribir en las cajas de texto superiores un nombre y su contraseña
DriveMeca instalando Nextcloud en Linux Ubuntu o Linux Centos paso a paso

-Como sera un usuario normal, creamos un grupo dándole click a añadir grupo
DriveMeca instalando Nextcloud en Linux Ubuntu o Linux Centos paso a paso

-Ya tenemos dos usuarios, el actual administrador y un usuario del grupo usuarios (creado en el paso anterior) sin privilegios con una cuota de 10GB de disco duro
DriveMeca instalando Nextcloud en Linux Ubuntu o Linux Centos paso a paso


Instalamos el cliente ownCloud para Nextcloud en Linux Ubuntu

-Hay varias formas de instalar cl cliente pero la mas sencilla ademas de conveniente es por medio de un ppa en Linux Ubuntu. Asi cuando haya una nueva version, sera sencillo actualizarlo. Comenzamos descargando la llave del repositorio

cd /tmp
wget http://download.opensuse.org/repositories/isv:ownCloud:desktop/Ubuntu_16.04/Release.key

-Agregamos la llave y actualizamos repositorios
sudo apt-key add - < Release.key
sudo apt update

-Creamos el repositorio owncloud-client en /etc/apt/sources.list.d de Linux Ubuntu
sudo sh -c "echo 'deb http://download.opensuse.org/repositories/isv:/ownCloud:/desktop/Ubuntu_16.04/ /' >> /etc/apt/sources.list.d/owncloud-client.list"

-Actualizamos e instalamos el cliente de ownCloud para Nextcloud
sudo apt update
sudo apt install owncloud-client

-En este ejemplo lo instale en un Linux Ubuntu MATE pero funciona igual en cualquier sabor actual de Linux Ubuntu. Ejecutamos el cliente owncloud-client (en Ubuntu MATE esta en el menú Aplicaciones - Accesorios)
DriveMeca instalando Nextcloud en Linux Ubuntu o Linux Centos paso a paso

-Nos saldrá una ventana donde debemos escribir el URL de nuestro servidor Nextcloud como si lo estuviéramos accediendo via web (http://ip-servidor/nextcloud/). Damos click al botón Next
DriveMeca instalando Nextcloud en Linux Ubuntu o Linux Centos paso a paso

-En el siguiente paso nos pedirá un usuario con su contraseña para conectarnos. Escribimos los datos del usuario creado (el que no tiene permisos de administrador). Damos click al botón Next
DriveMeca instalando Nextcloud en Linux Ubuntu o Linux Centos paso a paso

-Se nos pedirá confirmar que queremos sincronizar con Nexcloud y en que carpeta. El default es todo en la carpeta owncloud. Damos click al botón Conectar
DriveMeca instalando Nextcloud en Linux Ubuntu o Linux Centos paso a paso

-Ya podemos abrir nuestra cuenta, ya sea via un navegador o en una carpeta local con Nautilus. Elegimos carpeta local dándole click (cerramos el asistente dando click al botón Finish)
DriveMeca instalando Nextcloud en Linux Ubuntu o Linux Centos paso a paso

-En Nautilus veremos nuestra nueva carpeta bajo Marcadores, allí podremos copiar lo que queramos se almacene en nuestro propio servidor cloud
DriveMeca instalando Nextcloud en Linux Ubuntu o Linux Centos paso a paso

-Pero eso no es todo, el cliente nos crea un botón en nuestra barra de Ubuntu desde donde también podremos abrir Nautilus, ver cambios recientes entre otras opciones. Damos click a Configuraciones
DriveMeca instalando Nextcloud en Linux Ubuntu o Linux Centos paso a paso

-Nos saldrá una ventana donde podemos cambiar varias opciones del comportamiento del cliente
DriveMeca instalando Nextcloud en Linux Ubuntu o Linux Centos paso a paso


Instalando NextCloud en Linux Ubuntu Server


Requerimientos para Nextcloud en Linux Ubuntu Xenial Server




-Abrimos una consola e instalamos. Si ya tienes LAMP la mayoría de paquetes ya estarán instalados. Para este ejemplo cabe aclarar que usaremos PHP 7
sudo apt install libxml2-dev php7.0-zip php7.0-dom php7.0-xmlwriter php7.0-xmlreader php7.0-gd php7.0-curl php7.0-mbstring

-Nos cambiamos al directorio html de apache y descargamos nextcloud en su ultima versión, en este caso la 9.0.53
cd /var/www/html
sudo wget -c https://download.nextcloud.com/server/releases/nextcloud-9.0.53.tar.bz2

-Descomprimimos el archivo
sudo tar -vxjf nextcloud-9.0.53.tar.bz2

-Creamos un script para crear carpetas y modificar permisos (gracias a la comunidad por este aporte)
sudo vi nextcloud_permissions.sh
#!/bin/bash

ocpath='/var/www/html/nextcloud'

htuser='www-data'

htgroup='www-data'

rootuser='root'


printf "Creating possible missing Directories\n"

mkdir -p $ocpath/data

mkdir -p $ocpath/assets

mkdir -p $ocpath/updater


printf "chmod Files and Directories\n"

find ${ocpath}/ -type f -print0 | xargs -0 chmod 0640

find ${ocpath}/ -type d -print0 | xargs -0 chmod 0750


printf "chown Directories\n"

chown -R ${rootuser}:${htgroup} ${ocpath}/

chown -R ${htuser}:${htgroup} ${ocpath}/apps/

chown -R ${htuser}:${htgroup} ${ocpath}/assets/

chown -R ${htuser}:${htgroup} ${ocpath}/config/

chown -R ${htuser}:${htgroup} ${ocpath}/data/

chown -R ${htuser}:${htgroup} ${ocpath}/themes/

chown -R ${htuser}:${htgroup} ${ocpath}/updater/


chmod +x ${ocpath}/occ


printf "chmod/chown .htaccess\n"

if [ -f ${ocpath}/.htaccess ]

then

 chmod 0644 ${ocpath}/.htaccess

 chown ${rootuser}:${htgroup} ${ocpath}/.htaccess

fi

if [ -f ${ocpath}/data/.htaccess ]

then

 chmod 0644 ${ocpath}/data/.htaccess

 chown ${rootuser}:${htgroup} ${ocpath}/data/.htaccess

fi

-Activamos permisos y ejecutamos el script
sudo chmod +x nextcloud_permissions.sh
sudo ./nextcloud_permissions.sh

-Creamos la configuracion de nextcloud en apache
sudo vi /etc/apache2/sites-available/nextcloud.conf
Alias /nextcloud "/var/www/html/nextcloud/"

<Directory /var/www/html/nextcloud/>
 Options +FollowSymlinks
 AllowOverride All

<IfModule mod_dav.c>
 Dav off
</IfModule>

SetEnv HOME /var/www/html/nextcloud
SetEnv HTTP_HOME /var/www/html/nextcloud

</Directory>

-Hacemos un link simbólico
sudo ln -s /etc/apache2/sites-available/nextcloud.conf /etc/apache2/sites-enabled/nextcloud.conf

-Activamos varios módulos necesarios para Nextcloud en apache
sudo a2enmod headers
sudo a2enmod env
sudo a2enmod dir
sudo a2enmod ssl
sudo a2ensite default-ssl

-Reiniciamos apache para que tome los cambios
sudo systemctl restart apache2

-Creamos la db de Nextcloud en MariaDB junto a un usuario con su contraseña (cambiamos password por nuestra contraseña)
sudo mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 51
Server version: 10.0.25-MariaDB-0ubuntu0.16.04.1 Ubuntu 16.04

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> CREATE DATABASE nextcloudb;
Query OK, 1 row affected (0.01 sec)

MariaDB [(none)]> CREATE USER ncusr@localhost IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.02 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON nextcloudb.* TO ncusr@localhost;
Query OK, 0 rows affected (0.01 sec)

MariaDB [(none)]> exit;
Bye

-Abrimos un browser y navegamos a nuestro servidor Ubuntu Nextcloud http://ip-servidor/nextcloud Allí creamos un usuario con su contraseña (tendrá permisos de administrador), esta contraseña el asistente nos mostrara con una barra de color inferior que tan segura es
DriveMeca instalando Nextcloud en Linux Ubuntu o Linux Centos paso a paso

-Un poco mas abajo damos click a Storage & database. Los campos a llenar son usuario (ncusr), password (la contraseña usada al crear el usuario en mariadb), base de datos (nextcloudb), servidor de mariadb (localhost). Damos click al botón Finish setup
DriveMeca instalando Nextcloud en Linux Ubuntu o Linux Centos paso a paso

-Nos recibe Nextcloud con una invitación a descargar clientes (desktop, android y IOS). Cerramos la ventana de clientes dándole click a su X superior derecha. Para instalar el cliente Nextcloud mira arriba en este articulo el paso a paso en Linux Ubuntu MATE (aunque sirve igual para otros sabores de Ubuntu)
DriveMeca instalando Nextcloud en Linux Ubuntu o Linux Centos paso a paso


Artículos recomendadosComo instalar MySQL Workbench en Linux Ubuntu paso a paso
                                           Instalación modo gráfico en Linux Centos
                                           Como instalar Adminer en Linux Centos paso a paso
                                           Como administrar usuarios en Centos
                                           Como instalar Clamav y usarlo en Linux paso a paso
                                           4 aplicaciones Ubuntu recomendadas para tu día a día


Nextcloud es una alternativa para tener tu servidor cloud local y GRATIS que no debes desaprovechar. Ahora que llegaste hasta aqui, que tal te ha parecido esta guía en español paso a paso y con screenshoots. Ya conocías Nextcloud, usas otra alternativa? Te gusto el articulo? hazme un favor, compártelo en tus redes sociales (compartir es sexy). Escríbeme en los comentarios aquí debajo y pasa la voz compartiendo el tweet.

Sígueme en twitter google+facebook o email y podrás estar enterado de todas mis publicaciones.
Disfrútenlo.

Share/Bookmark

Como instalar Clamav y usarlo en Linux paso a paso

DriveMeca instalando ClamAV y usandolo en Linux paso a paso
Nunca tendremos la certeza de si un archivo tiene o no virus y mas hoy en el día en que Internet, la red de redes, juega un papel importante en las comunicaciones diarias de todos. Uso Linux me dirás, muy bien, te felicito, pero aun nuestro OS favorito puede sufrir un ataque por un virus, troyano, etc y es en ese momento que tenemos que estar preparados para poder salir del problema sin inconvenientes. Como?, sencillo, usando Clamav, un popular antivirus multiplataforma (ya dije que es opensource?) el cual hoy te mostrare paso a paso como instalarlo y configurarlo en varias distribuciones Linux populares del momento. Para este tutorial en español he escogido Centos / RedHat y Ubuntu desktop / Ubuntu Server (para mis, las mas usadas en el ámbito empresarial) pero esto no quiere decir que la configuracion en otras no sea algo parecida.


Requerimientos para instalar Clamav

  • Linux Ubuntu Desktop o Linux Ubuntu server
  • Linux Centos 7.x o Linux RedHat 7.x
  • Conectividad a internet


Todos los comandos se ejecutaran desde una consola y debemos tener acceso a la cuenta root o privilegios de root independientemente de la distro que usemos

Instalamos Clamav en Centos / RedHat

-Instalamos el repositorio Epel
yum install epel-release

-Instalamos Clamav
yum install clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd

-Creeríamos que si están los rpms, clamav debería funcionar al instalarlo. No es asi, debemos hacer unos cambios. Primero copiamos el conf de clamd.conf a /etc/clamd.d (donde normalmente lo busca el daemon)
cp /usr/share/clamav/template/clamd.conf /etc/clamd.d/clamd.conf


Configuramos Clamd y Freshclam en Linux Ubuntu

-Editamos el conf, normalmente los valores por default son suficientes pero listare los importantes. Es buena practica verificarlos todos y si necesitamos habilitar o deshabilitar alguno, lo hagamos documentando que hicimos para mas adelante poder ver donde hay un posible error
vi /etc/clamd.d/clamd.conf
#Comentamos esta linea para poder ejecutarlo
#Example

LogFile /var/log/clamd
LogFileMaxSize 2M
LogTime yes
LogRotate yes
ExtendedDetectionInfo yes
#Usuario que ejecutara clamav
User clamscan
#Donde se creara el socket
LocalSocket /var/run/clamd.scan/clamd.sock
FixStaleSocket yes
SelfCheck 600

-Editamos el conf de freshclam, el servicio encargado de descargar las firmas de virus actualizadas para el uso de clamav
vi /etc/freshclam.conf
#
#Example
DatabaseDirectory /var/lib/clamav
UpdateLogFile /var/log/freshclam.log
LogFileMaxSize 2M
LogTime yes
LogRotate yes
DatabaseOwner clamupdate

-Cambiamos el dueño y grupo (owner y group) del conf para que pueda ser leído por el servicio
chown clamscan.clamscan /etc/freshclam.conf

-Verificamos que el archivo para ejecutar el servicio exista y tenga el siguiente contenido
vi /usr/lib/systemd/system/clam-freshclam.service
[Unit]
Description = freshclam scanner
After = network.target
[Service]
Type = forking
ExecStart = /usr/bin/freshclam -d -c 4
Restart = on-failure
PrivateTmp = true
[Install]
WantedBy=multi-user.target

-Activamos el servicio de freshclam (clam-freshclam) y lo iniciamos. Apenas se ejecuta, descargara las firmas de virus actualizadas a /var/lib/clamav
systemctl enable clam-freshclam
systemctl start clam-freshclam

-Verificamos el servicio este ejecutándose correctamente
systemctl status clam-freshclam
● clam-freshclam.service - freshclam scanner
   Loaded: loaded (/usr/lib/systemd/system/clam-freshclam.service; enabled; vendor preset: disabled)
   Active: active (running) since sáb 2016-07-30 19:33:41 COT; 43s ago
  Process: 17245 ExecStart=/usr/bin/freshclam -d -c 4 (code=exited, status=0/SUCCESS)
 Main PID: 17246 (freshclam)
   CGroup: /system.slice/clam-freshclam.service
           └─17246 /usr/bin/freshclam -d -c 4

jul 30 19:33:41 cen7.test.com systemd[1]: Starting freshclam scanner...
jul 30 19:33:41 cen7.test.com freshclam[17246]: freshclam daemon 0.99.2 (OS: linux-gnu, ARCH: x86_64, CPU: x86_64)
jul 30 19:33:41 cen7.test.com freshclam[17246]: ClamAV update process started at Sat Jul 30 19:33:41 2016
jul 30 19:33:41 cen7.test.com systemd[1]: Started freshclam scanner.
jul 30 19:33:41 cen7.test.com freshclam[17246]: main.cvd is up to date (version: 57, sigs: 4218790, f-level: 60, builder: amishhammer)
jul 30 19:34:09 cen7.test.com freshclam[17246]: getfile: daily-21724.cdiff not found on database.clamav.net (IP: 128.199.133.36)
jul 30 19:34:09 cen7.test.com freshclam[17246]: getpatch: Can't download daily-21724.cdiff from database.clamav.net

-Corregimos el archivo de ejecución del servicio clamd. En el rpm viene con .@ y no lo encontrara sino lo arreglamos
mv /usr/lib/systemd/system/clamd@.service /usr/lib/systemd/system/clamd.service

-Verificamos el archivo de ejecusion del servicio de clamd, debe contener lo siguiente
vi /usr/lib/systemd/system/clamd.service
[Unit]
Description = clamd scanner (%i) daemon
After = syslog.target nss-lookup.target network.target

[Service]
Type = simple
ExecStart = /usr/sbin/clamd -c /etc/clamd.d/clamd.conf --foreground=yes
Restart = on-failure
PrivateTmp = true

[Install]
WantedBy=multi-user.target

-Creamos un archivo para los logs de clamd y le damos permisos de clamscan (owner y group)
touch /var/log/clamd
chown clamscan.clamscan /var/log/clamd

-Activamos el servicio clamd y lo ejecutamos
systemctl enable clamd
systemctl start clamd

-Verificamos este ejecutandose correctamente
systemctl status clamd
● clamd.service - clamd scanner () daemon
   Loaded: loaded (/usr/lib/systemd/system/clamd.service; enabled; vendor preset: disabled)
   Active: active (running) since sáb 2016-07-30 19:51:45 COT; 4s ago
 Main PID: 17408 (clamd)
   CGroup: /system.slice/clamd.service
           └─17408 /usr/sbin/clamd -c /etc/clamd.d/clamd.conf --foreground=yes

jul 30 19:51:45 cen7.test.com systemd[1]: Started clamd scanner () daemon.
jul 30 19:51:45 cen7.test.com systemd[1]: Starting clamd scanner () daemon...
jul 30 19:51:45 cen7.test.com clamd[17408]: Received 0 file descriptor(s) from systemd.
jul 30 19:51:45 cen7.test.com clamd[17408]: clamd daemon 0.99.2 (OS: linux-gnu, ARCH: x86_64, CPU: x86_64)
jul 30 19:51:45 cen7.test.com clamd[17408]: Running as user clamscan (UID 995, GID 993)
jul 30 19:51:45 cen7.test.com clamd[17408]: Log file size limited to 2097152 bytes.
jul 30 19:51:45 cen7.test.com clamd[17408]: Reading databases from /var/lib/clamav
jul 30 19:51:45 cen7.test.com clamd[17408]: Not loading PUA signatures.
jul 30 19:51:45 cen7.test.com clamd[17408]: Bytecode: Security mode set to "TrustSigned".

-Es buena politica verificar logs para certificar que todo este ejecutandose correctamente. Comenzamos mirando el log de freshclam para estar seguros de que se descargaron las firmas de virus
cat /var/log/freshclam.log
Sat Jul 30 19:33:41 2016 -> --------------------------------------
Sat Jul 30 19:33:41 2016 -> freshclam daemon 0.99.2 (OS: linux-gnu, ARCH: x86_64, CPU: x86_64)
Sat Jul 30 19:33:41 2016 -> ClamAV update process started at Sat Jul 30 19:33:41 2016
Sat Jul 30 19:33:41 2016 -> main.cvd is up to date (version: 57, sigs: 4218790, f-level: 60, builder: amishhammer)
Sat Jul 30 19:34:09 2016 -> WARNING: getfile: daily-21724.cdiff not found on database.clamav.net (IP: 128.199.133.36)
Sat Jul 30 19:34:09 2016 -> WARNING: getpatch: Can't download daily-21724.cdiff from database.clamav.net
Sat Jul 30 19:34:40 2016 -> nonblock_connect: connect timing out (30 secs)
Sat Jul 30 19:34:40 2016 -> Can't connect to port 80 of host database.clamav.net (IP: 104.131.196.175)
Sat Jul 30 19:34:40 2016 -> Trying host database.clamav.net (69.12.162.28)...
Sat Jul 30 19:34:40 2016 -> WARNING: getfile: daily-21724.cdiff not found on database.clamav.net (IP: 69.12.162.28)
Sat Jul 30 19:34:40 2016 -> WARNING: getpatch: Can't download daily-21724.cdiff from database.clamav.net
Sat Jul 30 19:34:40 2016 -> Trying host database.clamav.net (64.22.33.90)...
Sat Jul 30 19:34:41 2016 -> WARNING: getfile: daily-21724.cdiff not found on database.clamav.net (IP: 64.22.33.90)
Sat Jul 30 19:34:41 2016 -> WARNING: getpatch: Can't download daily-21724.cdiff from database.clamav.net
Sat Jul 30 19:34:41 2016 -> WARNING: Incremental update failed, trying to download daily.cvd
Sat Jul 30 19:34:59 2016 -> Downloading daily.cvd [100%]
Sat Jul 30 19:35:00 2016 -> daily.cvd updated (version: 21999, sigs: 468291, f-level: 63, builder: neo)
Sat Jul 30 19:35:01 2016 -> Downloading bytecode-279.cdiff [100%]
Sat Jul 30 19:35:01 2016 -> Downloading bytecode-280.cdiff [100%]
Sat Jul 30 19:35:02 2016 -> Downloading bytecode-281.cdiff [100%]
Sat Jul 30 19:35:02 201apt-get install clamav-daemon6 -> Downloading bytecode-282.cdiff [100%]
Sat Jul 30 19:35:03 2016 -> Downloading bytecode-283.cdiff [100%]
Sat Jul 30 19:35:03 2016 -> bytecode.cld updated (version: 283, sigs: 53, f-level: 63, builder: neo)
Sat Jul 30 19:35:07 2016 -> Database updated (4687134 signatures) from database.clamav.net (IP: 194.8.197.22)
Sat Jul 30 19:35:07 2016 -> --------------------------------------

-Miramos el contenido del log de clamd
cat /var/log/clamd 
Sat Jul 30 19:53:34 2016 -> +++ Started at Sat Jul 30 19:53:34 2016
Sat Jul 30 19:53:34 2016 -> Received 0 file descriptor(s) from systemd.
Sat Jul 30 19:53:34 2016 -> clamd daemon 0.99.2 (OS: linux-gnu, ARCH: x86_64, CPU: x86_64)
Sat Jul 30 19:53:34 2016 -> Running as user clamscan (UID 995, GID 993)
Sat Jul 30 19:53:34 2016 -> Log file size limited to 2097152 bytes.
Sat Jul 30 19:53:34 2016 -> Reading databases from /var/lib/clamav
Sat Jul 30 19:53:34 2016 -> Not loading PUA signatures.
Sat Jul 30 19:53:34 2016 -> Bytecode: Security mode set to "TrustSigned".


Instalamos Clamav en Linux Ubuntu server o Linux Ubuntu Desktop

-Abrimos una consola e instalamos clamav
sudo apt install clamav-daemon


Instalamos Clamav en Linux Ubuntu

-Verificamos la configuracion de freshclam. Los defaults por lo general funcionaran muy bien
sudo vi /etc/clamav/freshclam.conf

-Descargamos por primera vez las firmas de virus usadas por clamav. Sin las firmas, clamav no ejecutara y mostrara un error comentandolo
sudo freshclam
ClamAV update process started at Mon Aug  1 12:42:01 2016
WARNING: Your ClamAV installation is OUTDATED!
WARNING: Local version: 0.99 Recommended version: 0.99.2
DON'T PANIC! Read http://www.clamav.net/support/faq
Downloading main.cvd [100%]
main.cvd updated (version: 57, sigs: 4218790, f-level: 60, builder: amishhammer)
Downloading daily.cvd [100%]
daily.cvd updated (version: 22009, sigs: 473001, f-level: 63, builder: neo)
Downloading bytecode.cvd [100%]
bytecode.cvd updated (version: 283, sigs: 53, f-level: 63, builder: neo)
Database updated (4691844 signatures) from db.local.clamav.net (IP: 200.236.31.1)
WARNING: Clamd was NOT notified: Can't connect to clamd through /var/run/clamav/clamd.ctl: No such file or directory

-Verificamos ya tengamos las firmas de virus descargadas
ls -la /var/lib/clamav/
total 117696
drwxr-xr-x  2 clamav clamav      4096 ago  1 12:45 .
drwxr-xr-x 41 root   root        4096 ago  1 11:48 ..
-rw-r--r--  1 clamav clamav     86357 ago  1 12:45 bytecode.cvd
-rw-r--r--  1 clamav clamav  11265457 ago  1 12:44 daily.cvd
-rw-r--r--  1 clamav clamav 109143933 ago  1 12:44 main.cvd
-rw-------  1 clamav clamav       260 ago  1 12:45 mirrors.dat

-Activamos el servicio de freshclam (clamav-freshclam) y lo ejecutamos
sudo systemctl enable clamav-freshclam
sudo systemctl start clamav-freshclam

-Verificamos se este ejecutando servicio de freshclam
sudo systemctl status clamav-freshclam
● clamav-freshclam.service - ClamAV virus database updater
   Loaded: loaded (/lib/systemd/system/clamav-freshclam.service; enabled; vendor
   Active: active (running) since lun 2016-08-01 12:23:05 COT; 16s ago
     Docs: man:freshclam(1)
           man:freshclam.conf(5)
           http://www.clamav.net/lang/en/doc/
 Main PID: 4424 (freshclam)
    Tasks: 1
   Memory: 4.7M
      CPU: 246ms
   CGroup: /system.slice/clamav-freshclam.service
           └─4424 /usr/bin/freshclam -d --foreground=true

ago 01 12:23:05 ubuser systemd[1]: Started ClamAV virus database updater.
ago 01 12:23:05 ubuser freshclam[4424]: ClamAV update process started at Mon Aug
ago 01 12:23:05 ubuser freshclam[4424]: WARNING: Your ClamAV installation is OUT
ago 01 12:23:05 ubuser freshclam[4424]: WARNING: Local version: 0.99 Recommended
ago 01 12:23:05 ubuser freshclam[4424]: DON'T PANIC! Read http://www.clamav.net/

-Activamos y ejecutamos el servicio de clamav (clamav-daemon)
sudo systemctl enable clamav-daemon
sudo systemctl start clamav-daemon

-Verificamos se este ejecutandose el servicio
sudo systemctl status clamav-daemon
● clamav-daemon.service - Clam AntiVirus userspace daemon
   Loaded: loaded (/lib/systemd/system/clamav-daemon.service; enabled; vendor pr
   Active: active (running) since lun 2016-08-01 12:46:38 COT; 4s ago
     Docs: man:clamd(8)
           man:clamd.conf(5)
           http://www.clamav.net/lang/en/doc/
 Main PID: 4630 (clamd)
    Tasks: 1
   Memory: 244.2M
      CPU: 4.400s
   CGroup: /system.slice/clamav-daemon.service
           └─4630 /usr/sbin/clamd --foreground=true

ago 01 12:46:38 ubuser systemd[1]: Started Clam AntiVirus userspace daemon.

-Como buena politica miramos logs, en este caso el de clamav para verificar si hay errores o no se pudo cargar algun modulo
cat /var/log/clamav/clamav.log
Mon Aug  1 12:46:39 2016 -> +++ Started at Mon Aug  1 12:46:39 2016
Mon Aug  1 12:46:39 2016 -> Received 1 file descriptor(s) from systemd.
Mon Aug  1 12:46:39 2016 -> clamd daemon 0.99 (OS: linux-gnu, ARCH: x86_64, CPU: x86_64)
Mon Aug  1 12:46:39 2016 -> Running as user clamav (UID 111, GID 117)
Mon Aug  1 12:46:39 2016 -> Log file size limited to 4294967295bytes.
Mon Aug  1 12:46:39 2016 -> Reading databases from /var/lib/clamav
Mon Aug  1 12:46:39 2016 -> Not loading PUA signatures.
Mon Aug  1 12:46:39 2016 -> Bytecode: Security mode set to "TrustSigned".
Mon Aug  1 12:46:45 2016 -> Loaded 4686446 signatures.
Mon Aug  1 12:46:47 2016 -> TCP: No tcp AF_INET/AF_INET6 SOCK_STREAM socket received from systemd.
Mon Aug  1 12:46:47 2016 -> LOCAL: Received AF_UNIX SOCK_STREAM socket from systemd.
Mon Aug  1 12:46:47 2016 -> Limits: Global size limit set to 104857600 bytes.
Mon Aug  1 12:46:47 2016 -> Limits: File size limit set to 26214400 bytes.
Mon Aug  1 12:46:47 2016 -> Limits: Recursion level limit set to 16.
Mon Aug  1 12:46:47 2016 -> Limits: Files limit set to 10000.
Mon Aug  1 12:46:47 2016 -> Limits: MaxEmbeddedPE limit set to 10485760 bytes.
Mon Aug  1 12:46:47 2016 -> Limits: MaxHTMLNormalize limit set to 10485760 bytes.
Mon Aug  1 12:46:47 2016 -> Limits: MaxHTMLNoTags limit set to 2097152 bytes.
Mon Aug  1 12:46:47 2016 -> Limits: MaxScriptNormalize limit set to 5242880 bytes.
Mon Aug  1 12:46:47 2016 -> Limits: MaxZipTypeRcg limit set to 1048576 bytes.
Mon Aug  1 12:46:47 2016 -> Limits: MaxPartitions limit set to 50.
Mon Aug  1 12:46:47 2016 -> Limits: MaxIconsPE limit set to 100.
Mon Aug  1 12:46:47 2016 -> Limits: PCREMatchLimit limit set to 10000.
Mon Aug  1 12:46:47 2016 -> Limits: PCRERecMatchLimit limit set to 5000.
Mon Aug  1 12:46:47 2016 -> Limits: PCREMaxFileSize limit set to 26214400.
Mon Aug  1 12:46:47 2016 -> Archive support enabled.
Mon Aug  1 12:46:47 2016 -> Algorithmic detection enabled.
Mon Aug  1 12:46:47 2016 -> Portable Executable support enabled.
Mon Aug  1 12:46:47 2016 -> ELF support enabled.
Mon Aug  1 12:46:47 2016 -> Mail files support enabled.
Mon Aug  1 12:46:47 2016 -> OLE2 support enabled.
Mon Aug  1 12:46:47 2016 -> PDF support enabled.
Mon Aug  1 12:46:47 2016 -> SWF support enabled.
Mon Aug  1 12:46:47 2016 -> HTML support enabled.
Mon Aug  1 12:46:47 2016 -> Self checking every 3600 seconds.


Usando Clamav en Linux Ubuntu de forma gráfica

-Aunque en la mayoría de los casos usaremos clamav desde linea de comandos, hay ocasiones en que lo instalaremos en nuestra estación de trabajo o en un Linux Ubuntu Server con interfaz gráfica. Para estas oportunidades es que podemos usar clamtk. Lo instalamos desde linea de comandos
sudo apt install clamtk clamtk-nautilus

-Después de instalado podemos ejecutarlo, ya sea desde linea de comandos (sudo clamtk), Unity o desde el menú de MATE como en la siguiente imagen podrás ver
DriveMeca instalando ClamAV y usandolo en Linux paso a paso

-La ventana principal de Clamtk muestra todas las opciones (o inicio de opciones) en un único lugar. Lo primero que debemos hacer es verificar su configuracion dando click al botón Configuración
DriveMeca instalando ClamAV y usandolo en Linux paso a paso

-En Configuración veremos varias opciones, unas con valores por default y otras que podemos activar. Regresamos a la ventana principal dando click al botón Back
DriveMeca instalando ClamAV y usandolo en Linux paso a paso

-En la parte inferior de la ventana principal veremos en la sección Análisis los botones para hacer una búsqueda de virus. En este ejemplo doy click al botón Analizar una carpeta, elegimos y se ejecuta. Al final debe salir una ventana diciéndonos que termino y no se encontraron amenazas (virus)
DriveMeca instalando ClamAV y usandolo en Linux paso a paso


Usando Clamav desde linea de comandos en Linux (cualquier distribución)

-A veces necesitamos un rápido chequeo y no esperar a que nuestro servicio detecte un problema. Para esto podemos ejecutar desde linea de comandos clamscan y pasarle el directorio a verificar como parámetro. Una forma rápida y conveniente de verificar archivos en una carpeta Linux
clamscan -v Documentos/
..
..
Scanning Documentos/Guane.docx
Documentos/Guane.docx: OK

----------- SCAN SUMMARY -----------
Known viruses: 4686446
Engine version: 0.99
Scanned directories: 1
Scanned files: 55
Infected files: 0
Data scanned: 306.31 MB
Data read: 527.63 MB (ratio 0.58:1)
Time: 31.175 sec (0 m 31 s)

Verificando versión de Clamav

-Abrimos una consola y ejecutamos
clamscan -V
ClamAV 0.99/22010/Mon Aug  1 14:12:44 2016

Artículos recomendadosVerificando si una ip publica esta reportada por spam
                                            Como bloquear una ip o email en postfix
                                            Como instalar Linux Centos 7 paso a paso
                                            Configurando servicios en Linux Centos / RedHat
                                            Como instalar y configurar Ubuntu Server 16.04 LTS paso a paso
                                            Como instalar interfaz grafica en Ubuntu server paso a paso


Ahora ya estas mas protegido de virus, troyanos y otras amenazas en Linux Ubuntu / Linux Ubuntu Server / Linux Centos 7.x y Linux RedHat 7.x con este tutorial de ClamAV español. Te gusto el articulo? hazme un favor, compártelo en tus redes sociales (compartir es sexy). Escríbeme en los comentarios aquí debajo y pasa la voz compartiendo el tweet.

Sígueme en twitter google+facebook o email y podrás estar enterado de todas mis publicaciones.
Disfrútenlo.

Share/Bookmark