== Introduction ==
-'''tldr''': For Gnu/Linux (with a bit of Debian bias), a more concise, holistic and automated install than the official Mediawiki docs. Do some initial configuration then download this page and run it, or execute it as you read the well written documentation.
+'''tldr''': For Gnu/Linux (with a bit of Debian bias), a more concise, holistic and automated install than the official Mediawiki docs. Do some initial configuration then download this page and run it, or execute it as you read.
''' Goals / Why use this guide? '''
mw-clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/$ext
if [[ -e $mw/ext/$ext/extension.json ]]; then
# new style extension. remove old style declaration
- sed -i '#^require_once( "\\\$IP/extensions/\$ext/\$ext\.php" );#d' $mwc
+ sed -i --follow-symlinks '#^require_once( "\\\$IP/extensions/\$ext/\$ext\.php" );#d' $mwc
teeu $mwc <<EOF
wfLoadExtension( '$ext' );
EOF
mw-skin() {
local skin=$1
mw-clone https://gerrit.wikimedia.org/r/p/mediawiki/skins/$skin
- sed -i '/^wfLoadSkin/d' $mwc
- sed -i '/^\$wgDefaultSkin/d' $mwc
+ sed -i --follow-symlinks '/^wfLoadSkin/d' $mwc
+ sed -i --follow-symlinks '/^\$wgDefaultSkin/d' $mwc
teeu $mwc <<EOF
\$wgDefaultSkin = "${skin,,*}";
wfLoadSkin( '$skin' );
# Increase from default of 2M to 100M.
# This will at least allow high res pics etc.
php_ini=$(php -r 'echo(php_ini_loaded_file());')
-sed -i 's/^\(upload_max_filesize\|post_max_size\)\b.*/\1 = 100M/' $php_ini
+sed -i --follow-symlinks 's/^\(upload_max_filesize\|post_max_size\)\b.*/\1 = 100M/' $php_ini
if isdeb; then
service apache2 restart
else
# todo, php5-curl equivalent on fedora
yum -y install texlive-cjk ghostscript ImageMagick texlive ocaml
fi
-dir=$(dirname $(php -r 'echo(php_ini_loaded_file());'))/../apache2/conf.d
-ln -sf ../../mods-available/curl.ini $dir
service apache2 restart
cd $mw/extensions/Math/math; make # makes texvc
Enable account creation that we initially disabled.
<source lang="bash">
-sed -i "/\\\$wgGroupPermissions\\['\\*'\\]\\['createaccount'\\] = false;/d" $mwc
+sed -i --follow-symlinks "/\\\$wgGroupPermissions\\['\\*'\\]\\['createaccount'\\] = false;/d" $mwc
</source>
== Additional Configuration with Pywikibot ==
last_error=0
trap 'last_error=$?' ERR
source ~/mw_vars
+# No strict because the host is likely not named the same as
+# the domain.
+ssh="ssh -oStrictHostKeyChecking=no"
logfile=/var/log/${mwdomain}_backup.log
{
echo "#### starting backup at $(date) ####"
-ssh root@$mwdomain <<ENDSSH
+$ssh root@$mwdomain <<ENDSSH
set -x
tee -a $mwc<<'EOF'
\$wgReadOnly = 'Dumping Database, Access will be restored shortly';
mysqldump -p$dbpass --default-character-set=binary my_wiki > ~/wiki_backups/wiki_db_backup
sed -i '\$ d' $mwc # delete read only setting
ENDSSH
+# add no strict option to the defaults
+
+rdiff() { rdiff-backup --remote-schema "$ssh -C %s rdiff-backup --server" "$@"; }
set -x
-rdiff-backup root@$mwdomain::/root/wiki_backups ~/backup/${mwdomain}_wiki_db_backup
-rdiff-backup root@$mwdomain::$mw ~/backup/${mwdomain}_wiki_file_backup
+rdiff root@$mwdomain::/root/wiki_backups ~/backup/${mwdomain}_wiki_db_backup
+rdiff root@$mwdomain::$mw ~/backup/${mwdomain}_wiki_file_backup
set +x
echo "=== ending backup at $(date) ===="
} &>>$logfile
'''Optional & requires additional steps'''
<source lang="bash" type="example">
-sed -i "/^root:/d" /etc/aliases
+sed -i --follow-symlinks "/^root:/d" /etc/aliases
echo "root: EXAMPLE_ONLY_REPLACE_ME@gmail.com" >> /etc/aliases
newaliases
</source>
== Misc Notes ==
+''' Web Analytics Software '''
+
+I do not recommend using google analytics: it's proprietary software and gives private information of your website visitors to google for them to make money. Piwik has the best features and I recommend it, but I use goaccess because it is simpler to manage and good enough.
+
''' Mediawiki Documentation Quality '''
Overall the documentation is good, but like wikipedia, it depends.
'''Bash here documents, EOF vs 'EOF' '''
-Here documents are used throughout this page, some people may not be aware of a small but important syntax. When the delimiter is quoted, as in <<'EOF', then the contents of the here document are exactly verbatim. Otherwise $ and ` are expanded as in bash, and must be quoted by \, which itself must then also be quoted to be used literally.
+Here documents are used throughout this page, some people may not be aware of a small but important syntax. When the delimiter is quoted, as in <<'EOF', then the contents of the here document are exactly verbatim. Otherwise $ and ` are expanded as in bash, and must be escaped by prefixing them with \, which itself must then also be escaped to be used literally.
''' Mediawiki automation tools survey 7/2014 '''