Diferencia entre revisiones de «Asegurar Moodle en servidor Raspberry Pi Model 2. Gentoo Linux y Nginx»

De MoodleDocs
(tidy up)
({{Actualizar}})
Línea 1: Línea 1:
{{Actualizar}}
Hola,
Hola,



Revisión del 14:23 20 may 2022

Esta página necesita actualizarse con la información existente en la documentación vigente/moderna/actualizada en el idioma inglés original para Moodle. Se le sugiere al lector que consulte la página original en idioma inglés cuyo enlace está al fondo de esta página. y que, por favor, actualice esta información y quite la plantilla {{Actualizar}} cuando haya terminado.     (otras páginas pendientes de actualizar)


Hola,

Deseo compartir mis experiencias al instalar Moodle en un equipo Raspberry Pi Model 2, en el cual está ejecutándose el sistema operativo Gentoo Linux y el servidor web Nginx. Me pueden contactar en: [1]

Primeramente, instalé Gentoo Linux en mi equipo Raspberry Pi Model 2 al seguir esta guía: [2]

Después instalé y configuré el servidor web Nginx al seguir estas guías: [3] [4]

Mi archivo nginx.config es: user nginx nginx; worker_processes 1;

error_log /var/log/nginx/error_log info;

events {

       worker_connections 1024;
       use epoll;

}

http {

       include /etc/nginx/mime.types;
       default_type application/octet-stream;
       log_format main
       '$remote_addr - $remote_user [$time_local] '
       '"$request" $status $bytes_sent '
       '"$http_referer" "$http_user_agent" '
       '"$gzip_ratio"';
       client_max_body_size 15m;
       client_header_timeout 10m;
       client_body_timeout 10m;
       send_timeout 10m;
       connection_pool_size 256;
       client_header_buffer_size 1k;
       large_client_header_buffers 4 2k;
       request_pool_size 4k;
       gzip off;
       output_buffers 1 32k;
       postpone_output 1460;
       sendfile on;
       tcp_nopush on;
       tcp_nodelay on;
       keepalive_timeout 75 20;
       ignore_invalid_headers on;
       index index.html index.php;
       add_header Strict-Transport-Security "max-age=15768000; includeSubDomains" always;
       server {
               listen 443 ssl http2;
               listen [::]:443 ssl http2;
               server_name www.cspl.hu;
               root /var/www/localhost/htdocs;
               location = /KisTechTavOktKulcsosPicike.ico {
               log_not_found off;
               access_log off;
               }
               ssl_certificate /etc/ssl/certs/chained.pem;
               ssl_certificate_key /etc/ssl/private/domain.key;
               ssl_session_timeout 5m;
               ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
               ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-S

HA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA- AES256-SHA:DHE-RSA-AES128-SHA:EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES: RSA+3DES:!MD5;

               ssl_session_cache shared:SSL:50m;
               ssl_dhparam /etc/ssl/certs/dhparam.pem;
               ssl_prefer_server_ciphers on;
               access_log /var/log/nginx/localhost.access_log main;
               error_log /var/log/nginx/localhost.error_log info;
               access_log /var/log/nginx/localhost.ssl_access_log main;
               error_log /var/log/nginx/localhost.ssl_error_log info;
               location ~ [^/]\.php(/|$) {
               fastcgi_split_path_info ^(.+?\.php)(/.*)$;
               if (!-f $document_root$fastcgi_script_name) {
               return 404;
               }
               
               fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
               fastcgi_index index.php;
               include fastcgi_params;
               include fastcgi.conf;
               }


               location /dataroot/ {
               internal;
               alias /var/www/localhost/moodle/; # ensure the path ends with /
               }
               
               location /moodlelib/ {
               internal;
               alias /var/www/localhost/htdocs/moodle/lib/; # ensure the path ends with /
               }
               
               location /moodlepix/ {
               internal;
               alias /var/www/localhost/htdocs/moodle/pix/; # ensure the path ends with /
               }
               location /moodletheme/ {
               internal;
               alias /var/www/localhost/htdocs/moodle/theme/; # ensure the path ends with /
               }
       }
               server {
                       listen          80;
                       listen          [::]:80;
                       server_name     www.cspl.hu;
                       return          301 https://$server_name$request_uri;
               }

}

Mi archivo fastcgi.config es: fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length;

fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param REQUEST_URI $request_uri; fastcgi_param DOCUMENT_URI $document_uri; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param SERVER_PROTOCOL $server_protocol; fastcgi_param REQUEST_SCHEME $scheme; fastcgi_param HTTPS $https if_not_empty;

fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;

fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_PORT $remote_port; fastcgi_param SERVER_ADDR $server_addr; fastcgi_param SERVER_PORT $server_port; fastcgi_param SERVER_NAME $server_name;

  1. PHP only, required if PHP was built with --enable-force-cgi-redirect

fastcgi_param REDIRECT_STATUS 200;

Mi archivo fastcgi_params es: fastcgi_param PATH_INFO $fastcgi_path_info;

fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length;

fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param REQUEST_URI $request_uri; fastcgi_param DOCUMENT_URI $document_uri; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param SERVER_PROTOCOL $server_protocol; fastcgi_param REQUEST_SCHEME $scheme; fastcgi_param HTTPS $https if_not_empty;

fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;

fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_PORT $remote_port; fastcgi_param SERVER_ADDR $server_addr; fastcgi_param SERVER_PORT $server_port; fastcgi_param SERVER_NAME $server_name;

  1. PHP only, required if PHP was built with --enable-force-cgi-redirect

fastcgi_param REDIRECT_STATUS 200;

Yo obtuve un certificado desde: [5]

Finalmente hice lo siguiente, en ese orden:

  1. quitar la instalación anterior de Moodle con la ayuda de webapp-config:
    1. webapp-config -C moodle 3.2.3
    2. (Yo había instalado la versión 3.2.3 de Moodle antes de cambiar mi sitio de HTTP a HTTPS )
  2. quitar el paquete Gentoo moodle con emerge
    1. emerge --depclean www-apps/moodle
  3. des-instalar y después instalar nuevamente el paquete webapp-config por causa de instalaciones fantasma ( véalo descrito aquí: [6]
    1. emerge --unmerge app-admin/webapp-config
    2. rm -rf /var/db/webapps/
    3. emerge -a app-admin/webapp-config
    4. dispatch-conf
      1. aquí yo elegí 'u' pero después Usted tiene que editar /etc/vhosts/webapp-config
      2. vhost_server="nginx"
  4. instalar nuevamente el paquete Moodle ( pero esta es una versión más nueva 3.3.1 )
    1. emerge -a www-apps/moodle
    2. webapp-config -I moodle 3.3.1
    3. después de la instalación me salió el mensaje 'POST-INSTALL INSTRUCTIONS' lo cual es una guía sobre como proceder con la instalación del sitio Moodle, por ejemplo sobre las bases de datos mysql y postgresql databases, comandos a ejecutar, etc.
  5. configurar el archivo config.php:

Mi archivo config.php es: <?php unset($CFG); // Ignorar esta línea global $CFG; // Esto es necesario aquí para la ejecución de PHPUnit $CFG = new stdClass();

$CFG->dbtype = 'pgsql'; // 'pgsql', 'mariadb', 'mysqli', 'mssql', 'sqlsrv' o 'oci' $CFG->dblibrary = 'native'; // 'native' solamente por mientras $CFG->dbhost = 'localhost'; // por ejemplo 'localhost' o 'db.isp.com' o IP $CFG->dbname = 'moodle'; // nombre de la base de datos, por ejemplo moodle $CFG->dbuser = 'postgres'; // su nombre del usuario de la base de datos $CFG->dbpass = 'secret_password'; // su contraseña de la base de datos $CFG->prefix = 'mdl_'; // prefijo a usar para todos los nombres de tabla $CFG->dboptions = array(

   'dbpersist' => false,       // ¿si debería de usarse conexiones persistentes a la base de datos?
                               //  configurar a 'false' para la más estable configuración
                               //  'true' puede mejorar el desempeño
                               //  a veces
   'dbsocket'  => '/var/run/postgresql/',       // ¿debería usarse conexión via UNIX socket?
                               //  si Usted lo configura a 'true' o ruta personalizada
                               //  aquí configure dbhost a 'localhost',
                               //  (por favor tenga en cuenta que mysql siempre está usando socket
                               //  si dbhost es 'localhost' - si Usted necesita
                               //  conexión a puerto local use '127.0.0.1')
   'dbport'    => ,          // el número del puerto TCP a usar al conectarse
                               //  al servidor. Dejar vacía esta cadena para  el
                               //  puerto por defecto

);

$CFG->wwwroot = 'https://www.cspl.hu/moodle'; $CFG->dataroot = '/var/www/localhost/moodle'; $CFG->directorypermissions = 02777;

$CFG->admin = 'admin';

$CFG->slasharguments = true;

$CFG->xsendfile = 'X-Accel-Redirect'; $CFG->xsendfilealiases = array( '/dataroot/' => $CFG->dataroot, '/moodlelib/' => '/var/www/localhost/htdocs/moodle/lib', '/moodlepix/' => '/var/www/localhost/htdocs/moodle/pix', '/moodletheme/' => '/var/www/localhost/htdocs/moodle/theme' );

require_once(dirname(__FILE__) . '/lib/setup.php'); // Do not edit ?>

Finalmente, me gustaría agradecerle a todas las peronas que me ayudaron: Matteo Scaramuccia, Ken Task, y a muchos otros también.

--Pál Csányi (discusión) 04:01, 22 July 2017 (AWST)