Как сделать домашний хостинг за 10 минут с нуля, т.е. установка локального сервера. Apache + PHP + MySql + windows 7 и XP На локальном сервере можно учиться делать сайты, запускать готовые "движки" сайтов, проводить любые эксперименты, тестировать скрипты, web-интерфейсы и т.д. Ниже инструкция, файлы и видео как все сделать. Можно скачать готовый локальный сервер Denwer или XAMPP (готовые пакеты программ) но для начинающих они плохи тем, что сложно понять как все работает. А сервер это не видео-игра, в которую можно играть и не думать об ее устройстве. Понимание принципов работы и знание ключевых настроек позволяют контролировать сервер и грамотнее общаться с реальными хостерами. Файлы обновлены 2010.08.13 Инcтрукция и тестовые PHP скрипты: Скачать .ZIP (24кб) MD5: f123d464a1f790e0b527aa3255329912 Все программы: Скачать .ZIP (82мб) MD5: 66079d815e08fee1044acd8e2562f5c5 В архиве: Текстовые редакторы\ HeidiSQL_5.1_Setup.exe httpd-2.2.16-win32-x86-openssl-0.9.8o.msi mysql-essential-5.1.49-win32.msi php-5.3.3-Win32-VC6-x86.msi phpMyAdmin-3.3.5-all-languages.zip Установка локального сервера на windows 7 (x64) Альтернатива денвера (denwer) и альтернатива XAMPP. Скачать .MP4 800x600 (16мб) Смотреть видео ON-LINE: [player]http://www.sysbox.ru/download/windowsxp.mp4[/player] Все программы бесплатны и скачаны с официальных сайтов: http://httpd.apache.org/download.cgi http://windows.php.net/download/ (скачиваем "installer", только "VC6 x86 Thread Safe". VC9 - устанавливать нельзя) http://www.mysql.com/downloads/mysql/ (essential - означает "необходимый минимум") или http://www.mysql.ru/download/ программы для работы с базой данных MySql: http://www.heidisql.com/download.php http://www.devart.com/ru/dbforge/ http://www.phpmyadmin.net/home_page/downloads.php текстовые редакторы: http://www.pspad.com/ru/ http://notepad-plus.sourceforge.net/ru/site.htm Принцип работы сервера: Сервер - это компьютер на котором лежат файлы сайта. На нем запущена и постоянно работает специальная программа Apache. Если через браузер обратиться к этому серверу (послать запрос на 80 порт), Apache выдаст обратно HTML и графические файлы лежащие на сервере в определенной папке. Браузер получив обратно эту информацию сформирует из них на экране привычную нам страницу сайта. Это принцип. Для надежности и большей совместимости реальные сервера у хостинговых компаний обычно делают на связках Unix + Apache (самая распространенная в мире связка) или на Windows Server 200X + Internet Information Server (IIS). Для экспериментов и тестирования сайтов, нам вполне подойдет Windows 7, Vista или XP + Apache. Ниже рассказывается как создать локальный сервер (не видимый в интернете) для тестирования сайтов, скриптов и т.д. Настроить видимость в интернете, т.е. сделать свой реальный хостинг можно, но это опасно из за вирусов, спамеров и хулиганов которые могут посещать Ваши сайты. 1) Cоздаем папки c:/work/site.ru/www/ c:/work/site2.ru/www/ (желательно сразу залить туда предлагаемые PHP файлы, для тестирования хостинга) Это папки для двух сайтов и их адреса мы будем указывать в настройках Apache. Сайтов может быть много. Папки нужно создавать заранее. Если хотя бы одна папка или подпапка указанная в настройках Apache физически не существует, то Apache не запустится. c:/work/ - общая папка для всех виртуальных сайтов. Название может быть любое, не обязательно work. Место положение любое, не обязательно диск c: c:/work/site.ru/ - папка конкретного сайта. Название может быть любое. Здесь, лишь для удобства восприятия, название папки = названию домена. На этом уровне располагают файлы сайта которые не видны в интернете, например служебные файлы, пароли, логи, статистику сервера и т.д. c:/work/site.ru/www/ - видна в интернете. Здесь размещаются непосредственно файлы сайта (картинки, HTML, файлы для скачивания и т.д.) Грубо говоря, если в браузере набрать site.ru, то будет "видно" содержимое именно этой папки. Поэтому в браузере невозможно набрать полный путь до выше стоящей папки c:/work/site.ru/ и из за этого она не видна в интернете. Разумеется c:/work/ то же не видна и диск c:/ то же. папка c:/work/sendmail/ не обязательна. Нужна для работы "заглушки" отправки e-mail. 2) Устанавливаем Apache Apache - это программа, которая принимает запросы от браузера (Internet Explorer, FireFox, Opera ...) и выдает ему обратно HTML, картинки, результаты работы скриптов и т.д. (выдает страницы сайта). Запущена она один раз и работает постоянно. Значок запущенной программы будет внизу, справа экрана. Настройки Apache в файле: c://Program Files/Apache Software Foundation/Apache2.2/conf/httpd.conf Для применения изменений в этом файле нужно перезагружать Apache. ---------- Чтобы Apache принимал запросы только с локального компьютера, указываем его неизменный IP адрес и порт: 127.0.0.1:80 Т.е. скачать или запустить что-то на вашем хостинге можете только Вы и только с локального компьютера но при этом Ваши PHP программы могут скачивать что-то из интернета. Заменяем Listen 80 на Listen 127.0.0.1:80 ---------- Модуль mod_rewrite.so нужен для реализации человеку понятных адресов (ЧПУ) Применяется для создания ссылок на страницы вида: site.ru/news/2010/03/ Убрать знак комментария "#": LoadModule rewrite_module modules/mod_rewrite.so ---------- Для того, что бы можно было использовать файлы .htaccess После кода: # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit Изменяем AllowOverride None на AllowOverride All ---------- При указании в адресной строке браузера папки на сервере, сервер автоматически будет искать и запускать указанные здесь файлы Заменяем DirectoryIndex index.html на DirectoryIndex index.html index.htm index.php ---------- Даем доступ к папке "work" После кода: AllowOverride None Options None Order allow,deny Allow from all Добавляем: AllowOverride All Options Indexes Includes Order allow,deny Allow from all ---------- Указываем расширения файлов для SSI После кода : # To parse .shtml files for server-side includes (SSI): # (You will also need to add "Includes" to the "Options" directive.) Вставить: AddType text/html .shtml .html. .htm AddOutputFilter INCLUDES .shtml .html .htm ---------- Присоединение к основному конфигурационному файлу, файл httpd-vhosts.conf Тогда при запуске Apache прочитает оба файла. Убрать знак комментария "#": Include conf/extra/httpd-vhosts.conf ---------- Даем понять Apache, что: Есть виртуальный хост, т.е. сайт. Его файлы лежат здесь "DocumentRoot" Показывать именно этот сайт если запрашивают домен "ServerName" или "ServerAlias" Логи писать сюда "ErrorLog" и сюда "access.log" Для этого в файле: C:\Program Files\Apache Software Foundation\Apache2.2\conf\extra\httpd-vhosts.conf удаляем старые записи ....... и добавляем новые: DocumentRoot c:/work/site.ru/www ServerName site.ru ServerAlias www.site.ru ErrorLog c:/work/site.ru/error.log CustomLog c:/work/site.ru/access.log common DocumentRoot c:/work/site2.ru/www ServerName site2.ru ServerAlias www.site2.ru ErrorLog c:/work/site2.ru/error.log CustomLog c:/work/site2.ru/access.log common 3) Устанавливаем PHP PHP - это популярный язык программирования применяемый для создания сайтов. При установке обязателен модуль: MySQL, т.к. без него PHP не сможет подключаться к базе данных mysql. Обычно нужны еще эти модули: Mcrypt - для шифрования GD2 - для работы с изображениями Multi-Byte String - для работы со строками в многобайтовых кодировках (например utf-8) Настройки PHP в файле: C:\Program Files\PHP\php.ini позволит выполнять код PHP в контейнере ... ?> по умолчанию кодом PHP считается все в контейнере short_open_tag = On максимальное время выполнения программы в секундах (на реальных хостингах обычно 30) max_execution_time = 3600 максимальное время получения данных (например загрузки файла) в секундах (на реальных хостингах обычно 60) max_input_time = 3600 максимальный объем памяти который может занять Ваш PHP скрипт (на реальных хостингах обычно 32М) memory_limit = 256M выводить на экран ошибки PHP (на реальных хостингах всегда OFF в целях безопасности) display_errors = On выводить на экран ошибки в момент запуска PHP display_startup_errors = On максимальный объем, который можно передать PHP скрипту методом POST (на реальных хостингах обычно 4М) post_max_size = 1000M максимальный объем файла, который можно передать PHP скрипту (на реальных хостингах обычно 2М) upload_max_filesize = 1000M Требуется установка времени сервера иначе PHP постоянно будет выдавать предупреждения изменяем ;date.timezone = например, на date.timezone ='Europe/Moscow' Что бы работала "заглушка" для отправки e-mail после строки ;sendmail_path = добавляем sendmail_path = php.exe c:/work/sendmail/sendmail.php тогда при выполнении функции PHP - mail(); письмо будет сохранено в виде файла в папке c:/work/sendmail/ 4) Устанавливаем MySQL MySQL - это база данных. Т.к. далеко не всю информацию удобно хранить в файлах, наличие базы данных очень часто является необходимостью. При установке обязательно поставьте галочку Include Bin Directory in Windows PATH иначе PHP не сможет найти нужные ему файлы mysql. (в тестовых файлах PHP, с сайта sysbox.ru, для подключения к базе данных указаны логин: root пароль: root изменить их можно в файле config.php) Кодировки MySQL это отдельный рассказ, т.к. нюансов множество. При установке MySQL желательно указать именно UTF-8 (инсталлятор так и рекомендует сделать). Это универсальная, многобайтовая кодировка. Обычно возникает путаница с кодировками: ошибки при записи в базу данных, читаются иероглифы, появляются вопросики вместо букв и т.д. MySql имеет массу настроек кодировок. Важные для PHP: character_set_client = кодировка данных отправляемых от PHP character_set_connection = кодировка, в которую преобразуется информация пришедшая от PHP, перед выполнением запроса на сервере character_set_results = кодировка данных отправляемых к PHP collation_connection = кодировка в которой производится сопоставление в базе данных. Используется для сортировки и выборки. В помощь: если база данных в UTF-8, а на сайте работаете в кодировке windows-1251, то после подключения к базе данных надо выполнить запрос: SET NAMES cp1251 который равносилен этим трём: SET character_set_client = cp1251 SET character_set_results = cp1251 SET character_set_connection = cp1251 Настройки MySQL лежат в файле: c:\Program Files (x86)\MySQL\MySQL Server 5.1\my.ini Если сам MySQL использует UTF-8 по умолчанию, то лезть в файл настроек как правило не нужно и все проблемы с кодировками можно решить с помощью MySQL менеджера (например программы HeidiSQL) и запросов SQL. 5) Настройка Windows Что бы при наборе в браузере определенных сайтов браузер искал их не в интернете, а на локальном компьютере, в файл: C:\WINDOWS\system32\drivers\etc\host добавляем: 127.0.0.1 localhost 127.0.0.1 site.ru 127.0.0.1 www.site.ru 127.0.0.1 site2.ru 127.0.0.1 www.site2.ru Запись "127.0.0.1 localhost" нужна для того, что бы можно было подключаться к MySQL из PHP указывая не IP адрес 127.0.0.1, а зарезервированное имя "localhost". Так правильнее и "localhost" часто используется на реальных хостингах. 6) Перезапуск Apache Для Windows7 и Vista: Остановить и снова запустить Apache. Для Windows XP: Сразу перезапустить Apache не получится. Вместо этого надо обязательно перезагрузить компьютер. (перезагрузка закрепляет значения, автоматически сделанные Apache, PHP и MySQL, в переменной Windows - PATH) Настройка программы phpMyAdmin Настройка программы phpMyAdmin phpMyAdmin - это программа для администрирования базы данных MySQL. Написана на языке PHP, работает через браузер. Примечательна тем, что на большинстве реальных хостингах она установлена и рекомендуется для работы с базой данных. Распаковываем все файлы в какую-нибудь папку на сайте, например в "c:/work/site.ru/www/pma/" В корне переименовать файл config.sample.inc.php в config.inc.php и редактируем всего одну строчку (надо указать любой код, например "xxx"): $cfg['blowfish_secret']='xxx'; После чего запускаем phpMyAdmin, набрав в браузере: site.ru/pma Вводим логин и пароль которые указывали при установке MySQL Остальные настройки менять НЕ нужно и по умолчанию они должны содержать: $cfg['Servers'][$i]['verbose'] = ''; $cfg['Servers'][$i]['host'] = 'localhost'; $cfg['Servers'][$i]['port'] = ''; $cfg['Servers'][$i]['socket'] = ''; $cfg['Servers'][$i]['connect_type'] = 'tcp'; $cfg['Servers'][$i]['extension'] = 'mysqli'; $cfg['Servers'][$i]['auth_type'] = 'cookie'; $cfg['Servers'][$i]['nopassword'] = true; Если в файле C:\WINDOWS\system32\drivers\etc\hosts нет строчки 127.0.0.1 localhost то phpMyAdmin может не работать "зависать" и выдавать ошибки, например: #2002 - Сервер не отвечает (либо сокет локального MySQL-сервера некорректно настроен) Эти зависания можно вылечить изменив в настройке phpMyAdmin: $cfg['Servers'][$i]['host'] = 'localhost'; на $cfg['Servers'][$i]['host'] = '127.0.0.1'; но правильнее внести строчку 127.0.0.1 localhost в файл hosts, т.к. на реальных хостингах, в скриптах PHP при подключении к MySQL указывается именно "localhost", а не конкретные IP адресю Весь материал взят с сайта http://www.sysbox.ru
<a href="http://ringtonclub.ru/"><b>Бесплатные рингтоны для мобилы</b></a>
|