Infra Insert 01: Difference between revisions

This page was last edited on 1 February 2024, at 12:14.
No edit summary
No edit summary
Line 101: Line 101:
'''$ mariadb'''
'''$ mariadb'''


'''CREATE USER print@localhost IDENTIFIED BY 'XXX';'''
'''$ CREATE USER print@localhost IDENTIFIED BY 'XXX';'''


Create database called wiki. Documentation reference: https://mariadb.com/kb/en/create-database/
Create database called wiki. Documentation reference: https://mariadb.com/kb/en/create-database/


'''CREATE DATABASE wiki'''
'''$ CREATE DATABASE wiki'''


Grant access to the user (called print) for this database (called wiki). The "*" is to give access to all tables.
Grant access to the user (called print) for this database (called wiki). The "*" is to give access to all tables.


'''GRANT ALL PRIVILEGES ON wiki.* TO 'print'@'localhost' WITH GRANT OPTION;'''
'''$ GRANT ALL PRIVILEGES ON wiki.* TO 'print'@'localhost' WITH GRANT OPTION;'''


Check that access is granted.
Check that access is granted.
Line 115: Line 115:
Copy the LocalSettings.php from the database set up into server put in www site root folder.
Copy the LocalSettings.php from the database set up into server put in www site root folder.


'''cd /var/www/'''
'''$ cd /var/www/'''


'''ls -lha '''
'''$ ls -lha '''


(What does -h do? It makes the file sizes human readable)
(What does -h do? It makes the file sizes human readable)
Line 125: Line 125:
'''$ sudo apt-get install php7.3-fpm'''
'''$ sudo apt-get install php7.3-fpm'''


'''service php8.1-fpm status'''
'''$ service php8.1-fpm status'''


Media wiki install nginx:
Media wiki install nginx:
Line 131: Line 131:
Reference: https://www.howtoforge.com/how-to-install-mediawiki-with-nginx-and-lets-encrypt-ssl-on-ubuntu-20-04/
Reference: https://www.howtoforge.com/how-to-install-mediawiki-with-nginx-and-lets-encrypt-ssl-on-ubuntu-20-04/


'''chown -R www-data:www-data /var/www/wiki2print'''
'''$ chown -R www-data:www-data /var/www/wiki2print'''


'''chmod -R 755 /var/www/wiki2print'''
'''chmod -R 755 /var/www/wiki2print'''
Line 150: Line 150:


Make a virtual environment:
Make a virtual environment:
''' (venv)= the name'''


'''$ python3 -m venv venv'''
'''$ python3 -m venv venv'''

Revision as of 12:14, 1 February 2024


Command to check your OS, for this project we will be using Armbian:

$ cat /etc/os-release

Download mediawiki:

$ wget https://releases.wikimedia.org/mediawiki/1.40/mediawiki-1.40.1.tar.gz

Unzip the tar:

$ tar -xzvf mediawiki-*.tar.gz

MediaWiki requires:

- PHP 7.4.3+

- a webserver software

- and either MariaDB 10.3.0+, MySQL 5.7.0+, SQLite 3.8.0+ or PostgreSQL 10.0+. Using MariaDB or MySQL is recommended as Wikipedia uses MariaDB.

Install PHP:

$ sudo apt-get install php-fpm

Check the version:

$ php -v

Check the version of nginx:

$ nginx -v

Install database software (MariaDB):

$ sudo apt-get install mariadb-server

Set up nginx configuration to serve the wiki. Here’s an example nginx configuration:

https://git.vvvvvvaria.org/varia/wiki-to-print/src/branch/master/wiki-to-print.nginx.example

Make a symbolic link (symlink) between the configurations in /sites-available and /sites-enabled:

$ ln sites-available/wiki2print.conf sites-enabled/wiki2print.conf

First, check if the nginx configuration works, before reloading:

$ nginx -t

If it works, hold your breath and reload nginx:

$ sudo systemctl reload nginx

or

$ service nginx reload

Edit the wiki2print.conf file, based on this example:

https://git.vvvvvvaria.org/varia/wiki-to-print/src/branch/master/wiki-to-print.nginx.example

Enable PHP. Installing some PHP extensions are required:

$ sudo apt install php-mbstring

$ sudo apt install php-xml

$ sudo apt install php-intl

$ sudo apt install php my-sql


Install image magick:

$ sudo apt install imagemagick

On the MariaDB/Mysql settings:

- create user

- not advised to create root user (the password on LocalSettings.php is stored in plain text)

$ mariadb

$ CREATE USER print@localhost IDENTIFIED BY 'XXX';

Create database called wiki. Documentation reference: https://mariadb.com/kb/en/create-database/

$ CREATE DATABASE wiki

Grant access to the user (called print) for this database (called wiki). The "*" is to give access to all tables.

$ GRANT ALL PRIVILEGES ON wiki.* TO 'print'@'localhost' WITH GRANT OPTION;

Check that access is granted.

Copy the LocalSettings.php from the database set up into server put in www site root folder.

$ cd /var/www/

$ ls -lha

(What does -h do? It makes the file sizes human readable)

Install PHP-FPM:

$ sudo apt-get install php7.3-fpm

$ service php8.1-fpm status

Media wiki install nginx:

Reference: https://www.howtoforge.com/how-to-install-mediawiki-with-nginx-and-lets-encrypt-ssl-on-ubuntu-20-04/

$ chown -R www-data:www-data /var/www/wiki2print

chmod -R 755 /var/www/wiki2print

Install flask in /opt/

$ cd /opt/

$ git clone https://git.vvvvvvaria.org/varia/wiki-to-print

$ cd wiki-to-print

and again

$ cd wiki-to-print

(Do we want to do it in a virtual environment?)

Make a virtual environment:

$ python3 -m venv venv

You now have a folder called "venv".

Activate the venv:

$ source venv/bin/activate

$ pip3 install flask

$ pip3 install bs4

$ pip3 install gunicorn


The flask application programme is in web-interface.py with routes to different parts of wiki-to-print

edit config:

   nano config.json
   
   change:
       "project_name"
      "base_url"