Difference between revisions of "Install MediaWiki as Wikipedia in Linux CentOS 7"
m (Gejor moved page Install MediaWiki as Wikipedia on Linux CentOS 7 to Install MediaWiki as Wikipedia in Linux CentOS 7 without leaving a redirect) |
|||
| (9 intermediate revisions by the same user not shown) | |||
| Line 3: | Line 3: | ||
MediaWiki requires PHP 5.5.9+ and either MySQL 5.0.2+, MariaDB, or one of the other three possible stores. | MediaWiki requires PHP 5.5.9+ and either MySQL 5.0.2+, MariaDB, or one of the other three possible stores. | ||
| − | == Setup Web Server and | + | == Setup Web Server, Database, and PHP == |
=== Step 1 : Install Apache Web Server === | === Step 1 : Install Apache Web Server === | ||
| − | |||
| − | Update the server. Install Apache web server. Enable and start it | + | Update the server. Install Apache web server. Enable and start it. |
<pre> | <pre> | ||
| Line 15: | Line 14: | ||
[root@qemu01 ~]# systemctl enable httpd.service | [root@qemu01 ~]# systemctl enable httpd.service | ||
[root@qemu01 ~]# systemctl start httpd.service | [root@qemu01 ~]# systemctl start httpd.service | ||
| + | </pre> | ||
| + | |||
| + | There should be public html folder created at /var/www/html. Just test it with go to that folder. | ||
| + | |||
| + | <pre> | ||
| + | [root@qemu01 ~]# cd /var/www/html | ||
| + | [root@qemu01 html]# pwd | ||
</pre> | </pre> | ||
| Line 40: | Line 46: | ||
</pre> | </pre> | ||
| − | === Step 3 : Install PHP, PHP-MySQL, | + | === Step 3 : Install PHP, PHP-MySQL, PHP-MBString, and PHPMyAdmin === |
PHP is a general-purpose server-side scripting language. | PHP is a general-purpose server-side scripting language. | ||
<pre> | <pre> | ||
| − | [root@qemu01 ~]# yum install php php-mysql php-mbstring | + | [root@qemu01 ~]# yum install epel-release php php-mysql php-mbstring phpmyadmin |
| + | </pre> | ||
| + | |||
| + | After that, we have to configure the phpMyAdmin configuration file. | ||
| + | |||
| + | <pre> | ||
| + | [root@qemu01 ~]# vi /etc/httpd/conf.d/phpMyAdmin.conf | ||
| + | </pre> | ||
| + | |||
| + | In phpMyAdmin.conf file, we need to change 127.0.0.1 to our subnet range address. In this example, we change 127.0.0.1 to 10.129.50.0/24. | ||
| + | |||
| + | <pre> | ||
| + | ... | ||
| + | |||
| + | <Directory /usr/share/phpMyAdmin/> | ||
| + | AddDefaultCharset UTF-8 | ||
| + | |||
| + | <IfModule mod_authz_core.c> | ||
| + | # Apache 2.4 | ||
| + | <RequireAny> | ||
| + | Require ip 10.129.50.0/24 | ||
| + | Require ip ::1 | ||
| + | </RequireAny> | ||
| + | </IfModule> | ||
| + | <IfModule !mod_authz_core.c> | ||
| + | # Apache 2.2 | ||
| + | Order Deny,Allow | ||
| + | Deny from All | ||
| + | Allow from 10.129.50.0/24 | ||
| + | Allow from ::1 | ||
| + | </IfModule> | ||
| + | </Directory> | ||
| + | |||
| + | <Directory /usr/share/phpMyAdmin/setup/> | ||
| + | <IfModule mod_authz_core.c> | ||
| + | # Apache 2.4 | ||
| + | <RequireAny> | ||
| + | Require ip 10.129.50.0/24 | ||
| + | Require ip ::1 | ||
| + | </RequireAny> | ||
| + | </IfModule> | ||
| + | <IfModule !mod_authz_core.c> | ||
| + | # Apache 2.2 | ||
| + | Order Deny,Allow | ||
| + | Deny from All | ||
| + | Allow from 10.129.50.0/24 | ||
| + | Allow from ::1 | ||
| + | </IfModule> | ||
| + | </Directory> | ||
| + | |||
| + | ... | ||
| + | </pre> | ||
| + | |||
| + | Then restart the Apache web server. | ||
| + | |||
| + | <pre> | ||
[root@qemu01 ~]# systemctl restart httpd.service | [root@qemu01 ~]# systemctl restart httpd.service | ||
</pre> | </pre> | ||
| − | |||
| − | |||
| − | |||
== Prepare MediaWiki Sources == | == Prepare MediaWiki Sources == | ||
| Line 96: | Line 154: | ||
<pre> | <pre> | ||
... | ... | ||
| + | |||
## Shared memory settings | ## Shared memory settings | ||
#$wgMainCacheType = CACHE_ACCEL; | #$wgMainCacheType = CACHE_ACCEL; | ||
$wgMainCacheType = CACHE_ANYTHING; | $wgMainCacheType = CACHE_ANYTHING; | ||
$wgMemCachedServers = []; | $wgMemCachedServers = []; | ||
| + | |||
... | ... | ||
</pre> | </pre> | ||
Latest revision as of 12:52, 14 October 2019
Contents
System Requirements
MediaWiki requires PHP 5.5.9+ and either MySQL 5.0.2+, MariaDB, or one of the other three possible stores.
Setup Web Server, Database, and PHP
Step 1 : Install Apache Web Server
Update the server. Install Apache web server. Enable and start it.
[root@qemu01 ~]# yum update [root@qemu01 ~]# yum install httpd [root@qemu01 ~]# systemctl enable httpd.service [root@qemu01 ~]# systemctl start httpd.service
There should be public html folder created at /var/www/html. Just test it with go to that folder.
[root@qemu01 ~]# cd /var/www/html [root@qemu01 html]# pwd
Step 2 : Install MariaDB Database
In this step, we just install MariaDB database. Start it. And setup security.
[root@qemu01 ~]# yum install mariadb-server mariadb [root@qemu01 ~]# systemctl enable mariadb.service [root@qemu01 ~]# systemctl start mariadb [root@qemu01 ~]# mysql_secure_installation
In MariaDB securing steps, we have to provide the answers below for simplicity.
Set root password? [Y/n] Y New password: Enter your password here Re-enter new password: repeat your password Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y
Step 3 : Install PHP, PHP-MySQL, PHP-MBString, and PHPMyAdmin
PHP is a general-purpose server-side scripting language.
[root@qemu01 ~]# yum install epel-release php php-mysql php-mbstring phpmyadmin
After that, we have to configure the phpMyAdmin configuration file.
[root@qemu01 ~]# vi /etc/httpd/conf.d/phpMyAdmin.conf
In phpMyAdmin.conf file, we need to change 127.0.0.1 to our subnet range address. In this example, we change 127.0.0.1 to 10.129.50.0/24.
...
<Directory /usr/share/phpMyAdmin/>
AddDefaultCharset UTF-8
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
Require ip 10.129.50.0/24
Require ip ::1
</RequireAny>
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 10.129.50.0/24
Allow from ::1
</IfModule>
</Directory>
<Directory /usr/share/phpMyAdmin/setup/>
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
Require ip 10.129.50.0/24
Require ip ::1
</RequireAny>
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 10.129.50.0/24
Allow from ::1
</IfModule>
</Directory>
...
Then restart the Apache web server.
[root@qemu01 ~]# systemctl restart httpd.service
Prepare MediaWiki Sources
Download MediaWiki 1.27.0
The last stable MediaWiki can be downloaded from MediaWiki.
wget https://releases.wikimedia.org/mediawiki/1.27/mediawiki-1.27.0.tar.gz
Put Media Wiki in Web Server
As example, if we're using Centos 7, the web server path is in /var/www/html/.
mv mediawiki-1.27.0.tar.gz /var/www/html/
Extract the File
Extract the tar file and rename it with your wiki name, as example named with wikipedia.
tar xvzf mediawiki-1.27.0.tar.gz
mv /var/www/html/mediawiki-1.27.0 /var/www/html/wikipedia
Run the MediaWiki Installation
Open MediaWiki index.php page at http://[web_server_address]/wikipedia/index.php and follow the installation requirement there.
Troubleshooting
Problem 1 : LocalSettings.php File Not Readable
Solution : run restorecon command into the wikipedia website folder.
[root@qemu01 ~]# restorecon -r /var/www/html/wikipedia/
Problem 2 : First Login Error (Session Hijacking Protection)
Solution : Change $wgMainCacheType from CACHE_ACCEL to CACHE_ANYTHING as suggested in LocalSettings.php file.
[root@qemu01 ~]# cd /var/www/html/wikipedia [root@qemu01 wikipedia]# vi LocalSettings.php
... ## Shared memory settings #$wgMainCacheType = CACHE_ACCEL; $wgMainCacheType = CACHE_ANYTHING; $wgMemCachedServers = []; ...
Problem 3 : Upload File Error (LocalFileLockError)
Solution : Run setenforce 0 script and then try again.
[root@qemu01 ~]# sudo setenforce 0