Wikipedia:FAQ/Technical: Difference between revisions

Content deleted Content added
neutral point of view
m Reverted edits by 202.156.61.188 (talk) to last version by Materialscientist
Tags: Rollback Mobile edit Mobile app edit Android app edit App rollback
 
(392 intermediate revisions by more than 100 users not shown)
Line 1:
'''[[{{Wikipedia:FAQ|FAQ Home]]'''/framework
|shorttitle = Technical
|title = Technical FAQ
}}
 
{{Shortcut|WP:TFAQ}}
[[Wikipedia:Overview FAQ|Overview FAQ]] -- [[Wikipedia:Readers' FAQ|Readers' FAQ]] --
This FAQ answers some questions related to the technical workings of Wikipedia, including software and hardware.
[[Wikipedia:Contributing FAQ|Contributing FAQ]] --
[[Wikipedia:Editing FAQ|Editing FAQ]] --
[[Wikipedia:Administration FAQ|Administration FAQ]] --
'''Technical FAQ''' --
[[Wikipedia:Problems FAQ|Problems FAQ]] --
[[Wikipedia:Miscellaneous FAQ|Miscellaneous FAQ]] --
[[Wikipedia:Help|Help page]]
-----
 
''Note: If you're trying to get help for a specific technical problem that isn't answered by the FAQs, try asking inread [[Wikipedia:Troubleshooting]] or ask question at the [[Wikipedia:Village pump (technical)|technical village pump]].''
__TOC__
 
==What happens if two or more people are editing the same page?==
-----
:When the second person (and later people) attempts to save the page, [[Wikipedia:MediaWiki|MediaWiki]] will attempt to merge their changes into the current version of the text. If the merge fails, the user will receive an "edit conflict" message, and the opportunity to merge their changes manually. If multiple consecutive conflicts are noticed, it will generate a slightly different message.
 
:See [[Help:Edit conflict]] for more information.
== General Technical Questions ==
 
==How do I recover a password I have forgotten?==
'''What software is used to run Wikipedia?'''
: If you entered your e-mail address when you signed up, you can have a new password generated. Click on the "[[Special:Userlogin|Log in]]" link in the upper-right corner. Follow the link near the bottom of the page titled "{{blue|Forgot your password?}}"
:We originally ran [[UseModWiki]], a general wiki script by [[user:Clifford Adams|Clifford Adams]]. In January 2002, we switched to a [[Wikipedia:PHP script|PHP script]], which in turn was completely overhauled the following July to create [[Wikipedia:Software Phase III]].
: On the [[Special:PasswordReset|Reset password page]], which loads, enter ''either'' your username ''or'' your email address (the one you associated with the username), and select the <span style="color:white; background-color:red; padding:0.2em;">Reset password</span> button.
: You should receive an e-mail message with a new random password; you can use it to log in. You will then be presented with the opportunity to change your password to something you'll remember.
: If, however, you did not enter an e-mail address, you cannot recover your account. Simply create a new account and declare that you had a previous account.
 
==How do I change my password?==
:[[MySQL]] is used for the database backend, and [[Apache]] is the web server.
:You can change your password via [[Special:ChangePassword]]; you can also find a link to this in [[Special:Preferences|your preferences]].
 
==How do I report a bug?==
:The Wikipedia server's [[operating system]] is [[Linux operating system|Linux]].
:The developers use the [[Phab:|Phabricator]] bug tracking tool to keep track of bugs. Anybody is welcome to create an account there and report any bugs they encounter; however, if you prefer, you can post about your bug at the [[WP:VPT|technical village pump]]. For more information, see [[Wikipedia:Bug reports|Bug reports]].
 
==How do I suggest a new feature?==
'''How about the hardware?'''
:To make an official feature request, use [[Phab:|Phabricator]].
 
==What software is used to run Wikipedia?==
:www.wikipedia.org runs on a PC that has dual [[Athlon]] MP 1800+ processors. It has 2GB of RAM and 36GB of storage on SCSI hard drives.
:Wikipedia currently runs on [[Wikipedia:MediaWiki|MediaWiki]], created by [[Lee Daniel Crocker]] and written in [[PHP 7]]. We adopted this software in July 2002. Wikipedia originally ran on [[UseModWiki]], a general wiki script by [[user:Clifford Adams|Clifford Adams]] written in [[Perl]]. In January 2002, we switched to the [[Wikipedia:Phase II software|Phase II software]] written by [[Magnus Manske]] in [[PHP]].
 
:* database backend: [[MariaDB]]
'''How big is the database?'''
:* frontend and caching: [[Apache_Traffic_Server|ATS]] and [[Varnish (software)|Varnish]]
:* application server: [[Apache HTTP Server|Apache]]
:* ___domain-name service: gdnsd
:* Search: [[Lucene]]-based [[ElasticSearch]]
 
:See [[Special:Version]] for software versions. The Wikipedia servers' [[operating system]] is [[Linux]], using the [[Debian]] distribution. Previously, [[Ubuntu (operating system)|Ubuntu]] was used. For details, see [[m:Wikimedia servers|Wikimedia servers]].
:The database is roughly 4 GB in size (including all languages and support tables) and growing.
 
== How about the hardware? ==
'''Why are some of the pages scrunched together and capitalized LikeThis?'''
 
=== Current situation ===
:The original wiki standard is to treat anything scrunched together and capitalized LikeThis (sometimes called [[CamelCase]]) automatically as a link. This linking style was originally used by Wikipedia, but we now use free links. If you come across an old CamelCase link or article, you should [[Wikipedia:How to rename (move) a page|rename (move)]] it to the new style, so that the CamelCase name [[wikipedia:redirect|redirect]]s to the new title.
 
:<!--To be rewritten. for now...-->See [[m:Wikimedia servers]].
'''What kind of [[markup language]] does Wikipedia use?'''
:Wikipedia uses a very simple markup based on [[UseModWiki]]. For more details, see [[Wikipedia:How does one edit a page]].
 
=== History of Wikipedia hardware ===
'''Why not use [[HTML]]?'''
:A brief history of Wikipedia servers:
:'''Phase I: January 2001 – January 2002'''
:#One of [[Bomis]]'s servers hosted all Wikipedia wikis running on [[UseModWiki]] software
:'''Phase II: January 2002 – July 2002'''
:#One of Bomis's servers hosted all Wikipedia wikis; English and meta running on the php/mysql-based new software, all other languages on UseModWiki. Runs both the database and the web server on one machine.
:'''Phase IIIa: July 2002 – May 2003'''
:#Wikipedia gets own server, running English Wikipedia and after a bit meta, with rewritten PHP software. Runs both the database and the web server on one machine.
:#One of Bomis's servers continues to host some of the other languages on UseModWiki, but most of the active ones are gradually moved over to the other server during this period.
:'''Phase IIIb: May 2003 – Feb 2004'''
:#Wikipedia's server is given the code name "pliny". It serves the database for all phase 3 wikis and the web for all but English.
:#New server, code name "larousse", serves the web pages for the English Wikipedia only. Plans to move all languages' web serving to this machine are put on hold until load is brought down with more efficient software or larousse is upgraded to be faster.
:#One of Bomis's servers continued to host some of the other languages on UseModWiki until it died. All are now hosted on pliny; a few more of the active ones have been gradually moved over to the new software, and an eventual complete conversion is planned.
:'''Phase IIIc: Feb 2004 to Present'''
:#Wikipedia gets a whole new set of servers, paid for through donations to the [[WP:Wikimedia Foundation|Wikimedia Foundation]].
:#The new architecture has a new database server (suda), with a set of separate systems running Apache, as well as "squids" that cache results (to reduce the load). More details are at [[m:Wikimedia servers]].
:# [[m:Wikimedia servers/hardware orders|New servers bought]] as needed, bringing total number to about 350 servers.
 
==How about the connection?==
:The short answer is: for simplicity and security.
 
:Wikimedia Foundation has multiple facilities spread out worldwide served by different bandwidth suppliers.
:And now the longer answer. Wikipedia, and [[wiki]]s in general, are meant to be edited on the fly. HTML is not easy to use when you simply want to write an article. Creating links gives us a particularly dramatic example. To link to the HTML article using HTML, one would have to type
 
:See the [[Wikipedia:Statistics]] page for information about bandwidth usage.
::<nowiki><a href="http://www.wikipedia.org/wiki/HTML">HTML</a></nowiki>
 
==How big is the database?==
:Using Wikipedia markup is much easier:
{{update|section|date=November 2022}}
:As of 2012, the combined size of the databases being backed up was between 4 and 6 TB for the copies of the Primary database, and perhaps 27 TB for the images and media (based on [[wikitech:Backup procedures]]).
 
:Early in Wikipedia's history, in February 2003 the database was about 4 GB in size. By April 2004, it was growing at about 1 to 1.4 GB per week, and by October 2004, it had grown to about 170 GB.
::<nowiki>[[HTML]]</nowiki>
 
:Uploaded files took up approximately 372 gigabytes {{As of|2006|6|alt=lc}}, excluding thumbnails.
:Then there's security. Different [[web browser]]s have bugs that can be exploited via HTML. Malicious users could also do things like [[JavaScript]] popup windows or page redirects if they had full HTML ability on Wikipedia. Several "experimental" sites that allowed full-HTML editing have suffered such attacks, including a couple other wikis that allowed arbitrary HTML.
 
:For current information, see [[wikitech:Backup procedures]].
'''So we can't use <i>any</i> HTML?'''
:Alright, alright, a few tags work. Also, HTML table tags are the only way to create tables at the moment. See [[Wikipedia:How does one edit a page]]. However, there's been some rumbling among the software developers that most HTML tags are [[deprecated]]. There's also been discussion about wiki syntax for tables; see [[m:WikiShouldOfferSimplifiedUseOfTables]] for a very old beginning, and [[m:Wiki markup tables]] for more recent activity.
 
:Compressed database dumps can be downloaded at https://dumps.wikimedia.org/.
'''What about non-[[ASCII]] characters, and special symbols?'''
:Just because the codes are defined in HTML4 doesn't mean they actually work in any common browser. See the [[Wikipedia:Special characters]] page for a detailed discussion of what is generally safe and what isn't. This page will be updated over time as more browsers come to support more features.
 
==What kind of [[markup language]] does Wikipedia use?==
'''What about math topics, which require many special symbols, fonts, and graphics?'''
:JustWikipedia use [[TeX]]! Seeuses [[Wikipedia:TeX markupwikitext|wikitext]].
 
==Why not use [[HTML]]?==
'''What happens if two or more people are editing the same page?'''
 
:The short answer is: for simplicity and security.
:The second person (and later persons) to save the page will receive an "edit conflict" message, and the opportunity to merge their changes into the most-currently-saved version. The wiki will also check for a conflict if you are editing and do a preview of the edit. Multiple consecutive conflicts are noticed, and will generate a slightly different message.
 
:And now the longer answer. Wikipedia, and [[wiki]]s in general, are meant to be edited on the fly. HTML is not easy to use when you simply want to write an article. Creating links gives us a particularly dramatic example. To link to the Paris article using HTML, one would have to type
'''Is it possible to download the contents of Wikipedia?'''
 
::<nowiki><a href="/wiki/Paris">Paris</a></nowiki>
:Yes, the whole contents of Wikipedia can be downloaded. See [[wikipedia:database download]].
 
:Using MediaWiki markup is much easier:
:Note that downloading the database dumps is '''much''' preferred over trying to spider the entire site. Spidering the site will take you much longer, and puts a lot of load on the server (especially if you ignore our [http://www.wikipedia.org/robots.txt robots.txt] and spider over billions of combinations of diffs and whatnot). Heavy spidering can lead to your spider, or your IP, being barred with prejudice from access to the site. Legitimate spiders (for instance search engine indexers) are encouraged to wait about a minute between requests, follow the robots.txt, and if possible only work during less loaded hours (2:00-14:00 UTC is the lighter half of the day).
 
::<nowiki>[[Paris]]</nowiki>
'''Will there / should there be a [[CPAN]] module to standardize querying of Wikipedia?'''
 
:A special markup language even allows you to "transclude" special snippets of code, called [[Wikipedia:Template index|templates]], into wiki pages. (You can also "substitute" the code for that template, effectively copying and pasting it into the document.)
:Maybe. A full-blown module might be overkill, though. If you're just after retrieving a topic page, the following [[Perl programming language|Perl]] sample code works. In this case, it retrieves and lists this page, but modifications to the '''$url'' variable for other pages should be obvious enough. Once you've got the page source, Perl regular expressions are your friend in finding wiki links.
 
:Then there's security. Different [[web browser]]s have bugs that can be exploited via HTML. Malicious users could also do things like [[JavaScript]] popup windows or page redirects if they had full HTML ability on Wikipedia. Several "experimental" sites that allowed full-HTML editing have suffered such attacks, including a couple of other wikis that allowed arbitrary HTML.
<pre><nowiki>
#!/usr/bin/perl
use LWP;
 
==So we can't use ''any'' HTML?==
$browser = LWP::UserAgent->new();
:That's not true. Certain [[HTML]] tags work—namely the ones in [[mw:Help:HTML in wikitext#Permitted HTML|this list]]. It's still best not to rely on using HTML directly, because support for these tags is not always guaranteed to remain; they might affect the results achieved with [[Wikipedia:VisualEditor|VisualEditor]]; and if you can achieve your needed effect using only WikiText markup, you're most likely to get a result that is stable when the MediaWiki software is updated.
$url = "http://www.wikipedia.org/wiki/Wikipedia%3AFAQ";
$webdoc = $browser->request(HTTP::Request->new(GET> $url));
if ($webdoc->is_success) #...then it's loaded the page OK
{
print $webdoc->title, "\n\n"; # page title
print $webdoc->content, "\n\n"; # page text
}
</nowiki>
</pre>
 
==What about non-[[ASCII]] characters, and special symbols?==
:Note that all (English) Wikipedia topic entries can be accessed using the conventional prefix "http://www.wikipedia.org/wiki/", followed by the topic name (with spaces turned into underscores, and special characters encoded using the standard URL encoding system).
:Wikipedia uses Unicode (specifically [[UTF-8]]) and most browsers can handle it. Font issues mean that more obscure characters may not work for many users. See the [[Meta:Help:Special characters]] page for a detailed discussion of what is generally safe and what isn't.
 
:See http://www.unicode.org/help/display_problems.html for instructions on how to enable Unicode support for most platforms.
:See also [[m:Machine-friendly wiki interface]]
 
==What about math topics, which require many special symbols, fonts, and graphics?==
'''How do recover a password I have forgotten?'''
:Just use [[TeX]]! See [[Help:Displaying a formula]].
:If you entered your e-mail address when you signed up, you can have a new password generated. Click on the "[[Special:Userlogin|Log in]]" link in the upper-right corner. Enter your user name, and click the button near the bottom of the page called "Mail me a new password". You should receive an e-mail message with a new random password; you can use it to log in, then go ahead and change you password to something you'll remember in your preferences.
 
==Is it possible to download the contents of Wikipedia?==
'''Does wikipedia use cookies?'''
 
:Yes, the complete text and editing history of all Wikipedia pages can be downloaded. See [[Wikipedia:Database download]].
 
:Note that downloading the database dumps is '''much''' preferred over trying to spider the entire site. Spidering the site will take you much longer, and puts a lot of load on the server (especially if you ignore our [http://www.wikipedia.org/robots.txt robots.txt] and spider over billions of combinations of diffs and whatnot). Heavy spidering can lead to your spider, or your IP, being barred with prejudice from access to the site. Legitimate spiders (for instance search engine indexers) are encouraged to wait about a minute between requests, follow the robots.txt, and if possible only work during less loaded hours (2:00–14:00 UTC is the lighter half of the day).
 
:The uploaded images and other media files are not currently bundled in an easily downloadable form; if you need one, please contact the developers on the [http://mail.wikipedia.org/mailman/listinfo/wikitech-l wikitech-l mailing list]. Please ''do not'' spider the whole site to get images.
 
==Is there a library to query Wikipedia in my programming language?==
 
:Generally speaking, yes. Client code is available in many languages, see [[mw:API:Client code|here]] for a non-exhaustive list. See also the [[mw:API:Main page|API documentation]] and our [[Wikipedia:Creating a bot|bot tutorial]].
 
==Does Wikipedia use [[HTTP cookie|cookies]]?==
:Cookies are not required to read or edit Wikipedia, but they are required in order to [[Special:Userlogin|log in]] and link your edits to a user account.
 
:When you log in, the wiki will set a temporary session cookie which identifies your login session; this will be expired when your browser exits (or after an inactivity timeout), and is not saved on your hard drive.
 
:Another cookie will be saved which lists the user name you last logged in under, to make subsequent logins just a teensy bit easier. (Actually two: one with your name, and one with your account's internal ID number; they must match up.) These cookies expire after 30365 days. If this worries you, clear your cookies after completing your session.
 
:If you check the "remember my password" box on the login form, another cookie will be saved with a token that authenticates you to our servers (which is unrelated to your password). As long as this remains valid, you can bypass the login step on subsequent visits to the wiki. The cookie [[HTTP cookie#Expiration|expires]] after 365 days, or is removed if you [[Special:Userlogout|log out]]. If this worries you, don't use the option. (You should not use it on a public terminal!)
 
:See the [[wmf:Cookie statement|cookie statement]] linked at the bottom of each page for other details.
 
==Why was I automatically logged out?==
:This could be a result of your cookie, browser cache, or firewall/Internet security settings. Or, to quote [[User:Tim Starling|Tim Starling]] (referring to a question about "remembering password across sessions"):
{{talk quote box|
"The kind of session isn't a network session strictly speaking, it's an HTTP session, managed by PHP's [http://www.php.net/manual/en/ref.session.php session handling functions]. This kind of session works by setting a cookie, just like the "remember password" feature. The difference is that the session cookie has the "discard" attribute set, which means that it is discarded when you close your browser. This is done to prevent others from using your account after you have left the computer.
 
The other difference is that PHP sessions store the user ID and other such information on the server side. Only a "session key" is sent to the user. The remember password feature stores all required authentication information in the cookie itself. On our servers, the session information is stored in [[memcached]], a system for non-durable (unreliable) caching. Session information may occasionally be lost or go missing temporarily, causing users to be logged out. ''The simplest workaround for this is to use the remember password feature'', as long as you are not worried about other people using the same computer."
|source=[[Wikipedia:Village pump (technical)]] on May 4, 2005 (italics added)}}
 
:In other words: click the "remember me" box when logging in.
 
:See also [[Help:Logging in]].
 
== The software that runs Wikipedia is great! Can I use it for my site? ==
: You can, but depending on your needs you might be better served using something else; [[MediaWiki]] is big and complex. First, see [[Wiki software]] for a list of alternative wiki software.
 
: If, after scanning, you're still sure you want to use MediaWiki, see [[mw:MediaWiki|the MediaWiki web site]] for details on downloading, installing and configuring the software.
 
== Is the "random article" feature really random? {{anchor|random}} ==
: No, although it's random enough to provide a small sample of articles reliably.
 
: In the Wikipedia [[database]], each page is assigned a "random index", which is a random floating point number uniformly distributed between 0 (inclusive) and 1 (exclusive). The "random article" feature (Special:Random) chooses a random [[double-precision|double-precision floating-point number]], and returns the next article whose random index is greater than the selected random number. Some articles will have a larger gap before them, in the random index space, and so will be more likely to be selected. So the actual probability of any given article being selected is in fact itself random.
 
: The random index value for new articles, and the random value used by Special:Random, is selected by reading two 31-bit words from a [[Mersenne twister]], which is seeded at each request by PHP's initialisation code using a high-resolution timer and the PID. The words are combined using:
 
::(mt_rand() * $max + mt_rand()) / $max / $max
 
:Some old articles had their page_random value reset using MySQL's RAND():
 
:: rand_st->seed1=(rand_st->seed1*3+rand_st->seed2) % rand_st->max_value;
:: rand_st->seed2=(rand_st->seed1+rand_st->seed2+33) % rand_st->max_value;
:: return (((double) rand_st->seed1)/rand_st->max_value_dbl);
 
:Due to [[phab:T208909|a bug]], many pages created in 2004 and 2005 used to have non-random page_random values; this was corrected in 2018.
 
==<span id="HIT"></span>Are page hit counters available?==
: Yes. "{{int:pageinfo-toolboxlink}}" under "{{int:toolbox}}" in the desktop sidebar shows "{{int:pvi-month-count}}" with a link to a simple graph.
 
:There is an advanced [https://tools.wmflabs.org/pageviews/?project=en.wikipedia.org pageviews analysis] tool, maintained by the Wikimedia Foundation, which allows you to view hit counts for one page or for multiple pages concurrently. Additionally, the weekly [[Wikipedia:Top25Report|Top 25 Report]] provides a list of the 25 most popular articles (with commentary) in the last week.
 
==Can I access Wikipedia via HTTP, due to problems using HTTPS?==
:No. In 2015, the [[Wikimedia Foundation]] decided to move to only allow access via [[HTTPS]].<ref>{{cite web |url=//blog.wikimedia.org/2015/06/12/securing-wikimedia-sites-with-https/ |title=Securing access to Wikimedia sites with HTTPS |last1=Welinder |first1=Yana |author-link1=foundation:User:YWelinder (WMF) |last2=Baranetsky |first2=Victoria |author-link2=foundation:User:VBaranetsky (WMF) |last3=Black |first3=Brandon |author-link3=User:BBlack (WMF) |date=12 June 2015 |website=[[wmfblog:|Wikimedia blog]] |publisher=[[Wikimedia Foundation]] |access-date=30 January 2016 |quote=Today, we are happy to start the final steps of this transition, and we expect completion within a couple of weeks.}}</ref> [[HTTP]] access is no longer available, and automatically redirects requests to [[HTTPS]] access. [[HTTP Strict Transport Security]] is enabled, so recent browsers should actually refuse to even attempt to connect via HTTP (automatically rewriting URLs into HTTPS before connecting), after the first successful connection via HTTPS.
 
==Are there currently problems with the servers or network?==
:For the current server or network status, please see [https://www.wikimediastatus.net/ www.wikimediastatus.net]. More detailed information about specific services can be found on [https://grafana.wikimedia.org Grafana].
 
==I have a problem not on this list, where do I go?==
:If you check the "remember my password" box on the login form, another cookie will be saved with a hash of your password (not the password itself). As long as this remains valid, you can bypass the login step on subsequent visits to the wiki. The cookie expires after 30 days, or is removed if you [[Special:Userlogout|log out]]. If this worries you, don't use the option. (You should probably not use it on a public terminal!)
:See [[Wikipedia:Troubleshooting|Troubleshooting]]—if it's not on there try the [[wikipedia:Village pump (technical)|village pump]]. For help with a particular software task see [[Wikipedia:Computer help desk]].
 
===I want to merge my multiple user accounts into one, where do I go?===
:As of 2021 it is technically difficult/unavailable with the risk of database logs/history corruption. See [[phab:T154290|T154290]].
 
==References==
'''I have a problem not on this list, where do I go?'''
{{reflist}}
:See [[Wikipedia:Troubleshooting|Troubleshooting]] - if it's not on there try the [[wikipedia:village pump|village pump]]
{{-}}
{{Wikipedia:FAQ/footer}}
{{Wikipedia technical help}}
{{Help navigation}}
</div>