Mediawiki Sitemap erstellen
Hier die kurz Anleitung zum erstellen einer Sitemap für Google.
cd /srv/httpd/vhosts/wiki.vhost.de/htdocs/
mkdir sitemap
php maintenance/generateSitemap.php --fspath sitemap --server http://wiki.domain.tld --urlpath sitemap/
Sitemap automatisch einmal am Tag erstellen
/usr/local/sbin/wikisitemap.sh
#!/bin/bash cd /srv/httpd/vhosts/wiki.vhost.de/htdocs/ php5 maintenance/generateSitemap.php --skip-redirects --fspath sitemap --server http://wiki.domain.tld --urlpath sitemap/ >/dev/null
chmod +x /usr/local/sbin/wikisitemap.sh
ln -s /usr/local/sbin/wikisitemap.sh /etc/cron.daily/wikisitemap
Problem bei php suhosin Verwendung
Wenn man PHP mit dem suhosin Modul nutzt kommt es zu folgender Fehlermeldung, da suhosin es verbietet Skripten das Memory Limit anzupassen:
ALERT - script tried to disable memory_limit by setting it to a negative value -1 bytes which is not allowed (attacker 'REMOTE_ADDR not set', file 'unknown')
Um den Fehler zu eliminieren, muss man den memory-limit Wert von max
nach default
in der maintenance/Maintenance.php
anpassen:
maintenance/Maintenance.php
'memory-limit', 'default'
public function memoryLimit() {
$limit = $this->getOption( 'memory-limit', 'default' );
$limit = trim( $limit, "\" '" ); // trim quotes in case someone misunderstood
return $limit;
}
Fehler nach Upgrade auf MariaDB und Debian Stretch
ich bekam nach dem Upgrade auf Debian Stretch beim Generieren folgende Fehlermeldung:
php maintenance/generateSitemap.php
0 () /srv/httpd/vhosts/www.laub-home.de/htdocs/sitemap-wikidb-NS_0-0.xml.gz [40c2e64c921d3f448fac4a4d] [no req] Wikimedia\Rdbms\DBQueryError from line 1075 of /srv/httpd/vhosts/www.laub-home.de/htdocs/includes/libs/rdbms/database/Database.php: A database query error has occurred. Did you forget to run your application's database schema updater after upgrading? Query: SELECT user_name,up_value FROM `user` LEFT JOIN `user_properties` ON ((user_id = up_user) AND up_property = 'gender') WHERE user_name = '𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁𨮁喃' Function: GenderCache::doQuery/MediaWikiTitleCodec::getNamespaceName Error: 1300 Invalid utf8 character string: 'F0A8AE' (localhost) Backtrace: #0 /srv/httpd/vhosts/www.laub-home.de/htdocs/includes/libs/rdbms/database/Database.php(933): Wikimedia\Rdbms\Database->reportQueryError(string, integer, string, string, boolean) #1 /srv/httpd/vhosts/www.laub-home.de/htdocs/includes/libs/rdbms/database/Database.php(1269): Wikimedia\Rdbms\Database->query(string, string) #2 /srv/httpd/vhosts/www.laub-home.de/htdocs/includes/cache/GenderCache.php(171): Wikimedia\Rdbms\Database->select(array, array, array, string, array, array) #3 /srv/httpd/vhosts/www.laub-home.de/htdocs/includes/cache/GenderCache.php(81): GenderCache->doQuery(string, string) #4 /srv/httpd/vhosts/www.laub-home.de/htdocs/includes/title/MediaWikiTitleCodec.php(91): GenderCache->getGenderOf(string, string) #5 /srv/httpd/vhosts/www.laub-home.de/htdocs/includes/Title.php(995): MediaWikiTitleCodec->getNamespaceName(integer, string) #6 /srv/httpd/vhosts/www.laub-home.de/htdocs/includes/Title.php(1428): Title->getNsText() #7 /srv/httpd/vhosts/www.laub-home.de/htdocs/includes/Title.php(1440): Title->prefix(string) #8 /srv/httpd/vhosts/www.laub-home.de/htdocs/includes/Title.php(1753): Title->getPrefixedDBkey() #9 /srv/httpd/vhosts/www.laub-home.de/htdocs/includes/Title.php(1882): Title->getLocalURL(string) #10 /srv/httpd/vhosts/www.laub-home.de/htdocs/maintenance/generateSitemap.php(554): Title->getCanonicalURL() #11 /srv/httpd/vhosts/www.laub-home.de/htdocs/maintenance/generateSitemap.php(331): GenerateSitemap->generateLimit(string) #12 /srv/httpd/vhosts/www.laub-home.de/htdocs/maintenance/generateSitemap.php(203): GenerateSitemap->main() #13 /srv/httpd/vhosts/www.laub-home.de/htdocs/maintenance/doMaintenance.php(111): GenerateSitemap->execute() #14 /srv/httpd/vhosts/www.laub-home.de/htdocs/maintenance/generateSitemap.php(564): require_once(string) #15 {main}
Dies konnte wie hier beschrieben durch ein ändern der USER Tabelle gelöst werden:
mysql -uroot
ALTER TABLE user CONVERT TO CHARACTER SET binary;