Сервер своими руками apache

Добавил пользователь Евгений Кузнецов
Обновлено: 04.10.2024

Для установки сервера Apache необходимо установить пакеты apache и apache-docs. В первом из них находится сам сервер, а во втором — документация. Желательно устанавливать самую новую версию. В последних версиях вам нужно установить еще и пакет apache-common, содержащий необходимые файлы для запуска сервера. Проще всего установку Apache можно произвести, введя следующую команду:

После установки сервер конфигурируется для запуска в режиме standalone, то есть он будет постоянно находиться в памяти. Я не рекомендую изменять этот режим. Для запуска и останова сервера Apache вы можете воспользоваться командами:

Теперь попробуйте обратиться к этому серверу с другого компьютера вашей сети:

Рис. 12.1. Первое обращение к серверу Apache

Если вы увидите приветствие сервера в первом и во втором случаях, значит, ваш сервер Apache нормально работает и можно приступать к его дальнейшему конфигурированию. Если в первом случае у вас произошла ошибка, значит, искать ее нужно на локальном уровне. При этом, если сеть нормально работает, то, скорее всего, вы просто забыли запустить сервер. Появление ошибки во втором случае может быть связано с неправильной установкой директивы ServerName или же используемое вами имя не прописано в системе DNS.

Примечание. MIME (Multipurpose Internet Mail Extensions) — многоцелевое расширение электронной почты в сети Интернет. Используется не только при работе с электронной почтой, но и служит для описания различных типов данных, например, текстовых, графических. Описание типа MIME включает в себя наименование типа, подтипа и расширение (например, text/plain txt).

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

1. Общие. К общим директивам относятся глобальные директивы, влияющие на работу всего Web-сервера. Это директивы ServerName, ServerType, Port, User и Group, ServerAdmin, ServerRoot, PidFile, DocumentRoot, UserDir.

2. Директивы протоколирования: ErrorLog, TransferLog, HostnameLookups.

3. Директивы ограничения доступа: AllowOverride, Options, Limit.

4. Директивы управления производительностью: StartServers, MaxSpareServers, MinSpareServers, а также директива CacheNegotiatedDocs.

5. Директивы обеспечения постоянного соединения с клиентом: Timeout, KeepAlive, KeepAliveTimeout.

6. Директивы настройки отображения каталога. Оформить отображение каталогов можно с помощью директив настройки отображения каталогов: DirectoryIndex, FancyIndexing и AddIconByType.

8. Директивы перенаправления: Redirect, Alias и ScriptAlias.

9. Директивы для работы с многоязычными документами: AddLanguage и LanguagePriority.

10. Директивы обработки MIME-типов. Настроить свой сервер для обработки различных MIME-типов можно с помощью директив DefaultType, AddEncoding, AddType, AddHandler и Action.

11. Директивы создания виртуальных узлов: VirtualHost, Listen, BindAddress.

ServerType — директива, которая определяет тип сервера. По умолчанию используется значение standalone. Если вы хотите достичь максимальной производительности вашего Web-сервера, не изменяйте эту опцию.

Сервер Apache для каждого соединения запускает отдельную копию, которая будет обрабатывать запросы клиента. Управлять запущенными копиями позволяют директивы StartServers, MinSpareServers, MaxSpareServers.

StartServers, MaxSpareServers, MinSpareServers. Как уже отмечалось выше, для каждого нового соединения создается новая копия процесса сервера. Директива StartServers задает количество копий, которые будут созданы при запуске исходной копии сервера. При этом исходная копия сервера получает запросы и передает их свободным копиям. Это позволяет равномерно распределить нагрузку между отдельными процессами и повысить производительность сервера, однако на практике все не так хорошо, как хотелось бы. Существенного прироста производительности можно добиться только в случае большой загрузки сервера. По умолчанию запускается пять копий сервера.

Для работы этих директив необходимо, чтобы сервер был запущен в автономном режиме.

Port — директива, задающая номер порта, который будет использоваться для установки соединения. По умолчанию используется порт 80. Если вы хотите запустить сервер Apache с использованием этого или любого другого порта, номер которого меньше 1024, вы должны обладать правами суперпользователя. Но даже если у вас нет таких прав, вы можете запустить сервер для работы с портом, номер которого превышает значение 1024. Обычно используется номер 8080 или 8000.

HostnameLookups on|off. Сервер apache ведет журнал доступа других компьютеров. Если вы включите данную опцию (on), то в журнал будет записано доменное имя компьютера-клиента. Если эта опция выключена (off), в журнал будет записан IP-адрес клиента. Включение данной опции замедляет работу сервера, так как требуется дополнительное время на ожидание ответа от сервера DNS.

User и Group. Директивы User и Group определяют идентификаторы пользователя и группы, от имени которых будет работать сервер. Данные идентификаторы присваиваются серверу, если он запущен в автономном режиме. Можно использовать как имена пользователей, так и их числовые эквиваленты — UID. По умолчанию используется имя пользователя nobody. Из соображений безопасности не рекомендуется изменять это значение и присваивать имя реального пользователя. В этом случае Web-сервер получит доступ только к тем файлам, которые разрешены для чтения всем пользователям. Нужно заметить, что указанный пользователь и группа должны существовать в вашей системе. Ни в коем случае не запускайте сервер от имени пользователя root!

После модификации этого файла нужно ввести команду newaliases. Данную команду нужно вводить, зарегистрировавшись в системе как суперпользователь.

PidFile — с помощью этой директивы указывается имя файла, в котором исходный процесс сервера будет регистрироваться. Этот файл содержит свой идентификатор процесса (PID). Данную информацию можно использовать для останова или перезапуска сервера при написании собственных сценариев. Данный файл будет создан, только если сервер Apache запущен в автономном режиме.

CacheNegotiatedDocs — данная директива позволяет прокси-серверу, например SQUID, не кэшировать документы, которые не генерируются автоматически, то есть в процессе выполнения различных сценариев. Согласно протоколу НТТР/1.0, сервер Apache с каждым пакетом посылает заголовок Pragma: no-cache прокси-серверу, что позволяет отключить кэширование документов (в протоколе НТТР/1.1 вместо Pragma используется Cache-Control). Если вы включите данную директиву, то вы разрешите прокси-серверу кэшировать документы. К сожалению, далеко не все прокси-серверы отключают кэширование после получения данного заголовка. При написании своего CGI-сценария, вам, скорее всего, придется самому выводить заголовок Pragma (или Cache-Control) и мета-тэги, которые указывают на дату последнего обновления документа.

Timeout — задает промежуток времени в секундах, в течение которого сервер продолжает попытки возобновления приостановленной передачи данных. Значение директивы Timeout распространяется не только на передачу, но и на прием данных. Если вам нужно получать большие файлы, рекомендую увеличить данное значение.

KeepAlive — разрешает постоянные соединения, то есть такие соединения, в которых производится более одного запроса за один раз.

KeepAliveTimeOut — данная директива определяет тайм-аут для постоянного соединения.

MaxClients. Иногда поступающих запросов настолько много, что компьютеру не хватает ресурсов для загрузки новых копий сервера в память и их выполнения. Директива MaxClients (значение по умолчанию — 150) определяет максимальное число копий сервера, которые могут выполняться одновременно.

MaxRequestsPerChild. После обработки определенного количества запросов, указанного в директиве MaxRequestsPerChild, копия сервера завершается, а вместо нее запускается новая.

Listen — позволяет вам связывать Apache с определенным IP-адресом и (или) дополнительными портами.

DocumentRoot — директива, определяющая местонахождение корневого каталога документов вашего сервера.

UserDir — эта директива задает названия подкаталога в домашнем каталоге пользователя, из которого берутся документы. В этом случае, вы активизируете возможность использования пользовательских каталогов. Если вы не хотите включать эту возможность, укажите UserDir DISABLED. Более подробно эта директива будет рассмотрена позже.

FancyIndexing. При получении запроса, не содержащего имя документа, сервер передаст один из файлов, указанных в директиве DirectoryIndex. Если такой файл не существует, клиенту будет возвращено оглавление каталога. При включении директивы FancyIndexing, в оглавлении каталога будут использованы значки и описания файлов. Если директива FancyIndexing выключена, оглавление будет представлено в более простом виде.

AddIconByType — сопоставляет значок с типом файла. Значок будет использоваться при выводе каталога, если включена директива FancyIndexing. Директива AddIconByType имеет следующий формат:

Параметр TEXT определяет текстовое описание типа, которое увидят пользователи, использующие текстовый браузер или пользователи, у которых отключено отображение рисунков. Параметр URL определяет адрес значка, а параметр mime-type — это тип файла, с которым нужно сопоставить значок. Полный перечень MIME-типов приведен в файле apache-mime. types. В качестве имени файла можно задать не только MIME-тип, но и символы, которыми заканчивается имя файла (см. листинг 12.1), но для этого нужно использовать директиву AddIcon вместо AddIconByType.

Первая директива в листинге сопоставляет типу video значок /icons/movie.jpg. Вторая директива сопоставляет бинарным файлам *.bin и *.ехе значок /icons/binary.jpg. Значок по умолчанию задается директивой DefaultIcon.

DefaultType. Если запрашиваемый клиентом тип не соответствует ни одному из MIME-типов, используется MIME-тип, указанный в директиве DefaultType.

AddEncoding. Для сокращения времени передачи файла клиентам используется сжатие данных. Браузеры имеют встроенные программы для распаковки, запускаемые при получении архивов определенных MIME-типов. Именно эти MIME-типы и указываются в директиве AddEncoding.

AddLanguage. В большинстве браузеров можно задать предпочитаемый язык. Благодаря этому вы можете предоставлять документы на разных языках.

Директива AddLanguage сопоставляет расширение файла аббревиатуре языка. Для русского языка используется аббревиатура ru , для английского — еп.

При этом допускается использование как нового, так и старого URL-адреса.

Alias — с помощью директивы Alias можно предоставить доступ не только к файлам, находящимся в каталоге, указанном директивой DocumentRoot и его подкаталогах, но и в других каталогах. По умолчанию определен только псевдоним для каталога /icons.

ScriptAlias — аналогична директиве Alias, но позволяет задать месторасположение каталога для CGI-сценариев.

AddType — с помощью этой директивы можно добавить новый MIME-тип, который не указан в файле apache-mime, types.

AddHandler и Action. Директива AddHandler позволяет сопоставить определенному MIME-типу какой-нибудь обработчик. А с помощью директивы Action можно определить какое-нибудь действие для обработчика. Например, вы можете запустить какую-нибудь программу для обработки файла данного типа. Использование этих директив, я думаю, лучше всего продемонстрировать на примере (см. листинг 12.2).

Листинг 12.2. Применение директив Add Handler и Action

ErrorDocument — директива, сопоставляющая коды ошибок сервера URL-адресам на этом же сервере.

Теперь рассмотрим директивы управления доступом к отдельным каталогам. Данные директивы очень похожи на блочные директивы сервера ProFTPD, которые обсуждались в предыдущей главе.

Directory — обычно определяет свойства каталога (см. листинг 12.3).

Листинг 12.3. Директива Directory

Свойства каталога можно указывать в директиве Directory или в файле .htaccess, который находится в том каталоге, для которого необходимо установить нужные параметры.

В блоке Directory могут находиться директивы управления доступом. К ним относятся директивы AllowOverride, Options, Limit. Рассмотрим по порядку все эти директивы. Директива AllowOverride может принимать значения, указанные в табл. 12.1.

Значения директивы AllowOverride Таблица 12.1

Значение Описание
None Сервер Apache будет игнорировать файлы .htaccess. Рекомендую установить данную опцию, так как это повысит производительность сервера
All Пользователи имеют право переопределять в файлах .htaccess глобальные параметры доступа. Из соображений безопасности лучше не использовать этот режим
Options Разрешает использовать директиву Options
Limit Разрешает использовать директиву Limit
AuthConfig Разрешает использование директив AuthName, AuthType, AuthUserFile и AuthGroupFile
FileInfo Разрешает использовать в файлах .htaccess директивы AddType и AddEncoding

Limit метод. Директива Limit ограничивает доступ к файлам в определенном каталоге.

Параметр метод определяет метод передачи, например, GET или POST. Директиву Limit можно использовать внутри блоков Directory, Location или в файле .htacccess.

Допустимые опции директивы Options Таблица 12.2

Опция Описание
None He разрешается использование каких-либо функций
All Разрешаются все функции
FollowSymLinks Разрешается использовать символические ссылки. С точки зрения безопасности не рекомендуется использовать этот режим
SymLinkslfOwnerMatch Разрешается использование символических ссылок, если ссылка указывает на объект, который принадлежит тому же пользователю, что и ссылка
ExecCGI Разрешается выполнение CGI-сценариев
Indexes Если эта опция выключена, сервер не будет передавать содержимое каталога при отсутствии файла index.html
Includes Разрешено использование серверных включений. Рекомендую отключить эту опцию, поскольку это сильно нагружает сервер
IncludesNoExec Разрешает использование серверных включений, но запрещает запуск из них внешних программ

Примечание. В интерфейсе CGI (Common Gateway Interface) определены два метода передачи данных пользователя сценарию: Get и Post. Метод передачи определяется в форме передачи данных. Например:

Сервер Apache позволяет ограничить с помощью директивы Limit передачу данных одним из этих методов.

В блоке Limit можно использовать такие директивы: allow (разрешить), deny (запретить), order (порядок), require (требуется). Директивы allow и deny аналогичны директивам allow и deny файла конфигурации сервера ProFTPD. После директивы allow следует слово from, после которого можно указать IP-адрес, адрес сети, домен или просто имя компьютера. Слово all обозначает все компьютеры. Например, вам требуется запретить доступ всем компьютерам, кроме компьютеров, которые входят в домен ru (см. листинг 12.4).

Листинг 12.4. Директивы allow, deny

Следующий пример показывает, как разрешить доступ компьютерам только из вашей сети (см. листинг 12.5). Пусть, при этом, ваша сеть имеет адрес 192.168.1.0

Листинг 12.5. Разрешения доступа подсети 192.168.1.0

Директива order определяет порядок выполнения директив allow и deny. Кроме значений allow, deny и deny, allow, директива order может содержать значение mutual-failure. В этом случае доступ будет отказан всем компьютерам, которые явно не указаны в списке allow.

Директиву require можно использовать для защиты каталога паролем. После названия директивы должен следовать список элементов: имена пользователей, групп, которые заданы в директивах AuthUserFile и AuthGroupFile. Можно использовать параметр valid-user, который укажет серверу предоставить доступ любому пользователю, имя которого имеется в директиве AuthUserFile, если он введет правильный пароль. Пример использования директив Limit, require, AuthUserFile приведен в листинге 12.6.

Этичный хакинг и тестирование на проникновение, информационная безопасность

Оглавление

Если вас интересует установка Apache, PHP, MySQL и phpMyAdmin в Windows, то смотрите эту инструкцию.

Веб-сервер на компьютере

Веб-сервер на своём компьютере это очень удобный способ работы с веб-приложениями в любых целях:

  • тестирование новых CMS и других программ
  • написание и отладка PHP скриптов
  • организация своего собственного рабочего окружения (разные полезные программы запущенные на веб-сервере — органайзеры, агрегаторы)
  • организация ресурсов локальной сети (файловые обменники, чаты, потоковое видео и другие сервисы для всех устройств в квартире)
  • создание лаборатории (обучение тестированию на проникновение со специальными уязвимыми веб-приложениями)

Из чего состоит веб-сервер

В большинстве случаев сервер включает в себя четыре основные компонента:

  • Apache — это сам веб-сервер, который обрабатывает пришедшие от пользователей запросы и показывает страницы сайтов. Без дополнительных модулей Apache преимущественно предназначен для показа статичных страниц, в которых не происходит изменений на стороне сервера
  • PHP — это среда для работы PHP скриптов. PHP скрипты позволяют делать очень функциональные веб-сайты, динамичные веб-приложения, сохранять данные в базу данных и запрашивать данные оттуда
  • MariaDB — это система управления базами данных. Чтобы было проще понять — это и есть база данных, в которой хранится вся информация. До недавнего времени самой, пожалуй, популярной СУБД была MySQL. Что касается MariaDB, то она основана на MySQL, но с некоторыми доработками. Если вам интересно, в чём отличие, то смотрите подробности здесь. Если для приложения в требованиях стоит MySQL, то MariaDB также подойдёт, так как они совместимы друг с другом
  • phpMyAdmin — это пример веб-приложения, которое работает на PHP. С помощью phpMyAdmin можно просматривать базы данных, создавать новые базы данных и таблицы, наполнять их и удалять, делать резервные копии баз данных и восстанавливать из бэкапов. phpMyAdmin очень популярно, поэтому многие считают его частью веб-сервера

Установку сервера я покажу на примере Windows 10.

Установите скаченный vc_redist — к нему больше не будет возвращаться.


Установка веб-сервера в Windows

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

В корне диска C:\ создайте каталог Server. В этом каталоге создайте два подкаталога: bin (для исполнимых файлов) и data.

Перейдите в каталог C:\Server\data\ и там создайте подпапки DB (для баз данных) и htdocs (для сайтов).

В папке C:\Server\data\DB\ создайте подпапку data.

Карта важных папок, которые упоминаются в данной инструкции:

Установка Apache 2.4 в Windows

Для установки правильной корневой папки сервера строку

Для начала рекомендую включить только mod_rewrite (по ссылке целый учебник по этому расширению!), для этого строку

Найдите идущие подряд строки

и замените их на

Если коротко, то DocumentRoot — это основная директория, в которой будет размещены файлы всех виртуальных хостов и сайтом. А Directory в данном случае устанавливает настройки основного хоста (при необходимости можно создать несколько виртуальных хостов с разными настройками).

Чуть ниже найдите строки (комментарии приведены для ориентировки):

И замените на (меняется только последняя строка):

Этой настройкой мы включили поддержку файла .htaccess. Он нужен для работы mod_rewrite и других возможностей. С помощью файла .htaccess можно запрещать доступ к конкретной папке и менять некоторые настройки сервера на уровне папок.

Сохраните файл конфигурации.

Теперь откройте командную строку Windows, для этого нажмите клавиши Win+x и выберите там Windows PowerShell (администратор):


В открывшееся окно скопируйте команды для установки и запуска Apache (после введения каждой команды нажмите ENTER):



Веб-сервер работает, но в папке с документами нет ни одного файла.

Добавьте в папку C:\Server\data\htdocs\ HTML файлы, например файл hello.htm со следующим содержимым:




Установка MariaDB в Windows

Далее мы настроим и запустим MariaDB. Начните с того, что содержимое архива mariadb-xx.x.x-winx64.zip распакуйте в папку C:\Server\bin\. Новую папку переименуйте в mariadb. Получится, что MariaDB размещена на диске в папке C:\Server\bin\mariadb\.

В папке C:\Server\bin\mariadb\ создайте файл my.cnf и скопируйте в него:

Сохраните и закройте этот файл.

Для установки и запуска службы выполните команды:

Установка PHP в Windows

Для установки и подключения PHP к Apache в Windows, в папке c:\Server\bin\ создайте подпапку PHP и скопируйте в неё содержимое архива php-x.x.xx-Win32-VC15-x64.zip.

В каталоге C:\Server\bin\PHP\ найдите файл php.ini-development и переименуйте его в php.ini, затем откройте его текстовым редактором.

В этом файле найдите строку

и замените её на:

Теперь найдите строки, которые начинаются на ;extension=:

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

Также раскомментируйте строки (кроме одной):

Сохраните и закройте этот файл.

Сохраните и закройте файл.

После этого в командной строке перезапустите Apache:

Для проверки, что PHP работает в Windows, в каталоге c:\Server\data\htdocs\ создадим файл с названием i.php

В этот файл скопируйте:


Установка phpMyAdmin в Windows

В каталог c:\Server\data\htdocs\ скопируйте содержимое архива phpMyAdmin-x.x.x-all-languages.zip. Переименуйте полученную папку в phpMyAdmin, получится, что phpMyAdmin у нас размещён в каталоге C:\Server\data\htdocs\phpMyAdmin\.

В этой папке создайте текстовым редактором файл config.inc.php и скопируйте в этот файл:

Сохраните и закройте этот файл.



Там будет написано:

Как обезопасить веб-сервер на Windows

После запуска сервера не будет лишним позаботиться о его безопасности. Сетевая служба несёт повышенный риск, поскольку по своему определению (она же сетевая!) подразумевает, что к ней могут подключиться другие устройства и лица, в том числе злоумышленники. При определённых условиях, скомпрометирован может быть не только веб-сервер, но и весь компьютер целиком на котором этот сервер запущен и даже другие устройства в локальной сети. Поскольку в Windows Apache работает с повышенными привилегиями, а права доступа на файлы не настроены должны образом, то веб-сервер с уязвимым скриптом может злоумышленнику предоставить доступ к любому файлу на компьютере.

Запрет доступа из вне к MariaDB/MySQL

Стандартный веб-сервер, в том числе тот, который мы только что установили, имеет две сетевые службы:

Так вот, для MariaDB мы в файле настройки прописали:

Это означает, что она прослушивает только IP адрес 127.0.0.1, который относится к Loopback. Это, в свою очередь, означает, что никто из вне (вне компьютера, на котором работает веб-сервер), не сможет подключиться к MariaDB/MySQL. При этом сайты и другие приложения будут работать с базами данных как ни в чём не бывало — они как раз и используют такие соединения к адресу 127.0.0.1.

То есть MariaDB уже защищена.

Запрет доступа из вне к Apache

Что касается веб-сервера, то здесь настройка зависит от ваших нужд — для чего именно нужен сервер?

И замените его на

Чтобы изменения вступили в силу, перезапустите сервер:

Если вы хотите сделать так, чтобы сервер Apache был доступен для всех в локальной сети, но не доступен в глобальной сети, то есть два варианта.

  • Также есть второй способ, более простой чем первый:

В папке C:\Server\data\htdocs\ (это наша корневая папка веб-документов), создайте файл .htaccess, и в него впишите:


Вы можете отредактировать приведённую выше строку под ваши нужды, например, можно убрать диапазоны 10.0.0.0/8 и 172.16.0.0/12, если они не используются в вашей локальной сети. IP адреса из 10.0.0.0/8 могут использоваться Интернет-провайдером для NAT, а 172.16.0.0/12 могут использоваться для локальных сетей на уровне города (такие есть/были у некоторых провайдеров). Следовательно, если вы оставите диапазоны 10.0.0.0/8 и 172.16.0.0/12, то при стечении ряда обстоятельств (кабель Интернет-провайдера напрямую подключён к компьютеру без роутера, а Интернет-провайдер использует диапазоны 10.0.0.0/8 и 172.16.0.0/12) пользователи этих локальных сетей смогут подключиться к вашему серверу при этих настройках.

Поэтому также попробуйте

Если всё работает и проблем нет, то остановитесь именно на втором варианте.

Установка пароля на MariaDB/MySQL

По умолчанию у пользователя root пустой пароль. Поскольку мы отключили доступ к серверу MariaDB/MySQL из вне, то это не так опасно. Тем не менее, остаётся угроза, что злоумышленник найдёт уязвимость в веб-приложении и сможет выполнить подключение через него. Поэтому при желании для дополнительного усиления сервера можно установить пароль для пользователя root в MariaDB/MySQL.

Для этого откройте командную строку, в неё введите:

Замените новый_пароль на ваш пароль.

Заключение

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

Связанные статьи:

факультете информационной безопасности от GeekBrains? Комплексная годовая программа практического обучения с охватом всех основных тем, а также с дополнительными курсами в подарок. По итогам обучения выдаётся свидетельство установленного образца и сертификат. По этой ссылке специальная скидка на любые факультеты и курсы!


Рекомендуется Вам:

15 комментариев to Инструкция по установке веб-сервера Apache c PHP, MariaDB и phpMyAdmin в Windows. Настройка безопасности локального веб-сервера

Здравствуйте, Алексей. Простите за оффтоп, пишу в самую свежую на данный момент Вашу статью.

История такая… Решил я установить кали линукс на флешку по инструкции с вашего сайта, но сдуру делал все не на ВМ, а на своем реальном компе. Как итог - ничерта не работает, а к тому же виндовс чудом загрузившийся с одного из двух дисков не распознает второй HDD от слова совсем. В биосе диск тоже не видно. Спасите. Я вас очень прошу, времени мало. Напишите мне на емейл или прямо здесь, если не обидитесь за грязь в комментариях к другой теме .простите, пожалуйста, но очень нужна ваша помощь! Как быть теперь?


Alexey :

Странно, что БИОС не видит диск - может диск просто умер от старости? Даже если предположить, что вы отформатировали его в ext4, а затем установили на него ОС, то БИОС должен видеть этот диск. Попробуйте пошевилить штекеры, подключить диск к другому проводу.

Если компьютер увидит диск и если вы действительно установили на него ОС, то можно попытаться спасти некоторые файлв с помощью PhotoRec и TestDisk.

наверное дурацкий вопрос… а как создать файл .htaccess винда не хочет записывать файл начинающийся с точки, считает что это расширение, а имя пустое


Alexey :

Проблема в том, что стандартный проводник добавляет к такому файлу расширение .txt. Самый простой способ — использовать что угодно, кроме стандартного проводника. Например, я делал в Double Commander (бесплатный двухпанельный файловый менеджер, полный аналог платного Total Commander'а).

Народ, у меня такой вопрос. А можно папку Server не на диске С, а на диске E или другом диске создать?


Alexey :

Никаких ограничений, где будет эта папка, нет. Самое главное — чтобы этот диск был доступен (например, если вы выбрали в качестве папки для сайтов USB флешку или сетевой диск) при запуске веб-сервера, иначе сервер не запустится из-за ошибки.

Главное — правильно прописать конфигурационные файлы под новые пути — это вызывает ошибки у многих, хотя достаточно правильно настроить всего две директивы:

Смотрите как они настраиваются в этой статье и делайте по аналогии.

К моменту запуска папка с сайтами должна быть создана — иначе веб-сервер не запустится из-за ошибки.

Добрый день! на этом шаге появляется системная ошибка 1067. Не понимаю, где моя ошибка?

Для установки и запуска службы выполните команды:

net start mysql


Alexey :

Приветствую! Приведите содержимое файла C:\Server\data\DB\data\*.err (файл находоится в папке C:\Server\data\DB\data\, имя его зависит от имени компьютера, имеет файловое расширение .err).

У меня также не стартует mariadb, со словами "Не удалось запустить службу "MySQL". Системная ошибка. Системная ошибка 1067. Процесс был неожиданно завершен."

В логе написано:


Alexey :

99.99% что вы не сделали это:

Переместите папку C:\Server\bin\mariadb\data\ в папку C:\Server\data\DB\.

Или сделали это как-то неправильно…

Суть ошибки — просто нет таблицы, которая обязательно нужна для работы. Но эта таблица точно есть — если не забыть сделать перенос, как написано выше.

Большое спасибо! Дело было именно в этом. Вот что значит невнимательность. Привык к MYSQL.

localhost запускается , но файлы внутри htdocs не видит? в чем дело?


Alexey :

Расширение mysqli не найденою.Пожалуйста, проверьте ваши настройки PHP. Смотрите our documentation для дополнительной информации.

Веб-сервер — это программа, которая предназначена для обработки запросов к сайтам и отправки пользователям страниц веб-сайтов. Самый популярный пример веб-сервера это Apache.

PHP — это язык программирования. Также называется среда для выполнения скриптов, написанных на PHP. В операционной системе, в том числе и Windows, PHP может быть установлен самостоятельно, без веб-сервера. В этом случае программы (скрипты) на PHP можно запускать из командной строки. Но веб-приложения очень часто используют PHP, данный интерпретатор стал, фактически, стандартом веб-серверов и поэтому они почти всегда устанавливаются вместе.

Что касается phpMyAdmin, то это просто скрипт на PHP, который предназначен для работы с базами данных — наглядно выводит их содержимое, позволяет выполнять в графическом интерфейсе такие задачи как создавать базы данных, создавать таблицы, добавлять, изменять и удалять информацию и т. д. По этой причине phpMyAdmin довольно популярен, хотя и не является обязательной частью веб-сервера.

Особенность Apache и других компонентов веб-сервера в том, что их корни уходят в Linux. И эти программы применяют в своей работе основные концепции этой операционной системы. Например, программы очень гибки в настройке — можно выполнить установку в любую папку, сайты также можно разместить в любой папке, в том числе на другом диске, не на том, где установлен сам веб-сервер. Даже файлы журналов можно вынести на третий диск и так далее. У веб-сервера много встроенных модулей — можно включить или отключить их в любом сочетании, можно подключить внешние модули. Можно создать много сайтов на одном веб-сервере и для каждого из них установить персональные настройки. Но эта гибкая настройка выполняется через текстовые файлы — именно такой подход (без графического интерфейса) позволяет описать любые конфигурации

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

Мы не будем делать какие-то комплексные настройки — наша цель, просто установить веб-сервер на Windows. Тем не менее было бы странно совсем не использовать такую мощь в настройке. Мы разделим сервер на две директории: в первой будут исполнимые файлы, а во второй — данные (файлы сайтов и баз данных). В будущем, когда возникнет необходимость делать резервные копии информации или обновлять веб-сервер, вы поймёте, насколько удобен этот подход!

Мы установим сервер в отдельную директорию. Для этого в корне диска C:\ создайте каталог Server. В этом каталоге создайте 2 подкаталога: bin (для исполнимых файлов) и data (для сайтов и баз данных).

Перейдите в каталог data и там создайте подпапки DB (для баз данных) и htdocs (для сайтов).

Перейдите в каталог C:\Server\data\DB\ и создайте там пустую папку data.

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

Как установить Apache на Windows


Распакуйте папку Apache24 из этого архива в C:\Server\bin\.

В нём нам нужно заменить ряд строк.

Сохраняем и закрываем файл. Всё, настройка Apache завершена! Описание каждой изменённой директивы вы найдёте на этой странице.

Откройте командную строку (это можно сделать нажав одновременно клавиши Win+x).


Выберите там Windows PowerShell (администратор) и скопируйте туда:

Если поступит запрос от файервола в отношение Apache, то нажмите Разрешить доступ.


Теперь вводим в командную строку:

И нажмите Enter.



Это означает, что веб-сервер работает. Чтобы увидеть там файлы, добавьте их в каталог c:\Server\data\htdocs\ - это главная папка для данных сервера, где будут размещаться все сайты.

Как установить PHP на Windows


В папке c:\Server\bin\ создаём каталог PHP и копируем в него содержимое только что скаченного архива.

И перезапускаем Apache:

В каталоге c:\Server\data\htdocs\ создаём файл с названием i.php, копируем в этот файл:


Настройка PHP 8

Настройка PHP происходит в файле php.ini. В zip-архивах, предназначенных для ручной установки и для обновлений, php.ini нет (это сделано специально, чтобы при обновлении случайно не удалить ваш файл с настройками). Зато есть два других, которые называются php.ini-development и php.ini-production. Любой из них, при ручной установке, можно переименовать в php.ini и настраивать дальше. На локалхосте мы будем использовать php.ini-development.

Открываем файл php.ini любым текстовым редактором, ищем строчку

и заменяем её на

Теперь найдите группу строк:

и замените её на:

теперь раскомментируйте эту группу строк:

Этими действиями мы включили расширения. Они могут понадобиться в разных ситуациях для разных скриптов. Сохраняем файл и перезапускаем Apache.

Материалы по дополнительной настройке, в том числе подключение поддержки PERL, Ruby, Python в Apache (только для тех, кому это нужно):

Как установить MySQL в Windows



В каталог c:\Server\bin\ распаковываем файлы из только что скаченного архива. Распакованная папка будет называться примерно mysql-8.0.17-winx64 (зависит от версии), переименуйте её в mysql-8.0.

Заходим в эту папку и создаём там файл my.ini. Теперь открываем этот файл любым текстовым редактором и добавьте туда следующие строки:

Сохраните и закройте его.

Настройка завершена, но нужно ещё выполнить инициализацию и установку, для этого открываем командную строку от имени администратора и последовательно вводим туда:

По окончанию этого процесса в каталоге C:\Server\data\DB\data\ должны появиться автоматически сгенерированные файлы.

Теперь служба MySQL будет запускаться при каждом запуске Windows.

Как установить phpMyAdmin в Windows

Прямая ссылка на самую последнюю версию: phpMyAdmin-latest-all-languages.zip.

В каталог c:\Server\data\htdocs\ копируем содержимое только что скаченного архива. Переименовываем эту папку в phpmyadmin.

В каталоге c:\Server\data\htdocs\phpmyadmin\ создаём файл config.inc.php и копируем туда:

В качестве имя пользователя вводим root. Поле пароля оставляем пустым.

Заключение

Вот и всё — теперь у вас есть свой персональный локальный веб-сервер на своём домашнем компьютере.

Большое количество материалов по Apache на русском языке специально для Windows вы найдёте на этой странице.

Продолжаем собирать локальный сервер на своем компьютере, с осью Windows. После установки трех компонентов локального сервера AMP (Apache+MySQL+PHP) на свой компьютер, работающий под Windows, переходим к их настройке. В этой статье настроим веб-сервер, Apache.

Подготовка к настройке веб-сервера Apache

Если вы делаете установку локального сервера без временных пауз, вам достаточно легко, будет вспомнить, куда вы установили компоненты сервера Apache; MySQL; PHP.

Общая задача настроек Apache; MySQL; PHP это связать их воедино, указав в каждом из них, расположение других серверов. А также, нужно выставить наиболее приемлемые настройки параметров этих компонентов.

Настройка веб-сервера Apache по шагам

Идем в директорию установки Apache. В прошлых статьях я ставил Apache в папки c:/www ( установка Apache MSI ) и c:/Apache24;

Настройка веб-сервера Apache (редактирование файла) делаем в удобном редакторе Notepad++.

(включаем загрузку для модуля mod_rewrite)

Настройка веб-сервера Apache включаем загрузку для модуля mod_rewrite

включаем загрузку для модуля mod_rewrite 2. В конце группы директорий LoadModule, прописываем расположение вашего уже установленного сервера PHP и этим, подключаем PHP к Apache (расположение пишите свои).

Порт 80 Apache

4. Проверьте правильность директивы (проверяем путь): DocumentRoot “C:/www/htdocs”

DoccumentRoot

5 Для управление Apache на сайтах создаются файлы .htaccess. Чтобы включить в работу этот файл в блоке директив:

Меняем [None] на команду [All]

поменять none на all

6. В строку [DirectoryIndex:] вписываем максимальное количество разрешенных расширений [index.html index.shtml index.htm index.php index.phtml]

Строка 322

раскомментирование строк

Дополняем их двумя строками:

поддержка SSL

(тем самым, включаем SSL на Apache)

8. По всему файлу проверяем правильность адреса расположения Apache

Читайте также: