Последнее изменение файла: 2009.10.29
Скопировано с www.bog.pp.ru: 2023.10.01
Bog BOS: PHP
Интерпретатор (в версии 4 с предкомпилятором) языка, встраиваемого в HTML-страницы.
Исполняется как модуль Apache (SAPI)
или CGI-программа на стороне сервера.
В результате клиент получает сгенерированную PHP-программой HTML-страницу (или XML, PDF, flash,
PNG и т.д.). Может кешировать динамически создаваемые объекты.
В сочетании с Linux и MySQL
(LAMP - Linux Apache Mysql Php) незаменим для создания динамических
сайтов, не потребляющих много ресурсов (как компьютерных, так и финансовых).
Работает не только под Linux, но и под Unix (Solaris, xBSD, HP-UX и т.д.),
Mac OS X, MS Windows и т.д..
Вместо Apache можно использовать MS IIS, Personal Web Server, Netscape, iPlanet,
Oreilly Website Pro, Caudium, Xitami, OmniHTTPd и др..
Вместо MySQL можно использовать Oracle, Informix, PostgreSQL, dBase, Sybase MS SQL, dbm, ODBC
(в списке более 20 СУБД).
Поддерживает процедурный и объектно-ориентированный стиль программирования.
Имеется поддержка протоколов LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM и прямой доступ
к сокетам. Обработка регулярных выражения и XML (SAX, DOM), XSLT.
Лицензия - PHP (не модифицировать и не отсоединять Zend Engine).
./configure -with-mysql=/usr/local/mysql -with-gd=/usr/local (конфликтует с mod_cntr в apache) -with-apache=../apache_1.3.12rusPL29.4 -enable-calendar -enable-memory-limit -enable-safe-mode -enable-trans-sid -with-config-file-path=/usr/local/php/php.ini -with-exec-dir=/usr/local/php/bin -with-mod_charset -enable-bcmath
make
make install (для записи в /usr/local требуется root)
${APACHE}/src/modules/php4: libs/libphp4.a (как libmodphp4.a - 8 MB!), sapi/apache/mod_php4.* sapi/apache/libphp4.module, sapi/apache/apMakefile.tmpl (как Makefile.tmpl), sapi/apache/apMakefile.libdir (как Makefile.libdir)
Если PHP собран как модуль к apache, то читается только при запуске httpd (не при reload), но можно
изменять настройки через httpd.conf и .htaccess. Для PHP3 любую настройку из php3.ini
можно поместить в apache, предварив ее "php3_". Для PHP4 можно только установить значения
переменных с помощью директив:
php_value имя значение
php_flag имя on|off
php_admin_value имя значение (нельзя использовать в .htaccess)
php_admin_flag имя on|off
Узнать значения переменных можно с помощью функций phpinfo() и get_cfg_var().
Директивы
Общие
allow_url_fopen boolean (разрешить доступ к объектам по URL (ftp, http, zlib) как к файлам)
asp_tags boolean (использовать для PHP тэги как в ASP - <% и %>)
auto_append_file строка (после разбора основного скрипта - если не было exit() - обрабатывать указанный файл, с учетом include_file; специальное значение none)
auto_prepend_file строка (аналогично, но до основного скрипта)
cgi_ext строка (?)
display_errors boolean (выводить ошибки в html или нет)
doc_root строка (если не пусто, то в safe mode файлы вне этой директории не обслуживаются)
engine boolean (позволяет отключать PHP для виртуальных сайтов или отдельных директорий)
error_log имя-файла (куда выдавать сообщения об ошибках, можно также на syslog)
error_reporting уровень-ошибок (битовая строка:
1 - ошибки
2 - предупреждения
4 - ошибки разбора
8 - предупреждения по стилю
open_basedir строка (открываются только файлы из данной директории; символьные ссылки тоже
обрабатываются; директория, в которой лежит скрипт обозначается "."; несколько директорий
разделяются двоеточием)
gpc_order строка(порядок разборки переменных GET/POST/COOKIE; по умолчанию - GPC)
ignore_user_abort On|Off (если установить Off, то выполнение скрипта будет прервано сразу
после попытки записать в соединение, прерванное клиентом; есть функция ignore_user_abort())
include_path строка (список директорий - разделяемых двоеточием, где будут искаться
файлы для include(), require() и fopen_with_path())
isapi_ext строка (?)
log_errors boolean (будет ли сообщение об ошибке выводиться в журнал сервера)
magic_quotes_gpc boolean (если on, то все апострофы, кавычки, обратные косые и NUL
при обработке Get/Post/Cookie будут защищаться обратным слешом автоматически)
magic_quotes_runtime boolean (все апострофы в строках, взятых из внешних источноков -
текстовые файлы, базы данных - будут защищаться обратным слешом)
max_execution_time секунд (работа скрипта будет прервана через указанное время)
memory_limit число (максимальный размер памяти для скрипта - в чем?)
nsapi_ext строка (?)
register_globals boolean (регистрировать ли Env/Get/Post/Cookie/Server переменные как
глобальные; при использовании track_var их можно будет достать и без глобальной регистрации)
short_open_tag boolean (использовать ли короткую форму тегов - <? и ?> - вместо полной -
<?php и ?>
sql.safe_mode boolen (?)
track_errors boolean (последняя ошибка всегда будет доступна в $php_errormsg)
track_vars boolean (Env/Get/Post/Cookie/Server переменные будут доступны в глобальных
ассоциативных массивах $HTTP_ENV_VARS, $HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_COOKIE_VARS и
$HTTP_SERVER_VARS; в PHP 4.0.3 всегда включен)
upload_tmp_dir строка (временная директрия для загрузки файлов; php процесс должен иметь
права на запись
user_dir строка (директория, используемая в домашней директории для PHP файлов; например,
public_html; ?)
warn_plus_overloading boolean (выдавать предупреждения при попытке складывать строки)
почта
SMTP строка (имя или адрес SMTP сервера - localhost)
sendmail_from строка (что вставлять в поле From:)
sendmail_path строка (где находится sendmail и ключи)
safe mode
safe_mode boolean
safe_mode_exec_dir строка (в safe mode функция system() и аналогичные будут отказываться
испонять программы вне данной директории)
Debugger (?)
debugger.host строка
debugger.port строка
debugger.enabled boolean
загрузка расширений
enable_dl boolean (испоьзование dl(), для safe mode выключить)
extension_dir строка (откуда их брать)
extension строка (какие расширения брать при загрузке PHP)
MySQL
mysql.allow_persistent boolean
mysql.default_host строка
mysql.default_user строка
mysql.default_password строка
mysql.max_persistent integer (макс. число постоянных соединений на процесс)
mysql.max_links integer (макс. число соединений на процесс, включая постоянные)
mSQL
Postgres
SESAM
Sybase
Sybase-CT
Informix
bcmath.scale integer (число десятичных цифр для bc-функций)
browscap строка (имя файла, см. get_browser(); взять browscap.ini на www.php.net)
добавлены функции mysql_list_processes(), mysql_stat(), mysql_info(), mysql_ping(), mysql_real_escape_string(), mysql_character_set_name(), mysql_thread_id()
директива zlib.output_compression_level в php.ini
директивы pgsql.ignore_notice и pgsql.log_notice в php.ini
директивы log_errors_max_len, ignore_repeated_errors и ignore_repeated_source в php.ini
директивы в php.ini для обработки Unicode в EXIF
добавлены функции output_add_rewrite_var(), output_remove_rewrite_var()
добавлена функция domxml_doc_set_root(), domxml_node_namespace_uri()
добавлена функция domxml_doc_validate()
domxml приведен в соответсвие со спецификациями W3C
добавлена функция glob()
функция getallheaders() переименована в apache_request_headers(),
добавлена функция apache_response_headers()
добавлена функция pctnl_alarm()
добавлена опция --with-mysql-sock в ./configure
модуль GD 2.0.1 поставляется вместе с PHP, gd_info()
функция header() может изменять код возврата HTTP
добавлена функция image_type_to_mime_type()
добавлены флаги в mysql_connect() и mysql_pconnect() для SSL и сжатия
директива mysql.connect_timeout в php.ini
значительно переработаны функции работы с FTP (resume и т.д.)
declare() в глобальном режиме
добавлена функция ob_list_handlers(), ob_get_clean(), ob_get_flush()
дальнейшая поддержка многобайтовых символов (mb_convert_case(), mb_regex_set_options(), mb_strtolower(), mb_strtoupper() и др.)
добавлены функции xslt_backend_version(), xslt_backend_name()
предупреждения для "устаревших" функций mysql_create_db(), mysql_drop_db(), mysql_escape_string()
добавлена функция file_get_contents()
директива default_socket_timeout в php.ini
директива auto_detect_line_endings в php.ini
добавлена функция stream_select(), stream_filter_prepend(), stream_filter_append(), stream_context_create(), stream_context_set_params(), stream_context_set_option()
fopen("php://output", "wb")
php://input - это "сырые" данные POST
переименованы
socket_set_timeout() -> stream_set_timeout()
socket_set_blocking() -> stream_set_blocking()
set_file_buffer() -> stream_set_write_buffer()
socket_get_status() -> stream_get_meta_data()
введено понятие потоков (stream), что позволяет в качестве имён файлов использовать
URL вида "compress.zlib://", "compress.bzip2://" в fopen(), copy() и fsockopen();
потоки в память; определяемые потоки; если PHP собран с OpenSSL напрямую,
то можно использовать "https://", "ftps://", "ssl://", "tls://"
добавлена функция ftp_ssl_connect()
добавлена функция getopt()
добавлены функции array_diff_assoc(), array_intersect_assoc()
для Apache 2: apache_response_headers(), apache_note(), apache_getenv(), apache_setenv(), php_apache_sapi_getenv(), php_apache_sapi_get_stat()
добавлена опция --with-config-file-scan-dir в ./configure
добавлены функции xslt_set_object, xslt_setopt
добавлены шаблоны %e и %E в printf
добавлена функция str_word_count()
усовершенствовано расширение dba (в т.ч. добавлена работа с плоскими файлами,
что позволило объявить устаревшим расширение db)
добавлены функции sha1() и sha1_file()
расширения vpopmail и cybermut перенесены в PECL
удалены расширения aspell, ccvs, cybercash, icap, fastcgi, fhttpd