My guess is that it's not the MediaWiki install that's the problem it's the 
dependencies.

On Ubuntu for example if you install apache first then php, it won't enable 
mod_php and may not even install it.

This causes endless problems with people who don't have a lot of experience 
installing this kind of software on Linux.  MediaWiki does have a installation 
requirements page that gives, for example a  generic install line for a fresh 
ubuntu installation that would install php and all of the dependencies properly 
but if the system is already setup and installed then it may not do it 
properly.  But of course, MediaWiki's page on doing this does NOT discuss all 
of the dependencies of the MediaWiki dependencies they are telling you to 
install so it's pretty lame - typical of UNIX man pages, it's only useful to 
someone who already knows what's in the man page. LOL.

If Keith is trying to install MediaWiki on a system that already has MoinMoin 
on it, and run both of them in parallel on the same system that may require 
some advanced configuration.

Keith, here is a soup-to-nuts install instruction set for you.  It only took me 
1.5 hours to make up, it's easy.  Note that the actual MediaWiki install only 
took about 15 minutes the rest was the server setup.  It assumes a fresh Ubuntu 
20 virtual image install on Amazon Web Services.  I'll leave the image up and 
running for a week and if you want to SSH into it then send me a userID and 
password you want to use and I'll setup a shell account you can use to login 
and look at the files and such.  The wiki is here:

https://media.portlandia-servers.com/w/index.php/Main_Page    and it's online 
now.

Instructions:

Setup a free account on AWS  https://aws.amazon.com/console/

Login to AWS portal as root user and go to EC2 Dashboard

Click Instances

Click dropdown on Launch Instances and Launch Instance

Name it "MediaWiki Test Server"

under Quickstart click Ubuntu

Leave it at Ubuntu Server 22.04 LTS  free tier eligible

Leave Architecture at 64 bit x86

Under Instance type leave it at t2.micro free tier eligible

Under key pair create a new key pair named "TESTMasterKeyPair"  Download it.

Under Firewall leave at Create security group and tick allow SSH and allow 
https and http

Select 30GB  of standard (mag media) root volume NOT encrypted) storage

click Launch Instance

Click back on EC2,  Instances

Click on the Instance ID

Copy the Public IPv4 DNS name in this case 
ec2-34-217-63-231.us-west-2.compute.amazonaws.com

Optionally CNAME it your DNS provider to some name.

Download private key file you created earlier

On windows, 
Browse to c:\program files\putty and run puttygen
  Click Load on existing private key
  Click Save and save it as the ppk file do not add a passphrase
  In Putty click Connection -> SSH -> Auth -> Credentials and load the ppk file

Use putty to initially ssh in:
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/putty.html

From Linux,

ssh -i " TESTMasterKeyPair.pem" 
ubu...@ec2-34-217-63-231.us-west-2.compute.amazonaws.com

After SSHing into the system with ID of ubuntu, sudo -s

adduser tedm, password whateveryouwant
add tedm into admin group,  vi /etc/group

go to /etc/ssh and modify sshd_config to have a YES in PasswordAuthentication
reboot

Now you can SSH in via a real SSH client like Teraterm normally instead of a 
stripped down emulator like putty

Give it a minute or to to finish rebooting then 
Ssh into ec2-34-217-63-231.us-west-2.compute.amazonaws.com

In the new server it's hostname is 

tedm@ip-172-31-20-73:~$ cat /etc/hostname
ip-172-31-20-73
tedm@ip-172-31-20-73:~$

Optionally, 
set domain name to what you want.  I'll use media.portlandia-servers.com for fun

sudo -s

change hostname to what you want

vi /etc/hostname

root@ip-172-31-20-73:/home/tedm# cat /etc/hostname
media
root@ip-172-31-20-73:/home/tedm#

then set your hostname in /etc/hosts

root@ip-172-31-20-73:/home/tedm# cat /etc/hosts
127.0.0.1 media.portlandia-servers.com media
127.0.0.1 localhost

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback

apt update
apt dist-upgrade
ok on newer kernel

reboot

ssh into media.portlandia-servers.com

sudo -s

apt install php

this installs php 8.1 and apache and mod-php8.1

apt install php-mysql

apt install mysql-server   this puts in mysql 8 client and server

From the line out of the mediaserver wiki install instructions here 

https://www.mediawiki.org/wiki/Manual:Installation_requirements

(strike the mariadb-server)

apt-get install php php-apcu php-intl php-mbstring php-xml php-mysql 
php-calendar  apache2

Now setup mysql:

mysql_secure_installation
No on validate password
when it goes into the loop asking for the password then erroring it, in another 
ssh session 

pkill -f mysql_secure_installation

this leaves mysql open.  As sudo -s in the first session

root@media:/home/tedm# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.32-0ubuntu0.22.04.2 (Ubuntu)

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 
'whateverpasswordyouwant';
Query OK, 0 rows affected (0.04 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

mysql> exit
Bye
root@media:/home/tedm#


test it

root@media:/home/tedm# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.0.32-0ubuntu0.22.04.2 (Ubuntu)

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> exit
Bye
root@media:/home/tedm#

now run the setup script mysql_secure_installation

root@media:/home/tedm# mysql_secure_installation

Securing the MySQL server deployment.

Enter password for user root:

VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No: N
Using existing password for root.
Change the password for root ? ((Press y|Y for Yes, any other key for No) : N

 ... skipping.
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.


Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.


Remove test database and access to it? (Press y|Y for Yes, any other key for 
No) : y
 - Dropping test database...
Success.

 - Removing privileges on test database...
Success.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.

All done!
root@media:/home/tedm#

apt install mailutils

select "internet site"

apt install make

apt install certbot

apt install python3-certbot-apache

a2enmod ssl

cd /etc/apache2/sites-enabled

ln -s ../sites-available/default-ssl.conf default-ssl.conf

systemctl restart apache2

certbot

root@media:/etc/apache2/sites-enabled# certbot
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)
 (Enter 'c' to cancel): t...@portlandia-it.com

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf. You must
agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Account registered.
Please enter the domain name(s) you would like on your certificate (comma and/or
space separated) (Enter 'c' to cancel): media.portlandia-servers.com
Requesting a certificate for media.portlandia-servers.com

Successfully received certificate.
Certificate is saved at: 
/etc/letsencrypt/live/media.portlandia-servers.com/fullchain.pem
Key is saved at:         
/etc/letsencrypt/live/media.portlandia-servers.com/privkey.pem
This certificate expires on 2023-07-20.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in 
the background.

Deploying certificate
Successfully deployed certificate for media.portlandia-servers.com to 
/etc/apache2/sites-available/000-default-le-ssl.conf
Congratulations! You have successfully enabled HTTPS on 
https://media.portlandia-servers.com

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
 * Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
 * Donating to EFF:                    https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
root@media:/etc/apache2/sites-enabled#

hit https://media.portlandia-servers.com from a web browser and make sure it's 
working

apt update
apt dist-upgrade

final reboot and make sure you can ssh into it and hit it with the webbrowser
sudo -s

root@media:~# cd
root@media:~# wget 
https://releases.wikimedia.org/mediawiki/1.39/mediawiki-1.39.3.tar.gz

gunzip  mediawiki-1.39.3.tar.gz

cd /var/www/html

tar xf /root/mediawiki-1.39.3.tar

mv mediawiki-1.39.3 w

Open a web browser to https://media.portlandia-servers.com/w/

Click set up the wiki

Select language click continue

It will run some checks and say OK to continue click continue

Leave database prefix blank and type in the mysql root password you used 
earlier click continue

Click continue

Name of wiki  "Test Wiki"  username "tedm" password usual stuff  click I'm 
bored just install the wiki

Click continue

Click continue again

Download and copy LocalSettings.php to /var/www/html/w

Click Enter your Wiki

Done.

Ted

-----Original Message-----
From: PLUG <plug-boun...@pdxlinux.org> On Behalf Of Russell Senior
Sent: Thursday, April 20, 2023 9:01 PM
To: plug@pdxlinux.org
Subject: Re: [PLUG] MediaWiki configuration

On 4/20/23 19:25, Keith Lofstrom wrote:
> Any recent MediaWiki deployers on the list? For many years, [...] IF 
> YOU HAVE SET UP MEDIAWIKI RECENTLY, CAN YOU POINT ME AT GOOD /RECENT/ 
> TUTORIALS?

I haven't, and have no experience with MediaWiki (and still nominally maintain 
a teetering MoinMoin wiki), but have you looked at this:

   https://www.mediawiki.org/wiki/Manual:Installing_MediaWiki


--
Russell Senior
russ...@pdxlinux.org

Reply via email to