Cómo instalar Monica Personal Relationship Manager en Ubuntu 18.04 LTS
Monica es un software gratuito y de código abierto para la Gestión de Relaciones Personales basado en web y escrito en el framework Laravel. Sirve para hacer un seguimiento de todos los detalles importantes sobre tus amigos y familiares. Puedes añadir y gestionar contactos fácilmente, definir relaciones entre contactos y establecer recordatorios automáticos de cumpleaños con Monica. También puedes hacer un seguimiento de las conversaciones mantenidas en redes sociales o SMS utilizando Monica. Monica tiene la capacidad de definir qué sección debe aparecer en la hoja de contactos.
En este tutorial, aprenderemos a instalar Monica PRM en un servidor Ubuntu 18.04.
Requisitos
- Un servidor que ejecute Ubuntu 18.04.
- Una contraseña de root configurada en tu servidor.
Cómo empezar
En primer lugar, tendrás que actualizar tu sistema con la última versión. Puedes hacerlo con el siguiente comando:
apt-get update -y apt-get upgrade -y
Una vez actualizado tu sistema, reinícialo para aplicar los cambios.
Instalar Nginx, MariaDB y PHP
En primer lugar, tendrás que instalar Nginx, el servidor MariaDB, PHP y otros módulos PHP en tu servidor. Puedes instalarlos todos ejecutando el siguiente comando:
apt-get install nginx mariadb-server php7.2 php7.2-cli php7.2-fpm php7.2-common php7.2-mbstring php7.2-xml php7.2-mysql php7.2-curl php7.2-zip php7.2-intl git wget unzip -y
Una vez instalados todos los paquetes, puedes continuar con el Paso siguiente.
Configurar MariaDB
Por defecto, la instalación de MariaDB no está asegurada, por lo que tendrás que asegurarla primero. Puedes asegurarla con el siguiente comando:
mysql_secure_installation
Enter current password for root (enter for none): Set root password? [Y/n]: N Remove anonymous users? [Y/n]: Y Disallow root login remotely? [Y/n]: Y Remove test database and access to it? [Y/n]: Y Reload privilege tables now? [Y/n]: Y
Una vez asegurada MariaDB, accede al shell de MariaDB con el siguiente comando:
mysql -u root -p
Introduce tu contraseña de root. A continuación, crea una base de datos y un usuario para Monica con el siguiente comando:
MariaDB [(none)]> create database monica; MariaDB [(none)]> create user monica@localhost identified by 'password';
A continuación, concede todos los privilegios a Mónica con el siguiente comando:
MariaDB [(none)]> GRANT ALL ON monica.* TO 'monica'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
A continuación, vacía los privilegios y sal del shell MariaDB con el siguiente comando:
MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> EXIT;
Instalar Composer y Node.j
A continuación, tendrás que instalar Composer en tu sistema. Composer es un gestor de paquetes para el lenguaje de programación PHP. Se utiliza para instalar todas las dependencias requeridas por PHP.
Primero, descarga el instalador de Composer con el siguiente comando:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
A continuación, tendrás que verificar la integridad de los datos del script comparando el hash SHA-384 del script con el último hash del instalador que se encuentra en la página de la clave pública de Composer. Puedes hacerlo con el siguiente comando:
HASH="$(wget -q -O - https://composer.github.io/installer.sig)" php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
Si todo va bien, deberías ver la siguiente salida:
Installer verified
A continuación, instala Composer con el siguiente comando:
php composer-setup.php --install-dir=/usr/local/bin --filename=composer
Deberías ver el siguiente resultado:
All settings correct for using Composer Downloading... Composer (version 1.8.4) successfully installed to: /usr/local/bin/composer Use it: php /usr/local/bin/composer
A continuación, instala Node.js con el siguiente comando:
curl -sL https://deb.nodesource.com/setup_10.x | bash - apt-get install -y nodejs
Instalar y configurar Monica
A continuación, tendrás que crear una estructura de directorios para Monica. Puedes hacerlo con el siguiente comando
mkdir -p /var/www/monica
A continuación, cambia el directorio a monica y descarga la última versión de Monica con el siguiente comando:
cd /var/www/monica git clone https://github.com/monicahq/monica.git . git checkout tags/v2.1.1
Deberías ver la siguiente salida:
Note: checking out 'tags/v2.1.1'. 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 HEAD is now at dcfd15fa Update translations (#1324)
A continuación, tendrás que cambiar el nombre del archivo de variables de entorno del ejemplo. Puedes hacerlo con el siguiente comando:
mv .env.example .env
A continuación, abre el archivo .env y define tu base de datos y tu nombre de usuario:
nano .env
Realiza los siguientes cambios:
# Database information # To keep this information secure, we urge you to change the default password DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 # You can use mysql unix socket if available, it overrides DB_HOST and DB_PORT values. #DB_UNIX_SOCKET=/var/run/mysqld/mysqld.sock DB_DATABASE=monica DB_USERNAME=monica DB_PASSWORD=password
A continuación, instala todas las dependencias PHP necesarias utilizando Composer con el siguiente comando:
composer install --no-interaction --no-suggest --no-dev --ignore-platform-reqs
A continuación, instala todas las dependencias front-end con el siguiente comando:
npm install
A continuación, compila el JS y el CSS con el siguiente comando:
npm run production
A continuación, genera una clave de aplicación con el siguiente comando:
php artisan key:generate
A continuación, migra y siembra la base de datos con el siguiente comando:
php artisan setup:production
Deberías ver el siguiente resultado:
You are about to setup and configure Monica. Do you wish to continue? (yes/no) [no]: > yes ----------------------------- | | Welcome to Monica v2.1.1 | ----------------------------- | You can now register to the first account by opening the application: | URL: http://localhost ----------------------------- Setup is done. Have fun.
A continuación, proporciona los permisos adecuados al directorio monica con el siguiente comando:
chown -R www-data:www-data /var/www/monica
Una vez hecho esto, puedes pasar al siguiente paso.
Configurar Nginx para Monica
A continuación, tendrás que crear un archivo de host virtual Nginx para Monica. Puedes hacerlo creando el archivo monica.conf en el directorio/etc/nginx/sites-available/ con el siguiente comando:
nano /etc/nginx/sites-available/monica.conf
Añade las siguientes líneas:
server { listen 80; listen [::]:80; server_name example.com; root /var/www/monica/public; index index.php; location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; } }
Guarda y cierra el archivo. A continuación, reinicia el servicio Nginx con el siguiente comando:
systemctl restart nginx
Ahora puedes comprobar el estado de Nginx con el siguiente comando:
systemctl status nginx
Salida:
? 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 Fri 2019-02-15 10:03:53 UTC; 2min 12s ago Docs: man:nginx(8) Process: 22598 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=killed, signal=TERM) Process: 22612 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Process: 22601 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Main PID: 22613 (nginx) Tasks: 2 (limit: 1114) CGroup: /system.slice/nginx.service ??22613 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; ??22615 nginx: worker process Feb 15 10:03:53 ubuntu1804 systemd[1]: nginx.service: Failed with result 'timeout'. Feb 15 10:03:53 ubuntu1804 systemd[1]: Stopped A high performance web server and a reverse proxy server. Feb 15 10:03:53 ubuntu1804 systemd[1]: Starting A high performance web server and a reverse proxy server... Feb 15 10:03:53 ubuntu1804 systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument Feb 15 10:03:53 ubuntu1804 systemd[1]: Started A high performance web server and a reverse proxy server.
Accede a Monica
Mónica ya está instalada y configurada. Es hora de acceder a la interfaz web de Mónica.
Ahora, abre tu navegador web y escribe la URL http://example.com. Serás redirigido a la siguiente página:
Introduce tu dirección de correo electrónico, nombre y contraseña. A continuación, haz clic en el botón Registrarse. Deberías ver el panel de control de Monica en la página siguiente:
Enhorabuena! has instalado correctamente Monica en el servidor Ubuntu 18.04. Ahora puedes gestionar fácilmente tus contactos utilizando Monica desde una ubicación central. no dudes en preguntarme si tienes alguna duda.