<a href="htp://themad.pochta.ru">Заходи не пожалеешь</a>

com.runbker.com

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » com.runbker.com » Настройки веб-серверов » Apache, PHP, MySQL, Perl, установка и настройка


Apache, PHP, MySQL, Perl, установка и настройка

Сообщений 1 страница 3 из 3

1

Для начала установим базы, для нашего веб-сервера.
Установка MySQL 5.0.45

Сайт разработчика: Сайт разработчиковСайт разработчиков
Дистрибутив:С сайта разработчиков
Скачайте "Windows (x86) ZIP/Setup.EXE" архив со страницы дистрибутивов, распакуйте его и запустите Setup.exe.

Далее будут показаны те диалоговые окна, в которых необходимо делать какой-либо выбор.
http://ib.merlin-ru.homelinux.net/uploads/instrument-mysql-1.png

Отметьте в данном окне выборочную установку компонентов "Custom"

http://ib.merlin-ru.homelinux.net/uploads/instrument-mysql-2.png

Здесь вы можете выбрать дополнительные компоненты и сменить установочную директорию программы.

http://ib.merlin-ru.homelinux.net/uploads/instrument-mysql-3.png

Если у вас ещё нет учётной записи на сайте MySQL.com, то можете создать его в данном диалоговом окне выбрав "Create a new free MySQL.com account" (не помешает). Либо выберите "Skip Sign-Up" для перехода на следующую страницу.

http://ib.merlin-ru.homelinux.net/uploads/instrument-mysql-4.png

Теперь приступим к настройке MySQL сервера.

http://ib.merlin-ru.homelinux.net/uploads/instrument-mysql-5.png

Выбираем детализированную настройку - "Detailed Configuration"

http://ib.merlin-ru.homelinux.net/uploads/instrument-mysql-6.png

Выбор влияет на то, сколько ресурсов (в основном, ОЗУ) будет использовать MySQL при работе.
Отмечаем пункт "Developer Machine" ("Машина разработчика") - этот режим наименее прожорлив (но и тянет только не очень большие базы и т. д.)

http://ib.merlin-ru.homelinux.net/uploads/instrument-mysql-7.png

Выбрав пункт "Multifunctional Database", вы сможете работать как с таблицами типа InnoDB (с возможностью использования транзакций), так и с высокоскоростной MyISAM (как правило для веб-разработок используется именно этот тип таблиц).

Выбор влияет только на настройку по умолчанию. Кроме указанных, будут доступны и другие движки базы данных (Memory, Federated, NDBCluster); подробное описание см. в документации к MySQL 5.

http://ib.merlin-ru.homelinux.net/uploads/instrument-mysql-8.png

Выбор диска и директории для хранения таблиц InnoDB.

http://ib.merlin-ru.homelinux.net/uploads/instrument-mysql-9.png

В данном диалоговом окне выбирается максимально возможное количество подключений к серверу MySQL. При выборе "Decision Support (DSS)/OLAP", максимальное количество подключений будет ограничено двадцатью, чего более чем достаточно при установке сервера на домашнем компьютере и отсутствии большого количества одновременных подключений.

http://ib.merlin-ru.homelinux.net/uploads/instrument-mysql-10.png

Отметив "Enable TCP/IP Networking" мы включаем поддержку TCP/IP соединений и выбираем порт, через который они будут осуществляться. Стандартным для сервера MySQL является порт 3306. Отметив "Enable Strict Mode", мы задаем режим более строгого соответствия стандарту SQL (данную опцию рекомендуется оставлять включенной).
В MySQL для Windows единственным способом доступа к MySQL является TCP/IP (т.к. нет альтернативы - unix sockets)

http://ib.merlin-ru.homelinux.net/uploads/instrument-mysql-11.png

Вы можете оставить язык по умолчанию - UTF-8 (рекомендуется). Эта кодировка является современной, поддерживает все мыслимые человеческие языки.
Тем не менее, если вы очень сильно беспокоитесь об объёме базы данных, вы можете выбрать однобайтную кодировку.
Отметив "Manual Selected Default Character Set / Collation" и выбрав из ниспадающего меню "cp1251" определяем, что по умолчанию для хранения текстовых данных в таблицах будет использоваться кодировка Cyrillic Windows (cp1251).

Это влияет только на внутреннее представление данных в базе, совершенно никак не влияя на работу с ней. Все перекодировки сервер делает автоматически.

Настройку можно будет изменить позднее в файле my.ini

http://ib.merlin-ru.homelinux.net/uploads/instrument-mysql-12.png

Если отметить "Install As Windows Service", сервер будет запускаться в виде сервиса Windows, что является рекомендуемым способом запуска. Ниже, в ниспадающем списке, задается имя сервиса. Если вы хотите, чтобы сервер запускался сам при включении комьютера, галочка "Launch the MySQL Server automatically" должна быть установлена. Если снять эту галочку, он не будет запускаться сам, можно будет запускать его вручную. Эту настройку можно будет изменить в настроках служб Windows.
Для запуска можно будет использовать команду net start MySQL, для остановки - net stop MySQL.

Также поставьте галочку рядом с "Include Bin Directory in Windows PATH" - это позволит установить видимость директории "bin", для командной строки, что позволит запускать утилиты MySQL без указания полного пути к ним.

http://ib.merlin-ru.homelinux.net/uploads/instrument-mysql-13.png

Обязательно установите пользователю "root" пароль!

http://ib.merlin-ru.homelinux.net/uploads/instrument-mysql-14.png

В данном окне обратите внимание на строку "Write configuration file", которая указывает на месторасположение конфигурационного файла MySQL - "my.ini", который далее нам необходимо будет немного отредактировать.

1. В раздел [client], после строки:
port=3306
Добавьте строку определяющую каталог содержащий файлы описания кодировок:
character-sets-dir="C:/Program Files/MySQL/MySQL Server 5.0/share/charsets"

2. В раздел [mysqld], после строки:
port=3306
Добавьте следующие две строки, первая из которых вам уже известна, вторая – устанавливает кодировку в которой данные передаются MySQL:
character-sets-dir="C:/Program Files/MySQL/MySQL Server 5.0/share/charsets"
init-connect="SET NAMES cp1251"

Вторая строка укажет серверу MySQL, что клиент по умолчанию желает общаться с сервером в этой кодировке (а не utf-8). Для Windows - желательно.

3. Далее, найдите строку:
default-storage-engine=INNODB
Замените изначально устанавливаемый тип таблиц:
default-storage-engine=MYISAM

0

2

Теперь перейдем к PHP
Сайт разработчика:Сайт разработчиков
Дистрибутив (скачайте "PHP 5.2.4 zip package" архив):С сайта разработчиков
Заодно скачайте сразу и документацию на русском языке в формате .chm, она вам понадобится при изучении и работе: http://www.php.net/download-docs.php

Распакуйте архив в желаемый каталог (изначально предлагается "C:\php"). Откройте конфигурационный файл содержащий рекомендуемые настройки - php.ini-recommended (находящийся в корне дистрибутива), переименуйте его в php.ini и произведите следующие изменения.

Редакция php.ini:
Найдите и выключите (измените On на Off) следующие директивы, если они включены:
short_open_tag = Off (директива позволяет начинать скрипты <? вместо полного <?php. Эта директива будет убрана в PHP 6)
register_globals = Off (года два назад, 50% взломов сайтов было сделано из-за того, что эта директива была включена. Она делает опасным использование неициниализированных переменных)
register_long_arrays = Off (Так PHP работает быстрее)

Найдите строку:
;include_path = ".;c:\php\includes"
Раскомментируйте ее, убрав перед строкой символ точки с запятой.
(Внимание исключение! Обратные косые черты при указании пути):
include_path = ".;c:\php\includes"
Создайте пустой каталог "C:\php\includes", для хранения подключаемых классов.
Найдите строку:
extension_dir = "./"
Установите значением данной директивы путь к папке с расширениями:
extension_dir = "C:/php/ext"
Найдите строку:
;upload_tmp_dir =
Раскомментируйте ее и укажите в значении следующий путь:
upload_tmp_dir = "C:/php/upload"
Создайте пустую папку "C:\php\upload", для хранения временных файлов загружаемых через HTTP.

Подключите, расскомментировав, данные библиотеки расширений (вы можете включить и другие расширения, может потребоваться дополнительная настройка):
extension=php_curl.dll - Client-site URL library - удобная библиотека для соединения с http, php, telnet-серверами
extension=php_gd2.dll - графическая библиотека PHP, позволяет генерировать изображения на лету
extension=php_mbstring.dll - поддержка многобайтных кодировок
extension=php_mcrypt.dll - Функции хеширования и шифрования
extension=php_mysql.dll - библиотека взаимодействия с сервером MySQL
extension=php_mysqli.dll - Улучшенное взаимодействие (MySQL version>= 4.1)

Найдите строку:
;session.save_path = "/tmp"
Раскомментируйте и установите значением данной директивы такой путь:
session.save_path = "C:/php/tmp"
Создайте пустую папку "C:\php\tmp" для хранения временных файлов сессий.
Сохраните изменения и закройте файл php.ini.

Далее необходимо добавить каталог с установленным PHP интерпретатором в PATH операционной системы. Для чего пройдите по пути "Start" ("Пуск") -> "Control Panel" ("Панель управления") -> "System" ("Система"), откройте вкладку "Advanced" ("Дополнительно"), нажмите кнопку "Environment Variables" ("Переменные среды"), в разделе "System Variables" ("Системные переменные") сделайте двойной щелчок на строке "Path", добавьте в поле "Variable Value" ("Значение переменной"), к тому что там уже существует, путь к каталогу с установленным PHP, например, "C:\php" (без кавычек). Обратите внимание на то что символ точки с запятой разделяет пути. И еще один важный момент – обязательно установите в переменных среды путь к PHP перед уже имеющимся там путем к каталогу "bin" установочной директории MySQL. Чтобы внесенные изменения вступили в силу, перезагрузите операционную систему.

Пример строки Path:
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\php;C:\Program Files\MySQL\MySQL Server 5.0\bin

Установка и настройка PHP интерпретатора – завершена.

Описание подключаемых библиотек:

php_mcrypt.dll – Библиотека позволяющая работать с большим количеством алгоритмов шифрования, среди которых DES, TripleDES, Blowfish и другие. Для работы этой библиотеки скопируйте libmcrypt.dll  из C:\php в C:\WINDOWS

php_mysql.dll – Имя библиотеки говорит само за себя - она необходима для работы с сервером MySQL.
libmySQL.dll  из C:\php в C:\WINDOWS\system32

php_mysqli.dll – Данная библиотека является расширением предыдущей и содержит дополнительные функции PHP для работы с сервером MySQL версии 4.1.3 и выше.

Данных библиотек должно хватить для полноценной работы PHP. Со временем, если появится такая необходимость, вы сможете подключить дополнительные библиотеки, но не стоит подключать их все сразу с мыслью, что кашу маслом не испортишь, в данном случае излишнее количество подключенных библиотек может заметно замедлить работу PHP.

0

3

2.1 Настройка работы Apache
Сперва так настроим Apache, чтобы нам было удобно работать с нашим сервером. При старте Apache по умолчанию читает файл насроек httpd.conf, который обычно находится по адресу C:\Program Files\Apache Group\Apache\conf\httpd.conf (если Вы, конечно, установили его туда как я описывал в первой части). Это обычный текстовый файл, открывайте его блокнотом, FAR Manager или любым любимым текстовым редактором.

2.1.1 DocumentRoot, или где наши файлы хранятся.
Директива DocumentRoot задаёт, откуда будет вебсервер брать файлы, когда мы будем делать к нему запросы. По умолчанию настройка такая:
DocumentRoot "C:/Program Files/Apache Group/Apache/htdocs"

Далеко не всегда удобно лазить в такую директорию. Мы создаём директорию C:/www, в ней поддиректорию C:/www/htdocs и меняем значение директивы на
DocumentRoot "C:/www/htdocs"

После запуска сервера, файл c:/www/htdocs/index.html будет доступен по адресу http://(имя сервера)/index.html

Обратите внимание, что в пути вместо стандартного для Win - систем обратного слэша "\" используется прямой - "/". Это объясняется тем, что Apache разрабатывался изначально для *nix - систем. Если мы хотим использовать обратные слеши, нужно их удваивать, например,
"C:\\www\\htdocs"

2.1.2 ScriptAlias, или  где хранятся CGI-скрипты
По умолчанию, имеется директива
ScriptAlias /cgi-bin/ "C:/Program Files/Apache Group/Apache/cgi-bin/"

Точно так же, меняем её на
ScriptAlias /cgi-bin/ "C:/www/cgi-bin/"

К скриптам, расположенным в директории c:/www/cgi-bin/..., можно будет обращаться по адресу http://(имя сервера)/cgi-bin/...

2.1.2 Вспоминаем про права доступа через web

Права доступа к папке задаются в секции
<Directory "C:/Program Files/Apache Group/Apache/htdocs">

Мы переместили папку, и меняем теперь расположение
<Directory "C:/www">
Options Indexes Includes
AllowOverride All
Allow from all
</Directory>

Тут мы задаем ряд настроек по умолчанию для нашего каталога c:\www и всех подкаталогов, которые в нем содержатся: автоматическую генерацию списка содержимого каталога при просмотре его в браузере, поддержку SSI, возможность использовать файлы .htaccess для индивидуальной настройки каталогов (хотя их использование замедляет работу сервера, и поэтому не рекомендуется!)

2.1.3 Как будут звать наши cgi-скрипты?
Строка
#AddHandler cgi-script .cgi

заменяется на
AddHandler cgi-script .cgi

Тут мы указываем серверу, что файлы с расширением .cgi надо рассматривать как cgi - модули, и выдавать результат их исполнения, а не исходный код.

2.1.4 SSI нужно включить
Ищем строчки
#AddType text/html .shtml
#AddHandler server-parsed .shtml

И меняем их на
AddType text/html .shtml
AddHandler server-parsed .shtml .html .htm

Здесь мы указываем серверу, файлы с какими расширенями будут обрабатываться как SSI.

Примечание
SSI (Server Side Include) - технология, которая позволяет включать в WEB - страницу "внешние" файлы (будь то другая html - страница или скрипт, находящийся в папке cgi-bin). Таким образом можно строить сайт как бы по кирпичикам.

2.1.5 Не забудьте сохранить изменения в файле httpd.conf

Общая настройка Apache закончена. Нажмите Пуск -> Выполнить, введите команду
net start apache.

Теперь если в адресной строке браузера Вы введете http://localhost, то высветится страничка index.html, расположенная в папке c:\www\html, а если ее там нет, то список файлов в этой папке.
2.2 Настройка связки Apache + PHP5

2.2.1 Скопируйте файл php5ts.dll из папки C:\php в папку C:\WINDOWS\SYSTEM32

2.2.2 Скопируйте файл php.ini-dist из папки C:\php в каталог C:\WINDOWS и переименуйте его в php.ini, откройте в блокноте, найдите переменные, указанные ниже и установите их значения, как написано ниже:
register_globals = off
magic_quotes_gpc = off
magic_quotes_runtime = off
error_reporting = E_ALL  # - и именно так, никаких E_ALL & ~E_NOTICE и пр.!
display_errors = on

Примечание:

Если Вы начинающий программист на PHP, то советую Вам установить значение register_globals = on. Объясню почему: почти во всех руководствах по РНР пишут, что даные, полученные из формы, или переданные по ссылке, вот так: http://localhost/my_script.php?variable1=x&variable2=y автоматически становятся переменными PHP, $x и $y. Но эта информация немного устарела.

Приведу по этому поводу отрывок с сайта http://phpfaq.ru

"Дело в том, что в целях безопасности, начиная с версии 4.1, РНР настраивается по умолчанию так, чтобы переданные значения не назначались переменным.

Получить же переданное значение можно обратившись к соответствующему массиву.

Например:

Если передаем методом GET, обратившись к скрипту по ссылке вида
script.php?var=value

или отправив форму, указав в ней method="GET",

то все переменные содержатся в массиве $_GET.
echo $_GET['var']; напечатает "value".

Если получаем данные из формы, отправленной методом POST, то все поля этой формы содержатся в массиве $_POST. Допустим, в форме был элемент
<input type="hidden" name="var" value="1">,

то в скрипте, который указан в action формы, можно написать echo $_POST['var']; и будет выведена 1.

Поэтому, если вы уверены, что переменная есть, но вы не можете ее найти - ищите ее в суперглобальных массивах.

Подробнее о них можно почитать на русском языке в официальной документации http://ru2.php.net/variables.predefined

То же касается и серверных переменных, таких, как $REMOTE_ADDR, $PHP_SELF. Получить их можно, обратившись к массивам $_SERVER, $_ENV или функцией getenv - getenv('HTTP_REFERER');

Переменные, зарегистрированные в сессии, следует искать в массиве $_SESSION.

Данные cookie содержатся в массиве $_COOKIE, сведения о закачанных файлах - в $_FILES

Переменные окружения - в $_ENV, а так же, существует массив $_REQUEST, в котором собраны данные из GET, POST и cookie.

Важно! Весьма в поисках переменных помогает одна их главных функций PHP - phpinfo()

ее следует применять всякий раз, когда вы "потеряли" переменную, вызовите phpinfo(32); в скрипте, в котором не работает авторизация, в скрипте, который принимает файл при аплоаде - и все найдется!

За назначение переменных отвечает параметр register_globals в php.ini.

Если register_globals=on, то все полученные скриптом данные будут назначены соответствующим переменным.

Разработчики PHP настоятельно рекомендуют выключать register_globals (такой режим даже введен по умолчанию во всех новых версиях) и пользоваться данными, полученными от пользователя, только обращаясь к соответствуюим массивам.

Это сделано потому, что при register_globals = on легко взломать небрежно написаный скрипт.

К примеру, функция авторизации выставляет переменную $admin=1, а если авторизации не было, то не делает ничего. В таком скрипте при register_globals=on очень легко стать админом, просто обратившись к нему script.php?admin=1

Огоромное количество сайтов было взломано таким образом.

К тому же, register_globals = off заставляет пользоваться суперглобальнми массивами ($_GET, $_POST и т.д.), что помогает избежать путаницы. ОЧЕНЬ много людей, записав некую переменную в сессию, а потом пытаясь изменить ее значение, передавая ее скрипту методом GET, долго не могли понять, почему у них ничего не работает? Поэтому

очень важно при работе с сессиями, при любых настройках (и особенно - при register_globals=on!) работать только с массивом $_SESSION, как это описано в соответствующем разделе.

То есть, register_globals=off - на самом деле не цель, а средство. Побудительный мотив для программиста писать защищенные скрипты и избегать путаницы.

Если вы хотите написать скрипт, не зависящий от настройки register_globals, и при этом защищенный - переменные надо объявлять перед использованием. На это нацелена еще одна инициатива разработчиков PHP - написание программ при уровне отображения ошибок (error_reporting) равном E_ALL, при котором об использовании необъявленных переменных выдаются предупреждения.

Именно объявление ВСЕХ переменных, используемых в скрипте и являетс гарантией от взлома. Если вы пишете программу для распространения, то гарантией ее безопасности является только объявление переменных.

Если же нет возможности переделать готовый скрипт, но его надо заставить работать при register_globals=off, то надо помнить, что во-первых, вы делаете потенциальную дыру у себя на сайте, а во-вторых, для этого можно воспользоваться функциями extract и import_request_variables

НО: Бездумное использование этих функций является таким же опасным!

Если вы хотите адаптировать старый скрипт под новые правила, то выполните приведенный код именно в таком порядке!
import_request_variables("GPC");
extract($_SERVER);

сначала назначаются переменные, пришедшие от юзера, а потом - предопределенные серверные, чтобы первые не могли затереть одноименные серверные.

ВАЖНО!!! Этот код должен вызываться как можно раньше в скрипте. ДО любого кода и присвоения переменных.

Поскольку он являет собой дыру похлеще register_globals=on!

Ведь если он будет вызываться после присвоения переменных в скрипте, то хакер с легкостью перезапишет их.

Последние версии PHP сообщают вам об этом нотайсом при использовании import_request_variables.

И то правда - три года прошло с тех пор, как введены новые правила. Пора бы уже и научиться писать скрипты правильно.

Но лучше всего пользоваться не свалеными в кучу переменными, а соответствующими массивами. Особенно, если в одном скрипте встречаются переменные из кук, из формы, из сессии - очень много путаницы от этого происходит.

Все то же самое можно прочесть и в документации: http://www.php.net/manual/ru/security.globals.php"

2.2.3 Настроим PHP двумя способами: как модуль Апача и как CGI - бинарник

2.2.3.1 Настройка PHP, как модуля Apache:

В файл конфигурации Apache httpd.conf добавляем:
LoadModule php5_module C:/php/php5apache.dll

(хотя может быть и LoadModule php5_module C:/php/sapi/php5apache.dll. Зависит от Вашей версии PHP. У меня 5.0.3 и этот файл лежит, как в первом случае )

После последней директивы AddModule добавляем строку
AddModule mod_php5.c

Внутри блока <IfModule mod_mime.c> добавляем строку
AddType application/x-httpd-php .php

В строке DirectoryIndex надо прописать еще index.php:
DirectoryIndex index.php index.html

2.2.3.2 Настройка PHP, как CGI - бинарника:

В файл конфигурации Apache httpd.conf добавляем:

Внутри блока <IfModule mod_mime.c> добавляем строку:
AddType application/x-httpd-php .php

Сразу после нее добавляем 2 строки:
ScriptAlias /_php_/ "c:/php/"
Action application/x-httpd-php "/_php_/php-cgi.exe"

Примечание:

Если у Вас стоит четвертая версия PHP, то вместо последней строки надо написать:
Action application/x-httpd-php "/php/php.exe"

В строке DirectoryIndex надо прописать еще index.php:
DirectoryIndex index.php index.html

Примечание:

Я советую Вам устанавливать PHP как модуль Apache. В противном случае, Вы лишитесь некоторых функций в PHP, например очень полезной полезной функции virtual(). Да и вообще, на мой взгляд, PHP, установленный как модуль Apache работает стабильнее и быстрее.

2.2.4 Вот и все! Мы уже настроили Apache и PHP. Теперь проверим работу. Создайте файл index.php в папке C:\www\html, а в нем напишите следующие строчки:
<?
phpinfo();
?>

Теперь если Вы, написав в адресной строке браузера http://localhost/index.php, увидите страничку с информацией о версии PHP, установленной на Ваш компьютере, то значит, что все работает, связка Apache+PHP настроена правильно.

0


Вы здесь » com.runbker.com » Настройки веб-серверов » Apache, PHP, MySQL, Perl, установка и настройка