Как работает Интернет

  • Автор темы PatrickxDDD
  • 221
  • Обновлено
  • 07, Feb 2014
  • #1




Поднимаем сервер на localhost-е

Наш путь в хакинге

В хакерстве есть два пути: веб-хакинг и крэкинг.

Крекинг - это взлом и изучение софта, приложений: написание кряков, кейгенов и т.п. Этот путь довольно сложный, ибо нужно обладать хорошими знаниями языков программирования.



Лично я пошёл сначала по пути веб-хакинга, так как он намного интереснее (на мой взгляд), и только недавно начал смотреть в сторону крэкинга (мало что в этом понимая xD). Веб-хакинг подразумевает взлом в интернете (что и понимается под словом "хакерство" чаще всего): это взлом почты, сайтов, форумов, соц.



сетей, и т.д. Как вы уже могли догадаться, сначала я поведу вас именно путём веб-хакинга! Но сперва нам необходимо узнать и понять принципы работы всего Интернета: где находятся все эти веб-странички и что из себя представляет "Всемирная паутина".
Как работает Интернет

"Всемирная паутина" (она же World-Wide-Web и WWW) содержит множество серверов, имеющих свой IP и URL.

Пользователи интернета могут подключаться к серверам и скачивать те файлы, к которым разрешён доступ из сети.

Любая веб-страница - это файл, который скачивается с удалённого сервера и открывается браузером пользователя.

Это упрощённая схема.

На самом деле информация с одной страницы может содержаться на различных серверах, данные могут многократно проходить через прокси и скокс сервера (о них чуть позже) и огибать земной шарик пару раз, прежде чем достигнуть пользователя.

Поднимаем сервер на localhost-е

Внимание! Все, кто по каким-либо неведомым причинам не хочет пытаться разобраться в принципе работы и устройстве полноценного веб-сервера, могут скачать и в два щелчка установить localhost-сервер, а точнее платформу для веб-разработчиков Denwer.
Прочитав урок далее, вы поймёте, как проверить работоспособность locahost сервера и как добавлять на него файлы.

Забегая вперёд, скажу, что в случае с дэнвером вместо папки htdocs будет использоваться папка www.

Когда установите Denver, он создаст свой виртуальный диск в "Мой компьютер". На этом диске в папке home -> localhost и найдёте папку www.
Даю ссылку на упрощённый аналог только потому, что пользоваться им на самом деле в разы удобнее, и при установке и настройке проблем не возникает.

Но тем не менее.

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

Для того чтобы лучше понять как работает сервер, мы с вами поднимем (установим то есть =) локальный сервер на своём компьютере! Он не будет доступен из Интернета, только из локальной сети и будет носить скромное имя localhost-сервер.

Делаем мы это не для баловства и не чтобы сказать другу: "А у меня свой сервер!", а чтобы мы в дальнейшем имели возможность запускать у себя на тачке php-скрипты.

Дело в том, что php (он же пых-пых) - серверный язык программирования (то есть выполняется на сервере, а не у пользователя в броузере) и просто так запустить php-скрипт не получится.

Нужно запускать его на сервере, который мы и установим!
Итак, нам нужно установить связку Apache+PHP+MySQL (Апач - сервер, пых пых - интерпретатор языка php, MySQL - базы данных). Всё это безобразие качаем с официальных сайтов:
Apache (httpd). В списке выбираем последнюю (по номеру) версию no_ssl. Нас интересуют установочники с расширением .msi
PHP. Качаем Installer последней версии.
MySQL. Уносим MSI Installer, соответствующей архитектуре вашей ОС: 32 или 64 bit.

В первую очередь запускаем установочник апача (Apache.msi), пропускаем лицензионное соглашение и список нововведений и видим окно, где нам предлагают ввести Network Domain, Server name и мыло.

Вводим везде localhost (мыло: admin@localhost), выбираем опцию установки для всех, через 80 порт, как сервис.

После установки стоит убрать апач из автозагрузки, куда он залазит без спроса (он ведь нам не каждый день нужен будет)! Проверим как всё работает.

в адресной строке вбацаем localhost.

Если всё будет работать - сразу сами поймёте
Теперь будем ставить php.

Для этого просто папку PHP копируем в папку, куда установили апач.

Теперь из этой папки (php) нужно файл php.ini-development скопировать в папку WINDOWS и переименовать в php.ini.

Затем в нём (php.ini) найдите строку extension_dir и измените указанное там "C:/php5/ext" на путь_к_папке_с_апачом\php\ext (то есть адрес на вашем жёстком диске к папке ext, которая в папке php). Далее в папке с апачом откроем папку conf и в ней найдём файл httpd.conf.

Открываем его блокнотом и ищем строку

 AddType application/x-gzip .gz .tgz


После неё на новой строке пишем:
 AddType application/x-httpd-php phtml php


Теперь почти в начале документа находим целый блок строчек, начинающихся с LoadModule. В конец этого блока с новой строки дописываем:

 LoadModule php5_module путь_к_папке_с_апачом\php\php5apache2_2.dll


Осталось только настроить параметр DirectoryIndex. Найдём её и отредактируем:

 DirectoryIndex index.html index.htm index.html.var index.php




Пора устанавливать MySQL! Запускаем установочник, выбираем полную установку (complete), по окончании установки ставим флажок "Configure the MySQL Server now". Выбираем расширенную конфигурацию, а затем ничего не меняем, а просто нажимаем кнопку далее, пока не дойдём до этапа выбора набора символов (character set). На этом этапе нам необходимо выбрать последний пункт и в выпадающем списке character set установить набор cp1251 (кириллица). Жмём далее и видим в следующем окне 3 флажка.



Тут нам нужно снять второй и установить третий флажки (отключить автозапуск сервиса и добавить видимость bin-дирректории для виндосовской cmd). Далее нам предлагают установить пароль доступа к управлению MySQL.

Обязательно ставим и запоминаем(!) этот пароль (не желательно оставлять поле пустым). Последний этап: тыкаем "Execute". Теперь нам надо отредактировать файл my.ini (он находится в папке, куда вы установили MySQL).
Сначала находим строку port=3306 (в разделе [client]) и после неё на новой строке пишем такое:

Code
character-sets-dir="путь_к_папке_куда_установили_MySQL\share\charsets"

Чуть ниже в документе у нас есть блок "[mysqld]". Вот в нём после строки port=3306 с новой строки (а точнее с двух строк) пишем текст:

 character-sets-dir="путь_к_папке_куда_установили_MySQL\share\charsets" 
init-connect="SET NAMES cp1251"


Далее ищем строку default-storage-engine=INNODB и меняем в ней INNODB на MYISAM. Сохраняем изменения, закрываем документик.
Установка закончена!

Теперь выясним зачем мы всё это сваяли, как оно работает и работает-ли вообще.

Зайдите в папку с апачом и найдите там папку htdocs.



Это корневая директория, куда вы будете кидать все файлы, которые захотите открыть на локальном сервере (кстати, советую сразу сделать ярлык этой папки в каком-нибудь более доступном месте, потому что каждый раз лазить туда через "Мой компьютер" не очень удобно). Первым всегда открывается файл с именем index, если ничего другого не указано (файлом .htacces). Вот мы и создадим сейчас там файл index.php, содержимое которого будет таким:
Code

 <?php 

print "Current PHP version: ". phpversion() ."";

$link = mysql_connect("localhost", "root","YOURPASSWORD") or die("Could not connect"); //В этой строчке измените пароль доступа к mysql НА ТОТ, КОТОРЫЙ ВЫ ВВОДИЛИ ПРИ УСТАНОВКЕ MYSQL!!!

if( !$link ) die( mysql_error() );

$db_list = mysql_list_dbs($link);

while ($row = mysql_fetch_object($db_list))

{

echo "

Database \"".$row->Database."\"

\n";

$result = mysql_list_tables($row->Database);

if(!$result) die( "DB Error, could not list tables\n MySQL Error: ".mysql_error() );

else {

while ($row = mysql_fetch_row($result))

print "Table: $row[0]

";

mysql_free_result($result);

}

}

?>


Теперь нужно запустить всё это хозяйство.

Для этого в папке с апачом есть папка bin, а в ней файл ApacheMonitor.exe.

Его тоже советую вынести ярлыком куда-нибудь, куда вы вынесли ярлык к папке htdocs.

Запускайте эту программу.

Вы увидите строку Apache 2.2 в списке сервисов (а у нас больше ничего и нет ). Жмём Start, а после того как сервер запустится нажимаем Services.

В появившемся списке находим сервис MySQL и запускаем его.

Если хотите, можете настроить его на автоматический запуск.

Наш localhost-сервер запущен! Впишите в адресную строку: "localhost", и перед вами окажется результат работы скрипта. Выглядеть всё должно примерно так:

 Current PHP version: 5.3.0

Database "information_schema"

Deprecated: Function mysql_list_tables() is deprecated in F:\Progs\Apache\htdocs\index.php on line 19

Table: CHARACTER_SETS

Table: COLLATIONS

Table: COLLATION_CHARACTER_SET_APPLICABILITY

Table: COLUMNS

Table: COLUMN_PRIVILEGES

Table: ENGINES

Table: EVENTS

Table: FILES

Table: GLOBAL_STATUS

Table: GLOBAL_VARIABLES

Table: KEY_COLUMN_USAGE

Table: PARTITIONS

Table: PLUGINS

Table: PROCESSLIST

Table: PROFILING

Table: REFERENTIAL_CONSTRAINTS

Table: ROUTINES

Table: SCHEMATA

Table: SCHEMA_PRIVILEGES

Table: SESSION_STATUS

Table: SESSION_VARIABLES

Table: STATISTICS

Table: TABLES

Table: TABLE_CONSTRAINTS

Table: TABLE_PRIVILEGES

Table: TRIGGERS

Table: USER_PRIVILEGES

Table: VIEWS

Database "mysql"

Deprecated: Function mysql_list_tables() is deprecated in F:\Progs\Apache\htdocs\index.php on line 19

Table: columns_priv

Table: db

Table: event

Table: func

Table: general_log

Table: help_category

Table: help_keyword

Table: help_relation

Table: help_topic

Table: host

Table: ndb_binlog_index

Table: plugin

Table: proc

Table: procs_priv

Table: servers

Table: slow_log

Table: tables_priv

Table: time_zone

Table: time_zone_leap_second

Table: time_zone_name

Table: time_zone_transition

Table: time_zone_transition_type

Table: user

Database "test"

Deprecated: Function mysql_list_tables() is deprecated in F:\Progs\Apache\htdocs\index.php on line 19


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

Так же при неправильно установленном или настроенном MySQL сервере, скрипт вывел бы сообщение об ошибке.

Если это случилось, переустановите сервер заново! Итак, мы, наконец, имеем в своём распоряжении собственный (хоть и только локальный) сервер, на котором сможем тестировать php-скрипты, фейки и многое другое.

Но самое главное - теперь у нас есть возможность лекго изучать php, используя наш сервер как тренировочную площадку!

PatrickxDDD


Рег
12 Jan, 2014

Тем
165

Постов
236

Баллов
1886
  • 08, Feb 2014
  • #2
D3XTR:
Размер шрифта меньше сделай ,читать не возможно.
Исправил
 

PatrickxDDD


Рег
12 Jan, 2014

Тем
165

Постов
236

Баллов
1886
Тем
49554
Комментарии
57426
Опыт
552966

Интересно