How To Install MediaWiki On Ubuntu 18.04 With Nginx MariaDB And PHP: Perbedaan antara revisi

Dari Catatan Pak Samsul
Loncat ke navigasi Loncat ke pencarian
kTidak ada ringkasan suntingan
kTidak ada ringkasan suntingan
 
(2 revisi perantara oleh pengguna yang sama tidak ditampilkan)
Baris 3: Baris 3:
Our Server Specification-     
Our Server Specification-     


Os:Ubuntu 18.04 LTS Bionic Beaver 64Bit   |            IP address- 192.168.1.50                 | Hostname :www.yourdomain.com
Os:'''Ubuntu 18.04 LTS Bionic Beaver 64Bit'''   |   IP address- '''192.168.1.50''' | Hostname:'''www.mediawiki.web.id''' | Database : '''mediawikidb''' | User : '''mediawikiuser''' | Password : '''12345678'''


<nowiki>---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</nowiki>
<nowiki>---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</nowiki>
Baris 19: Baris 19:
  apt-get install -y nginx mariadb-server mariadb-client php7.3 php7.3-cli php7.3-fpm php7.3-cgi php7.3-bcmath php7.3-curl php7.3-gd php7.3-intl php7.3-json php7.3-mbstring php7.3-mysql  
  apt-get install -y nginx mariadb-server mariadb-client php7.3 php7.3-cli php7.3-fpm php7.3-cgi php7.3-bcmath php7.3-curl php7.3-gd php7.3-intl php7.3-json php7.3-mbstring php7.3-mysql  
  php7.3-opcache php7.3-sqlite3 php7.3-xml php7.3-zip php7.3-snmp php7.3-json php7.3-imap php7.3-common php7.3-tidy
  php7.3-opcache php7.3-sqlite3 php7.3-xml php7.3-zip php7.3-snmp php7.3-json php7.3-imap php7.3-common php7.3-tidy
Edit php.ini sesuai dengan versi php yang di install :


sudo nano /etc/php/7.1/fpm/php.ini
'''Edit php.ini sesuai dengan versi php yang di install :''' 
sudo nano /etc/php/7.1/fpm/php.ini
file_uploads = On
allow_url_fopen = On
memory_limit = 256M
upload_max_filesize = 100M
max_execution_time = 360
cgi.fix_pathinfo = 0
date.timezone = Asia/Jakarta


file_uploads = On
'''Restart Service nginx dan MariaDb :'''
 
allow_url_fopen = On
 
memory_limit = 256M
 
upload_max_filesize = 100M
 
max_execution_time = 360
 
cgi.fix_pathinfo = 0
 
date.timezone = Asia/Jakarta
  systemctl start nginx mariadb  
  systemctl start nginx mariadb  
  systemctl enable nginx mariadb
  systemctl enable nginx mariadb


'''Konfigurasi Mariadb :'''
  mysql_secure_installation
  mysql_secure_installation
  mysql -u root -p  
  mysql -u root -p
  create database db;
  '''Masukkan password: 12345678'''
CREATE DATABASE '''mediawikidb''' CHARACTER SET utf8 COLLATE utf8_bin;
CREATE USER 'mediawikiuser'@'%' IDENTIFIED BY PASSWORD '12345678';
 
'''Beri izin akses user database :'''
GRANT ALL PRIVILEGES ON mediawikidb.* TO 'mediawikiuser'@'localhost' IDENTIFIED BY PASSWORD'12345678';
FLUSH PRIVILEGES;
exit


grant all on db.* to 'dbuser'@'localhost' identified by 'dbpass';
'''Download Mediawiki dengan wget :'''  
  quit;
  Linux$/home/user/wget https://releases.wikimedia.org/mediawiki/1.33/mediawiki-1.33.0.tar.gz


nano /etc/php/7.3/fpm/php.ini &>/dev/null                                  [ date.timezone ="Asia/Kolkata" cgi.fix_pathinfo=0 ]
'''Ekstrak file :'''
nano /etc/php/7.3/fpm/pool.d/www.conf &>/dev/null                          [ env[HOSTNAME] = $HOSTNAME ]
wget <nowiki>https://releases.wikimedia.org/mediawiki/1.33/mediawiki-1.33.0.tar.gz</nowiki>
  tar -xvzf  mediawiki-1.33.0.tar.gz
  tar -xvzf  mediawiki-1.33.0.tar.gz
'''Copy mediawiki hasil ekstrakan pada direktory nginx:'''
  cp -r mediawiki-1.33.0 /var/www/html/mediawiki
  cp -r mediawiki-1.33.0 /var/www/html/mediawiki
chown -R www-data:www-data /var/www/html/ ; chmod -R 755 /var/www/html/
nano /etc/nginx/sites-available/default &>/dev/null


  server     {
'''Ubah kepemilikan file dan beri akses attribut file:'''
            server_name www.yourdomain.com;
chown -R www-data:www-data /var/www/html/mediawiki
            access_log /var/log/nginx/yourdomain-access.log;
chmod -R 755 /var/www/html/mediawiki
            error_log /var/log/nginx/yourdomain-error.log;
 
            root /var/www/html/mediawiki/;
'''Edit dan buat simboling link sites-available :'''
  location / {
sudo nano /etc/nginx/sites-available/default
            index index.php;
sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/
            try_files $uri $uri/ /index.php$is_args$args;
 
            }
'''Pengaturan Virtualhost nginx:'''
  location ~ \.php$ {
# http -> https redirection
              include snippets/fastcgi-php.conf;
  server {
              fastcgi_pass unix:/run/php/php7.3-fpm.sock;
listen 80;
              fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
listen [::]:80;
              }
            }
# virtual host domains
server_name mediawiki.web.id www.mediawiki.web.id;
# accept requests only for this domain
if ($host !~ ^(mediawiki.web.id|www.mediawiki.web.id)$) {
return 444;
}
# redirect to https
return 301 <nowiki>https://$host$request_uri</nowiki>;
}
# https and spdy
server {
listen 443 ssl spdy;
listen [::]:443 ssl spdy;
# virtual host domains
server_name mediawiki.web.id www.mediawiki.web.id;
# accept requests only for this domain
if ($host !~ ^(mediawiki.web.id|www.mediawiki.web.id)$) {
return 444;
}
# certificate and private key
ssl_certificate '''/etc/ssl/ellak/mediawiki.web.id-codomo-bundle.pem''';
        ssl_certificate_key '''/etc/ssl/ellak/mediawiki.web.id-decrypted.key''';
# random 2048-bit parameter for DH elliptic curves
# (re)generate with:
# openssl dhparam -outform pem -out dhparam2048.pem 2048
ssl_dhparam '''/etc/vhosts/mediawiki.web.id/ssl/dhparam2048.pem''';
# include common ssl settings
include /etc/nginx/ssl.conf;
# ocsp stapling (optional, uncomment if necessary)
#ssl_trusted_certificate '''/etc/ssl/certs/combined.stapling.pem''';
# public html
root /var/www/html/mediawiki;
# access and error logs
access_log /var/www/html/mediawiki/logs/access.log;
error_log  /var/www/html/mediawiki/logs/error.log error;
# include standard restrictions
include /etc/nginx/restrictions.conf;
   
# application configuration
include /etc/nginx/cms.conf;
# document root
index index.php index.html index.htm;
# css and js
location ~* ^.+\.(css|js) {
# 1 week expires
expires 1w;
## no external referer
valid_referers none blocked
              mediawiki.web.id *.mediawiki.web.id;
if ($invalid_referer) {
return 403;
}
}
location /wiki/ {
try_files $uri $uri/ @mediawiki;
# Do this inside of a location so it can be negated
location ~ \.php$ {
try_files $uri $uri/ =404; # Don't let php execute non-existent php files
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/php7.3-fpm/mediawiki.web.id.sock;
}
}
location /wiki/images {
# Separate location for images/ so .php execution won't apply
location ~ ^/wiki/images/thumb/(archive/)?[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/([0-9]+)px-.*$ {
# Thumbnail handler for MediaWiki
# This location only matches on a thumbnail's url
# If the file does not exist we use @thumb to run the thumb.php script
try_files $uri $uri/ @thumb;
}
}
location /wiki/images/deleted {
# Deny access to deleted images folder
deny all;
}
# Deny access to folders MediaWiki has a .htaccess deny in
location /wiki/cache      { deny all; }
location /wiki/languages  { deny all; }
location /wiki/maintenance { deny all; }
location /wiki/serialized { deny all; }
# Just in case, hide .svn and .git too
location ~ /.(svn|git)(/|$) { deny all; }
# Hide any .htaccess files
location ~ /.ht { deny all; }
# Uncomment the following code if you wish to hide the installer/updater
## Deny access to the installer
location /wiki/mw-config { deny all; }
# Handling for the article path
location @mediawiki {
include /etc/nginx/fastcgi_params;
# article path should always be passed to index.php
fastcgi_param SCRIPT_FILENAME $document_root/wiki/index.php;
fastcgi_pass unix:/var/run/php7.3-fpm/mediawiki.web.id.sock;
}
# Thumbnail 404 handler, only called by try_files when a thumbnail does not exist
location @thumb {
# Do a rewrite here so that thumb.php gets the correct arguments
rewrite ^/wiki/images/thumb/[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/([0-9]+)px-.*$ /wiki/thumb.php?f=$1&width=$2;
rewrite ^/wiki/images/thumb/archive/[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/([0-9]+)px-.*$ /wiki/thumb.php?f=$1&width=$2&archived=1;
# Run the thumb.php script
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/wiki/thumb.php;
fastcgi_pass  unix:/var/run/php7.3-fpm/mediawiki.web.id.sock;
}
# media files
location ~* ^.+\.(og?|svg|svgz|eot|otf|woff|mp4|ttf|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf|swf)$ {
# maximum expires
expires max;
# block hot-linking, allow SE and social media
valid_referers none blocked ~\.google\. ~\.yahoo\. ~\.bing\.
      ~\.facebook\. ~\.fbcdn\. ~\.twitter\.
      mediawiki.web.id *.mediawiki.web.id;
if ($invalid_referer) {
return 403;
}
}
# disable public access to buddypress docs attachments
location /wp-content/uploads/bp-attachments/ {
rewrite ^.*uploads/bp-attachments/([0-9]+)/(.*) /?p=$1&bp-attachment=$2 permanent;
}
# php-fpm support
location ~ \.php$ {
# make sure to not run php hidden in other files
try_files $uri =404;
# fastcgi unix socket
fastcgi_pass unix:/var/run/php7.3-fpm/mediawiki.web.id.sock;
# include standard parameters
include /etc/nginx/fastcgi_params;
# increate fastcgi timeout (for mu)
fastcgi_read_timeout 360;
# include micro-caching configuration
include /etc/nginx/microcache.conf;
}
}


'''Test Konfigurasi nginx:'''
  nginx -t
  nginx -t
  echo "192.168.1.50 www.yourdomain.com" >> /etc/hosts;  
  echo "192.168.1.50 www.mediawiki.web.id" >> /etc/hosts;  
 
'''Restart service php7.3-fpm & mariadb:''' 
  systemctl restart php7.3-fpm nginx mariadb
  systemctl restart php7.3-fpm nginx mariadb
'''Pengaturan atau copy dari mediawiki yang lama LocalSetting.php:''' 
  cp -r /home/ubuntu/Downloads/LocalSettings.php /var/www/html/mediawiki/
  cp -r /home/ubuntu/Downloads/LocalSettings.php /var/www/html/mediawiki/


<nowiki>---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</nowiki>
<nowiki>---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</nowiki>

Revisi terkini sejak 14 Mei 2024 17.25

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Our Server Specification-     

Os:Ubuntu 18.04 LTS Bionic Beaver 64Bit   |   IP address- 192.168.1.50 | Hostname:www.mediawiki.web.id | Database : mediawikidb | User : mediawikiuser | Password : 12345678

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

lsb_release -cd  ; getconf LONG_BIT ; whoami ; hostname -f ; hostname -I ; 
apt update;
apt install -y build-essential software-properties-common curl gdebi wget aptitude nano 
git net-tools lsb-release apt-transport-https
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://mirror.biznetgio.com/mariadb/repo/10.4/ubuntu bionic main'
add-apt-repository ppa:ondrej/php -y
apt-get update
apt-get install -y nginx mariadb-server mariadb-client php7.3 php7.3-cli php7.3-fpm php7.3-cgi php7.3-bcmath php7.3-curl php7.3-gd php7.3-intl php7.3-json php7.3-mbstring php7.3-mysql 
php7.3-opcache php7.3-sqlite3 php7.3-xml php7.3-zip php7.3-snmp php7.3-json php7.3-imap php7.3-common php7.3-tidy

Edit php.ini sesuai dengan versi php yang di install :

sudo nano /etc/php/7.1/fpm/php.ini
file_uploads = On
allow_url_fopen = On
memory_limit = 256M
upload_max_filesize = 100M
max_execution_time = 360
cgi.fix_pathinfo = 0
date.timezone = Asia/Jakarta

Restart Service nginx dan MariaDb :

systemctl start nginx mariadb 
systemctl enable nginx mariadb

Konfigurasi Mariadb :

mysql_secure_installation
mysql -u root -p
Masukkan password: 12345678 
CREATE DATABASE mediawikidb CHARACTER SET utf8 COLLATE utf8_bin;
CREATE USER 'mediawikiuser'@'%' IDENTIFIED BY PASSWORD '12345678';

Beri izin akses user database :

GRANT ALL PRIVILEGES ON mediawikidb.* TO 'mediawikiuser'@'localhost' IDENTIFIED BY PASSWORD'12345678';
FLUSH PRIVILEGES;
exit

Download Mediawiki dengan wget :

Linux$/home/user/wget https://releases.wikimedia.org/mediawiki/1.33/mediawiki-1.33.0.tar.gz

Ekstrak file :

tar -xvzf  mediawiki-1.33.0.tar.gz

Copy mediawiki hasil ekstrakan pada direktory nginx:

cp -r mediawiki-1.33.0 /var/www/html/mediawiki

Ubah kepemilikan file dan beri akses attribut file:

chown -R www-data:www-data /var/www/html/mediawiki 
chmod -R 755 /var/www/html/mediawiki

Edit dan buat simboling link sites-available :

sudo nano /etc/nginx/sites-available/default
sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/

Pengaturan Virtualhost nginx:

# http -> https redirection
server {
	listen 80;
	listen [::]:80;

	# virtual host domains
	server_name mediawiki.web.id www.mediawiki.web.id;

	# accept requests only for this domain
	if ($host !~ ^(mediawiki.web.id|www.mediawiki.web.id)$) {
		return 444;
	}

	# redirect to https
	return 301 https://$host$request_uri;
}

# https and spdy
server {
	listen 443 ssl spdy;
	listen [::]:443 ssl spdy;

	# virtual host domains
	server_name mediawiki.web.id www.mediawiki.web.id;

	# accept requests only for this domain
	if ($host !~ ^(mediawiki.web.id|www.mediawiki.web.id)$) {
		return 444;
	}

	# certificate and private key
	ssl_certificate /etc/ssl/ellak/mediawiki.web.id-codomo-bundle.pem;
        ssl_certificate_key /etc/ssl/ellak/mediawiki.web.id-decrypted.key;

	# random 2048-bit parameter for DH elliptic curves
	# (re)generate with:
	# openssl dhparam -outform pem -out dhparam2048.pem 2048
	ssl_dhparam /etc/vhosts/mediawiki.web.id/ssl/dhparam2048.pem;

	# include common ssl settings
	include /etc/nginx/ssl.conf;

	# ocsp stapling (optional, uncomment if necessary)
	#ssl_trusted_certificate /etc/ssl/certs/combined.stapling.pem;

	# public html
	root /var/www/html/mediawiki;

	# access and error logs
	access_log /var/www/html/mediawiki/logs/access.log;
	error_log  /var/www/html/mediawiki/logs/error.log error;

	# include standard restrictions
	include /etc/nginx/restrictions.conf;

	# application configuration
	include /etc/nginx/cms.conf;

	# document root
	index index.php index.html index.htm;

	# css and js
	location ~* ^.+\.(css|js) {
		# 1 week expires
		expires 1w;

		## no external referer
		valid_referers none blocked
		               mediawiki.web.id *.mediawiki.web.id;

		if ($invalid_referer) {
			return 403;
		}
	}

	location /wiki/ {
		try_files $uri $uri/ @mediawiki;
		
		# Do this inside of a location so it can be negated
		location ~ \.php$ {
			try_files $uri $uri/ =404; # Don't let php execute non-existent php files
			include /etc/nginx/fastcgi_params;
			fastcgi_pass unix:/var/run/php7.3-fpm/mediawiki.web.id.sock;
		}
	}
	
	location /wiki/images {
		# Separate location for images/ so .php execution won't apply
		
		location ~ ^/wiki/images/thumb/(archive/)?[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/([0-9]+)px-.*$ {
			# Thumbnail handler for MediaWiki
			# This location only matches on a thumbnail's url
			# If the file does not exist we use @thumb to run the thumb.php script
			try_files $uri $uri/ @thumb;
		}
	}
	location /wiki/images/deleted {
		# Deny access to deleted images folder
		deny	all;
	}
	
	# Deny access to folders MediaWiki has a .htaccess deny in
	location /wiki/cache       { deny all; }
	location /wiki/languages   { deny all; }
	location /wiki/maintenance { deny all; }
	location /wiki/serialized  { deny all; }
	
	# Just in case, hide .svn and .git too
	location ~ /.(svn|git)(/|$) { deny all; }
	
	# Hide any .htaccess files
	location ~ /.ht { deny all; }
	
	# Uncomment the following code if you wish to hide the installer/updater
	## Deny access to the installer
	location /wiki/mw-config { deny all; }
	
	# Handling for the article path
	location @mediawiki {
		include /etc/nginx/fastcgi_params;
		# article path should always be passed to index.php
		fastcgi_param SCRIPT_FILENAME	$document_root/wiki/index.php;
		fastcgi_pass  unix:/var/run/php7.3-fpm/mediawiki.web.id.sock;
	}
	
	# Thumbnail 404 handler, only called by try_files when a thumbnail does not exist
	location @thumb {
		# Do a rewrite here so that thumb.php gets the correct arguments
		rewrite ^/wiki/images/thumb/[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/([0-9]+)px-.*$ /wiki/thumb.php?f=$1&width=$2;
		rewrite ^/wiki/images/thumb/archive/[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/([0-9]+)px-.*$ /wiki/thumb.php?f=$1&width=$2&archived=1;
		
		# Run the thumb.php script
		include /etc/nginx/fastcgi_params;
		fastcgi_param SCRIPT_FILENAME	$document_root/wiki/thumb.php;
		fastcgi_pass  unix:/var/run/php7.3-fpm/mediawiki.web.id.sock;
	}


	# media files
	location ~* ^.+\.(og?|svg|svgz|eot|otf|woff|mp4|ttf|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf|swf)$ {
		# maximum expires
		expires max;

		# block hot-linking, allow SE and social media
		valid_referers none blocked ~\.google\. ~\.yahoo\. ~\.bing\.
			       ~\.facebook\. ~\.fbcdn\. ~\.twitter\.
			       mediawiki.web.id *.mediawiki.web.id;

		if ($invalid_referer) {
			return 403;
		}
	}

	# disable public access to buddypress docs attachments
	location /wp-content/uploads/bp-attachments/ {
		rewrite ^.*uploads/bp-attachments/([0-9]+)/(.*) /?p=$1&bp-attachment=$2 permanent;
	}

	# php-fpm support
	location ~ \.php$ {
		# make sure to not run php hidden in other files
		try_files $uri =404;

		# fastcgi unix socket
		fastcgi_pass unix:/var/run/php7.3-fpm/mediawiki.web.id.sock;

		# include standard parameters
		include /etc/nginx/fastcgi_params;

		# increate fastcgi timeout (for mu)
		fastcgi_read_timeout 360;

		# include micro-caching configuration
		include /etc/nginx/microcache.conf;
	}
}

Test Konfigurasi nginx:

nginx -t
echo "192.168.1.50 www.mediawiki.web.id" >> /etc/hosts; 

Restart service php7.3-fpm & mariadb:

systemctl restart php7.3-fpm nginx mariadb

Pengaturan atau copy dari mediawiki yang lama LocalSetting.php:

cp -r /home/ubuntu/Downloads/LocalSettings.php /var/www/html/mediawiki/

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------