Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Школа Web - пошаговые инструкции для создания сайта


Служба Рассылок Subscribe.Ru проекта Citycat.Ru

Школа Веб - Серверы
Выпуск 11 от 2001-07-25

Школа Веб Ведущий рассылки Eris


В предыдущей статье из курса Серверы я описал установку Apache. Сегодня мы нарастим мощь нашего сервера, подключив к нему модуль PHP. Следующая статья этого выпуска будет посвящена установке и настройке систему управления базами данных MySQL


Установка и настройка PHP

Если говорить о программировании для web, то стоит различать два принципиально разных подхода. Первый из них - это выполнение программ на стороне клиента. Это означает, что программа будет загружена в броузер пользователя, и выполняться она будет на компьютере пользователя. Так работают JavaScript и Java-апплеты, например. Второй подход - выполнение на стороне сервера - заключается в том, что программа должна быть выполнена на сервером, а результат ее выполнения выводится клиенту. PHP - один из пакетов, который как раз и реализует такой подход.

PHP на данный момент - очень развитая система. Она позволяет выполнить очень широкий класс задач - от простых вычислений до обработки графики и доступа к базам данных. И именно очень удобная работа с базами данных сделала этот язык столь популярным в последнее время.

Установка PHP под Windows-9x/2000 очень проста. Прежде всего, нужно получить сам пакет. Взять самую свежую версию можно на официальном сайте PHP по адресу http://www.php.net Для платформы win32 предлагается zip-архив и инсталлятор. Брать лучше всего архив. Его размер для версии 4.06 составляет почти 5 мегабайт. Поскольку весь этот пакет стазу не нужен, я у себя на сайте в библиотеке (раздел Soft) разместил страничку PHP, в котором этот пакет разбил на несколько частей. Поскольку я и сам использую PHP, то я буду всегда поддерживать эту страничку в свежем состоянии, а потому вы всегда можете воспользоваться преимуществами загрузки по частям.

Если вы взяли файл на сайте php - просто распакуйте его. У меня вам необходимо снять файл php4-main и тоже распаковать его. При переустановке Windows переустанавливать PHP не нужно, поэтому я рекомендую устанавливать этот в пакет на диск с данными. Пуcть это будет директория d:\php. Распакуйте снятый файл в эту директорию. Далее для сервера apache выполняем следуюющее:

  • скопировать файл php4ts.dll в директорию C:\Windows\system или C:\Windows\system32 для Windows9х или в C:\winnt\system32 для Windows NT/2000.
  • Для некоторых старых версий Windows95 нужно сделать апгрейт для поддержки DCOM. Для этого скачайте и установите http://download.microsoft.com/msdownload/dcom/95/x86/en/dcom95.exe Однако в большинстве случаев, как показывает практика, делать этого не надо. Выполните остальные шаги по настройке, и если будет возникать ошибка - вернитесь сюда.
  • В составе пакета вы найдете файл php.ini-dist. Это заготовка файла настройки PHP. Вы можете использовать этот файл, но лучше используйте файл настройки из библиотеки (или образцом, приведенным в конце статьи). Скопируйте этот файл в директорию, в которую установлена Windows под именем php.ini
  • В конце этой статьи приведен образец файла php.ini. Найдите строки, выделенные ярко-красным цветом и исправьте в своем php.ini значения согласно приведенным указаниям. Можете изменить и другие значения, но имейте ввиду - вам стоит делать это только если понимаете о чем речь.
  • Вставьте в файл конфигурации сервера apache строки (скорректируйте только путь к пакету там где выделено жирным)
    #---- Если вы хотите использовать .php-файлы как CGI-скрипты - раскомментируйте эти строки
    #ScriptAlias /php/ "d:/php/"
    #AddType application/x-httpd-php .php
    #Action application/x-httpd-php "/php/php.exe"
    #---- Подключение PHP к Apache
    LoadModule php4_module d:/php/sapi/php4apache.dll
    AddType application/x-httpd-php .php
    #----

    Сверьтесь с образцом файла httpd.conf в моей библиотеке - там указано место, куда их вставить
  • Перезапустите Apache. Можете перед перезапуском запустить Apache в режиме контроля синтаксиса конфигурационного файла - вы получите все сообщения об ошибках. В том случае, если вы не сможете разрешить проблемы самостоятельно - пишите мне или в форум.
  • Для установки остальных частей пакета сохраните все архивы в директории, в которой вы установили PHP и разархивируйте их. Будут созданы папки с необходимыми файлами. Больше никаких действий выполнять не надо. Внимание, прежде чем пользоваться расширениями PHP вы должны установить их. Если вы используете файлы, снятые с сайта PHP, они будут установлены сразу. Если вы используете частичную загрузку с моего сайта - эти файлы нужно будет загрузить отдельно

Образец файла инициализации PHP

[PHP]       
;---------------------------------------------------------------------------------
; Файл инициализации PHP сервиса тестового сайта 
; Допустимые выражения в синтаксисе
         ; | OR
         ; & AND
         ; ~ NOT
         ; ! NOT
         ;
         ; Установка значений переменных осуществляется таким образом
         ; foo =                 ; пустое значение
         ; foo = none            ; пустое значение
         ; foo = "none"          ; значение равно литералу 'none'
         ;
;--------------------------------------------------------------------------------
; Опции языка
engine             = On          ;Включение движка PHP Apache
short_open_tag     = On          ;Разрешает использование тега '<?' вместо '<?php'и '<script>'
asp_tags           = Off         ;Запретить ASP-подобные '<% %>' теги
precision          = 14          ;Колич отображ цифр в числах с плавающ запятой
y2k_compliance     = Off         ;Поддержка 2000 года для несовместисых броузеров
output_buffering   = Off         ;Буферизация выходного потока. Позволяет отправлять заголовки 
                                     ;после отправки тела страницы, но замедляет вывод
output_handler     =             ;Позволяет назначить функцию, которая будет обрабатывать
                                     ;выходной поток перед отправкой клиенту
                                     ;напр если поставить "ob_gzhandler" выходной поток будет
                                     ;сжиматься перед передачей в броузер. Автоматически включ
                                     ;буферизацию
implicit_flush     = Off         ;Управление выводом в поток. Рекоменд вкл только для отладки
allow_call_time_pass_reference = On     ;Управление передачей аргументов функции. В будущем
                                            ; лучше не использовать
; --- Защищенный режим ---
safe_mode                  = Off
safe_mode_exec_dir         =
safe_mode_allowed_env_vars = PHP_      ;Разделенный запятой список переменных
                                       ;которые может устанавливать пользователь в защищ режиме
safe_mode_protected_env_vars= LD_LIBRARY_PATH   ;Раздел запятой список переменных, значение кот
                                                  ;пользователю запрещено менять
disable_functions =                    ;Список функций, которые можно запретить вызывать пользователю
                                                  ;можно указ и при выключ защищ режиме
       
;--- Настройки выделения цвета ---
highlight.string      = #DD0000
highlight.comment     = #FF8000
highlight.keyword     = #007700
highlight.bg          = #FFFFFF
highlight.default     = #0000BB
highlight.html        = #000000
;--- Разное ---
expose_php = On        ;Дает возможность индикации, что на сервере установлен PHP

      
;-------------------- Управление ресурсами ---------------------------
max_execution_time = 30         ;Макс время, отводимое скрипту для работы в сек
memory_limit       = 8M         ;Максим объем памяти, кот может исп скрипт
;-------------------- Управление обработкой ошибок ------------------
;Коды управления вывода ошибок
; E_ALL -все ошибки и предупреждения
; E_ERROR -фатальные ошибки времени выполнения
; E_WARNING -предупреждения времени выполнения
; E_PARSE -ошибки времени разбора кода
; E_NOTICE -уведомления времени выполнения (напр об исп неинициализ переменной)
; E_CORE_ERROR -фатальные ошибки инициализации PHP
; E_CORE_WARNING -нефатальные ошибки инициализации PHP
; E_COMPILE_ERROR -фатальные ошибки времени компиляции
; E_COMPILE_WARNING -нефатальные ошибки времени компиляции
; E_USER_ERROR -сообщ об ошибках генерируемых пользователем
; E_USER_WARNING -предупреждения генерируемые пользователем
; E_USER_NOTICE -уведомления,генерируемые пользователем
; Примеры:
; error_reporting = E_ALL & ~E_NOTICE                           ;все кроме уведомлений
; error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR        ;только ошибки
error_reporting = E_ALL & ~E_NOTICE                             ;все кроме уведомлений
display_errors = On                           ;печатать сообщ об ошибках в выходной поток
                                                  ;можно отключить и печатать в файл
display_startup_errors = Off                  ;Печатать сообщ об ошибках инициализ РНР
                                                  ;рекоменд только для отладки
log_errors           = Off                    ;Печатать ошибки в лог-файл сервера 
track_errors         = Off                    ;Сохр последнюю ошибку в $php_errormsg (boolean)
error_prepend_string = "<font color=ff0000>"  ;строка кот будет выведена перед сообщ об ошибке
error_append_string  = "</font>"              ;и после нее
;error_log = filename                         ;выводить сообщ об ош в указ файл
;error_log = syslog                           ;выводить сообщ об ош в syslog
                                                 ;(NT, не работает в Windows 95)
warn_plus_overloading = Off            ;предупредить если '+' использ для склеивания строк
;----------------- Управление данными ----------------------------
variables_order = "EGPCS"              ;Порядок регистрации переменных
                                          ; GET, POST, Cookie, Environment и встроенные
                                          ;(G, P, C, E & S)будут регистрироваться в указанном
                                          ; порядке и более поздние могут перекрывать старые
register_globals = On            ;регистрироать указанные переменные как глобальные
register_argc_argv = On          ;декларировать переменные argv&argc
post_max_size = 8M               ;Максимальный размер данных в POST-запросе
                                 ;по умолч 8М
gpc_order = "GPC"                ;Директива устарела. Используйте variables_order
;--- Magic quotes ---
magic_quotes_gpc = On            ;Использ квот для данных GET/POST/Cookie
magic_quotes_runtime = Off       ;Использ квот для данных генер в процессе работы (SQL,exec())
magic_quotes_sybase = Off        ;Использ квот Sybase-стиля
;--- файлы кот будут добавлены перед и после каждого скрипта. Можно исп для логов вызова скриптов
;--- или подключения библиотек
auto_prepend_file =
auto_append_file =
;--- типы документов по умолчанию
default_mimetype = "text/html"
default_charset  = "Windows-1251"     ; исправьте на свою кодировку по умолчанию
;------------------ Пути и директории ----------------------
include_path =            ; путь к подключ библиотевам
                          ;UNIX: "/path1:/path2"
                          ;Windows: "\path1;\path2"
doc_root =                ; корневая директория для PHP скриптов
                          ;если пусто- можно использовать везде
user_dir =                ; директория для польз скриптов при вызове вида.~username
extension_dir = d:\php\extensions           ; путь к модулям расширения
enable_dl = On            ; Разрешить функцию dl()
;----------------Загрузка файлов --------------------------
file_uploads        = On        ;Разрешение загрузки
upload_tmp_dir      = D:\tmp    ;Врем директория (если пусто - системня временная дир)
upload_max_filesize = 32M       ;Макс объем загр файлов
;--------------------
allow_url_fopen = On     ;Разрешить использ URL вида http:// или ftp:// как файлов
;--------------------- Динамические расширения ----------------
; Внимание, прежде, чем использовать модули расширения, убедитесь, что они загружены
; и путь к модулям расширения указан правильно
;extension=php_bz2.dll
;extension=php_ctype.dll
;extension=php_cpdf.dll
;extension=php_curl.dll
;extension=php_cybercash.dll
;extension=php_db.dll
;extension=php_dba.dll
;extension=php_dbase.dll
;extension=php_domxml.dll
;extension=php_dotnet.dll
;extension=php_exif.dll
;extension=php_fdf.dll
;extension=php_filepro.dll
;extension=php_gd.dll
;extension=php_gettext.dll
;extension=php_ifx.dll
;extension=php_iisfunc.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_java.dll
;extension=php_ldap.dll
;extension=php_mhash.dll
;extension=php_mssql65.dll
;extension=php_mssql70.dll
;extension=php_oci8.dll
;extension=php_openssl.dll
;extension=php_oracle.dll
;extension=php_pdf.dll
;extension=php_pgsql.dll
;extension=php_printer.dll
;extension=php_sablot.dll
;extension=php_snmp.dll
;extension=php_sybase_ct.dll
;extension=php_yaz.dll
;extension=php_zlib.dll
;------------------ Настройка модулей -----------------
[Syslog]
define_syslog_variables = Off  ;Запретить системные переменные. Их можно использ вызовом
                               ;define_syslog_variables()
[mail function]
SMTP            = mail.sourex.com          ;(для win32) Укажите свой адрес сервера
sendmail_from   = webmaster@sourex.com     ;(для win32) адрес от имени кот будет
                                           ; отсылаться почта при использовании функций PHP
                                           ; поставьте свой адрес
;sendmail_path  =                          ;(для unix)
[Debugger]
debugger.host    = localhost
debugger.port    = 7869
debugger.enabled = False
[Logging]
;logging.method = db
;logging.directory = /path/to/log/directory
[Java]
;java.class.path = .\php_java.jar
;java.home = c:\jdk
;java.library = c:\jdk\jre\bin\hotspot\jvm.dll
;java.library.path = .\
[SQL]
sql.safe_mode = Off
[ODBC]
odbc.allow_persistent = On   ; allow or prevent persistent links
odbc.check_persistent = On   ; check that a connection is still validbefore reuse
odbc.max_persistent = -1     ; maximum number of persistent links. -1 means no limit
odbc.max_links = -1          ; maximum number of links (persistent+non persistent).
                             ; -1 means no limit
odbc.defaultlrl = 4096       ; Handling of LONG fields. Returns number of bytes to variables,
                             ; 0 means passthru
odbc.defaultbinmode = 1      ; Handling of binary data. 0 means passthru, 1 return as is,
                             ; 2 convert to char
[MySQL]
mysql.allow_persistent = On    ; allow or prevent persistent link
mysql.max_persistent = -1      ; maximum number of persistent links. -1 means no limit
mysql.max_links = -1           ; maximum number of links (persistent+non persistent).
                               ;-1 means no limit
mysql.default_port =           ; default port number for mysql_connect(). 
                               ; Win32 will only look at MYSQL_PORT.
mysql.default_socket =         ; default socket name for local MySQL connects.
                               ; If empty, uses the built-in MySQL defaults
mysql.default_host =           ; default host for mysql_connect() (doesn't apply in safe mode)
mysql.default_user =           ; default user for mysql_connect() (doesn't apply in safe mode)
mysql.default_password=        ; default password for mysql_connect() (doesn't apply in safe mode)
                                   ; Note that this is generally a bad idea to store passwords
                                   ; in this file. Any user with PHP access can run
                                   ; 'echo cfg_get_var("mysql.default_password")' and reveal that
                                   ; password! And of course, any users with read access to this
                                   ; file will be able to reveal the password as well.
[bcmath]
bcmath.scale = 0                   ; number of decimal digits for all bcmath functions
[browscap]
;browscap = extra/browscap.ini
[Session]
session.save_handler = files        ; Управление методом сохранения сессий
session.save_path = D:\tmp ; где хранить файлы с сессиями - поставьте свое значение session.use_cookies = 1 ; whether to use cookies
session.name = PHPSESSID            ; name of the session
                                    ; is used as cookie name
session.auto_start = 0              ; разрешить автостарт сессий
session.cookie_lifetime = 0         ; Время жизни cookies в секундах
                                    ; или если 0, пока броузер не перезагрузится
session.cookie_path = /             ; путь для которого декствительны cookie
session.cookie_domain =             ; Домен, для которого действительны cookie
session.serialize_handler = php     ; handler used to serialize data
                                      ; php is the standard serializer of PHP
session.gc_probability = 1          ; percentual probability that the 
                                    ; 'garbage collection' process is started
                                    ; data will be seen as 'garbage' and
                                    ; cleaned up by the gc process
session.referer_check =             ; check HTTP Referer to invalidate
                                       ; externally stored URLs containing ids
session.entropy_length = 0          ; how many bytes to read from the file
session.entropy_file =              ; specified here to create the session id
; session.entropy_length = 16
; session.entropy_file = /dev/urandom
session.cache_limiter = nocache      ; set to {nocache,private,public} to
                                     ; determine HTTP caching aspects
session.cache_expire = 180           ; document expires after n minutes
session.use_trans_sid = 1            ; use transient sid support if enabled
                                     ; by compiling with --enable-trans-sid
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
[Assertion]
;assert.active = On      ; assert(expr); active by default
;assert.warning = On     ; issue a PHP warning for each failed assertion.
;assert.bail = Off       ; don't bail out by default.
;assert.callback = 0     ; user-function to be called if an assertion fails.
;assert.quiet_eval = 0   ; eval the expression with current error_reporting().
                         ; set to true if you want error_reporting(0) around the eval().
[Verisign Payflow Pro]
pfpro.defaulthost = "test.signio.com"      ; default Signio server
pfpro.defaultport = 443                    ; default port to connect to
pfpro.defaulttimeout = 30                  ; default timeout in seconds
; pfpro.proxyaddress =                     ; default proxy IP address (if required)
; pfpro.proxyport =                        ; default proxy port
; pfpro.proxylogon =                       ; default proxy logon
; pfpro.proxypassword =                    ; default proxy password
[Sockets]
sockets.use_system_read = On     ; Use the system read() function instead of
                                    ; the php_read() wrapper.

Если у вас что-то не получилось или работает не так, как хотелось бы - пишите мне или в форум Следующая статья цикла "Серверы" будет посвящена установке сервера баз данных MySQL

Если вы не получали предыдущих выпусков, найти их вы сможете в архиве рассылки или на сайте рассылки

Всего наилучшего ;)

Геннадий.

 



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться Рейтингуется SpyLog

В избранное