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