PHP configuration/ru
PHP — система сетевых шаблонов, которая выросла, в общем-то, в полноценный язык программирования. Синтаксис, возможности и модель выполнения PHP имеет общие черты с Perl; скрипты загружаются "интерпретатором", компилируются в байткод и затем выполняются. Интерпретатор PHP может быть запущен из командной строки, как модуль CGI, но как правило используется внутри-процессный модуль Apache.
Contents |
[edit] Пример
$url = $_GET['module']; switch ($url) { case 'module1': echo "module = module1"; break; case 'module2': echo "module = module2"; break; case 'module2': echo "module = module2"; break; default: echo "module not found!"; break; }
[edit] Установка
Пожалуйста, посмотрите http://www.php.net/manual/en/installation.php.
[edit] Опции компиляции
[edit] Необходимое
Следующие расширения необходимы для MediaWiki:
- Perl Compatible Regular Expressions
- Session
- Standard PHP Library
- Хотя бы один драйвер СУБД:
- MySQL
- PostgreSQL
- SQLite (through PDO)
- MySQLi, MySQL и PostgreSQL через PDO не поддерживаются
Perl Compatible Regular Expressions, Session и Standard PHP Library подключены по умолчанию; Perl Compatible Regular Expressions и Standard PHP Library не могут быть отключены с версии PHP 5.3.
[edit] Дополнительное
Для MediaWiki необходимы или желательны некоторые опции PHP, подключение которых выполняется при компиляции :
- mbstring — поддержка строк из многобайтовых символов (желательно; при недоступности будет использован более медленный собственный код)
- iconv — библиотека конвертации штрифтов (желательно; при недоступности будут использованы другие функции конвертации)
- zlib — библиотека сжатия, желательна для сжатия файлового кеша
- sockets — поддержка сетевой коммуникации при использовании memcached
- dba — слой абстракции базы данных в стиле DBM, для кэширования, с следующими обработчиками:
- CDB для кэша интервик (и возможно других вещей)
- Berkeley DB3, если вы хотите использовать CACHE_DBA в $wgMainCacheType, $wgParserCacheType или $wgMessageCacheType
[edit] Пример
Для работы вполне хватает таких параметров компилятора:
'./configure' \ '--with-mysql' \ '--without-sqlite' \ '--with-apxs2=/usr/sbin/apxs2' \ '--with-zlib' \ '--with-ldap' \ '--with-gd' \ '--with-jpeg-dir' \ '--with-iconv-dir' \ '--enable-mbstring'
Давайте рассмотрим, что делают эти параметры.
- --with-mysql
- Позволяет PHP отправлять запросы в MySQL. Это существенная функция. Должен быть установлен MySQL, для включения этой опции.
- --without-sqlite
- Это опция просто сокращает построение путем удаления ненужных компонентов PHP. Не существенна, но у постройки будет меньше шансов на ошибку из-за отсутствия зависимостей и должна привести к меньшему размеру установки PHP.
- --with-apxs2=/usr/sbin/apxs2
- Обязательно, если вы хотите собрать mod_php. APXS предназначен для настройки компиляции модуля Apache. Вам необходимо будет изменить значение (или не указывать путь) для конкретной системы.
- --with-zlib
- Позволяет PHP читать/записывать сжатые файлы и отправлять сжатые данные в Apache.
- --with-ldap
- Важно, если вы хотите, чтобы пользователи проходили проверку через LDAP.
- --with-gd
- Используйте, если вы хотите обрабатывать изображения "внутри" PHP, иначе можете использовать ImageMagick.
- --with-jpeg-dir
- Возможно, необязателен.
- --with-iconv-dir
- Возможно, необязателен.
- --enable-mbstring
- Включает поддержку мультибайтовых символов. Не обязательно; при недоступности будет использован более медленный собственный код.
[edit] Кэширование опкода
При работе на сайтах с большим объёмом проходящего трафика, настоятельно рекомендуется, чтобы система использовала скомплированные скрипты для кэширования; есть целый ряд подобных плагинов для PHP, некоторые бесплатные, некоторые проприетарны. Некоторые из систем кэширование:
К счастью, их также легко устанавливать, как плагины Zend, просто закидываем их библиотеки и изменяем php.ini. Никакой траты времени на полную перекомпиляцию всего PHP!
В зависимости от кэша и параметров, вы можете выполнять специальные операции при обновлении файлов скрипта.
MediaWiki также может взаимодействовать с кэшами и использовать их для кэширования объектов, см. Manual:$wgMainCacheType.
[edit] Конфигурация среды выполнения (php.ini)
Некоторые настройки, определённые в php.ini влияют на поведение MediaWiki, но некоторые из них попросту не совместимы с MediaWiki.
- register_globals
Внимание: Включение этой настройки очень рискованно и может быть использован для XSS-атак; Для MediaWiki он необязателен, так что если можете, отключите настройку!- safe_mode
- Safe mode является непродуманной, неоформленной настройкой в PHP; MediaWiki может работать с этой опцией, однако некоторые функции будут недоступны.
- magic_quotes_gpc
- Эта опция добавляет кавычки к данным в
$_GET,$_POSTи$_COOKIES. MediaWiki может работать с этой опцией, однако работа будет замедленной, в связи с удалением кавычек самим MediaWiki. - magic_quotes_runtime
- Эта опция непредсказуемо портит вводные данные, добавляя кавычки, например, в открытые файлы, в данные, полученные из базы данных и так далее. MediaWiki не сможет установиться, если эта опция будет включена.
- magic_quotes_sybase
- аналогично magic_quotes_runtime
- mbstring.func_overload
- Эта опция приводит к ошибкам и может привести к непредсказуемому повреждению данных; MediaWiki не сможет установиться, если эта опция будет включена.
- zend.ze1_compatibility_mode
- Эта опция приводит к ужасным ошибкам; MediaWiki не сможет установиться, если эта опция будет включена.
- memory_limit
- MediaWiki необходимо достаточно много памяти для работы. Как минимум необходимо 20 Мб, однако если вы хотите чтобы MediaWiki работал корректно, рассмотрите возможность использования не менее 50 Мб.
[edit] Изменение размера изображений
ImageMagick может быть использован для изменения размера изображений (см. Manual:Configuration settings/ru#Изображения). Если он не доступен, вместо него используется модуль PHP GD.
[edit] См. также
| Язык: | English • Français • 日本語 • Русский |
|---|