Listado de la etiqueta: Ubuntu



Memcached es un sistema de elegancia de memoria distribuido, sin cargo, de código campechano y de propósito caudillo, que se utiliza para juntar en elegancia datos de bases de datos. Es un sistema de elegancia en memoria de stop rendimiento que se utiliza para acelerar las aplicaciones web dinámicas reduciendo la carga de la colchoneta de datos. Memcached está formado por cuatro componentes que permiten al cliente y al servidor trabajar juntos para entregar los datos almacenados en elegancia de la forma más competente posible. Ofrece integración API para los principales lenguajes como PHP, Java, C/C++, Python, Ruby, Perl, etc.

Este tutorial te mostrará cómo instalar el servidor Memcached en un servidor Ubuntu 22.04 y cómo utilizarlo con PHP.

Requisitos

  • Un servidor que ejecute Ubuntu 22.04.
  • Una contraseña de root configurada en tu servidor.

Instalar Memcached en Ubuntu 22.04

Por defecto, el paquete Memcached está incluido en el repositorio por defecto de Ubuntu. Puedes instalarlo fácilmente utilizando el ulterior comando:

apt install memcached libmemcached-tools -y

Una vez instalado Memcached, inicia el servicio Memcached utilizando el ulterior comando:

systemctl start memcached

Puedes comprobar el estado del Memcached con el ulterior comando:

systemctl status memcached

Deberías obtener la ulterior salida:

? memcached.service - memcached daemon
     Loaded: loaded (/lib/systemd/system/memcached.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2022-10-18 13:09:47 UTC; 29s ago
       Docs: man:memcached(1)
   Main PID: 5525 (memcached)
      Tasks: 10 (limit: 2242)
     Memory: 1.7M
        CPU: 71ms
     CGroup: /system.slice/memcached.service
             ??5525 /usr/bin/memcached -m 64 -p 11211 -u memcache -l 127.0.0.1 -P /var/run/memcached/memcached.pid

Oct 18 13:09:47 ubuntu2204 systemd[1]: Started memcached daemon.

Para efectuar la lectura de Memcached, ejecuta el ulterior comando:

memcached -V

Obtendrás la ulterior salida:

memcached 1.6.14

Por defecto, Memcached audición en el puerto 11211. Puedes comprobarlo con el ulterior comando:

ss -plunt | grep memcache

Deberías ver la ulterior salida:

tcp   LISTEN 0      1024                        127.0.0.1:11211      0.0.0.0:*    users:(("memcached",pid=5525,fd=22)) 

Instalar la extensión Memcached de PHP

Para utilizar Memcached con aplicaciones basadas en PHP. Necesitarás instalar la extensión Memcached de PHP en tu servidor. Puedes instalarla con Apache utilizando el ulterior comando:

apt install apache2 php libapache2-mod-php php-memcached php-cli -y

A continuación, crea una página PHP de prueba de ejemplo para efectuar el Memcached:

nano /var/www/html/info.php

Añade el ulterior código:

<?php
phpinfo();

Vigilante y cierra el archivo y reinicia el servicio Apache para aplicar los cambios:

systemctl restart apache2

A continuación, abre tu navegador y accede a la página PHP utilizando la URL http://your-server-ip/info.php. Deberías ver el Memcached en la ulterior pantalla:

PHP Memcached

A continuación, crea otra página PHP de prueba para efectuar si el Memcached funciona o no.

nano /var/www/html/test.php

Añade el ulterior código:

<?php

try

{
$memcached = new Memcached();
$memcached->addServer("127.0.0.1", 11211); 
$response = $memcached->get("key_cache");

if($response==true) 
{
echo "Result coming from caching";
echo $response;
}

else

{
echo "Cache is not created yet, reload again to see changes";
$memcached->set("key_cache", "Hooray! Memcache is working now ...") ;
}
}
catch (exception $e)
{
echo $e->getMessage();
}
?>

Vigilante y cierra el archivo y, a continuación, abre tu navegador web y accede a la página PHP de prueba utilizando la URL http://your-server-ip/test.php. Deberías ver la ulterior pantalla:

Prueba PHP memcached

A continuación, vuelve a cargar la página. Esta vez la página se cargará desde la memoria elegancia como se muestra a continuación:

Resultado PHP de memcahed

Asegura Memcached con Autenticación

Se recomienda utilizar Simple Authentication and Security Layer (SASL) para apoyar Memcached con autenticación basada en adjudicatario. Para ello, deberás instalar el paquete sasl2-bin en tu servidor.

apt install sasl2-bin

A continuación, crea un directorio y un archivo de configuración para la autenticación SASL:

mkdir -p /etc/sasl2
nano /etc/sasl2/memcached.conf

Añade las siguientes líneas:

log_level: 5
mech_list: plain
sasldb_path: /etc/sasl2/memcached-sasldb2

Vigilante y cierra el archivo y, a continuación, crea una colchoneta de datos SASL con las credenciales de adjudicatario:

saslpasswd2 -a memcached -c -f /etc/sasl2/memcached-sasldb2 user1

Establece tu contraseña como se muestra a continuación:

Password: 
Again (for verification): 

A continuación, cambia la propiedad de la colchoneta de datos Memcached:

chown memcache:memcache /etc/sasl2/memcached-sasldb2

A continuación, verifica el Memcached utilizando el ulterior comando:

memcstat --servers="127.0.0.1"

Deberías obtener la ulterior salida:

Server: 127.0.0.1 (11211)
	 pid: 5525
	 uptime: 462
	 time: 1666099048
	 version: 1.6.14
	 libevent: 2.1.12-stable
	 pointer_size: 64
	 rusage_user: 0.110123
	 rusage_system: 0.093906
	 max_connections: 1024
	 curr_connections: 1
	 total_connections: 4
	 rejected_connections: 0
	 connection_structures: 2
	 response_obj_oom: 0
	 response_obj_count: 1
	 response_obj_bytes: 49152
	 read_buf_count: 6
	 read_buf_bytes: 98304
	 read_buf_bytes_free: 32768
	 read_buf_oom: 0
	 reserved_fds: 20
	 cmd_get: 2
	 cmd_set: 1
	 cmd_flush: 0
	 cmd_touch: 0
	 cmd_meta: 0
	 get_hits: 1
	 get_misses: 1
	 get_expired: 0
	 get_flushed: 0
	 delete_misses: 0

A continuación, edita el archivo de configuración de Memcached:

nano /etc/memcached.conf

Añade las siguientes líneas:

-S
-vv

Vigilante y cierra el archivo y reinicia el servicio Memcached para aplicar los cambios:

systemctl restart memcached

A continuación, verifica la compatibilidad con SASL utilizando el ulterior comando:

journalctl -u memcached |grep SASL

Si todo va proporcionadamente, obtendrás la ulterior salida:

Journal file /var/log/journal/d97e195db6584d63aeedfdc35dc83c7f/user-1000.journal is truncated, ignoring file.
Oct 18 13:18:19 ubuntu2204 systemd-memcached-wrapper[14980]: Initialized SASL.

Demostrar la autenticación de Memcached

Primero, intenta comprobar de nuevo la conectividad con Memcached sin autenticación:

memcstat --servers="127.0.0.1"

El comando no debería producir salida. Escribe el ulterior comando shell para comprobar su estado:

echo $?

Deberías acoger el ulterior código de estado significa que el comando memcstat ha fallado.

1

A continuación, ejecuta de nuevo el comando Memcached especificando el nombre de adjudicatario y la contraseña:

memcstat --servers="127.0.0.1" --username=user1 --password=password

Obtendrás la ulterior salida:

Server: 127.0.0.1 (11211)
	 pid: 14980
	 uptime: 46
	 time: 1666099143
	 version: 1.6.14
	 libevent: 2.1.12-stable
	 pointer_size: 64
	 rusage_user: 0.077843
	 rusage_system: 0.049072
	 max_connections: 1024
	 curr_connections: 1
	 total_connections: 3
	 rejected_connections: 0
	 connection_structures: 2
	 response_obj_oom: 0
	 response_obj_count: 1
	 response_obj_bytes: 16384
	 read_buf_count: 3
	 read_buf_bytes: 49152
	 read_buf_bytes_free: 16384
	 read_buf_oom: 0

Instalar Memcached para Python

Si quieres integrar Memcached con aplicaciones web basadas en Python, tendrás que instalar la extensión Memcached para Python. Puedes instalarla con el ulterior comando:

apt install python3-pip
pip install pymemcache
pip install python-memcached

Conclusión

En este post, hemos explicado cómo instalar el servidor Memcached en Ubuntu 22.04. Igualmente hemos explicado cómo apoyar Memcached con autenticación basada en SASL. Espero que ahora puedas integrar Memcached en tu aplicación para acelerar el rendimiento de la misma. No dudes en preguntarme si tienes alguna duda.




DokuWiki es un software wiki sencillo, tratable de usar y muy versátil, escrito en PHP. Es tirado, de código descubierto, y utiliza un sencillo formato de archivo para juntar sus datos en lado de utilizar cualquier sistema de almohadilla de datos. Ofrece muchas funciones que te ayudan a resquilar y optimizar tu sitio wiki fácilmente. Está ganando popularidad correcto a su sintaxis limpia y inteligible. Usando Dokuwiki, puedes crear tus sitios web personales o de empresa a través del panel web de Dokuwiki.

En este tutorial, te mostraremos cómo instalar DokuWiki con Apache y el certificado SSL Let’s Encrypt en Ubuntu 22.04.

Requisitos previos

  • Un servidor con Ubuntu 22.04.
  • Un nombre de dominio válido apuntando a tu servidor.
  • Una contraseña raíz está configurada en tu servidor.

Instalar Apache y PHP

En primer lado, tendrás que instalar el servidor web Apache, PHP y otras librerías PHP en tu sistema. Puedes instalarlos todos ejecutando el ulterior comando:

apt-get install apache2 php php-gd php-xml php-json -y

posteriormente de instalar todos los paquetes, inicia el servicio Apache y habilítalo para que se inicie al originarse con el ulterior comando:

systemctl start apache2
systemctl enable apache2

Una vez que hayas terminado, puedes acontecer al ulterior paso.

Instalar DokuWiki Ubuntu 22.04

A continuación, visitante la página oficial de descargas de DokuWiki, copia la URL de descarga y descarga la última lectura de DokuWiki con el ulterior comando:

wget https://download.dokuwiki.org/out/dokuwiki-24117f7f9e0362c4b1782ff29220b0ab.tgz

Una vez finalizada la descarga, crea un directorio DokuWiki interiormente del directorio raíz de la web Apache y extrae el DokuWiki:

mkdir /var/www/html/dokuwiki
tar -xvzf dokuwiki-24117f7f9e0362c4b1782ff29220b0ab.tgz -C /var/www/html/dokuwiki/ --strip-components=1

A continuación, copia el archivo .htaccess de ejemplo con el ulterior comando:

cp /var/www/html/dokuwiki/.htaccess{.dist,}

A continuación, cambia la propiedad del dokuwiki a www-data:

chown -R www-data:www-data /var/www/html/dokuwiki

Una vez que hayas terminado, puedes acontecer al ulterior paso.

Crear un Virtualhost de Apache para DokuWiki

A continuación, tendrás que crear un archivo de configuración de host supuesto Apache para servir el sitio web DokuWiki. Puedes crearlo con el ulterior comando

nano /etc/apache2/sites-available/dokuwiki.conf

Añade las siguientes líneas:

<VirtualHost *:80>
        ServerName    doku.example.com      
        DocumentRoot  /var/www/html/dokuwiki

        <Directory ~ "/var/www/html/dokuwiki/(bin/|conf/|data/|inc/)">
            <IfModule mod_authz_core.c>
                AllowOverride All
                Require all denied
            </IfModule>
            <IfModule !mod_authz_core.c>
                Order allow,deny
                Deny from all
            </IfModule>
        </Directory>

        ErrorLog   /var/log/apache2/dokuwiki_error.log
        CustomLog  /var/log/apache2/dokuwiki_access.log combined
</VirtualHost>

Portero y cierra el archivo cuando hayas terminado. A continuación, activa el archivo de configuración del host supuesto de DokuWiki y recarga el servicio Apache con el ulterior comando:

a2ensite dokuwiki.conf
systemctl reload apache2

Ahora puedes comprobar el estado de Apache con el ulterior comando:

systemctl status apache2

Deberías ver la ulterior salida:

? apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2022-06-25 15:44:31 UTC; 4min 30s ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 52450 ExecReload=/usr/sbin/apachectl graceful (code=exited, status=0/SUCCESS)
   Main PID: 52131 (apache2)
      Tasks: 6 (limit: 4579)
     Memory: 16.9M
        CPU: 331ms
     CGroup: /system.slice/apache2.service
             ??52131 /usr/sbin/apache2 -k start
             ??52454 /usr/sbin/apache2 -k start
             ??52455 /usr/sbin/apache2 -k start
             ??52456 /usr/sbin/apache2 -k start
             ??52457 /usr/sbin/apache2 -k start
             ??52458 /usr/sbin/apache2 -k start

Jun 25 15:44:30 ubuntu2204 systemd[1]: Starting The Apache HTTP Server...

En este punto, el servidor web Apache está configurado para servir el sitio DokuWiki. Ahora puedes proceder a instalar Let’s Encrypt SSL en tu sitio web.

Habilitar SSL en el sitio web DokuWiki

Para habilitar el SSL en DokuWiki, necesitarás instalar el cliente Certbot en tu sistema. El Certbot es una aparejo de Let’s Encrypt que se utiliza para descargar y diligenciar el SSL.

Puedes instalar el Certbot con el ulterior comando:

apt-get install certbot python3-certbot-apache -y

Una vez instalado, ejecuta el ulterior comando para instalar el SSL de Let’s Encrypt para tu sitio web:

certbot --apache -d dokuwiki.linuxbuz.com

Se te pedirá que proporciones tu correo electrónico válido y que aceptes las condiciones del servicio, como se muestra a continuación:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
antipara): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y

Obtaining a new certificate
Performing the following challenges:
http-01 challenge for dokuwiki.linuxbuz.com
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/dokuwiki-le-ssl.conf
Enabled Apache socache_shmcb module
Enabled Apache ssl module
Deploying Certificate to VirtualHost /etc/apache2/sites-available/dokuwiki-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/dokuwiki-le-ssl.conf

A continuación, selecciona si deseas o no redirigir el tráfico HTTP a HTTPS como se muestra a continuación:

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to antipara): 2

Escribe 2 y pulsa Intro para iniciar el proceso. Una vez completada la instalación, deberías obtener el ulterior resultado:

Enabled Apache rewrite module
Redirecting vhost in /etc/apache2/sites-enabled/dokuwiki.conf to ssl vhost in /etc/apache2/sites-available/dokuwiki-le-ssl.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://dokuwiki.linuxbuz.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=dokuwiki.linuxbuz.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/dokuwiki.linuxbuz.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/dokuwiki.linuxbuz.com/privkey.pem
   Your cert will expire on 2020-09-05. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

En este punto, tu sitio Dokuwiki está protegido con Let’s Encrypt SSL.

Accede a la DokuWiki

Ahora, abre tu navegador y escribe la URL https://dokuwiki.linuxbuz.com/install.php. Deberías ver la pantalla de instalación de DokuWiki:

Instalador de DokuWiki

Elige los términos de la licencia para el contenido Wiki

Introduce el nombre de tu wiki, el nombre de legatario administrador, la contraseña, el correo electrónico, elige tu política y pulsa el cogollo Asegurar. Serás redirigido a la ulterior página:

Instalación correcta

Haz clic en «tu nuevo DokuWiki». Deberías ver la ulterior pantalla:

Sitio DokuWiki

Haz clic en el cogollo Iniciar sesión. Serás redirigido a la pantalla de inicio de sesión de DokuWiki como se muestra a continuación:

Inicio de sesión en DokuWiki

Introduce tu nombre de legatario y contraseña de administrador, y haz clic en el cogollo Iniciar sesión. Deberías ver el panel de control de DokuWiki en la ulterior pantalla:

Área de administración

Configurar la Renovación Cibernética

Por defecto, los certificados Let’s Encrypt son válidos durante 90 días. Por lo tanto, tendrás que configurar una tarea cron para renovar automáticamente el certificado SSL. Es seguro crear una tarea cron que se ejecute cada semana o incluso cada día.

Si quieres renovar el certificado SSL manualmente, ejecuta el ulterior comando:

certbot renew --dry-run

Puedes configurar una tarea cron para renovar automáticamente el certificado SSL todos los días a las 6:00 AM editando el ulterior archivo:

crontab -e

Añade la ulterior columna:

00 06 * * *   root /usr/bin/certbot renew >/dev/null 2>&1

Portero y cierra el archivo cuando hayas terminado.

Conclusión

Enhorabuena! has instalado correctamente DokuWiki y lo has protegido con Let’s Encrypt SSL en Ubuntu 22.04. Ahora puedes crear tu propio sitio wiki utilizando DokuWiki. No dudes en preguntarme si tienes alguna duda.




Akaunting es una aplicación de software de contabilidad de código amplio y autoalojada para pequeñas empresas y autónomos. Está construida con Laravel, Bootstrap, jQuery y API RESTful. Se utiliza para crear y administrar facturas, presupuestos y finanzas a través de un navegador web. Ofrece una impresionante App Store para que usuarios y desarrolladores amplíen la funcionalidad de Akaunting.

En este tutorial, te mostraré cómo instalar el software de contabilidad Akaunting con Apache y Let’s Encrypt SSL en Ubuntu 22.04.

Requisitos previos

  • Un servidor que ejecute Ubuntu 22.04.
  • Un nombre de dominio válido abonado con la IP de tu servidor.
  • Una contraseña de root configurada en el servidor.

Instalar Apache, MariaDB y PHP

En primer ocasión, tendrás que instalar Apache, MariaDB, PHP y otras extensiones de PHP en tu servidor. Puedes instalarlos todos ejecutando el próximo comando:

apt-get install apache2 mariadb-server php libapache2-mod-php php-common php-imap php-mbstring php-xmlrpc php-soap php-gd php-xml php-intl php-mysql php-cli php-bcmath php-ldap php-zip php-curl unzip curl -y

Luego de instalar todos los paquetes, edita el archivo de configuración de PHP y cambia la configuración por defecto:

nano /etc/php/8.1/apache2/php.ini
Change the following lines:
memory_limit = 256M
upload_max_filesize = 16M
post_max_size = 16M
max_execution_time = 300
date.timezone = UTC

Tutela y cierra el archivo y reinicia el servicio Apache para aplicar los cambios de configuración:

systemctl restart apache2

Configurar la colchoneta de datos MariaDB

Akaunting utiliza MariaDB/MySQL como colchoneta de datos. Así que tendrás que crear una colchoneta de datos y un legatario para Akaunting.

En primer ocasión, inicia sesión en MariaDB con el próximo comando:

mysql

Una vez conectado, crea una colchoneta de datos y un legatario para Akaunting con el próximo comando:

MariaDB [(none)]> CREATE DATABASE akaunting_db;
MariaDB [(none)]> CREATE USER 'akaunting_user'@'localhost' IDENTIFIED BY 'password';

A continuación, concede todos los privilegios a la colchoneta de datos de Akaunting con el próximo comando:

MariaDB [(none)]> GRANT ALL ON akaunting_db.* TO 'akaunting_user'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

A continuación, vacía los privilegios y sal de MariaDB con el próximo comando:

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Instalar Akaunting

Primero, ve a la página oficial de descargas de Akaunting y descarga la última traducción con el próximo comando:

wget -O Akaunting.zip https://akaunting.com/download.php?version=latest

Una vez finalizada la descarga, descomprime el archivo descargado en el directorio raíz web de Apache:

mkdir -p /var/www/html/akaunting
unzip Akaunting.zip -d /var/www/html/akaunting

A continuación, cambia la propiedad y el permiso del directorio Akaunting:

chown -R www-data:www-data /var/www/html/akaunting/
chmod -R 755 /var/www/html/akaunting/

Cuando hayas terminado, puedes advenir al próximo paso.

Configurar Apache para Akaunting

A continuación, tendrás que crear un archivo de configuración del host aparente de Apache para Akaunting. Puedes crearlo con el próximo comando:

nano /etc/apache2/sites-available/akaunting.conf

Añade las siguientes líneas:

<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/html/akaunting
ServerName akaunting.example.com
DirectoryIndex index.html index.php
<Directory /var/www/html/akaunting/>
Options +FollowSymlinks
AllowOverride All
Require all granted

</Directory>

ErrorLog ${APACHE_LOG_DIR}/akaunting_error.log
CustomLog ${APACHE_LOG_DIR}/akaunting_access.log combined

</VirtualHost>

Tutela y cierra el archivo y, a continuación, activa el host aparente de Apache y el módulo de reescritura con el próximo comando:

a2ensite akaunting
a2enmod rewrite

A continuación, reinicia el servicio Apache para aplicar los cambios:

systemctl restart apache2

Ahora puedes comprobar el estado del Apache con el próximo comando:

systemctl status apache2

Obtendrás la próximo salida:

? apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2022-11-12 13:45:47 UTC; 10s ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 16032 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
   Main PID: 16036 (apache2)
      Tasks: 6 (limit: 464122)
     Memory: 14.2M
     CGroup: /system.slice/apache2.service
             ??16036 /usr/sbin/apache2 -k start
             ??16037 /usr/sbin/apache2 -k start
             ??16038 /usr/sbin/apache2 -k start
             ??16039 /usr/sbin/apache2 -k start
             ??16040 /usr/sbin/apache2 -k start
             ??16041 /usr/sbin/apache2 -k start

Nov 12 13:45:47 ubuntu22041 systemd[1]: Starting The Apache HTTP Server...

Asegura Akaunting con Let’s Encrypt SSL

A continuación, es una buena idea estabilizar tu sitio web con Let’s Encrypt SSL. En primer ocasión, instala el cliente Certbot utilizando el próximo comando:

apt-get install certbot python3-certbot-apache -y

Una vez instalado, ejecuta el próximo comando para estabilizar tu sitio web con Let’s Encrypt SSL:

certbot --apache -d akaunting.example.com

Se te pedirá que proporciones tu correo electrónico y aceptes las condiciones del servicio, como se muestra a continuación:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer None
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
contrapuerta): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Plugins selected: Authenticator apache, Installer apache
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for akaunting.example.com
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/akaunting-le-ssl.conf
Enabled Apache socache_shmcb module
Enabled Apache ssl module
Deploying Certificate to VirtualHost /etc/apache2/sites-available/akaunting-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/akaunting-le-ssl.conf

A continuación, selecciona si deseas o no redirigir el tráfico HTTP a HTTPS, como se muestra a continuación:

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to contrapuerta): 2

Escribe 2 y pulsa Intro para instalar Let’s Encrypt SSL en tu sitio web:

Enabled Apache rewrite module
Redirecting vhost in /etc/apache2/sites-enabled/akaunting.conf to ssl vhost in /etc/apache2/sites-available/akaunting-le-ssl.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://akaunting.example.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=akaunting.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/akaunting.example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/akaunting.example.com/privkey.pem
   Your cert will expire on 2023-02-12. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Accede a la Interfaz Web de Akaunting

Ahora, abre tu navegador y accede a la interfaz web de Akaunting utilizando la URL http://akaunting.example.com. Aparecerá la próximo pantalla:

Elige lengua

Selecciona tu idioma y pulsa el clavija Futuro. Aparecerá la pantalla de configuración de la colchoneta de datos:

Configuración de la base de datos

Proporciona los detalles de tu colchoneta de datos y pulsa el clavija Futuro. Aparecerá la pantalla de creación de la cuenta de legatario Admin:

Configuración de la empresa

Proporciona el nombre de tu empresa, correo electrónico, contraseña y pulsa el clavija Futuro. Aparecerá la pantalla de inicio de sesión de Akaunting:

Iniciar sesión

Proporciona tu nombre de legatario admin, contraseña y pulsa el clavija Iniciar sesión. Aparecerá la próximo pantalla:

Empresa

Pulsa el clavija Olvidar. Aparecerá la pantalla Divisas:

Divisas

Habilita tus monedas y pulsa el clavija Futuro. Aparecerá la pantalla de plugins:

Cuadro de mandos Akaunting

Instala los módulos que necesites y pulsa el clavija Futuro. Aparecerá la próximo pantalla:

Crear una nueva factura

Ahora puedes crear tu primera cuenta desde la pantalla inicial.

Conclusión

Enhorabuena! has instalado con éxito Akaunting con Apache y Let’s Encrypt SSL en el servidor Ubuntu 22.04. Ahora puedes encajar el software Akaunting en tu estructura para administrar tus facturas, presupuestos y finanzas desde cualquier ocasión. No dudes en preguntarme si tienes alguna duda.




Go, todavía llamado Golang, es un estilo de programación de código descubierto desarrollado por Google. Se utiliza para crear aplicaciones fiables y eficientes. Es multiplataforma y puede instalarse en Linux, Windows y macOS. Es un estilo de programación compilado, lo que significa que no necesitas inventariar el código fuente para crear un archivo ejecutable. Lo utilizan muchas organizaciones, como Mangodb, Soundcloud, Netflix, Uber, etc.

En este post, te mostraré cómo instalar el estilo de programación Go en el servidor Ubuntu 20.04.

Requisitos previos

  • Un servidor que ejecute Ubuntu 20.04.
  • Una contraseña de root configurada en el servidor.

Instalar Go

En primer espacio, descarga la última traducción de Go desde su sitio web oficial utilizando el ulterior comando:

wget https://golang.org/dl/go1.16.5.linux-amd64.tar.gz

Una vez descargado Go, extrae el archivo descargado al directorio /usr/recinto:

tar -xzf go1.16.5.linux-amd64.tar.gz -C /usr/recinto/

A continuación, tendrás que añadir la ruta del directorio Go a la variable $PATH del directorio /etc/profile.

nano /etc/profile

Añade la ulterior columna:

export PATH=$PATH:/usr/recinto/go/bin

Vigilante y cierra el archivo y, a continuación, activa la variable de entorno PATH mediante el ulterior comando:

source /etc/profile

A continuación, ejecuta el ulterior comando para comprobar la traducción instalada de Go:

go version

Deberías obtener la ulterior salida:

go version go1.16.5 linux/amd64

Cómo utilizar Go

Para probar la instalación de Go, escribiremos y construiremos un software de ejemplo.

En primer espacio, crea un directorio para tu software con el ulterior comando:

mkdir hello

A continuación, crea un archivo hola.go:

nano hello/hello.go

Añade los siguientes códigos:

package main

import "fmt"

func main() {
    fmt.Printf("Hello, Worldn")
}

Vigilante y cierra el archivo y, a continuación, crea un archivo go.mod:

nano hello/go.mod

Añade la ulterior columna:

module example.com/mod

Vigilante y cierra el archivo, luego cambia el directorio a hola y construye el software con el ulterior comando:

cd hello
go build

A continuación, ejecuta tu software con el ulterior comando:

./mod

Deberías ver la ulterior salida:

Hello, World!

Conclusión

Enhorabuena! has instalado correctamente Go en Ubuntu 20.04. Ya puedes asomar a desarrollar tu primera aplicación con Go. Para más información, encuentro la documentación de Go.




Let’s Chat es una aplicación de transporte gratuita, de código hendido y persistente que se ejecuta en Node.js y MongoDB. Está diseñada para equipos pequeños e íntimos y ofrece un rico conjunto de funciones, como autenticación LDAP/Kerberos, una API tipo REST y compatibilidad con XMPP. Con Let’s Chat, puedes cursar todo tipo de mensajes y igualmente encontrar chats de grupos de interés, pegatinas de voz y emojis geniales.

En este post, te mostraremos cómo instalar Let’s Chat con Nginx como proxy inverso en Ubuntu 22.04.

Requisitos previos

  • Un servidor que ejecute Ubuntu 22.04.
  • Una contraseña de root configurada en el servidor.

Instalar Node.JS

Ayer de despuntar, necesitarás instalar Node.js en tu servidor. Para instalar la última lectura de Node.js, tendrás que añadir el repositorio Node Source a APT.

Primero, instala todas las dependencias necesarias con el posterior comando:

apt install dirmngr gnupg apt-transport-https ca-certificates software-properties-common -y

Una vez instaladas todas las dependencias, añade el repositorio de Node.js a APT

curl -sL https://deb.nodesource.com/setup_18.x | bash -

Una vez añadido el repositorio, puedes instalar el Node.js con el posterior comando:

apt-get install nodejs -y

Tras la instalación correcta, verifica la lectura de Node.js con el posterior comando:

node -v

Obtendrás la posterior salida:

v18.7.0

Instalar almohadilla de datos MongoDB

Incluso necesitarás instalar una almohadilla de datos MongoDB en tu servidor.

En primer superficie, descarga e instala el paquete libssl con el posterior comando:

wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_amd64.deb
dpkg -i libssl1.1_1.1.1f-1ubuntu2_amd64.deb

A continuación, añade la secreto GPG de MongoDB y el repositorio con el posterior comando:

wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-4.4.list

A continuación, actualiza la elegancia del repositorio con el posterior comando:

apt update

Una vez actualizado tu repositorio, instala el MongoDB utilizando el posterior comando:

apt install -y mongodb-org

Una vez instalado el paquete MongoDB, inicia y habilita el servicio MongoDB con el posterior comando:

systemctl start mongod
systemctl enable mongod

Puedes comprobar el estado del servicio MongoDB con el posterior comando:

systemctl status mongod

Deberías ver la posterior salida:

? mongod.service - MongoDB Database Server
     Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-07-31 04:00:08 UTC; 6s ago
       Docs: https://docs.mongodb.org/manual
   Main PID: 42274 (mongod)
     Memory: 61.1M
        CPU: 1.014s
     CGroup: /system.slice/mongod.service
             ??42274 /usr/bin/mongod --config /etc/mongod.conf

Jul 31 04:00:08 ubuntu2204 systemd[1]: Started MongoDB Database Server.

Instalar Let’s Chat

En primer superficie, tendrás que descargar la última lectura de Let’s Chat del repositorio Git Hub. Puedes descargarla con el posterior comando:

git clone https://github.com/sdelements/lets-chat.git

Una vez completada la descarga, cambia el directorio al descargado e instala todas las dependencias necesarias con el posterior comando:

cd lets-chat
npm install

A continuación, copia el archivo de configuración de ejemplo e inicia el servidor de Let’s Chat con el posterior comando:

cp settings.yml.sample settings.yml
npm start

Deberías ver la posterior salida:

> [email protected] start
> node app.js

(node:42373) DeprecationWarning: `open()` is deprecated in mongoose >= 4.11.0, use `openUri()` instead, or set the `useMongoClient` option if using `connect()` or `createConnection()`. See http://mongoosejs.com/docs/4.x/docs/connections.html#use-mongo-client
(Use `node --trace-deprecation ...` to show where the warning was created)

???     ?????????????????????????     ??????????  ??? ?????? ?????????
???     ?????????????????????????    ???????????  ????????????????????
???     ??????     ???   ????????    ???     ????????????????   ???   
???     ??????     ???   ????????    ???     ????????????????   ???   
????????????????   ???   ????????    ???????????  ??????  ???   ???   
????????????????   ???   ????????     ??????????  ??????  ???   ???

Release 0.4.8

Pulsa CTRL + C para detener el servicio Let’s Chat.

Crear un archivo de servicio Systemd para Let’s Chat

A continuación, tendrás que crear un archivo de servicio systemd para Let’s Chat. Puedes crearlo con el posterior comando:

nano /etc/systemd/system/letschat.service

Añade las siguientes líneas:

[Unit]
Description=Let's Chat Server
Wants=mongodb.service
After=network.target mongod.service

[Service]
Type=simple
WorkingDirectory=/root/lets-chat
ExecStart=/usr/bin/npm start
User=root
Group=root
Restart=always
RestartSec=9

[Install]
WantedBy=multi-user.target

Tutela y cierra el archivo, luego recarga el demonio systemd con el posterior comando:

systemctl daemon-reload

A continuación, inicia y activa el servicio Let’s Chat con el posterior comando:

systemctl start letschat
systemctl enable letschat

A continuación, comprueba el estado de Let’s Chat con el posterior comando:

systemctl status letschat

Deberías ver la posterior salida:

? letschat.service - Let's Chat Server
     Loaded: loaded (/etc/systemd/system/letschat.service; disabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-07-31 04:02:34 UTC; 4s ago
   Main PID: 42429 (npm start)
      Tasks: 23 (limit: 2242)
     Memory: 157.9M
        CPU: 4.457s
     CGroup: /system.slice/letschat.service
             ??42429 "npm start" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
             ??42440 sh /tmp/start-b5e830e4.sh
             ??42441 letschat "" "" ""

Jul 31 04:02:34 ubuntu2204 npm[42429]: > node app.js
Jul 31 04:02:38 ubuntu2204 npm[42441]: (node:42441) DeprecationWarning: `open()` is deprecated in mongoose >= 4.11.0, use `openUri()` instead>
Jul 31 04:02:38 ubuntu2204 npm[42441]: (Use `node --trace-deprecation ...` to show where the warning was created)
Jul 31 04:02:38 ubuntu2204 npm[42441]: ???     ?????????????????????????     ??????????  ??? ?????? ?????????
Jul 31 04:02:38 ubuntu2204 npm[42441]: ???     ?????????????????????????    ???????????  ????????????????????
Jul 31 04:02:38 ubuntu2204 npm[42441]: ???     ??????     ???   ????????    ???     ????????????????   ???
Jul 31 04:02:38 ubuntu2204 npm[42441]: ???     ??????     ???   ????????    ???     ????????????????   ???
Jul 31 04:02:38 ubuntu2204 npm[42441]: ????????????????   ???   ????????    ???????????  ??????  ???   ???
Jul 31 04:02:38 ubuntu2204 npm[42441]: ????????????????   ???   ????????     ??????????  ??????  ???   ???
Jul 31 04:02:38 ubuntu2204 npm[42441]: Release 0.4.8

En este punto, el servicio Let’s Chat está iniciado y audición en el puerto 5000. Puedes comprobarlo con el posterior comando:

ss -antpl | grep 5000

Deberías ver la posterior salida:

LISTEN 0      511        127.0.0.1:5000       0.0.0.0:*    users:(("letschat",pid=42441,fd=20))     

Configurar Nginx para Let’s Chat

A continuación, tendrás que instalar y configurar Nginx como proxy inverso para Let’s Chat. Así podrás obtener al Chat de Let’s a través del puerto 80.

En primer superficie, instala el paquete de servidor Nginx con el posterior comando:

apt install nginx -y

A continuación, crea un archivo de configuración de host aparente Nginx:

nano /etc/nginx/conf.d/letschat.conf

Añade las siguientes configuraciones:

server {
server_name letschat.example.com;
listen 80;

access_log /var/log/nginx/lets_chat-access.log;
error_log /var/log/nginx/lets_chat-error.log;

location / {
proxy_set_header   X-Efectivo-IP $remote_addr;
proxy_set_header   Host      $host;
proxy_http_version 1.1;
proxy_set_header   Upgrade $http_upgrade;
proxy_set_header   Connection 'upgrade';
proxy_cache_bypass $http_upgrade;
proxy_pass         http://127.0.0.1:5000;
}

}

Tutela y cierra el archivo, luego verifica que Nginx no tenga ningún error de sintaxis:

nginx -t

Deberías ver la posterior salida:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Por posterior, reinicia el servicio Nginx para aplicar los cambios de configuración:

systemctl restart nginx

Incluso puedes comprobar el estado del Nginx utilizando el posterior comando:

systemctl status nginx

Deberías ver el estado de Nginx en la posterior 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 Sun 2022-07-31 04:04:23 UTC; 5s ago
       Docs: man:nginx(8)
    Process: 43193 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 43194 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 43195 (nginx)
      Tasks: 2 (limit: 2242)
     Memory: 2.5M
        CPU: 35ms
     CGroup: /system.slice/nginx.service
             ??43195 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
             ??43196 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""

Jul 31 04:04:23 ubuntu2204 systemd[1]: Starting A high performance web server and a reverse proxy server...
Jul 31 04:04:23 ubuntu2204 systemd[1]: Started A high performance web server and a reverse proxy server.

Consentir a la interfaz web de Let’s Chat

Ahora, abre tu navegador web y accede a la interfaz web de Let’s Chat utilizando la URL http://letschat.example.com.

Iniciar sesión en el chat

Deberás hacer clic en el rama «Necesito una cuenta» para crear una cuenta. Deberías ver la posterior página:

Registrar una cuenta

Proporciona tu nombre de usufructuario, contraseña, dirección de correo electrónico y haz clic en el rama Registrar. Una vez que te hayas registrado correctamente, deberías ver la posterior pantalla:

Inicio de sesión correcto

Haz clic en el rama Aceptar. Se te redirigirá a la pantalla de inicio de sesión de Let’s Chat:

Regístrate en

Proporciona tu nombre de usufructuario y contraseña de Let’s Chat, y haz clic en el rama Iniciar sesión. Deberías ver el panel de Let’s Chat en la posterior pantalla:

Sala de chat

Conclusión

Enhorabuena! has instalado correctamente el servidor de Let’s Chat con Nginx como proxy inverso en Ubuntu 22.04. Ahora puedes desplegar Let’s Chat en tu entorno de trabajo y despuntar a comunicarte con otros miembros del equipo. No dudes en preguntarme si tienes alguna duda.




Redmine es una útil gratuita y de código descubierto para la mandato de proyectos y el seguimiento de incidencias. Es un software de aplicación basado en web, escrito principalmente en Ruby on Rails. Es multiplataforma y admite varias bases de datos y varios idiomas.

Redmine es flexible y puede utilizarse para distintos tipos de organizaciones y proyectos, desde pequeñas, medianas o grandes organizaciones. Te permite crear y tramitar múltiples proyectos, y cada tesina tiene su propia Wiki, Foros, seguimiento de incidencias, etc. Por otra parte, te permite crear roles personalizados en función de las deyección de tu ordenamiento, y muchas cosas más.

Redmine se publica bajo abuso GNU GPL v2 y puede instalarse en cualquier sistema eficaz, como Linux, Windows o macOS. Admite distintos tipos de bases de datos, como PostgreSQL, MySQL y SQLite (por defecto).

En esta callejero, instalarás Redmine con el servidor web Apache2 y el servidor MySQL en un servidor Ubuntu 22.04. Asimismo asegurarás la instalación de Redmine con certificados SSL.

Requisitos previos

Este tutorial requiere los siguientes requisitos

  • Un servidor Ubuntu 22.04 – Este ejemplo utiliza un servidor Ubuntu con el nombre de host redmine-server.
  • Un sucesor no root con privilegios de root sudo – Pero incluso puedes utilizar el sucesor root.
  • Un nombre de dominio apuntando a la dirección IP de tu servidor – Para la producción, debes asegurarte de que tu nombre de dominio apunta a la dirección IP de tu servidor.

Una vez que tengas todo presto, ya puedes proceder al primer paso de la instalación de Redmine.

Instalación de dependencias

Redmine es una útil de mandato de proyectos y seguimiento de incidencias de código descubierto escrita principalmente en Ruby y Ruby on Rails (RoR). Para instalar Redmine, primero debes instalar Ruby, luego puedes instalar otras dependencias como el servidor web Apache2 y la pulvínulo de datos mediante el servidor MySQL.

En este ejemplo, ejecutarás Redmine con el servidor web Apache2 y el servidor MySQL.

Antaño de abrir a instalar los paquetes, ejecuta el próximo comando apt para modernizar y refrescar el índice de paquetes de Ubuntu.

sudo apt update

Una vez actualizado el repositorio, instala algunas de las siguientes dependencias de paquetes mediante el comando apt que aparece a continuación.

Con este comando, instalarás el servidor web Apache2 seguido del linapache2-mod-passenger que se utilizará para configurar la aplicación RoR para que se ejecute bajo Apache2. Asimismo instalarás paquetes Ruby.

sudo apt install apache2 ruby ruby-dev build-essential libapache2-mod-passenger libmysqlclient-dev

Cuando se te pida que confirmes la instalación, introduce y y pulsa ENTER para continuar.

instalar dependencias

Una vez instalados Apache2 y Ruby, ejecuta el próximo comando para instalar el servidor MySQL. Redmine admite varios RDBMS como PostgreSQL, MySQL/MariaDB y SQLite. en este ejemplo utilizarás el servidor MySQL.

sudo apt install mysql-server

Introduce y cuando se te pida que confirmes la instalación, y pulsa INTRO para continuar.

instalar mysql

Para la instalación de Redmine, incluso necesitarás instalar un bundler en tu servidor Ubuntu. bundler es una recorrido de comandos que se utilizará para tramitar los paquetes Ruby Gems.

Ejecuta el próximo comando para instalar un bundler en tu sistema.

sudo gem install bundler

Una vez instalado el bundler, verás una salida como la próximo:

instalar bundler

Por final, verifica los servicios Apache2 y MySQL mediante el próximo comando systemctl. Así te asegurarás de que los servicios Apache2 y MariaDB se están ejecutando y están habilitados.

Verifica el servicio Apache2.

sudo systemctl is-enabled apache2
sudo systemctl status apache2

A continuación puedes ver que el servicio Apache2 está competente y se ejecutará automáticamente al acelerar el sistema. Y el estado presente del servicio es en ejecución.

comprobar apache2

Verifica el servicio MySQL.

sudo systemctl is-enabled mysql
sudo systemctl status mysql

Verás una salida similar a la próximo – El servicio MySQL está competente y se ejecutará automáticamente al acelerar el sistema. Y el estado presente del servicio MySQL es en ejecución.

comprobar mysql

Configurar el servidor MySQL

Una vez instalados Apache2 y el servidor MySQL, configurarás la contraseña raíz de MySQL y asegurarás la instalación mediante mysql_secure_installation. A continuación, incluso crearás una nueva pulvínulo de datos MySQL y un nuevo sucesor para Redmine.

Accede a MySQL mediante el comando mysql que aparece a continuación.

sudo mysql

Ahora cambia la contraseña raíz de MySQL mediante la próximo consulta. Y asegúrate de cambiar la contraseña por la tuya. A continuación, escribe quit para salir del intérprete de comandos MySQL.

ALTER USER [email protected] IDENTIFIED WITH mysql_native_password BY 'password';
quit

cambiar contraseña raíz

A continuación, ejecuta el próximo comando para abrir a apuntalar la implementación del servidor MySQL.

sudo mysql_secure_installation

Cuando se te pida la contraseña raíz de MySQL, introduce tu contraseña correcta.

A continuación, se te pedirán otras configuraciones de MySQL, como desactivar el inicio de sesión remoto para el sucesor root, eliminar el sucesor secreto, eliminar la prueba de pulvínulo de datos predeterminada y recargar todos los privilegios de las tablas. Para todas esas configuraciones del servidor MySQL, introduce Y para confirmar la configuración.

Tras apuntalar el despliegue de MySQL, es hora de configurar una nueva pulvínulo de datos y un nuevo sucesor para Redmine.

Accede al shell de MySQL mediante el comando mysql que se indica a continuación. Se te pedirá la contraseña raíz de MySQL, introduce la contraseña correcta para tu sucesor raíz de MySQL y pulsa INTRO.

sudo mysql -u root -p

Ahora ejecuta las siguientes consultas para crear una nueva pulvínulo de datos MySQL y un nuevo sucesor para Redmine. En este ejemplo, crearás una nueva pulvínulo de datos y un nuevo sucesor redmine con la contraseña‘secretPassword‘. Puedes sustituir la contraseña de la pulvínulo de datos por tu contraseña.

CREATE DATABASE redmine CHARACTER SET utf8mb4;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'secretPassword';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';
FLUSH PRIVILEGES;

crear db y usuario

A continuación, ejecuta las siguientes consultas para compulsar los privilegios del sucesor MySQL redmine. Asegúrate de que el sucesor MySQL redmine tiene privilegios sobre la pulvínulo de datos redmine.

SHOW GRANTS FOR [email protected];
quit

A continuación puedes ver el sucesor MySQL [email protected] con privilegios para la pulvínulo de datos redmine.

comprobar privilegios

Por final, escribe quit para cerrar la sesión en el intérprete de comandos MySQL.

Con todas las dependencias instaladas, y la pulvínulo de datos MySQL y el sucesor creados, estás presto para instalar la útil de mandato de proyectos Redmine en tu servidor Ubuntu.

Instalar Redmine

En este paso, instalarás la última lectura de Redmine. En el momento de escribir esto, la última lectura de Redmine es la v5.0.2.

Descargarás el código fuente de Redmine, configurarás la pulvínulo de datos, instalarás las dependencias de Ruby mediante la compilación, configurarás el token secreto de Redmine y migrarás la pulvínulo de datos.

En este ejemplo, instalarás Redmine en el directorio /opt/redmine.

Desplázate al directorio /opt.

cd /opt/

Ahora, descarga el código fuente de Redmine con el próximo comando wget. Una vez descargado, verás el archivo redmine-5.0.2.tar.gz en tu directorio /opt.

wget https://www.redmine.org/releases/redmine-5.0.2.tar.gz

A continuación, ejecuta el próximo comando para extraer el código fuente de Redmine redmine-5.0.2.tar.g z y crea un nuevo enlace simbólico para el directorio de Redmine a /opt/redmine.

tar -xvzf redmine-5.0.2.tar.gz
sudo ln -s redmine-5.0.2 redmine

El directorio principal de instalación de Redmine será /opt/redmine.

Desplázate al directorio /opt/redmine.

cd /opt/redmine/

Copia la configuración por defecto de la pulvínulo de datos ‘config/database.yml.example’ en ‘config/database.yml’. A continuación, abre el archivo de configuración de la pulvínulo de datos ‘config/database.yml’ con el editor nano.

cp config/database.yml.example config/database.yml
nano config/database.yml

copiar la configuración de la base de datos

En la sección ‘producción’, cambia los detalles de la pulvínulo de datos MySQL y el sucesor. Asegúrate de utilizar el sucesor de la pulvínulo de datos y la contraseña correctos para Redmine.

production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "secretPassword" 
  # Use "utf8" instead of "utfmb4" for MySQL prior to 5.7.7
  encoding: utf8mb4

Cuidado el archivo y sal del editor cuando hayas terminado.

A continuación, ejecuta el próximo comando bundler para instalar las dependencias de Ruby para la aplicación Redmine.

bundle config set --local without 'development test'
bundle install

Verás una salida similar a la próximo:

instalar dependencias

Una vez instaladas las dependencias de Redmine, ejecuta el próximo comando para originar el token secreto de Redmine y portar la pulvínulo de datos.

bundle exec rake generate_secret_token
RAILS_ENV=production bundle exec rake db:migrate

En la próximo captura de pantalla, puedes ver que se genera el token secreto de Redmine y el proceso de migración de la pulvínulo de datos de Redmine.

migrar base de datos

Por final, carga el predeterminado en tu instalación de Redmine con el próximo comando. Cuando se te pida que elijas el idioma, introduce en como para Inglés.

RAILS_ENV=production bundle exec rake redmine:load_default_data

Cuando se carguen los datos por defecto de Redmine, verás el mensaje de salida como«Datos de configuración por defecto cargados«.

cargar datos por defecto

Ahora que Redmine está instalado, a continuación configurarás un host posible Apache2 para Redmine.

Configurar un host posible para Redmine

En este paso, crearás una nueva configuración de host posible Apache2 para Redmine. Así que asegúrate de que tienes el nombre de dominio que apunta a la dirección IP de tu servidor y de que se han generado los certificados SSL.

Ejecuta el próximo comando para habilitar los módulos ssl y reescritura de Apache.

sudo a2enmod ssl rewrite

Verás la salida como la próximo:

activar módulos apache2

Ahora, crea una nueva configuración de host posible Apache2‘/etc/apache2/sites-available/redmine.conf‘ utilizando el editor nano.

sudo nano /etc/apache2/sites-available/redmine.conf

Añade la próximo configuración al archivo. Y asegúrate de cambiar el nombre de dominio y la ruta de los certificados SSL con tu configuración.

<VirtualHost *:80>
ServerName redmine.hwdomain.io
ServerAdmin [email protected]

# Redirect Requests to SSL
Redirect permanent "/" "https://redmine.hwdomain.io/"

</VirtualHost>

<IfModule mod_ssl.c>

<VirtualHost *:443>

ServerName redmine.hwdomain.io
RailsEnv production
DocumentRoot /opt/redmine/public

ErrorLog ${APACHE_LOG_DIR}/redmine.hwdomain.io.error.log
CustomLog ${APACHE_LOG_DIR}/redmine.hwdomain.io.access.log combined

SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/redmine.hwdomain.io/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/redmine.hwdomain.io/privkey.pem

<Directory "/opt/redmine/public">
Allow from all
Require all granted
</Directory>

</VirtualHost>

</IfModule>

Cuidado el archivo y sal del editor.

A continuación, ejecuta el próximo comando para activar el archivo de host posible‘redmine.conf‘. A continuación, verifica tu configuración de Apache2 para asegurarte de que tienes la configuración adecuada.

sudo a2ensite redmine.conf
sudo apachectl configtest

Ahora obtendrás el mensaje de salida«Sintaxis OK» cuando tengas la configuración adecuada de Apache2.

configurar apache vhost

Por final, reinicia el servicio Apache2 mediante el próximo comando systemctl para aplicar el nuevo archivo de host posible.

sudo systemctl restart apache2

En este punto, Redmine está instalado y el host posible está configurado. Ahora deberías conseguir a tu instalación de Redmine a través de tu nombre de dominio.

Configurar el cortafuegos UFW

En producción, debes activar el cortafuegos. Para el sistema Ubuntu, puedes utilizar el cortafuegos por defecto UFE (Uncomplicated Firewall).

Ahora, añadirás reglas UFW que abran los servicios HTTP y HTTPS por defecto para que Redmine sea accesible desde fuera de la red.

Ejecuta el próximo comando ufw para añadir el perfil de aplicación por defecto«OpenSSH» al UFW. A continuación, inicia y activa el cortafuegos de la UFW.

sudo ufw allow "OpenSSH"
sudo ufw enable

Cuando te pida confirmación, introduce y para iniciar y habilitar el servicio de cortafuegos UFW.

permitir ssh

A continuación, ejecuta el próximo comando para añadir el perfil de aplicación«Apache Full» al cortafuegos. A continuación, comprueba el estado del UFW mediante el próximo comando.

sudo ufw allow "Apache Full"
sudo ufw status

Deberías ver que el estado del cortafuegos UFW está activo y que los perfiles de aplicación actualmente habilitados son OpenSSH y «Apache Full». Esto abrirá el puerto SSH 22 por defecto y los puertos 80 y 443 de los servicios HTTP y HTTPS.

comprobar ufw

Instalación de Redmine

Abre el navegador web y turista el nombre de dominio de tu instalación de Redmine (es sostener: https://redmine.hwdomain.io/).

Ahora verás la página de inicio por defecto de la útil de mandato de proyectos y seguimiento de incidencias Redmine. Haz clic en«Iniciar sesión» para conseguir al panel de sucursal de Redmine.

página principal redmine

Introduce el sucesor y contraseña predeterminados de sucursal de Redmine«adminadmin«.

inicio de sesión

Una vez que hayas iniciado sesión, se te pedirá que cambies la contraseña predeterminada de Redmine. Introduce la nueva contraseña para tu instalación de Redmine y haz clic en«Aplicar«.

cambiar contraseña

Por final, edita los datos de tu sucesor administrador de Redmine y haz clic en «Asegurar» para aplicar las configuraciones. Ya has configurado la pulvínulo de Redmine.

cambiar usuarios

Para añadir un nuevo tesina, haz clic en el menú«Proyectos«. Deberías poder crear, editar o eliminar Proyectos en tu Redmine.

lista de proyectos

Ahora, si quieres añadir configuraciones a Redmine, haz clic en el menú «Delegación«. Con eso, puedes añadir más usuarios, configurar grupos, delimitar roles, habilitar la autenticación a través de una aplicación de terceros como LDAP, y muchas cosas más.

administración

Conclusión

En este tutorial, has instalado y configurado la útil de mandato de proyectos y seguimiento de incidencias Redmine en el servidor Ubuntu 22.04. Asimismo has configurado la pulvínulo de datos MariaDB y el servidor web Nginx para Redmine. Por otra parte, incluso has asegurado la instalación de Redmine con certificados SSL.

Ahora que tienes Redmine instalado en tu sistema, puedes ampliar tu instalación de Redmine añadiendo algunas configuraciones adicionales, como integrar Redmine en tus infraestructuras actuales, como añadir autenticaciones LDAP, e integrarlo con SCM como SVN, Git y Mercurial. Por otra parte, puedes añadir roles según tu ordenamiento o empresa.




Mastodon es un software sin cargo y de código rajado para ejecutar servicios de redes sociales autoalojados. Ofrece funciones de microblogging que te permiten seguir a otros usuarios y informar mensajes e imágenes con Mastodon. Está escrito en Ruby y JavaScript y admite publicaciones de audio, vídeo e imágenes, descripciones de accesibilidad, encuestas, avisos de contenido, avatares animados, emojis personalizados y mucho más. Mastodon ofrece una aplicación para varias plataformas como Android e iOS.

En este tutorial, te mostraremos cómo instalar Mastodon en Ubuntu 22.04.

Aggiornamento: La vademécum se actualizó y se volvió a probar con éxito el 30/11/2022 para aclarar la instalación y solucionar los problemas mencionados en los comentarios, ya que algunas versiones de software habían cambiado desde que se escribió la vademécum.

Requisitos previos

  • Un servidor que ejecute Ubuntu 22.04.
  • Tu servidor tiene configurada una contraseña de root.
  • Un nombre de dominio válido apuntando a la dirección IP de tu servidor.

Cómo originarse

En primer circunstancia, se recomienda poner al día todos los paquetes de tu sistema con la última traducción. Puedes hacerlo ejecutando el ulterior comando:

apt update -y
apt upgrade -y

Luego de poner al día tu sistema, necesitarás instalar algunas dependencias requeridas por Mastodon. Puedes instalarlas todas con el ulterior comando:

apt install git software-properties-common make apt-transport-https redis-server optipng pngquant jhead jpegoptim gifsicle imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev file g++ libprotobuf-dev protobuf-compiler pkg-config gcc autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm-dev libidn11-dev libicu-dev libjemalloc-dev -y

Una vez instaladas todas las dependencias, puedes advenir al ulterior paso.

Instalar Node.js

Mastodon requiere que Node.js esté instalado en tu sistema. Para instalar Node.js, añade el repositorio de Node.js a tu servidor utilizando el ulterior comando:

curl -sL https://deb.nodesource.com/setup_16.x | bash -

Una vez añadido el repositorio, instala la traducción 16 de Node.js con el ulterior comando:

apt install nodejs -y

A continuación, descarga y añade la esencia GPG de Yarn y habilita el repositorio con el ulterior comando:

curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | tee /usr/share/keyrings/yarnkey.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | tee /etc/apt/sources.list.d/yarn.list

Una vez añadida, actualiza el repositorio e instala Yarn con los siguientes comandos:

apt update -y
apt -y install yarn

Cuando hayas terminado, puedes advenir al ulterior paso.

Instalar y configurar PostgreSQL

Mastodon utiliza PostgreSQL como almohadilla de datos. Puedes instalar la última traducción de PostgreSQL con el ulterior comando:

apt install -y postgresql postgresql-contrib

Tras instalar PostgreSQL, inicia el servicio PostgreSQL con el ulterior comando:

systemctl start postgresql

A continuación, inicia sesión en el intérprete de comandos PostgreSQL:

sudo -u postgres -i psql

A continuación, crea una almohadilla de datos para Mastodon:

CREATE DATABASE mastodon;

A continuación, crea un beneficiario de almohadilla de datos con el ulterior comando:

CREATE USER mastodon;

A continuación, establece una contraseña para el beneficiario Mastodon con el ulterior comando:

ALTER USER mastodon WITH ENCRYPTED PASSWORD 'password';

A continuación, establece el permiso adecuado para crear la almohadilla de datos:

ALTER USER mastodon createdb;

A continuación, establece este beneficiario como propietario de la almohadilla de datos Mastodon:

ALTER DATABASE mastodon OWNER TO mastodon;

Por zaguero, sal del intérprete de comandos PostgreSQL con el ulterior comando:

q

Instalar Ruby

Mastodon todavía requiere tener instalada la traducción 2.5+ de Ruby en tu servidor. Si no está instalada, puedes instalarla con el ulterior comando:

apt install -y ruby ruby-dev

Tras la instalación, puedes efectuar la traducción de Ruby con el ulterior comando:

ruby -v

Obtendrás la traducción de Ruby en la ulterior salida:

ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x86_64-linux-gnu]

Instalar y configurar Mastodon

A continuación, tendrás que crear un beneficiario dedicado para ejecutar Mastodon. Puedes crearlo con el ulterior comando:

adduser mastodon --system --group --disabled-login

A continuación, descarga la última traducción de Mastodon del repositorio Git:

git clone https://github.com/tootsuite/mastodon.git

A continuación, crea un directorio /var/www/ para Mastodon si no existe.

mkdir -p /var/www/

A continuación, mueve el directorio Mastodon al directorio /var/www:

mv mastodon/ /var/www/

A continuación, cambia la propiedad del directorio Mastodon a mastodon:

chown -R mastodon:mastodon /var/www/mastodon/

A continuación, navega hasta el directorio /var/www/mastodon y comprueba la última rama:

cd /var/www/mastodon/
sudo -u mastodon git checkout v4.0.2

Obtendrás el ulterior resultado:

Note: switching to 'v4.0.2'.

You are in 'detached HEAD' state. You can look around, make positivo
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

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

  git switch -c 

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at 03b0f3ac8 Bump version to 4.0.2 (#20725)

A continuación, instala todas las dependencias necesarias para Mastodon con el ulterior comando:

gem install bundler
sudo -u mastodon bundle config deployment 'true'
sudo -u mastodon bundle config without 'development test'
sudo -u mastodon bundle install -j$(getconf _NPROCESSORS_ONLN)

Por zaguero, ejecuta el asistente de instalación de Mastodon con el ulterior comando:

sudo -u mastodon RAILS_ENV=production bundle exec rake mastodon:setup

Se te pedirá que indiques tu nombre de dominio:

Type application/netcdf is already registered as a variant of application/netcdf.
Your instance is identified by its domain name. Changing it afterward will break things.
Domain name: mastodon.linuxbuz.com

Escribe tu nombre de dominio y pulsa la tecla Intro. Se te pedirá que habilites el modo monousuario:

Single user mode disables registrations and redirects the landing page to your public profile.
Do you want to enable single user mode? No

Escribe No y pulsa la tecla Intro. Se te pedirá que utilices Docker para ejecutar Mastodon:

Are you using Docker to run Mastodon? no

Escribe no y pulsa la tecla Intro. Se te pedirá que proporciones los detalles de la almohadilla de datos PostgreSQL:

PostgreSQL host: /var/run/postgresql
PostgreSQL port: 5432
Name of PostgreSQL database: mastodon
Name of PostgreSQL user: mastodon
Password of PostgreSQL user: 

Proporciona los detalles de tu almohadilla de datos PostgreSQL y pulsa la tecla Intro. Se te pedirán los datos del servidor Redis:

Database configuration works! ????

Redis host: localhost
Redis port: 6379
Redis password: 

Indica el host y el puerto de Redis, deja en blanco el campo de la contraseña y pulsa la tecla Intro. Se te pedirá que almacenes los archivos en la estrato:

Redis configuration works! ????

Do you want to store uploaded files on the cloud? No

Escribe No y pulsa la tecla Intro. Se te pedirá que envíes un correo electrónico desde localhost:

Do you want to send e-mails from localhost? yes
E-mail address to send e-mails "from": Mastodon <[email protected]>
Send a test e-mail with this configuration right now? no

Introduce todos los datos necesarios y pulsa la tecla Intro. Se te pedirá que guardes todas las configuraciones:

This configuration will be written to .env.production
Save configuration? (Y/n) Y

Escribe Y y pulsa la tecla Intro. Se te pedirá que prepares la almohadilla de datos:

Now that configuration is saved, the database schema must be loaded.
If the database already exists, this will erase its contents.
Prepare the database now? (Y/n) Y

Escribe Y y pulsa la tecla Intro. Se te pedirá que compiles los activos CSS/JS.

The final step is compiling CSS/JS assets.
This may take a while and consume a lot of RAM.
Compile the assets now? (Y/n) Y

Escribe Y y pulsa la tecla Intro. Se te pedirá que configures una contraseña de administrador:

All done! You can now power on the Mastodon server ????

Do you want to create an admin user straight away? Yes
Username: admin
E-mail: [email protected]
You can login with the password: 9835fbd5e569ad149610862178580da7
You can change your password merienda you login.

Introduce tu nombre de beneficiario y correo electrónico de administrador y pulsa la tecla Intro para finalizar la instalación.

Crear archivo de servicio Systemd para Mastodon

Mastodon viene con un archivo systemd preconfigurado para mandar los servicios de Mastodon. Tendrás que copiarlos en el directorio /etc/sysetmd/system/.

cp /var/www/mastodon/dist/mastodon*.service /etc/systemd/system/

A continuación, tendrás que cambiar el directorio de trabajo de Mastodon de /home/mastodon/live/ a /var/www/mastodon/ en el archivo de servicio. Puedes hacerlo con el ulterior comando:

sed -i 's/home/mastodon/live/var/www/mastodon/g' /etc/systemd/system/mastodon-*.service

Incluso tendrás que cambiar /home/mastodon/.rbenv/shims/bundle por /usr/locorregional/bin/bundle en los archivos de servicio:

sed -i 's/home/mastodon/.rbenv/shims/usr/locorregional/bin/g' /etc/systemd/system/mastodon-*.service

A continuación, recarga el systemd para aplicar los cambios de configuración:

systemctl daemon-reload

A continuación, inicia y activa todos los servicios de Mastodon:

systemctl enable --now mastodon-web mastodon-sidekiq mastodon-streaming

Puedes comprobar el estado de todos los servicios con el ulterior comando:

systemctl status mastodon-web mastodon-sidekiq mastodon-streaming

Salida:

? mastodon-web.service - mastodon-web
     Loaded: loaded (/etc/systemd/system/mastodon-web.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2022-11-30 03:07:13 UTC; 19s ago
   Main PID: 10201 (ruby3.0)
      Tasks: 29 (limit: 464140)
     Memory: 249.0M
     CGroup: /system.slice/mastodon-web.service
             ??10201 "puma 5.6.5 (tcp://127.0.0.1:3000) [mastodon]" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ">
             ??10228 "puma: cluster worker 0: 10201 [mastodon]" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "">
             ??10232 "puma: cluster worker 1: 10201 [mastodon]" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "">

Nov 30 03:07:15 ubuntu22042 bundle[10201]: [10201] *  Max threads: 5
Nov 30 03:07:15 ubuntu22042 bundle[10201]: [10201] *  Environment: production
Nov 30 03:07:15 ubuntu22042 bundle[10201]: [10201] *   Master PID: 10201
Nov 30 03:07:15 ubuntu22042 bundle[10201]: [10201] *      Workers: 2
Nov 30 03:07:15 ubuntu22042 bundle[10201]: [10201] *     Restarts: (?) hot (?) phased
Nov 30 03:07:15 ubuntu22042 bundle[10201]: [10201] * Preloading application
Nov 30 03:07:27 ubuntu22042 bundle[10201]: [10201] * Listening on http://127.0.0.1:3000
Nov 30 03:07:27 ubuntu22042 bundle[10201]: [10201] Use Ctrl-C to stop
Nov 30 03:07:27 ubuntu22042 bundle[10201]: [10201] - Worker 0 (PID: 10228) booted in 0.04s, phase: 0
Nov 30 03:07:27 ubuntu22042 bundle[10201]: [10201] - Worker 1 (PID: 10232) booted in 0.01s, phase: 0

? mastodon-sidekiq.service - mastodon-sidekiq
     Loaded: loaded (/etc/systemd/system/mastodon-sidekiq.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2022-11-30 03:07:13 UTC; 19s ago
   Main PID: 10199 (ruby3.0)
      Tasks: 32 (limit: 464140)
     Memory: 247.1M
     CGroup: /system.slice/mastodon-sidekiq.service
             ??10199 "sidekiq 6.5.7 mastodon [0 of 25 busy]" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "">

Nov 30 03:07:29 ubuntu22042 bundle[10199]: 2022-11-30T03:07:29.202Z pid=10199 tid=cc7 uniquejobs=upgrade_locks INFO: Start - Converting v6 lo>
Nov 30 03:07:29 ubuntu22042 bundle[10199]: 2022-11-30T03:07:29.202Z pid=10199 tid=cc7 uniquejobs=upgrade_locks INFO: Done - Converting v6 loc>
Nov 30 03:07:29 ubuntu22042 bundle[10199]: 2022-11-30T03:07:29.202Z pid=10199 tid=cc7 uniquejobs=upgrade_locks INFO: Start - Deleting v6 keys
Nov 30 03:07:29 ubuntu22042 bundle[10199]: 2022-11-30T03:07:29.203Z pid=10199 tid=cc7 uniquejobs=upgrade_locks INFO: Done - Deleting v6 keys

Por defecto, Mastodon audición en el puerto 3000. Puedes comprobarlo con el ulterior comando:

ss -lnpt | grep 3000

Salida:

LISTEN 0      1024       127.0.0.1:3000      0.0.0.0:*    users:(("ruby3.0",pid=10232,fd=5),("ruby3.0",pid=10228,fd=5),("ruby3.0",pid=10201,fd=5))

Configurar Nginx como proxy inverso

En primer circunstancia, instala el paquete del servidor web Nginx con el ulterior comando:

apt install nginx -y

A continuación, copia el archivo de configuración del host supuesto Nginx en el directorio Nginx:

cp /var/www/mastodon/dist/nginx.conf /etc/nginx/conf.d/mastodon.conf

A continuación, edita el archivo de configuración del host supuesto Mastodon:

nano /etc/nginx/conf.d/mastodon.conf

Rebusca la ulterior itinerario tanto en el agrupación del servidor del puerto 80 como en el agrupación del servidor del puerto 443:

server_name example.com;

Sustitúyelos por la ulterior itinerario:

server_name mastodon.linuxbuz.com;

Rebusca la ulterior itinerario tanto en el agrupación del servidor del puerto 80 como en el agrupación del servidor del puerto 443.

root /home/mastodon/live/public;

Sustitúyela por la ulterior itinerario:

root /var/www/mastodon/public;

Encuentra las dos líneas siguientes.

# ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
# ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

Cámbialas por las siguientes, para que Nginx utilice temporalmente un certificado TLS autofirmado. Más delante obtendremos un certificado Let’s Encrypt válido.

ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;
ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;

Escolta y cierra el archivo y, a continuación, crea un directorio de gusto para Nginx:

mkdir -p /var/nginx/cache/

A continuación, comprueba si Nginx tiene algún error de sintaxis:

nginx -t

Obtendrás la ulterior salida:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

A continuación, reinicia el servicio Nginx para aplicar los cambios:

systemctl restart nginx

Asegura Mastodon con Let’s Encrypt SSL

Para habilitar HTTPS en el sitio web de Mastodon, necesitarás instalar el paquete Certbot en tu servidor.

Primero, instala el mandatario de paquetes Snap con el ulterior comando:

apt install snapd

A continuación, actualiza el paquete Snap a la última traducción:

snap install core
snap refresh core

A continuación, instala el paquete Certbot con el ulterior comando:

snap install --classic certbot

A continuación, crea un enlace simbólico para el binario de Certbot en la ubicación del sistema:

ln -s /snap/bin/certbot /usr/bin/certbot

A continuación, ejecuta el ulterior comando para descargar e instalar los certificados SSL de Let’s Encrypt:

certbot --nginx -d mastodon.linuxbuz.com

Se te pedirá que proporciones tu dirección de correo electrónico y que aceptes las condiciones del servicio:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)
 (Enter 'c' to biombo): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf. You must
agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, merienda your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y

Escribe Y y pulsa la tecla Intro para descargar e instalar los certificados SSL para tu dominio:

Account registered.
Requesting a certificate for mastodon.linuxbuz.com

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/mastodon.linuxbuz.com/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/mastodon.linuxbuz.com/privkey.pem
This certificate expires on 2023-02-28.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.

Deploying certificate
Successfully deployed certificate for mastodon.linuxbuz.com to /etc/nginx/conf.d/mastodon.conf
Congratulations! You have successfully enabled HTTPS on https://mastodon.linuxbuz.com

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
 * Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
 * Donating to EFF:                    https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Accede a la Interfaz Web de Mastodon

Ahora, abre tu navegador web y escribe la URL https://mastodon.linuxbuz.com. Serás redirigido a la ulterior página:

Haz clic en el rama Iniciar sesión. Deberías ver la página de inicio de sesión de Mastodon:

Ahora, proporciona tu correo electrónico de administrador y la contraseña que creaste anteriormente, y haz clic en el rama Iniciar sesión. Deberías ver el panel de control de Mastodon en la ulterior página:

Enhorabuena! has instalado y configurado correctamente Mastodon en el servidor Ubuntu 22.04. Ahora puedes crear fácilmente tu propia red social utilizando Mastodon. No dudes en preguntarme si tienes alguna duda.




Moodle es un Sistema de Mandato de Educación y CMS tirado y de código libre escrito en PHP. Permite a los tutores e instructores crear cursos para sus alumnos y hace más accesible la educación a distancia y otros programas de educación en fila. Moodle ofrece un panel de control sencillo, viable de usar y personalizado que ayuda a los usuarios a entrar a los cursos actuales, pasados o futuros y a revisar el trabajo irresoluto. Está diseñado para los profesores y educadores que pretenden impartir una educación basada en la tecnología.

Este tutorial te mostrará cómo instalar Moodle con Nginx y Let’s Encrypt SSL en Ubuntu 22.04.

Requisitos previos

  • Un servidor con Ubuntu 22.04.
  • Un nombre de dominio válido escrito con la IP de tu servidor.
  • Una contraseña de root configurada en el servidor.

Cómo principiar

En primer división, debes modernizar los paquetes de tu sistema a la última lectura. Puedes actualizarlos todos ejecutando el posterior comando:

apt-get update -y

Una vez que tu servidor esté actualizado, puedes acontecer al posterior paso.

Instalar Nginx, MariaDB y PHP

Antaño de principiar, tendrás que instalar en tu sistema Apache, MariaDB, PHP y otras librerías de PHP. En primer división, instala el servidor Apache y MariaDB utilizando el posterior comando:

apt-get install nginx mariadb-server -y

Por defecto, Ubuntu 22.04 viene con la lectura PHP 8.1, y Moodle no soporta esta lectura de PHP. Así que tendrás que instalar PHP 7.4 en tu servidor.

En primer división, instala todas las dependencias necesarias utilizando el posterior comando:

apt install software-properties-common ca-certificates lsb-release apt-transport-https -y

A continuación, añade el repositorio de PHP a tu servidor con el posterior comando:

add-apt-repository ppa:ondrej/php

A continuación, actualiza el repositorio utilizando el posterior comando:

apt update

Una vez actualizado el repositorio, instala PHP con otras extensiones necesarias utilizando el posterior comando:

apt install php7.4 php7.4-fpm php7.4-common php7.4-mysql php7.4-gmp php7.4-curl php7.4-intl php7.4-mbstring php7.4-soap php7.4-xmlrpc php7.4-gd php7.4-xml php7.4-cli php7.4-zip unzip git curl -y

Una vez instalados todos los paquetes, edita el archivo php.ini y cambia algunos ajustes:

nano /etc/php/7.4/fpm/php.ini

Cambia las siguientes líneas:

memory_limit = 256M
max_input_vars = 6000

cgi.fix_pathinfo = 0
upload_max_filesize = 100M
max_execution_time = 360
date.timezone = UTC

Escolta y cierra el archivo, luego reinicia el servicio PHP-FPM para aplicar los cambios:

systemctl restart php7.4-fpm

Una vez que hayas terminado, puedes acontecer al posterior paso.

Crear una almohadilla de datos para Moodle

Moodle utiliza MySQL o MariaDB como almohadilla de datos, por lo que tendrás que crear una almohadilla de datos y un favorecido para Moodle.

Primero, conéctate al shell de MySQL con el posterior comando:

mysql

Una vez conectado, crea una almohadilla de datos y un favorecido con el posterior comando:

CREATE DATABASE moodledb;
CREATE USER 'moodle'@'localhost' IDENTIFIED BY 'password';

A continuación, concede todos los privilegios a la almohadilla de datos de Moodle con el posterior comando:

GRANT ALL ON moodledb.* TO 'moodle'@'localhost' WITH GRANT OPTION;

A continuación, vacía los privilegios y sal de MySQL con el posterior comando

FLUSH PRIVILEGES;
EXIT;

A continuación, edita el archivo de configuración por defecto de MariaDB y define el formato innodb_file_format:

nano /etc/mysql/mariadb.conf.d/50-server.cnf

Añade las siguientes líneas interiormente de la sección [mysqld]:

[mysqld]
innodb_file_format = Barracuda
innodb_file_per_table = 1
innodb_large_prefix = ON

Escolta el archivo y reinicia el servicio MariaDB para aplicar los cambios:

systemctl restart mariadb

Instalar Moodle en Ubuntu 22.04

Primero, cambia el directorio al directorio raíz de Apache y descarga la última lectura de Moodle con el posterior comando:

cd /var/www/html
git clone -b MOODLE_400_STABLE git://git.moodle.org/moodle.git moodle

A continuación, establece el permiso y la propiedad adecuados para el Moodle:

mkdir -p /var/www/html/moodledata
chown -R www-data:www-data /var/www/html/moodle
chmod -R 755 /var/www/html/*
chown www-data:www-data /var/www/html/moodledata

Una vez que hayas terminado, puedes acontecer al posterior paso.

Configurar Nginx para Moodle

A continuación, tendrás que crear un archivo de configuración del host aparente Nginx para penetrar Moodle:

nano /etc/nginx/conf.d/moodle.conf

Añade las siguientes líneas:

server {
    listen 80;
    root /var/www/html/moodle;
    index  index.php index.html index.htm;
    server_name  moodle.example.com;

    client_max_body_size 100M;
    autoindex off;
    location / {
        try_files $uri $uri/ =404;
    }

    location /dataroot/ {
      internal;
      apelativo /var/www/html/moodledata/;
    }

    location ~ [^/].php(/|$) {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

Escolta y cierra el archivo, y luego verifica que Nginx no tenga ningún error de sintaxis con el posterior comando:

nginx -t

Deberías obtener la posterior salida:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Por postrer, reinicia el servicio Nginx para aplicar los cambios:

systemctl restart nginx

Incluso puedes comprobar el estado del servicio Nginx con el posterior comando:

systemctl status nginx

Deberías ver la posterior 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 Mon 2022-07-18 07:08:50 UTC; 26s ago
       Docs: man:nginx(8)
    Process: 51379 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 51382 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 51383 (nginx)
      Tasks: 3 (limit: 4579)
     Memory: 3.6M
        CPU: 64ms
     CGroup: /system.slice/nginx.service
             ??51383 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
             ??51384 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
             ??51385 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""

Jul 18 07:08:50 ubuntu2204 systemd[1]: Starting A high performance web server and a reverse proxy server...
Jul 18 07:08:50 ubuntu2204 systemd[1]: Started A high performance web server and a reverse proxy server.

En este punto, Nginx está configurado para penetrar Moodle. Ahora puedes acontecer al posterior paso.

Entrar a la interfaz web de Moodle

Ahora, abre tu navegador web y accede a la interfaz web de Moodle utilizando la URL http://moodle.example.com. Deberías ver la página de instalación de Moodle:

Elige la lengua

Selecciona tu idioma y haz clic en Posterior. Deberías ver la posterior página:

Ruta de instalación

Proporciona tu dirección web de Moodle, la ruta del directorio, la ruta del directorio de datos y haz clic en Posterior. Deberías ver la posterior página:

controlador de la base de datos

Selecciona tu tipo de compensador de almohadilla de datos y haz clic en Posterior. Deberías ver la posterior página:

Configuración de la base de datos

Proporciona el host de tu almohadilla de datos, el nombre de la almohadilla de datos, el nombre de favorecido, la contraseña y haz clic en Posterior. Deberías ver la posterior página:

Iniciar la instalación de Moodle

Haz clic en Continuar para confirmar todas las condiciones. Deberías ver la posterior página:

Comprobación de la instalación

Asegúrate de que están instaladas todas las extensiones de PHP necesarias, y haz clic en Continuar. Deberías ver la posterior página:

Instalación de Moodle con éxito

Haz clic en Continuar. Deberías ver la posterior página:

Ajustes generales

Plataforma de aprendizaje Moodle

Proporciona tu nombre de favorecido, contraseña, correo electrónico, país, zona horaria y haz clic en Renovar perfil. Deberías ver la posterior página:

Configuración del sitio

Ubicación y zona horaria

Proporciona tu configuración de la página principal y haz clic en el brote Respetar cambios para cuidar los cambios.

Fijar Moodle con Let’s Encrypt SSL

A continuación, tendrás que instalar la aparejo Certbot para descargar Let’s Encrypt SSL y configurar Nginx para que utilice este SSL.

Primero, instala el Certbot con el posterior comando:

apt-get install python3-certbot-nginx -y

Una vez instalado, ejecuta el posterior comando para descargar todo el SSL y configurar Nginx para que lo utilice:

certbot --nginx -d moodle.example.com

Se te pedirá que proporciones una dirección de correo electrónico válida y que aceptes las condiciones del servicio, como se muestra a continuación:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
contrapuerta): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for moodle.example.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/conf.d/moodle.conf

A continuación, elige si quieres redirigir el tráfico HTTP a HTTPS como se muestra a continuación:

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to contrapuerta): 2

Escribe 2 y pulsa Intro para continuar. Deberías ver el posterior resultado:

Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/moodle.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://moodle.example.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=moodle.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/moodle.example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/moodle.example.com/privkey.pem
   Your cert will expire on 2022-10-19. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

 - We were unable to subscribe you the EFF mailing list because your
   e-mail address appears to be invalid. You can try again later by
   visiting https://act.eff.org.

Ahora puedes entrar al sitio web de Moodle utilizando la URL http://moodle.example.com