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 | *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 | ||
* | *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. | ||
=== | === Preliminares === | ||
<syntaxhighlight lang="bash "> | <syntaxhighlight lang="bash "> | ||
sudo su | sudo su | ||
</syntaxhighlight> | </syntaxhighlight> | ||
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: | ||
a2dissite 000-default.conf #disable a site conf | |||
a2ensite YOURAPACHEFILE.conf #enable site conf | |||
#a2enmod rewrite | a2enmod rewrite | ||
systemctl restart apache2 | |||
</syntaxhighlight> | </syntaxhighlight> | ||
=== | === Certificado === | ||
<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 === | ||
<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> | |||
Diferentes formas de acceder a Mediawiki instalado: | |||
*Con SSL | |||
https://domain.com | |||
https://domain.com/wiki | |||
*Sin SSL | |||
http://IP | |||
http://IP/wiki | |||
== Scripts extras == | |||
=== 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] |