Forwarding to mediawiki-l, where other people might be interested.
---------- Forwarded message ----------
From: Gilles Dubuc <gilles(a)wikimedia.org>
Date: Wed, Sep 23, 2015 at 10:46 AM
Subject: [Wikitech-l] Do you run mediawiki on shared hosting? Tell us about
it
To: Wikimedia developers <wikitech-l(a)lists.wikimedia.org>
I've created this task on the topic of shared hosting:
https://phabricator.wikimedia.org/T113210 as a proposal for the upcoming
Wikimedia Developer Summit.
If anyone on this list is currently running mediawiki on a shared hosting
platform, I would really like to hear from you on that topic, either on the
list or on that phabricator task. So far all the discussions on that
subject I've seen seemed to be done "on behalf" of people relying on those
platforms, and I have yet to hear direct testimonies and opinions from
people who are running mediawiki that way.
The main questions I have for people in that situation are whether there
are blockers for them to move to more modern vm-based or container-based
hosting platforms, or if they prefer to stay on shared hosting for specific
reasons, etc. Basically, tell us why you're on shared hosting for your
mediawiki install(s).
_______________________________________________
Wikitech-l mailing list
Wikitech-l(a)lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l
--
Quim Gil
Engineering Community Manager @ Wikimedia Foundation
http://www.mediawiki.org/wiki/User:Qgil
Guys,
I went to click 'confirm email' under my user preferences in mediawiki.
And when I did I got this error from the interface:
[272a6228] 2015-09-21 20:24:55: Fatal exception of type "MWException"
What do you think is causing that error? And how can I correct the problem?
Are there any logs I can check to zero in on the problem?
Thanks,
Tim
--
GPG me!!
gpg --keyserver pool.sks-keyservers.net --recv-keys F186197B
Since we upgraded to MediaWiki v1.22 we've been having intermittent
performance issues on some pages with many images/thumbnails. After a bunch
of poking around it seems to be due to thumbnails not being saved to disk.
It seems they are saved to a cache (assumably memcached) so the first load
a user does is slow and then it is fine for about a day.
As an example we have this page:
http://content3.uesp.net/wiki/Online:Ardent_Flame
On a "normal" logged-in session load the page takes 0.5 seconds for the
article to load. However, on a slow load it takes 8-10 seconds for the
article to load. You can force this to happen by doing a purge on the page
(?action=purge).
If we enable profiling/debug we see a bunch of lines like:
File::transform: Doing stat for
mwstore://local-backend/local-thumb/1/11/ON-icon-skill-Dragonknight-Dragonknight_Standard.png/48px-ON-icon-skill-Dragonknight-Dragonknight_Standard.png
BitmapHandler::doTransform: creating 48x48 thumbnail at
mwstore://local-backend/local-thumb/1/11/ON-icon-skill-Dragonknight-Dragonknight_Standard.png/48px-ON-icon-skill-Dragonknight-Dragonknight_Standard.png
using scaler im
BitmapHandler::doTransform: Transforming later per flags.
(see http://www.uesp.net/wiki/User:Daveh/TestProfile1 for more). The
strange thing is that a lot of these thumbnails files already exist so I
don't understand why they're being created. For thumbnails that don't exist
we see lines like:
FileBackendStore::getFileStat: File
mwstore://local-backend/local-thumb/b/b4/ON-icon-ActiveFrame.png/64px-ON-icon-ActiveFrame.png
does not exist.
BitmapHandler::doTransform: creating 64x64 thumbnail at
/home/uesp/www/wtest/images/tmp/transform_6fc8d30c9ff9-1.png using scaler im
BitmapHandler::doTransform: returning unscaled image
Unfortunately, the specified tmp file doesn't exist nor does the thumbnail
file after the page is loaded.
A few "obvious" things I've checked:
- Thumbnail files/paths are all readable/writable by Apache
- Apache error logs (nothing)
- MediaWiki debug output (nothing obvious)
Some of the performance issue for this page could be also related to heavy
use of templates but I'd like to figure out the thumbnail issue and rule it
out as a cause first.
A few specific questions:
1) Why are thumbnails being created that already exist?
2) Why are thumbnails not being created that don't exist, either as a tmp
file or thumbnail file?
3) What does "Transforming later per flags." mean? When is "later"?
Any help or suggestions would be welcome...Thanks!
--
Dave Humphrey -- dave(a)uesp.net
Founder/Server Admin of the Unofficial Elder Scrolls Pages -- www.uesp.netwww.viud.net - Building the world's toughest USB drive
Hi
I maintain a wiki that extensively uses images via InstantCommons. I
while ago all links to InstantCommon images stopped working and were
replaced with an error message.
Since then, I have upgraded the to MediaWiki installation to version
1.25.2. This resolved the error message but links to InstantCommon
images are now displayed as link that points to an upload page.
$wgUseInstantCommons in Local Settings is set to "true".
Can someone point me in the right direction for a possible solution?
Many thanks
Sven
Hey guys,
I've been using ssl connections to the database for a little while now
thanks to some of the help I've gotten on the list. Works great!
Here's the settings I'm using to do that:
## Database settings
$wgDBtype = "mysql";
$wgDBservers = '';
$wgDBserver = "db.example.com";
$wgDBssl = true;
$wgDBname = "jfwiki";
$wgDBuser = "admin_ssl";
$wgDBpassword = "secret";
$wgDBprefix = "";
$wgDBTableOptions = "ENGINE=InnoDB, DEFAULT CHARSET=utf8";
$wgDBmysql5 = false;
$wgShowDBErrorBacktrace = true;
Well I actually have a 4 node database cluster. With 2 masters slaving off
each other, and 2 slaves running in read only mode.
The db.example.com that you see above is actually a VIP that that controls
the two masters via HA/Proxy.
What I'd like to do is accomplish the same thing, SSL db connections, but
splitting off the reads to the two slaves and send only writes to the
masters.
So I found this mediawiki database manual:
https://www.mediawiki.org/wiki/Manual:$wgDBservers
And I tried adapting the example to get what I'm after in terms of sending
only writes to the master VIP and read from the two slaves.
What I find is if I use a non-ssl user this does actually work well:
$wgDBservers = array(
array(
'host' => "db.example.com",
'dbname' => "jfwiki",
'user' => "admin",
'password' => "secret",
'type' => "mysql",
'flags' => DBO_DEFAULT,
'load' => 0,
),
array(
'host' => "db3.example.com",
'dbname' => "jfwiki",
'user' => "admin",
'password' => "secret",
'type' => "mysql",
'flags' => DBO_DEFAULT,
'load' => 1,
),
array(
'host' => "db4.example.com",
'dbname' => "jfwiki",
'user' => "admin",
'password' => "secret",
'type' => "mysql",
'flags' => DBO_DEFAULT,
'load' => 1,
),
);
No problems there. The wiki comes right up!! However if I try the same
thing, but using an SSL user with the SSL flag in the options section,
that's where it all falls apart.
If I use this setup:
## Database settings
$wgDBtype = "mysql";
$wgDBservers = '';
$wgDBservers = array(
array(
'host' => "db.example.com",
'dbname' => "jfwiki",
'user' => "admin_ssl",
'password' => "secret",
'type' => "mysql",
'flags' => DBO_SSL,
'load' => 0,
),
array(
'host' => "db3.example.com",
'dbname' => "jfwiki",
'user' => "admin_ssl",
'password' => "secret",
'type' => "mysql",
'flags' => DBO_SSL,
'load' => 1,
),
array(
'host' => "db4.example.com",
'dbname' => "jfwiki",
'user' => "admin_ssl",
'password' => "secret",
'type' => "mysql",
'flags' => DBO_SSL,
'load' => 1,
),
);
#$wgDBssl = true;
$wgDBprefix = "";
$wgDBTableOptions = "ENGINE=InnoDB, DEFAULT CHARSET=utf8";
$wgDBmysql5 = false;
$wgShowDBErrorBacktrace = true;
With that set in my LocalSettings.php, I get the following error in the
browser:
Sorry! This site is experiencing technical difficulties.
Try waiting a few minutes and reloading.
(Cannot access the database)
Backtrace:
#0 /var/www/jf/mediawiki-1.25.2/includes/db/LoadBalancer.php(807):
DatabaseBase->reportConnectionError('No working slav...')
#1 /var/www/jf/mediawiki-1.25.2/includes/db/LoadBalancer.php(501):
LoadBalancer->reportConnectionError()
#2 /var/www/jf/mediawiki-1.25.2/includes/GlobalFunctions.php(3594):
LoadBalancer->getConnection(-1, Array, false)
#3 /var/www/jf/mediawiki-1.25.2/includes/page/WikiPage.php(369): wfGetDB(-1)
#4 /var/www/jf/mediawiki-1.25.2/includes/page/WikiPage.php(449):
WikiPage->loadPageData()
#5 /var/www/jf/mediawiki-1.25.2/includes/page/WikiPage.php(491):
WikiPage->exists()
#6 /var/www/jf/mediawiki-1.25.2/includes/page/WikiPage.php(215):
WikiPage->getContentModel()
#7 /var/www/jf/mediawiki-1.25.2/includes/page/WikiPage.php(201):
WikiPage->getContentHandler()
#8 /var/www/jf/mediawiki-1.25.2/includes/actions/Action.php(96):
WikiPage->getActionOverrides()
#9 /var/www/jf/mediawiki-1.25.2/includes/actions/Action.php(151):
Action::factory('view', Object(WikiPage), Object(RequestContext))
#10 /var/www/jf/mediawiki-1.25.2/includes/MediaWiki.php(139):
Action::getActionName(Object(RequestContext))
#11 /var/www/jf/mediawiki-1.25.2/includes/MediaWiki.php(481):
MediaWiki->getAction()
#12 /var/www/jf/mediawiki-1.25.2/includes/MediaWiki.php(414):
MediaWiki->main()
#13 /var/www/jf/mediawiki-1.25.2/index.php(41): MediaWiki->run()
#14 {main}
The error seems to be complaining that it can't read from the slaves.
However I've verified that I can connect as the SSL user to both read only
slaves from the command line on each of the 3 web servers I"m using to run
the wiki:
1st web server
[root@ops1:~] #mysql -uadmin_ssl -p -h db3.example.com -e "show databases"
Enter password:
+--------------------+
| Database |
+--------------------+
| bacula |
| information_schema |
| jfwiki |
| jokefire |
| mysql |
| performance_schema |
+--------------------+
[root@ops1:~] #mysql -uadmin_ssl -p -h db3.example.com -e "show databases"
Enter password:
+--------------------+
| Database |
+--------------------+
| bacula |
| information_schema |
| jfwiki |
| jokefire |
| mysql |
| performance_schema |
+--------------------+
2nd web server:
[root@ops2:~] #mysql -uadmin_ssl -p -h db3.example.com -e "show databases"
Enter password:
+--------------------+
| Database |
+--------------------+
| bacula |
| information_schema |
| jfwiki |
| jokefire |
| mysql |
| performance_schema |
+--------------------+
[root@ops2:~] #mysql -uadmin_ssl -p -h db4.example.com -e "show databases"
Enter password:
+--------------------+
| Database |
+--------------------+
| bacula |
| information_schema |
| jfwiki |
| jokefire |
| mysql |
| performance_schema |
+--------------------+
>From the 3rd web server:
[root@ops3:~] #mysql -uadmin_ssl -p -h db3.example.com -e "show databases"
Enter password:
+--------------------+
| Database |
+--------------------+
| bacula |
| information_schema |
| jfwiki |
| jokefire |
| mysql |
| performance_schema |
+--------------------+
[root@ops3:~] #mysql -uadmin_ssl -p -h db4.example.com -e "show databases"
Enter password:
+--------------------+
| Database |
+--------------------+
| bacula |
| information_schema |
| jfwiki |
| jokefire |
| mysql |
| performance_schema |
+--------------------+
And of course I can connect to the database master VIP from all 3 web
servers:
>From 1st web server:
[root@ops1:~] #mysql -uadmin_ssl -p -h db.example.com -e "show databases"
Enter password:
+--------------------+
| Database |
+--------------------+
| bacula |
| certs |
| information_schema |
| jf_wiki |
| jfwiki |
| jokefire |
| mysql |
| performance_schema |
+--------------------+
2nd web server:
[root@ops2:~] #mysql -uadmin_ssl -p -h db.example.com -e "show databases"
Enter password:
+--------------------+
| Database |
+--------------------+
| bacula |
| certs |
| information_schema |
| jf_wiki |
| jfwiki |
| jokefire |
| mysql |
| performance_schema |
+--------------------+
3rd web server:
[root@ops3:~] #mysql -uadmin_ssl -p -h db.example.com -e "show databases"
Enter password:
+--------------------+
| Database |
+--------------------+
| bacula |
| information_schema |
| jfwiki |
| jokefire |
| mysql |
| performance_schema |
+--------------------+
So what can I do to contact my database via an SSL server using the array?
Thanks,
Tim
--
GPG me!!
gpg --keyserver pool.sks-keyservers.net --recv-keys F186197B