Diferencia entre revisiones de «Mediawiki»

De TechShareRoom wiki
Sin resumen de edición
 
(No se muestran 20 ediciones intermedias del mismo usuario)
Línea 1: Línea 1:
== ¿Qué és? ==
== ¿Qué és? ==
MediaWiki es un software de código abierto utilizado para crear wikis colaborativas en línea. Es el mismo software que impulsa proyectos como Wikipedia, Wikimedia Commons y Wiktionary. Desarrollado originalmente por la Fundación Wikimedia, MediaWiki es altamente personalizable y permite a los usuarios crear, editar y organizar contenido de manera colaborativa en un sitio web. Ofrece características como la capacidad de crear páginas, enlaces internos y externos, formatos de texto, y la capacidad de colaborar con otros usuarios a través de la edición y discusión de páginas. Además, MediaWiki también incluye características avanzadas como el control de acceso, la gestión de versiones y la capacidad de incrustar contenido multimedia.
MediaWiki es un software de código abierto utilizado para crear wikis colaborativas en línea. Es el mismo software que impulsa proyectos como Wikipedia, Wikimedia Commons y Wiktionary. Desarrollado originalmente por la Fundación Wikimedia, MediaWiki es altamente personalizable y permite a los usuarios crear, editar y organizar contenido de manera colaborativa en un sitio web. Ofrece características como la capacidad de crear páginas, enlaces internos y externos, formatos de texto, y la capacidad de colaborar con otros usuarios a través de la edición y discusión de páginas. Además, MediaWiki también incluye características avanzadas como el control de acceso, la gestión de versiones y la capacidad de incrustar contenido multimedia.
Lo ideal es alojarlo en un servidor que goce de 24h de alta disponibilidad, aunque también se puede instalar en local para pruebas y a posterior migrar a un servidor externo.


== Tipos de Instalación ==
== Tipos de Instalación ==
Se puede instalar de varias maneras.
Se puede instalar de varias maneras:
*Con un script que te instale todo de una de la forma tradicional. Esto lo pondremos pŕoximamente.
*Con un script que te instale todo de una de la forma tradicional. Esto es muy difícil y laborioso, se valora ponerlo aquí en un futuro
*En un contenedor. Con docker, por ejemplo, próximamente también.
*Con un script que te despliegue un contenedor que lo integre. Con docker, por ejemplo, próximamente también se pondrá.
*De manera tradicional, manual, paso a paso. Esta es la manera que vamos a tratar a corto plazo.
*De manera tradicional, manual, paso a paso. Esta es la manera que vamos a tratar a corto plazo.
**Vamos a instalarla manualmente en un servidor externo en este caso con la versión de Ubuntu 22.04 LTS. La mayoría de los pasoss son iguales para versiones anteriores y posteriores, pero con esta versión podemos garantizar que funciona 100%.
**Vamos a instalarla manualmente en un servidor externo en este caso con la versión de Ubuntu 22.04 LTS. La mayoría de los pasoss son iguales para versiones anteriores y posteriores, pero con esta versión podemos garantizar que funciona 100% o al menos muy cercana a ese porcentaje debido a que estos pasos no han sido testados al máximo y requerirá de tiempo tanto su mejora como su testeo, así que está abierto a edición libre.
Vamos a poner Apache, MySQL, PHP y Webmin. También se puede usar NGINX en el lugar de Apache, pero por ahora usaremos Apache.
Vamos a poner Apache, MySQL, PHP y Webmin. También se puede usar NGINX en el lugar de Apache, pero por ahora usaremos Apache al ser la forma que se ha testado.


== Instalación de la manera tradicional con Apache ==
== Instalación de la manera tradicional con Apache ==
Partimos de que tienes acceso con permisos de administrador en un servidor con Ubuntu por ssh.
Partimos de que tienes acceso con permisos de administrador en un servidor con Ubuntu por ssh.


=== Preliminary ===
=== Preliminares ===
<syntaxhighlight lang="bash ">
<syntaxhighlight lang="bash ">
sudo su
sudo su
</syntaxhighlight>
</syntaxhighlight>
Now you have to execute the next scripts.
 
Ahora tienes que ejecutar los siguientes scripts.
 
<syntaxhighlight lang="bash ">
<syntaxhighlight lang="bash ">
#!/bin/bash
#!/bin/bash
Línea 23: Línea 27:
#Upgrade system
#Upgrade system
apt update & apt upgrade -y
apt update & apt upgrade -y
#ufw
 
#Install ufw and configure it.
apt install -y ufw
apt install -y ufw
ufw allow 22
ufw allow 22
Línea 30: Línea 35:
ufw allow 10000
ufw allow 10000
ufw enable
ufw enable
#Enable extra firewall rules manually on your server, for example in Oracle Server this is necessary.
</syntaxhighlight>
</syntaxhighlight>


Línea 59: Línea 66:


apt install -y apache2
apt install -y apache2
</syntaxhighlight>
=== Ejemplo de configuración de archivo Apache ===
Localizado en /etc/apache2/sites-available


Tienes que cambiar 000-default.conf por YOURAPACHEFILE.conf
<syntaxhighlight lang="xml ">
<VirtualHost *:80>
        ServerName domain.com
        ServerAlias www.domain.com
        Alias /wiki /var/www/html/wiki/index.php
DocumentRoot /var/www/html/wiki
<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>
<Files xmlrpc.php>
order deny,allow
deny from all
</Files>
RewriteEngine On
RewriteOptions inherit
RewriteCond %{HTTP_HOST} ^domain\.com
RewriteRule ^(.*)$ https://www.domain.com$1 [R=permanent,L]
RewriteCond %{SERVER_NAME} =www.domain.com [OR]
RewriteCond %{SERVER_NAME} =domain.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
        ServerName domain.com
        ServerAlias www.domain.com
        Alias /wiki /var/www/html/wiki/index.php
        DocumentRoot /var/www/html/wiki
<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>
<Files xmlrpc.php>
order deny,allow
deny from all
</Files>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.domain\.com [NC]
RewriteRule ^(.*)$ https://domain.com$1 [L,R=301]
RedirectMatch ^/$ /domain/
SSLEngine on
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/domain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/domain.com/privkey.pem
</VirtualHost>
</IfModule>
</syntaxhighlight>
<syntaxhighlight lang="bash ">
## Put YOURAPACHEFILE.conf in /etc/apache2/sites-available and enable with:
## Put YOURAPACHEFILE.conf in /etc/apache2/sites-available and enable with:


#a2ensite YOURAPACHEFILE.conf #enable site conf
a2dissite 000-default.conf #disable a site conf
#a2dissite 000-default.conf #disable a site conf
a2ensite YOURAPACHEFILE.conf #enable site conf
#a2enmod rewrite - MUY IMPORTANTE
a2enmod rewrite
#systemctl restart apache2
systemctl restart apache2
</syntaxhighlight>
</syntaxhighlight>


=== Cert ===
=== Certificado ===
'''Pending'''
<syntaxhighlight lang="bash ">
#!/bin/bash
apt install -y snapd
snap install core
snap refresh core
snap install --classic certbot
ln -s /snap/bin/certbot /usr/bin/certbot
 
certbot --apache -d DOMAINNAME.com -d www.DOMAINNAME.com
</syntaxhighlight>


=== MYSQL ===
=== MYSQL ===
Línea 92: Línea 168:
#Now to enter you can use
#Now to enter you can use
#mysql -u root -pYOURPASSWORD
#mysql -u root -pYOURPASSWORD
#create database
mysqladmin -uroot -pYOURPASSWORD create WIKIDATABASENAME
</syntaxhighlight>
</syntaxhighlight>


=== php + phpmyadmin ===
=== PHP + phpMyAdmin ===
<syntaxhighlight lang="bash ">
<syntaxhighlight lang="bash ">
#!/bin/bash
#!/bin/bash
Línea 103: Línea 183:
</syntaxhighlight>
</syntaxhighlight>


Para acceder a phpMyAdmin:
*Con SSL
https://domain.com/phpmyadmin
*Sin SSL
http://IP/phpmyadmin
=== Mediawiki ===
<syntaxhighlight lang="bash ">
#!/bin/bash
major_release="1.41"
minor_release="1.41.0"
extract_folder="wiki"
wget https://releases.wikimedia.org/mediawiki/${major_release}/mediawiki-${minor_release}.tar.gz
tar xvzf mediawiki-${minor_release}.tar.gz -C /var/www/html/${extract_folder} --strip-components=1
rm mediawiki-${minor_release}.tar.gz
#Mediawiki permissions
chown -R www-data:www-data /var/www/html/${extract_folder}
chmod -R 755 /var/www/html/${extract_folder}
</syntaxhighlight>


#mediawiki
Diferentes formas de acceder a Mediawiki instalado:
*Con SSL
https://domain.com


https://domain.com/wiki
*Sin SSL
http://IP


#mediawiki permissions
http://IP/wiki


chown -R www-data:www-data /var/www/html/YOURWIKIFOLDER
== Scripts extras ==
chmod -R 755 /var/www/html/YOURWIKIFOLDER
=== Actualizar Mediawiki ===
<syntaxhighlight lang="bash ">
#!/bin/bash
major_release="1.41"
minor_release="1.41.0"


wget https://releases.wikimedia.org/mediawiki/${major_release}/mediawiki-${minor_release}.tar.gz
tar xvzf mediawiki-${minor_release}.tar.gz -C /var/www/html/${extract_folder} --strip-components=1
rm mediawiki-${minor_release}.tar.gz
cd /var/www/html/${extract_folder}/maintenance
php update.php
</syntaxhighlight>
</syntaxhighlight>
=== Copia de seguridad+Actualización+Borrado de copias de seguridad antiguas Mediawiki ===
*[https://github.com/TechShareRoom/backup-restore-advanced-cms/blob/master/backup-advanced.sh backup-advanced.sh]
*[https://github.com/TechShareRoom/backup-restore-advanced-cms/blob/master/restore-advanced.sh restore-advanced.sh]
*[https://github.com/TechShareRoom/backup-restore-advanced-cms/blob/master/delete-advanced.sh delete-advanced.sh]


== Recursos ==
== Recursos ==
=== Tutoriales ===
*[https://workingwithmediawiki.com/book/chapter1.html Working with MediaWiki]
*[https://workingwithmediawiki.com/book/chapter1.html Working with MediaWiki]
=== Extensiones ===
*[https://github.com/Universal-Omega/PortableInfobox PortableInfobox]