PostgreSQL/MediaWiki
PostgreSQL is used as our database for a number of reasons, from stability to compatibility with other apps to support for JSONB values.
However, it is clearly not the most popular choice of database for Mediawiki, so we do make some workarounds to support this unique use case. These mods are noted below.
PostgreSQL with UNIX Sockets
As noted in the Mediawiki tutorial, you generally connect to the PostgreSQL over a TCP connection, and use md5
password authentication.
However, if the PostgreSQL database is on the same server, it's a better idea to dispense with the TCP overhead and connect to the UNIX socket directly.
First, make sure that you've set a password for the postgres
superuser, so you can log into it without using peer
authentication, which we are going to switch to md5
.
$ sudo su # must become root to become postgres user first # su postgres $ psql postgres=# \password Enter new password: Enter it again: postgres=#
Next, we need to enable md5
authentication to the UNIX socket. On PostgreSQL 9.6 on Debian, edit the file /etc/postgresql/9.6/main/pg_hba.conf
and change the following lines to match the below:
# "local" is for Unix domain socket connections only local all all md5 # IPv4 local connections: host all all 127.0.0.1/32 md5 # IPv6 local connections: host all all ::1/128 md5
On Debian, the PostgreSQL UNIX Socket is at /var/run/postgresql/.s.PGSQL.5432
, so in LocalSettings.php set these following lines (make sure to comment out $wgDBPort
, which is not needed)
## Database settings $wgDBtype = "postgres"; $wgDBserver = "/var/run/postgresql/.s.PGSQL.5432"; # UNIX port path # Postgres specific settings #$wgDBport = "5432"; # disable this