get 1.28 changes, small doc addition
authorIan Kelling <ian@iankelling.org>
Mon, 16 Jan 2017 16:39:00 +0000 (08:39 -0800)
committerIan Kelling <ian@iankelling.org>
Mon, 16 Jan 2017 16:39:00 +0000 (08:39 -0800)
Mediawiki_Setup_Guide
get-wiki-snapshot
mw-setup-script

index d17fa35edaa7b0d74bb3fcae8eae9906f3b4d6c6..74ca3a8100106eef68d0cfc3abfe0cb7614ad7eb 100644 (file)
 '''Version Support'''
 
 Very minor adjustments needed for other distros. Help expand this list.
-* Mediawiki 1.27
-* Debian 8 (tested)
-* Debian testing (tested Aug 7, 2016)
+* Mediawiki 1.27 & 1.28
+* Debian 8 + backports
+* Debian 8
+* Debian testing (last tested Aug 7, 2016)
 
 Pre 5/2016 revisions ran Mediawiki 1.23, tested on Fedora 20 and Ubuntu 14.04.
 
@@ -78,9 +79,9 @@ EOF
 # The rest of this section will work fine with no changes.
 
 # git branch for mediawiki + extensions.
-# This guide has only been tested with 1_27.
+# This guide has only been tested with 1_28.
 # branch names: https://git.wikimedia.org/branches/mediawiki%2Fcore.git
-export mw_branch=REL1_27
+export mw_branch=REL1_28
 
 # As set by gui installer when choosing cc by sa.
 export mw_RightsUrl='https://creativecommons.org/licenses/by-sa/4.0/'
@@ -222,10 +223,10 @@ if isdeb; then
     # main reference:
     # https://www.mediawiki.org/wiki/Manual:Running_MediaWiki_on_Ubuntu
     apt-get update
-    apt-get install -y imagemagick
+    DEBIAN_FRONTEND=noninteractive apt-get install -y imagemagick
     if apt-get install -s mediawiki &>/dev/null; then
-        # in debian wheezy time-frame distros, mediawiki was packaged.
-        apt-get -y install php-apc mediawiki php-mbstring
+        # mediawiki is packaged in jessie backports.
+        DEBIAN_FRONTEND=noninteractive apt-get -y install php5-apcu mediawiki
     else
         # https://www.mediawiki.org/wiki/Manual:Installation_requirements
         if apt-get install -s php7.0 &>/dev/null; then
@@ -233,13 +234,15 @@ if isdeb; then
             # available in debian 8. it's listed as supported
             # in the mediawiki page.
             # noninteractive to avoid mysql password prompt.
-            DEBIAN_FRONTEND=noninteractive apt-get install -y apache2 mysql-server \
+            DEBIAN_FRONTEND=noninteractive apt-get install -y apache2  \
+                           default-mysql-server \
                            php7.0 php7.0-mysql libapache2-mod-php7.0 php7.0-xml \
                            php7.0-apcu php7.0-mbstring
         else
             # note: mbstring is recommended, but it's not available for php5 in
             # debian jessie.
-            DEBIAN_FRONTEND=noninteractive apt-get install -y apache2 mysql-server \
+            DEBIAN_FRONTEND=noninteractive apt-get install -y apache2 \
+                           default-mysql-server \
                            php5 php5-mysql libapache2-mod-php5 php5-apcu
         fi
     fi
@@ -459,7 +462,6 @@ $wgArticlePath = "/wiki/$1";
 # not using nofollow is good practice, as long as we avoid spam.
 $wgNoFollowLinks = false;
 # Allow user customization.
-$wgAllowUserJs = true;
 $wgAllowUserCss = true;
 
 # use imagemagick over GD
@@ -498,7 +500,7 @@ if ! git remote show ian-kelling &>/dev/null; then
     git remote add ian-kelling https://iankelling.org/git/forks/Vector
 fi
 git fetch ian-kelling
-git checkout ian-kelling/REL1_27-toolbox-in-dropdown
+git checkout ian-kelling/${mw_branch}-toolbox-in-dropdown
 </source>
 
 == Install and Configure Mediawiki Extensions ==
@@ -568,10 +570,12 @@ sudo -u $apache_user php $mw/extensions/AntiSpoof/maintenance/batchAntiSpoof.php
 
 ''' [[mediawikiwiki:CheckUser|Extension:CheckUser]]: Get ip addresses from inside mediawiki so you can ban users'''
 
-Requires special install steps or we can get into a bad state. Add a sleep like the default of update.php to avoid errors.
+On <= 1.27, requires special install steps or we can get into a bad state. Add a sleep like the default of update.php to avoid errors.
 <source lang="bash">
 mw-ext CheckUser
-sudo -u $apache_user php $mw/extensions/CheckUser/install.php; sleep 1
+if [[ -e $mw/extensions/CheckUser/install.php ]]; then
+    sudo -u $apache_user php $mw/extensions/CheckUser/install.php; sleep 1
+fi
 </source>
 
 
@@ -930,14 +934,9 @@ EOFOUTER
 sudo chmod +x $backup_script
 </source>
 
-If you are like most people and don't use the old-school mail spool, setup the backup system to send mail externally. Some ways to do that are on this [http://unix.stackexchange.com/questions/36982/can-i-set-up-system-mail-to-use-an-external-smtp-server stackoverflow answer]. Then make local mail to your user get forwarded to an address you will read:
-
 '''Optional & requires additional steps'''
-<source lang="bash" type="example">
-sed -i --follow-symlinks "/^root:/d" /etc/aliases
-echo "root: EXAMPLE_ONLY_REPLACE_ME@gmail.com" >> /etc/aliases
-newaliases
-</source>
+
+If you are like most people and don't use the old-school mail spool, setup the backup system to send mail externally so you are notified if it fails. For examples of how to do this, [http://unix.stackexchange.com/questions/36982/can-i-set-up-system-mail-to-use-an-external-smtp-server stackoverflow], [https://iankelling.org/git/?p=ian-specific/distro-setup;a=blob;f=mail-setup;hb=HEAD script I use].
 
 == Restoring Backups ==
 
@@ -1003,7 +1002,7 @@ for dir in extensions/* skins/* $mw; do
     git checkout -q $new_head
     cd $mw
 done
-php $mw/maintenance/update.php -q
+php $mw/maintenance/update.php -q --quick
 EOF
 
 </source>
@@ -1103,7 +1102,7 @@ This means the code is compatible with gplv3.
 
 == todo list for this page ==
 
-* Check if there are any new default extensions 1.27 which I haven't evaluated.
-* Test for any new config values set by the 1.27 gui install method.
+* Check if there are any new default extensions 1.28 which I haven't evaluated.
+* Test for any new config values set by the 1.28 gui install method.
 * Get Visual editor extension.
 * Don't require registration for edits
index 578732ba0c1f185fdafd716014c75dde94617e68..b89bafa7f122a5e5ab8c7a6618e251d58869a2f5 100755 (executable)
@@ -4,6 +4,9 @@
 set -eE -o pipefail
 trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
 
+# usage: get-wiki-snapshot [-l]
+# -l means generate script from local guide, don't download new one.
+
 cd "${BASH_SOURCE%/*}"
 
 
@@ -13,7 +16,7 @@ start=' *<source lang="bash"> *'
 end=' *<\/source> *'
 
 if [[ $1 != -l ]]; then # use local file
-    ruby <<'EOF' > $page_file
+  ruby <<'EOF' > $page_file
 require 'json'
 puts JSON.parse(`curl -k 'https://ofswiki.org/w/api.php?\
 action=query&titles=Mediawiki_Setup_Guide&prop=revisions&rvprop=content&\
@@ -25,6 +28,7 @@ fi
 #!/bin/bash
 # Copyright (C) 2016 Ian Kelling
 # This program is under GPL v. 3 or later, see <http://www.gnu.org/licenses/>
+set -x
 EOF
   sed -rn "/^$start$/,/^$end$/{s/^($start|$end)$/# \0/;p}" $page_file
 } > $script_file
index 62701d50e11a355076aaa286f4451b3c38f600f8..754c53664815c9afa579de61af919270c66b06c4 100755 (executable)
@@ -1,6 +1,7 @@
 #!/bin/bash
 # Copyright (C) 2016 Ian Kelling
 # This program is under GPL v. 3 or later, see <http://www.gnu.org/licenses/>
+set -x
 # <source lang="bash">
 # identify if this is a debian based distro
 isdeb() { command -v apt &>/dev/null; }
@@ -87,10 +88,10 @@ if isdeb; then
     # main reference:
     # https://www.mediawiki.org/wiki/Manual:Running_MediaWiki_on_Ubuntu
     apt-get update
-    apt-get install -y imagemagick
+    DEBIAN_FRONTEND=noninteractive apt-get install -y imagemagick
     if apt-get install -s mediawiki &>/dev/null; then
-        # in debian wheezy time-frame distros, mediawiki was packaged.
-        apt-get -y install php-apc mediawiki php-mbstring
+        # mediawiki is packaged in jessie backports.
+        DEBIAN_FRONTEND=noninteractive apt-get -y install php5-apcu mediawiki
     else
         # https://www.mediawiki.org/wiki/Manual:Installation_requirements
         if apt-get install -s php7.0 &>/dev/null; then
@@ -98,13 +99,15 @@ if isdeb; then
             # available in debian 8. it's listed as supported
             # in the mediawiki page.
             # noninteractive to avoid mysql password prompt.
-            DEBIAN_FRONTEND=noninteractive apt-get install -y apache2 mysql-server \
+            DEBIAN_FRONTEND=noninteractive apt-get install -y apache2  \
+                           default-mysql-server \
                            php7.0 php7.0-mysql libapache2-mod-php7.0 php7.0-xml \
                            php7.0-apcu php7.0-mbstring
         else
             # note: mbstring is recommended, but it's not available for php5 in
             # debian jessie.
-            DEBIAN_FRONTEND=noninteractive apt-get install -y apache2 mysql-server \
+            DEBIAN_FRONTEND=noninteractive apt-get install -y apache2 \
+                           default-mysql-server \
                            php5 php5-mysql libapache2-mod-php5 php5-apcu
         fi
     fi
@@ -238,7 +241,6 @@ $wgArticlePath = "/wiki/$1";
 # not using nofollow is good practice, as long as we avoid spam.
 $wgNoFollowLinks = false;
 # Allow user customization.
-$wgAllowUserJs = true;
 $wgAllowUserCss = true;
 
 # use imagemagick over GD
@@ -275,7 +277,7 @@ if ! git remote show ian-kelling &>/dev/null; then
     git remote add ian-kelling https://iankelling.org/git/forks/Vector
 fi
 git fetch ian-kelling
-git checkout ian-kelling/REL1_27-toolbox-in-dropdown
+git checkout ian-kelling/${mw_branch}-toolbox-in-dropdown
 # </source>
 # <source lang="bash">
 mw-ext Cite CiteThisPage CSS Echo Gadgets ImageMap Interwiki News \
@@ -288,7 +290,9 @@ sudo -u $apache_user php $mw/extensions/AntiSpoof/maintenance/batchAntiSpoof.php
 # </source>
 # <source lang="bash">
 mw-ext CheckUser
-sudo -u $apache_user php $mw/extensions/CheckUser/install.php; sleep 1
+if [[ -e $mw/extensions/CheckUser/install.php ]]; then
+    sudo -u $apache_user php $mw/extensions/CheckUser/install.php; sleep 1
+fi
 # </source>
 # <source lang="bash">
 if isdeb; then
@@ -556,7 +560,7 @@ for dir in extensions/* skins/* $mw; do
     git checkout -q $new_head
     cd $mw
 done
-php $mw/maintenance/update.php -q
+php $mw/maintenance/update.php -q --quick
 EOF
 
 # </source>