COMMUNITY - COMPONENTE ERP | ID: | Ver: 1.0.0.0 | |
ErpNext - Manual de Instalación (Centos 7) | Pág de |
Grupo de Investigación y Desarrollo de Tecnologías de la Información |
ERPNext Manual de Instalación Centos 7 |
Historial de Cambios
Versión | Fecha | Descripción cambios | Responsable(s) |
0.0.0.1 | Contenido | Vargas, S. | |
1.0.0.0 | Contenido | Coronado, C. |
Tabla: Cuadro historial de versiones
Tabla de Contenido
Crear un Usuario para el Sistema
Habilitar como Entorno de Producción
Borrar un sitio después de creado
Este modo de instalación solo se recomienda para casos específicos en donde se quiera cambiar alguno de los parámetros predeterminados de la instalación. En la mayoría de los casos es adecuado seguir el manual simplificado. |
ERPNext está basado en un marco de desarrollo para lenguaje Python denominado Frappe. Tiene como base de datos MariaDB y Redis.
Para poder instalar ERPNext es necesario instalar Frappe-bench, un programa de línea de comandos que se utiliza como instalador y gestor de sitios para el marco de trabajo Frappe.
La forma más simple y sencilla de instalar ERPNext es utilizando el script de instalación que provee el grupo de desarrollo de ERPNext:
Tener en cuenta que SELinux debe estar en modo permissive.
$ wget https://raw.githubusercontent.com/frappe/bench/master/install_scripts/setup_frappe.sh[1] # bash setup_frappe.sh --setup-production |
Verificar que en el archivo /etc/nginx/nginx.conf no exista la sección server, si existe borrarla y reiniciar nginx (systemctrl nginx restart).
El script de instalación no es más que la automatización de los siguientes pasos:
Si aún no se cuenta con un usuario específico (que no sea root) es necesario crearlo.
# adduser erpnext # passwd erpnext |
Habilitar que el usuario ejecute comandos como superusuario:
# gpasswd -a erpnext wheel |
Editar el archivo /etc/ssh/sshd_config, agregando la línea:
AllowUsers erpnext |
Luego reiniciar el servicio sshd
systemctl restart sshd.service |
Se debe garantizar que se tiene la última versión estable de los paquetes.
# yum update |
Además se debe instalar un conjunto de utilidades (la mayoría disponibles de manera predeterminada en las instalaciones de Centos 7)
# yum install -y nano wget mlocate git |
Nota, en los cuadros color verde se presentan los comandos a ejecutar. Cuando se anteceden del símbolo $ significan que deben ser ejecutados por el usuario normal. Si van precedidos de # significa que deben ser ejecutados como superusuario.
# yum install -y python-devel.x86_64 gcc libtiff-devel libjpeg-devel libzip-devel freetype-devel lcms2-devel libwebp-devel tcl-devel tk-devel |
# yum -y install epel-release # yum -y install nodejs npm |
# yum install -y mariadb-server mysql mariadb-devel.x86_64 # systemctl enable mariadb.service # systemctl restart mariadb.service $ mysql_secure_installation |
Importante No se recomienda permitir el acceso a la base de datos desde una IP pública. Se puede restringir para conexiones locales en el archivo /etc/my.cnf: # nano /etc/my.cnf En el editor agregar: bind-address = localhost Guardar y reiniciar el servicio. |
$ wget -r --no-parent -A 'epel-release-*.rpm' http://dl.fedoraproject.org/pub/epel/7/x86_64/e/ # rpm -Uvh dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-*.rpm # yum install redis # systemctl enable redis.service # systemctl start redis.service |
Con soporte para QT (requerido para la generación de PDF)
# yum install -y wkhtmltopdf.x86_64 python-pdfkit.noarch |
# curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py" # python get-pip.py # pip install --upgrade pip # easy_install -U setuptools # pip install --upgrade setuptools |
$ git clone https://github.com/frappe/bench bench-repo # pip install -e bench-repo $ bench init frappe-bench |
$ cd frappe-bench/ $ bench get-app erpnext https://github.com/frappe/erpnext $ bench new-site site1.local |
Durante la creación del sitio se pide editar el archivo /etc/my.cnf agregando:
[mysqld] innodb-file-format=barracuda innodb-file-per-table=1 innodb-large-prefix=1 character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci [mysql] default-character-set = utf8mb4 |
Luego de ello reiniciar el motor de base de datos:
# systemctl restart mariadb.service |
Y se termina la instalación de la aplicación:
$ bench install-app erpnext $ bench start |
Una vez realizado lo anterior, se podrá ingresar a la aplicación desde un navegador:
http://<direcciónIP>:8000
Donde <direcciónIP> debe ser reemplazado por la dirección de la instancia en donde se instaló el aplicativo.
El usuario predeterminado es: Administrator y la clave es la que se ingresó cuando se creó el nuevo sitio.
Figura: Formulario de inicio de sesión ERPNext
Supervisor permite gestionar los procesos relacionados con el entorno frappe Automatiza las tareas de reinicio y recuperación ante fallos.
# easy_install supervisor # mkdir /etc/supervisord.d/ # cd ~/frappe-bench/ $ bench setup supervisor # ln -s config/supervisor.conf /etc/supervisor/conf.d/frappe-bench.ini # echo_supervisord_conf > /etc/supervisord.conf |
Se debe verificar que en el archivo /etc/supervisord.conf la sección [include] sea:
[include] files = /etc/supervisor/conf.d/*.ini |
# nano /etc/rc.d/init.d/supervisord |
En este nuevo archivo agregar:
#!/bin/sh # # /etc/rc.d/init.d/supervisord # # Supervisor is a client/server system that # allows its users to monitor and control a # number of processes on UNIX-like operating # systems. # # chkconfig: - 64 36 # description: Supervisor Server # processname: supervisord # Source init functions . /etc/rc.d/init.d/functions prog="supervisord" prefix="/usr/" exec_prefix="${prefix}" prog_bin="${exec_prefix}/bin/supervisord" PIDFILE="/var/run/$prog.pid" start() { echo -n $"Starting $prog: " daemon $prog_bin --pidfile $PIDFILE [ -f $PIDFILE ] && success $"$prog startup" || failure $"$prog startup" echo } stop() { echo -n $"Shutting down $prog: " [ -f $PIDFILE ] && killproc $prog || success $"$prog shutdown" echo } case "$1" in start) start ;; stop) stop ;; status) status $prog ;; restart) stop start ;; *) echo "Usage: $0 {start|stop|restart|status}" ;; esac |
Guardar y registrar el archivo:
# chmod +x /etc/rc.d/init.d/supervisord # chkconfig --add supervisord # chkconfig supervisord on # service supervisord start Si el usuario erpnext aún no está en la lista de sudoers: # bench setup sudoers $(whoami) |
Nginx es el servidor web recomendado para el marco frappe.
# yum install epel-release # yum -y install nginx # systemctl enable nginx $ cd ~/frappe-bench/ $ bench setup nginx # ln -s `pwd`/config/nginx.conf /etc/nginx/conf.d/frappe-bench.conf # systemctl start nginx |
# yum install php php-mysql php-fpm # nano /etc/php.ini Colocar en del archivo la directiva: cgi.fix_pathinfo=0 # nano /etc/php-fpm.d/www.conf Reemplazar las siguientes directivas por: listen = /var/run/php-fpm/php-fpm.sock listen.owner = nobody listen.group = nobody user = nginx group = nginx #cd /etc/nginx/conf.d/ #nano php.conf Y colocar en ese nuevo archivo: server { listen 8080; server_name cambiarPorDireccionIPdel Servidor; root /usr/share/nginx/html; index index.php index.html index.htm; location / { try_files $uri $uri/ =404; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } # systemctl start php-fpm # yum install php-mbstring # chgrp nginx -R /var/lib/php/session |
La carpeta del servidor es: /usr/share/nginx/html/
ERPNext can only be installed on a fresh site where the setup wizard is not completed |
Después de ejecutar bench install-app erpnext
Y volver a ejecutar:
$ bench new-site site1.local $ bench install-app erpnext $ bench start |
Al ejecutar systemctl start nginx, aparece un mensaje de permiso denegado al incluir /etc/nginx/conf.d/frappe-bench.conf
Configurar SELinux para que se ejecute en un modo permisivo.
Puede presentarse un error si no se ha borrado el archivo de configuración predefinido de nginx (nginx.conf)
Aplicar chmod o+rx en la carpeta del usuario de ErpNext y en /public/files del sitio.
Grupo de Investigación y Desarrollo de Tecnologías de la Información Los contenidos originales de Zeety S.A.S en esta obra, se distribuyen bajo una Licencia Creative Commons Atribución-Compartir Igual 3.0 Unported. Atribución – Compartir igual. De conformidad a esta licencia: Usted es libre para:
Para cualquier propósito, incluso comercialmente Bajo los siguientes términos:
Las marcas, nombres de productos y empresas, logos, figuras, citas, contenidos no originales de Zeety S.A.S y otras referencias; son propiedad de sus respectivos dueños y no están cubiertos por esta licencia. |
Zeety S.A.S
Grupo de Investigación y Desarrollo de Tecnologías de la Información
[1] Este archivo debe modificarse si se ha creado un fork de ERPNext. https://raw.githubusercontent.com/grupozeety/installerpnext/master/erpnext-apps-master.json
[2]Método solo recomendado para configuraciones muy específicas. Se referencia para entender el proceso de instalación y que sirva como guía en el caso de algún problema.
[3] Opcional. Este paso solo se realiza en sistemas que no tengan un usuario diferente a root.