1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/mediawiki_ynh.git synced 2024-09-03 19:46:05 +02:00

Install script with Ldap extensions

This commit is contained in:
Elie 2014-05-06 20:18:48 -04:00
parent b2ae03816b
commit e614e9ef09
7 changed files with 288 additions and 4 deletions

View file

@ -1,4 +1 @@
mediawiki_ynh
=============
MediaWIki packaged for Yunohost
MediaWIki 1.22.6 packaged for Yunohost

159
conf/LocalSettings.php Executable file
View file

@ -0,0 +1,159 @@
<?php
# This file was automatically generated by the MediaWiki 1.22.6
# installer. If you make manual changes, please keep track in case you
# need to recreate them later.
#
# See includes/DefaultSettings.php for all configurable settings
# and their default values, but don't forget to make changes in _this_
# file, not there.
#
# Further documentation for configuration settings may be found at:
# http://www.mediawiki.org/wiki/Manual:Configuration_settings
# Protect against web entry
if (!defined('MEDIAWIKI')) {
exit;
}
## Uncomment this to disable output compression
# $wgDisableOutputCompression = true;
$wgSitename = "ynh_wiki_name";
## The URL base path to the directory containing the wiki;
## defaults for all runtime URL paths are based off of this.
## For more information on customizing the URLs
## (like /w/index.php/Page_title to /wiki/Page_title) please see:
## http://www.mediawiki.org/wiki/Manual:Short_URL
$wgScriptPath = "";
$wgScriptExtension = ".php";
## The protocol and server name to use in fully-qualified URLs
$wgServer = "https://ynh_wiki_domain";
## The relative URL path to the skins directory
$wgStylePath = "$wgScriptPath/skins";
## The relative URL path to the logo. Make sure you change this from the default,
## or else you'll overwrite your logo when you upgrade!
$wgLogo = "$wgStylePath/common/images/wiki.png";
## UPO means: this is also a user preference option
$wgEnableEmail = true;
$wgEnableUserEmail = true; # UPO
$wgEmergencyContact = "apache@ynh_wiki_domain";
$wgPasswordSender = "apache@ynh_wiki_domain";
$wgEnotifUserTalk = false; # UPO
$wgEnotifWatchlist = false; # UPO
$wgEmailAuthentication = true;
## Database settings
$wgDBtype = "mysql";
$wgDBserver = "localhost";
$wgDBname = "ynh_wiki_db_name";
$wgDBuser = "ynh_wiki_db_user";
$wgDBpassword = "ynh_wiki_db_password";
# MySQL specific settings
$wgDBprefix = "";
# MySQL table options to use during installation or update
$wgDBTableOptions = "ENGINE=InnoDB, DEFAULT CHARSET=binary";
# Experimental charset support for MySQL 5.0.
$wgDBmysql5 = false;
## Shared memory settings
$wgMainCacheType = CACHE_NONE;
$wgMemCachedServers = array();
## To enable image uploads, make sure the 'images' directory
## is writable, then set this to true:
$wgEnableUploads = false;
#$wgUseImageMagick = true;
#$wgImageMagickConvertCommand = "/usr/bin/convert";
# InstantCommons allows wiki to use images from http://commons.wikimedia.org
$wgUseInstantCommons = false;
## If you use ImageMagick (or any other shell command) on a
## Linux server, this will need to be set to the name of an
## available UTF-8 locale
$wgShellLocale = "C.UTF-8";
## If you want to use image uploads under safe mode,
## create the directories images/archive, images/thumb and
## images/temp, and make them all writable. Then uncomment
## this, if it's not already uncommented:
#$wgHashedUploadDirectory = false;
## Set $wgCacheDirectory to a writable directory on the web server
## to make your wiki go slightly faster. The directory should not
## be publically accessible from the web.
#$wgCacheDirectory = "$IP/cache";
# Site language code, should be one of the list in ./languages/Names.php
$wgLanguageCode = "ynh_wiki_language";
$wgSecretKey = "4bdd7d457332a82e70199395fdd7b053e0e69f372bda0df5129c5ce7ac8f3977";
# Site upgrade key. Must be set to a string (default provided) to turn on the
# web installer while LocalSettings.php is in place
$wgUpgradeKey = "58a5aa316988ee69";
## Default skin: you can change the default skin. Use the internal symbolic
## names, ie 'cologneblue', 'monobook', 'vector':
$wgDefaultSkin = "vector";
## For attaching licensing metadata to pages, and displaying an
## appropriate copyright notice / icon. GNU Free Documentation
## License and Creative Commons licenses are supported so far.
$wgRightsPage = ""; # Set to the title of a wiki page that describes your license/copyright
$wgRightsUrl = "";
$wgRightsText = "";
$wgRightsIcon = "";
# Path to the GNU diff3 utility. Used for conflict resolution.
$wgDiff3 = "/usr/bin/diff3";
# End of automatically generated settings.
# Add more configuration options below.
# LDAP
require_once 'extensions/LdapAuthentication/LdapAuthentication.php';
$wgAuth = new LdapAuthenticationPlugin();
$wgLDAPDomainNames = array(
'mediawiki',
);
$wgLDAPServerNames = array(
'mediawiki' => 'localhost',
);
$wgLDAPUseLocal = false;
$wgLDAPEncryptionType = array(
'mediawiki' => 'clear'
);
$wgLDAPSearchAttributes = array(
'mediawiki' => 'uid'
);
$wgLDAPBaseDNs = array(
'mediawiki' => 'dc=yunohost,dc=org'
);
$wgLDAPGroupBaseDNs = array(
'mediawiki' => 'dc=yunohost,dc=org'
);
$wgLDAPUserBaseDNs = array(
'mediawiki' => 'dc=yunohost,dc=org'
);
$wgLDAPPreferences = array(
'mediawiki' => array('email' => 'mail', 'realname' => 'cn')
);
$wgLDAPDebug = 0;

17
conf/nginx.conf Normal file
View file

@ -0,0 +1,17 @@
location PATHTOCHANGE {
alias ALIASTOCHANGE;
if ($scheme = http) {
rewrite ^ https://$server_name$request_uri? permanent;
}
client_max_body_size 10G;
index index.php;
try_files $uri $uri/ index.php;
location ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
fastcgi_pass unix:/var/run/php5-fpm-mediawiki.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param REMOTE_USER $remote_user;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}

49
manifest.json Normal file
View file

@ -0,0 +1,49 @@
{
"name": "Mediawiki",
"id": "mediawiki",
"description": {
"en": "Open Source Wiki software",
"fr": "Wiki Open Source"
},
"developer": {
"name": "ElieSauveterre",
"email": "contact@mikangali.om",
"url": "http://www.mikangali.com/"
},
"multi_instance": "true",
"arguments": {
"install": [
{
"name": "domain",
"ask": {
"en": "Choose a domain for Mediawiki"
},
"example": "domain.org"
},
{
"name": "path",
"ask": {
"en": "Choose a path for Mediawiki"
},
"example": "/wiki",
"default": "/wiki"
},
{
"name": "wikiname",
"ask": {
"en": "Choose a name"
},
"example": "My Wiki",
"default": "My Wiki"
},
{
"name": "language",
"ask": {
"en": "Choose the language"
},
"choices": ["en", "fr"],
"default": "en"
}
]
}
}

62
scripts/install Normal file
View file

@ -0,0 +1,62 @@
# Retrieve arguments
domain=$1
path=$2
wiki_name=$3
language=$4
# Check domain/path availability
sudo yunohost app checkurl $domain$path -a mediawiki
if [[ ! $? -eq 0 ]]; then
exit 1
fi
# Generate random DES key & password
deskey=$(dd if=/dev/urandom bs=1 count=200 2> /dev/null | tr -c -d '[A-Za-z0-9]' | sed -n 's/\(.\{24\}\).*/\1/p')
db_pwd=$(dd if=/dev/urandom bs=1 count=200 2> /dev/null | tr -c -d '[A-Za-z0-9]' | sed -n 's/\(.\{24\}\).*/\1/p')
# Use 'mediawiki' as database name and user
db_user=mediawiki
# Initialize database and store mysql password for upgrade
sudo yunohost app initdb $db_user -p $db_pwd -s $(readlink -e ../conf/SQL/mysql.initial.sql)
sudo yunohost app setting mediawiki mysqlpwd -v $db_pwd
# Copy files to the right place
final_path=/var/www/mediawiki
sudo mkdir -p $final_path
sudo wget http://releases.wikimedia.org/mediawiki/1.22/mediawiki-1.22.6.tar.gz
sudo tar xvzf mediawiki-*.tar.gz
sudo mv mediawiki-*/* $final_path
sudo rm -R mediawiki-*
sudo cp ../conf/LocalSettings.php $final_path/
# LDAP Extension
sudo wget https://codeload.github.com/wikimedia/mediawiki-extensions-LdapAuthentication/legacy.tar.gz/REL1_22
sudo tar -xzf REL1_22
sudo mkdir $final_path/extensions/LdapAuthentication
sudo mv wikimedia-mediawiki-extensions-LdapAuthentication*/* $final_path/extensions/LdapAuthentication/
sudo rm -R wikimedia-mediawiki-extensions-LdapAuthentication*
sudo rm REL1_22
# Change variables in Mediawiki configuration
sudo sed -i "s/ynh_wiki_name/$wiki_name/g" $final_path/LocalSettings.php
sudo sed -i "s/ynh_wiki_domain/$domain/g" $final_path/LocalSettings.php
sudo sed -i "s/ynh_wiki_db_name/$db_user/g" $final_path/LocalSettings.php
sudo sed -i "s/ynh_wiki_db_user/$db_user/g" $final_path/LocalSettings.php
sudo sed -i "s/ynh_wiki_db_password/$db_pwd/g" $final_path/LocalSettings.php
sudo sed -i "s/ynh_wiki_language/$language/g" $final_path/LocalSettings.php
# Update DB
sudo php5 $final_path/maintenance/update.php
# Set permissions to roundcube directory
sudo chown -R www-data: $final_path
# Modify Nginx configuration file and copy it to Nginx conf directory
sed -i "s@PATHTOCHANGE@$path@g" ../conf/nginx.conf
sed -i "s@ALIASTOCHANGE@$final_path/@g" ../conf/nginx.conf
sudo cp ../conf/nginx.conf /etc/nginx/conf.d/$domain.d/mediawiki.conf
# Reload Nginx and regenerate SSOwat conf
sudo service nginx reload
sudo yunohost app ssowatconf

0
scripts/remove Normal file
View file

0
scripts/upgrade Normal file
View file