MediaWiki Install 2022-01-22
- Active 2021-04 to 2022-01
- First version: https://wiki.heatsynclabs.org/wiki/MediaWiki_On_Lightsail
- NameCheap Version, 2022-08-10: MediaWiki on Namecheap
- See Also: MediaWiki_On_Lightsail, a copy of HSL install.
- I feel like I got really far with this, even building in automated backup to S3, but I can't find the documentation.
- MediaWikiHerdSecuritiesInstall
DeadmanDAO
Create Instance
Interserver Web Interface
- go to interserver
- create an instance
- Single Slice ($6/mo at this time)
- Debian 9 (Deb 9 has Mailman 2, Deb 10 has Mailman 3)
- KVM
- set reverse DNS to diffie.deadmandao.com
- Note the IP address
Update to Latest
Log in root@ip.address using password you provided
apt-get update apt-get -y upgrade apt-get -y dist-upgrade # if needed reboot
Add User Account
Log in root@ip.address
apt-get -y install sudo adduser bob usermod -G sudo bob exit
Log in to bob@ip.address
Set SPF
sudo apt-get install net-tools sudo ifconfig
That'll give you the ip4 and ip6 addresses, which go into the DNS text record:
- v=spf1 ip4:66.23.226.216 ip6:fe80::216:3eff:fe24:10e1 -all
Set Other DNS
- A Record, diffie, 66.23.226.216
- A Record, @, 66.23.226.216
- CNAME Record, www, diffie.deadmandao.com
- CNAME Record, mail, diffie.deadmandao.com
- TXT Record, diffe, v=spf1 ip4:66.23.226.216 ip6:fe80::216:3eff:fe24:10e1 -all
- MX Record, deadmandao.com, mail.deadmandao.com, 10
Set Hostname
sudo apt-get install emacs-nox sudo emacs -nw /etc/hostname > diffie sudo emacs -nw /etc/hosts > 66.23.226.216 diffie.deadmandao.com diffie sudo reboot
Log in to bob@diffie.deadmandao.com
hostname hostname --all-fqdn dnsdomainname
SMTP Server
sudo apt-get install postfix
- Internet Site
- deadmandao.com is the host domain
- send a test email
echo "Subject: sendmail test" | /usr/sbin/sendmail -v emailaddress
Apache Install
sudo apt install apache2
100-root.conf
Location: /etc/apache2/sites-available/100-root.conf
<VirtualHost *:80> ServerName deadmandao.com ServerName www.deadmandao.com ServerAdmin webmaster@localhost DocumentRoot /var/www/www ErrorLog ${APACHE_LOG_DIR}/www-error.log CustomLog ${APACHE_LOG_DIR}/www-access.log combined </VirtualHost>
200-wiki.conf
Location: /etc/apache2/sites-available/200-wiki.conf
<VirtualHost *:80> ServerName wiki.deadmandao.com ServerAdmin webmaster@localhost DocumentRoot /var/www/mediawiki ErrorLog ${APACHE_LOG_DIR}/wiki-error.log CustomLog ${APACHE_LOG_DIR}/wiki-access.log combined </VirtualHost>
Add TLS/SSL
https://certbot.eff.org/instructions?ws=apache&os=debianbuster
Add Snapd
sudo apt update sudo apt install snapd sudo snap install core sudo snap refresh core
Snap Install Certbot
sudo snap install --classic certbot sudo ln -s /snap/bin/certbot /usr/bin/certbot
Get a Cert for Apache
sudo certbot --apache -d deadmandao.com -d www.deadmandao.com -d wiki.deadmandao.com
MediaWiki Supporting Software
First, the basics. You'll need all of these:
$ sudo apt install mariadb-server php php-mysql libapache2-mod-php php-xml php-mbstring
Next, the enhancements. These will give MediaWiki extra capabilities. See Optional Packages
$ sudo apt install php-apcu php-intl imagemagick php-cli php-curl git
Configure PHP
There are a couple settings that are worth checking in PHP:
$ cd /etc/php/7.3/apache2/ $ grep memory_limit php.ini $ grep upload_max_filesize php.ini
128 megs should be fine for memory.
I'm torn on filesize. I'm trying to fit on a $5/mo machine with a 40 Gig HDD. Most things other than video for use on the web can be under 2 megs (the default size). I feel like the best answer may be a plugin to store large files in S3 at 1/4th the price. It's not a one-way-door, though. I'm leaving mine at 2 megs for now.
Make sure the PHP plugins are enabled:
$ sudo phpenmod apcu $ sudo phpenmod curl $ sudo phpenmod intl $ sudo phpenmod mbstring $ sudo phpenmod xml $ sudo systemctl restart apache2
Configure MariaDB
It's time to stop generically referring to MariaDB as MySQL. MySQL is a once-great project that is no longer trustworthy. MariaDB is the leading Open Source RDBMS.
If you haven't done anything with it yet, there will be no password.
$ sudo mariadb -u root
Pick a username for MediaWiki to use (I'm using wiki_wiki as an example).
Pick a database name (I'm using hsl_wiki as an example).
Pick a password other than "CHANGE THIS PASSWORD".
MariaDB> create database deadmandao_wiki; MariaDB> grant all on deadmandao_wiki.* to 'wiki_wiki'@'localhost' identified by 'CHANGE THIS PASSWORD'; MariaDB> flush privileges;
Then you can verify it worked if you like. (there won't be any tables, but it shouldn't give you an auth error)
$ mariadb -u wiki_wiki -p MariaDB> show tables in deadmandao_wiki; MariaDB> exit