Diferencia entre revisiones de «Mediawiki»

De TechShareRoom wiki
Ir a la navegación Ir a la búsqueda
Sin resumen de edición
Sin resumen de edición
Línea 69: Línea 69:
#a2enmod rewrite - MUY IMPORTANTE
#a2enmod rewrite - MUY IMPORTANTE
#systemctl restart apache2
#systemctl restart apache2
</syntaxhighlight>
=== Apache file conf example ===
Located on/etc/apache2/sites-available
<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>


=== Cert ===
=== Cert ===
'''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
</syntaxhighlight>


=== MYSQL ===
=== MYSQL ===
Línea 97: Línea 162:
</syntaxhighlight>
</syntaxhighlight>


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


=== Mediawiki ===
<syntaxhighlight lang="bash ">
#!/bin/bash


#mediawiki
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
#Mediawiki permissions
chown -R www-data:www-data /var/www/html/${extract_folder}
chmod -R 755 /var/www/html/${extract_folder}
</syntaxhighlight>


chown -R www-data:www-data /var/www/html/YOURWIKIFOLDER
== Extra Scripts ==
chmod -R 755 /var/www/html/YOURWIKIFOLDER
=== Upgrade 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>
=== Backup+Upgrade+Delete old backups 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 ==
*[https://workingwithmediawiki.com/book/chapter1.html Working with MediaWiki]
*[https://workingwithmediawiki.com/book/chapter1.html Working with MediaWiki]

Revisión del 20:45 24 mar 2024

¿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.

Tipos de Instalación

Se puede instalar de varias maneras.

  • Con un script que te instale todo de una de la forma tradicional. Esto lo pondremos pŕoximamente.
  • En un contenedor. Con docker, por ejemplo, próximamente también.
  • 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 poner Apache, MySQL, PHP y Webmin. También se puede usar NGINX en el lugar de Apache, pero por ahora usaremos 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.

Preliminary

sudo su

Now you have to execute the next scripts.

#!/bin/bash

#Upgrade system
apt update & apt upgrade -y

#Install ufw and configure it. 
apt install -y ufw
ufw allow 22
ufw allow 80
ufw allow 443
ufw allow 10000
ufw enable

#Enable extra firewall rules manually on your server, for example in Oracle Server this is necessary.

Webmin

#!/bin/bash

apt install -y software-properties-common apt-transport-https

wget https://raw.githubusercontent.com/webmin/webmin/master/setup-repos.sh
chmod +x setup-repos.sh
sh setup-repos.sh
apt install -y --install-recommends webmin

#Configure user login
username="admin"
password="YOURPASSWORD"

echo "${username}:${password}:0" >> /etc/webmin/miniserv.users
/usr/share/webmin/changepass.pl /etc/webmin ${username} ${password}
echo "${username}: acl adsl-client apache at backup-config bacula-backup bandwidth bind8 change-user cluster-copy cluster-cron cluster-passwd cluster-shell cluster-software cluster-useradmin cluster-usermin cluster-webmin cpan cron custom dfsadmin dhcpd dovecot exim exports fail2ban fdisk fetchmail filemin filter firewall firewall6 firewalld fsdump heartbeat htaccess-htpasswd idmapd inetd init inittab ipfilter ipfw ipsec iscsi-client iscsi-server iscsi-target iscsi-tgtd krb5 ldap-client ldap-server ldap-useradmin logrotate logviewer lpadmin lvm mailboxes mailcap man mount mysql net nis openslp package-updates pam pap passwd phpini postfix postgresql ppp-client pptp-client pptp-server proc procmail proftpd qmailadmin quota raid samba sarg sendmail servers shell shorewall shorewall6 smart-status smf software spam squid sshd status stunnel syslog-ng syslog system-status tcpwrappers time tunnel updown useradmin usermin webalizer webmin webmincron webminlog xinetd xterm" >> /etc/webmin/webmin.acl
systemctl restart webmin
systemctl status webmin

Apache

#!/bin/bash

apt install -y apache2

## 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
#a2enmod rewrite - MUY IMPORTANTE
#systemctl restart apache2

Apache file conf example

Located on/etc/apache2/sites-available

<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>

Cert

#!/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

MYSQL

#!/bin/bash

apt install -y mysql-server

#configure mysql
##way 1
mysql -u root -p #Entering with blank password
sudo mysql
SELECT user,plugin,host FROM mysql.user WHERE user = 'root';
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YOURPASSWORD';
FLUSH PRIVILEGES;
exit
#Now to enter you can use
#mysql -u root -pYOURPASSWORD

##way 2
mysql_secure_installation
#Now to enter you can use
#mysql -u root -pYOURPASSWORD

PHP + phpMyAdmin

#!/bin/bash
apt install -y php-cli php-fpm php-json php-common php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath libapache2-mod-php phpmyadmin php-intl

#Option YES
#password for "phpmyadmin" -> Left blank.

Mediawiki

#!/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}

Extra Scripts

Upgrade Mediawiki

#!/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

Backup+Upgrade+Delete old backups Mediawiki

Recursos