Jump to content

PHP config: Difference between revisions

From Meta, a Wikimedia project coordination wiki
Content deleted Content added
mNo edit summary
m Reverted changes by 2600:1700:3BD2:8C00:BD31:D3BA:C793:798F (talk) to last version by Tegel
Tag: Rollback
 
(29 intermediate revisions by 23 users not shown)
Line 1: Line 1:
{{MovedToMediaWiki|PHP configuration}}
<- [[MediaWiki architecture]]

[http://www.php.net/ PHP] is a web template system that accidentally grew up into a fairly general language. PHP's syntax, capabilities, and execution model bear vague similarities to [[Perl]]; scripts are loaded by an "interpreter", compiled to bytecode, and then executed. The PHP interpreter can be run from the command line / CGI-style, or more commonly as an in-process [[Apache config|Apache]] module.

== Installation ==

PHP can be a bitch to install in the traditional way. With modern Apache's dynamic modules, it can be fairly easy though. apxs or something. (more later)

=== Compile-time options ===

MediaWiki either needs or wants a number of optional features of PHP that need to be enabled at compile time:
*[http://www.php.net/iconv iconv] character set conversion library (but you may be able to [[iconv hack|fake around it]])
*[http://www.php.net/zlib zlib] compression library, optionally to compress the [[file cache]]
*[http://www.php.net/sockets sockets] support for network communication, if using [[memcached]]

=== Runtime options ===

You have to turn on [http://www.php.net/register_globals register_globals]. If you don't, you'll be confused about why no matter what you click, you only see the main page. :)

Yes, we know it's bad form.

== Opcode caching ==

If running a high-traffic site, it is highly recommended that a system be used to cache the compiled scripts; there are a number of such plugins for PHP, some free, some proprietary. Wikipedia currently uses the [http://www.php-accelerator.co.uk/ ionCube PHP Accelerator], which is free-to-use but not [[en:free software|free software]]. For a totally free solution, there is [http://apc.communityconnect.com/ Alternative PHP Cache], however we had more problems with it.

:''How about [http://turck-mmcache.sf.net/ Turck MMcache]? It's GPL, and it has nearly perfect performance with other complicated PHP applications such as phpBB and PHPNuke... I'm about to run a MediaWiki install on my machine with MMCache enabled, and I'll let all of you know how it goes.'' Yep, as suspected, MMCache has perfect performance with Phase 3, so I'd say it's safe to use on a production site. - [[user:ElizabethFong]]

Fortunately, these all seem to be easy to install as Zend plugins, you just drop in a library and change your php.ini. No fussy recompiling of the entire PHP!

Depending on the cache and options used, you ''may'' have to perform a special operation whenever updating script files.

Latest revision as of 21:54, 10 December 2020