ICT:MW Installation procedure 1.43 LTS: Difference between revisions
No edit summary |
No edit summary |
||
| Line 130: | Line 130: | ||
</pre> | </pre> | ||
== 7. Local‑Only Apache Virtual Host (VM1) == | == 7. Enable Apache to Listen on Port 8080 (VM1) & Virtual Host file == | ||
Apache does not automatically listen on new ports defined in VirtualHost | |||
blocks. The port must be explicitly enabled in the main configuration. | |||
=== 7.1 Edit the main Apache configuration === | |||
Open the file: | |||
<pre> | |||
/etc/httpd/conf/httpd.conf | |||
</pre> | |||
Locate the existing Listen directive: | |||
<pre> | |||
Listen 80 | |||
</pre> | |||
Add the following line directly below it: | |||
<pre> | |||
Listen 8080 | |||
</pre> | |||
=== 7.2 Validate the configuration === | |||
<pre> | |||
apachectl configtest | |||
</pre> | |||
Expected output: | |||
<pre> | |||
Syntax OK | |||
</pre> | |||
=== 7.3 Restart Apache === | |||
<pre> | |||
systemctl restart httpd | |||
</pre> | |||
=== 7.4 Verify Apache is listening on port 8080 === | |||
<pre> | |||
ss -tlnp | grep httpd | |||
</pre> | |||
Expected result: | |||
<pre> | |||
0.0.0.0:80 | |||
0.0.0.0:8080 | |||
</pre> | |||
Apache is now ready to serve the temporary local-only vhost on port 8080. | |||
=== 7.5 Local‑Only Apache Virtual Host (VM1) === | |||
This vhost allows installation and testing without involving the reverse‑proxy. | This vhost allows installation and testing without involving the reverse‑proxy. | ||
Revision as of 14:38, 3 April 2026
Installation Procedure for newMW (MediaWiki 1.43 LTS)
This document describes the clean, reproducible installation workflow for deploying a new MediaWiki instance (newMW) on the existing 3‑VM infrastructure. The installation is intentionally split into two phases:
- Phase 1: Local installation and testing on VM1 (no reverse‑proxy required)
- Phase 2: Public exposure through VM3 (nginx reverse‑proxy)
This staged approach allows safe testing before the wiki becomes accessible from the internet.
1. Create the newwiki Database (VM2 – Database Layer)
All commands in this section are executed on VM2.
1.1 Connect to MariaDB
mysql -u root -p
1.2 Create the database
CREATE DATABASE newwiki CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
1.3 Create the database user
Replace VM1-IP with the internal Hyper‑V IP of the web server.
CREATE USER 'newwikiuser'@'VM1-IP' IDENTIFIED BY 'strongpassword';
1.4 Grant privileges
GRANT ALL PRIVILEGES ON newwiki.* TO 'newwikiuser'@'VM1-IP'; FLUSH PRIVILEGES;
1.5 Exit MariaDB
EXIT;
2. Prepare the Installation Directory (VM1 – Web Layer)
All commands below are executed on VM1.
2.1 Create the target directory
mkdir /var/www/newMW
2.2 Move into the working directory
cd /var/www
3. Download MediaWiki
Download the latest LTS tarball (example: 1.43.8):
wget https://releases.wikimedia.org/mediawiki/1.43/mediawiki-1.43.8.tar.gz
4. Extract MediaWiki
Extract the archive. This creates a directory such as mediawiki-1.43.8/.
tar -xvzf mediawiki-1.43.8.tar.gz
5. Move Extracted Files into newMW
Move normal files:
mv mediawiki-1.43.8/* newMW/
Move hidden files (e.g. .htaccess):
mv mediawiki-1.43.8/.* newMW/ 2>/dev/null
Remove the now‑empty extraction directory:
rmdir mediawiki-1.43.8
Remove the tarball:
rm mediawiki-1.43.8.tar.gz
6. Ownership and Permissions
Use the preferred ownership model to allow editing via VS Code while keeping Apache fully functional.
6.1 Set owner and group
chown -R mngr:apache /var/www/newMW
6.2 Ensure group write permissions
chmod -R g+w /var/www/newMW
6.3 Apply clean directory/file permissions
Directories:
find /var/www/newMW -type d -exec chmod 775 {} \;
Files:
find /var/www/newMW -type f -exec chmod 664 {} \;
6.4 Enable group inheritance (setgid)
Ensures new files created inside inherit the apache group.
chmod g+s /var/www/newMW
7. Enable Apache to Listen on Port 8080 (VM1) & Virtual Host file
Apache does not automatically listen on new ports defined in VirtualHost blocks. The port must be explicitly enabled in the main configuration.
7.1 Edit the main Apache configuration
Open the file:
/etc/httpd/conf/httpd.conf
Locate the existing Listen directive:
Listen 80
Add the following line directly below it:
Listen 8080
7.2 Validate the configuration
apachectl configtest
Expected output:
Syntax OK
7.3 Restart Apache
systemctl restart httpd
7.4 Verify Apache is listening on port 8080
ss -tlnp | grep httpd
Expected result:
0.0.0.0:80 0.0.0.0:8080
Apache is now ready to serve the temporary local-only vhost on port 8080.
7.5 Local‑Only Apache Virtual Host (VM1)
This vhost allows installation and testing without involving the reverse‑proxy.
<VirtualHost *:8080>
ServerName newmw.local
DocumentRoot /var/www/newMW
<Directory /var/www/newMW>
AllowOverride All
Require all granted
</Directory>
ErrorLog /var/log/httpd/newmw-local-error.log
CustomLog /var/log/httpd/newmw-local-access.log combined
</VirtualHost>
Restart Apache:
systemctl restart httpd
8. Run the Installer Locally
Access the installer using one of:
http://VM1-IP:8080http://newmw.local:8080(if added to /etc/hosts)
Complete the installation.
The installer will generate a LocalSettings.php with:
$wgServer = "http://VM1-IP:8080";
Place the file in:
/var/www/newMW/LocalSettings.php
9. Local Testing
Before exposing the wiki publicly, verify:
- Page creation
- Editing
- File uploads (if enabled)
- User accounts
- Extensions
- Permissions
- Logging
This phase is isolated and safe.
10. Prepare for Public Access (VM3 – Reverse‑Proxy Layer)
Only after local testing is complete, add the nginx server block:
server {
listen 80;
server_name newwiki.example.com;
location / {
proxy_pass http://VM1-IP:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Reload nginx:
systemctl reload nginx
11. Update LocalSettings.php for Public Access
Change:
$wgServer = "https://newwiki.example.com";
Optionally:
$wgCanonicalServer = "https://newwiki.example.com";
12. Final Verification
- Public URL loads correctly
/wiki/Main_Pageresolves- Editing works
- Uploads work
- No rewrite errors in Apache logs
- nginx proxies correctly
- MariaDB connections succeed
13. Summary
This procedure installs MediaWiki in two safe phases:
- Phase 1: Local installation and validation on VM1
- Phase 2: Public exposure through VM3
This staged approach avoids dependency on the reverse‑proxy during installation and allows controlled, low‑risk rollout.