En este artículo explicaremos cómo instalar Paperwork en un VPS Ubuntu 16.04 con MariaDB, PHP-FPM y Nginx. Paperwork es una alternativa autohospedada de código abierto a servicios como Evernote, Microsoft OneNote o Google Keep y se basa en Laravel 4.2. Esta guía también debería funcionar en otros sistemas Linux VPS, pero fue probada y escrita para un VPS Ubuntu 16.04.
1. Inicie sesión en su VPS a través de SSH
ssh user@vps_IP
2. Actualice el sistema e instale los paquetes necesarios
[user]$ sudo apt-get update && sudo apt-get -y upgrade [user]$ sudo apt-get install software-properties-common git nano curl
3. Instale MariaDB 10.1
Para agregar el repositorio MariaDB a su lista de fuentes e instalar el último servidor MariaDB 10.1, ejecute los siguientes comandos:
[user]$ sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8 [user]$ sudo add-apt-repository 'deb [arch=amd64,i386] http://ftp.osuosl.org/pub/mariadb/repo/10.1/ubuntu xenial main' s[user]$ sudo apt-get update [user]$ sudo apt-get install -y mariadb-server
4. Asegure la instalación
Cuando se complete la instalación, ejecute el siguiente comando para asegurar su instalación:
[user]$ mysql_secure_installation
5. Crear una nueva base de datos
A continuación, debemos crear una base de datos para la instalación de Paperwork.
[user]$ myswl -uroot -p MariaDB [(none)]> CREATE DATABASE paperwork; MariaDB [(none)]> GRANT ALL PRIVILEGES ON paperwork.* TO 'paperwork'@'localhost' IDENTIFIED BY 'strong_password'; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> \q
6. Instale PHP, Composer y los módulos PHP requeridos
Para instalar la última versión estable de PHP versión 7.0 y todos los módulos necesarios, ejecute:
[user]$ sudo apt-get -y install php-fpm php-cli php-json php-curl php-gd php-mysql php-mcrypt php-mbstring
Los siguientes comandos establecerán el límite de memoria de PHP en 512 MB, cambiarán los valores de upload_max_filesize y post_max_size a 200M y establecerán la zona horaria en UTC.
[user]$ sudo sed -i "s/memory_limit = .*/memory_limit = 512M/" /etc/php/7.0/fpm/php.ini [user]$ sudo sed -i "s/;date.timezone.*/date.timezone = UTC/" /etc/php/7.0/fpm/php.ini [user]$ sudo sed -i "s/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=1/" /etc/php/7.0/fpm/php.ini [user]$ sudo sed -i "s/upload_max_filesize = .*/upload_max_filesize = 200M/" /etc/php/7.0/fpm/php.ini [user]$ sudo sed -i "s/post_max_size = .*/post_max_size = 200M/" /etc/php/7.0/fpm/php.ini
Composer es un administrador de dependencias para PHP con el que puedes instalar paquetes. Composer extraerá todas las bibliotecas y dependencias requeridas que necesita para su proyecto.
[user]$ curl -sS https://getcomposer.org/installer | php [user]$ sudo mv composer.phar /usr/local/bin/composer
Cree un nuevo grupo de PHP-FPM para su usuario:
[user]$ sudo nano /etc/php/7.0/fpm/pool.d/your_user.conf [your_user] user = your_user group = your_user listen = /run/php/php7.0-your_user.sock listen.owner = your_user listen.group = your_user listen.mode = 0666 pm = ondemand pm.max_children = 5 pm.process_idle_timeout = 10s pm.max_requests = 200 chdir = /
No olvides cambiar your_user con tu nombre de usuario.
Reiniciar PHP-FPM:
[user]$ sudo service php7.0-fpm restart
7. Instalar Node.Js
Instalaremos el último paquete de nodejs desde el repositorio de nodesource.
[user]$ curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash - [user]$ sudo apt-get install -y nodejs
Una vez que Node esté instalado, instale los paquetes Gulp y Bower globalmente usando NPM.
[user]$ sudo npm install -g gulp bower
8. Instalar papeleo
Cree un directorio raíz para su Papeleo usando el siguiente comando:
[user]$ mkdir -p ~/myPaperwork.com/public_html
Clona el repositorio del proyecto desde GitHub:
[user]$ git clone https://github.com/twostairs/paperwork.git ~/myPaperwork.com/public_html
Cambie a public_html el directorio:
[user]$ cd ~/myPaperwork.com/public_html/frontend
9. Instale todas las dependencias de PHP
Instale todas las dependencias de PHP usando composer
[user]$ composer install
Cree un archivo "database.json" copiando el archivo "default_database.json":
[user]$ cp app/storage/config/default_database.json app/storage/config/database.json
Ingrese sus credenciales de MySQL en el database.json
archivo:
[user]$ nano app/storage/config/database.json
{ "driver": "mysql", "database": "paperwork", "host": "localhost", "username": "paperwork", "password": "strong_password", "port": 3306 }
y ejecute el siguiente comando para migrar la base de datos:
[user]$ php artisan migrate
instalar todas las dependencias de npm
[user]$ npm install
instale las dependencias de bower y ejecute gulp para construir los activos
[user]$ bower install [user]$ gulp
10. Instalar y configurar Nginx
Para instalar la última versión estable de Nginx disponible en los repositorios de Ubuntu, ejecute:
[user]$ sudo apt-get -y install nginx
Genere un certificado SSL autofirmado:
[user]$ sudo mkdir -p /etc/nginx/ssl [user]$ cd /etc/nginx/ssl [user]$ sudo openssl genrsa -des3 -passout pass:x -out paperwork.pass.key 2048 [user]$ sudo openssl rsa -passin pass:x -in paperwork.pass.key -out paperwork.key [user]$ sudo rm paperwork.pass.key [user]$ sudo openssl req -new -key paperwork.key -out paperwork.csr [user]$ sudo openssl x509 -req -days 365 -in paperwork.csr -signkey paperwork.key -out paperwork.crt
[usuario]$ sudo openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048
Si no desea recibir advertencias asociadas con los certificados SSL autofirmados, puede comprar un certificado SSL de confianza aquí.
A continuación, cree un nuevo bloque de servidor Nginx:
[user]$ sudo nano /etc/nginx/sites-available/myPaperwork.com
server { listen 443 ssl http2; server_name myPaperwork.com; root /home/your_user/myPaperwork.com/public_html/frontend/public; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php; } ssl on; ssl_certificate /etc/nginx/ssl/paperwork.crt; ssl_certificate_key /etc/nginx/ssl/paperwork.key; ssl_dhparam /etc/nginx/ssl/dhparam.pem; ssl_session_timeout 5m; ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; access_log /var/log/nginx/paperwork.access.log; error_log /var/log/nginx/paperwork.error.log; location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/run/php7.0-fpm-your_user.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_intercept_errors off; fastcgi_buffer_size 16k; fastcgi_buffers 4 16k; } location ~ /\.ht { deny all; } } server { listen 80; server_name myPaperwork.com; add_header Strict-Transport-Security max-age=2592000; rewrite ^ https://$server_name$request_uri? permanent; }
No olvides cambiar your_user con tu nombre de usuario.
Active el bloqueo del servidor creando un enlace simbólico:
[user]$ sudo ln -s /etc/nginx/sites-available/myPaperwork.com /etc/nginx/sites-enabled/myPaperwork.com
11. Reinicie el servidor web y pruebe
Pruebe la configuración de Nginx y reinicie nginx:
[user]$ sudo nginx -t [user]$ sudo service nginx restart
Abra http://myPaperwork.com/ en su navegador web favorito y debería ver la pantalla de instalación de Paperwork. En esta página, deberá ingresar los detalles de la base de datos que creó anteriormente y crear un usuario administrador.
Eso es todo. Has instalado correctamente Paperwork en tu Ubuntu 16.04 VPS. Para obtener más información sobre cómo administrar su instalación de Paperwork, consulte la documentación oficial de Paperwork.
Por supuesto, no tiene que hacer nada de esto si utiliza uno de nuestros servicios de alojamiento VPS, en cuyo caso simplemente puede pedirle a nuestros administradores expertos de Linux que lo configuren por usted. Están disponibles las 24 horas del día, los 7 días de la semana y atenderán su solicitud de inmediato.
PD . Si le gustó esta publicación, sobre cómo instalar Paperwork en Ubuntu, compártala con sus amigos en las redes sociales usando los botones a la izquierda o simplemente deje una respuesta a continuación. Gracias.