Как установить apache debian

Как установить apache debian

Веб сервер Apache

Установка Apache в Debian

Для того что бы установить пакет с apache2, достаточно выполнить

APT автоматически выберет один из четырёх движков, обычно это apache2-mpm-prefork или apache2-mpm-worker (apache2-mpm-event и apache2-mpm-itk не рекомендуются). В описание этих пакетов содержаться обзор их основных отличий.

Скрипты / Динамический контент

Апач может использовать разные внешние программы и скриптовые языки, через CGI или FastCgi (libapache2-mod-fcgid). Апач может использовать различные скриптовые языки или соединяться с сервером приложений для создания динамического контента:

Модули

В Дебиан есть много различных модулей для Апач, каждый пакет имеет префикс libapache2-mod Уже установленые модули, могут включены или отключены с помощью команды a2enmod и a2dismod.

Дополнительная информация

Эта команда выдаст весь список программ доступных в репозитариях Дебиан, связанных с Апач. В этом списке также будут пакеты: -doc, -dev, -common, -perl, и др..

Пользователем от имени которого запущен Апач, в пакетах Дебиан указан как ‘www-data’. Это создаёт путаницу: файлы с которыми работает Апач, могут не принадлежать пользователю ‘www-data’, и Апач не сможет их изменить. Это сделано в целях безопасности.

Предложение от 8host.com

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

В этом мануале вы узнаете, как установить веб-сервер Apache на сервер Debian 9.

Требования

  • Сервер Debian 9.
  • Пользователь с доступом к sudo (все действия нужно выполнить в сессии этого пользователя).
  • Базовый брандмауэр.

Все необходимые инструкции можно найти в мануале по начальной настройке.

1: Установка Apache

Пакет Apache есть в стандартном репозитории Debian, потому его можно установить с помощью стандартного пакетного менеджера.

Обновите индекс пакетов и установите apache2.

sudo apt update
sudo apt install apache2

Команда установит Apache и его зависимости.

2: Настройка брандмауэра

Теперь нужно отредактировать настройки брандмауэра и открыть доступ к стандартному порту Apache. Если вы выполнили мануал по начальной настройке сервера, брандмауэр UFW блокирует доступ к веб-серверу.

Во время установки Apache регистрируется в UFW и предоставляет несколько профилей, которые упрощают процесс управления доступом к Apache.

Чтобы просмотреть профили приложений ufw, введите:

sudo ufw app list

Вы увидите список профилей:

Available applications:
AIM
Bonjour
CIFS
. . .
WWW
WWW Cache
WWW Full
WWW Secure
. . .

Профили Apache начинаются с WWW:

  • WWW: поддерживает трафик по порту 80 (стандартный порт).
  • WWW Cache: открывает только порт 8080 (иногда используется для кэширования и проксирования).
  • WWW Full: открывает порты 80 и 443 (шифрованный трафик TLS/SSL).
  • WWW Secure: поддерживает только шифрованный трафик TLS/SSL по порту 443.

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

sudo ufw allow ‘WWW’

Убедитесь, что профиль включен:

sudo ufw status

В выводе вы увидите:

Status: active
To Action From
— —— —-
OpenSSH ALLOW Anywhere
WWW ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
WWW (v6) ALLOW Anywhere (v6)

3: Проверка веб-сервера

После установки Debian 9 запустит Apache.

Чтобы убедиться, что веб-сервер запущен, запросите его состояние:

sudo systemctl status apache2
apache2.service — The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2018-09-05 19:21:48 UTC; 13min ago
Main PID: 12849 (apache2)
CGroup: /system.slice/apache2.service
├─12849 /usr/sbin/apache2 -k start
├─12850 /usr/sbin/apache2 -k start
└─12852 /usr/sbin/apache2 -k start
Sep 05 19:21:48 apache systemd[1]: Starting The Apache HTTP Server.
Sep 05 19:21:48 apache systemd[1]: Started The Apache HTTP Server.

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

Чтобы открыть стандартную посадочную страницу Apache, укажите свое доменное имя или IP сервера. Если у вас нет домена, укажите внешний IP-адрес своего сервера. Если вы не знаете свой IP-адрес, вы можете узнать его с помощью командной строки. Введите:

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

Также вы можете узнать свой IP, запросив его с помощью команды curl.

Примечание: Чтобы установить curl, введите:

sudo apt install curl

Чтобы извлечь icanhazip.com (IPv4) с помощью curl, введите:

curl -4 icanhazip.com

Узнав свой внешний адрес, введите в браузер:

Вы увидите стандартную страницу Apache для Debian 9.

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

4: Управление процессами Apache

Чтобы остановить сервер, введите:

Читайте также:  Как подключить д линк dap 1325

sudo systemctl stop apache2

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

sudo systemctl start apache2

Для перезапуска используйте:

sudo systemctl restart apache2

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

sudo systemctl reload apache2

По умолчанию Apache запускается автоматически вместе с сервером. Чтобы удалить Apache из автозагрузки, отключите сервис:

sudo systemctl disable apache2

Чтобы добавить Apache в автозагрузку, используйте команду:

sudo systemctl enable apache2

5: Настройка виртуального хоста (рекомендуется)

На веб-сервере Apache вы можете использовать виртуальные хосты (аналогичные блокам server в Nginx) для изоляции настроек и размещения нескольких доменов на одном сервере. Здесь используется условный домен example.com, но вы должны заменить его собственным доменом.

Apache в Debian 9 по умолчанию предоставляет один включенный виртуальный хост, который обслуживает каталог /var/www/html. Этого хватит для обслуживания одного сайта, но если вы хотите разместить несколько сайтов, вам нужно создать новые виртуальные хосты. Создайте структуру каталогов в /var/www для сайта example.com, а /var/www/html оставьте как каталог по умолчанию, который будет обслуживаться, если запрос клиента не соответствует другим сайтам.

Создайте каталог example.com, используя флаг -p для создания всех необходимых родительских каталогов:

sudo mkdir -p /var/www/example.com/html

Затем определите права на каталог с помощью переменной $USER:

sudo chown -R $USER:$USER /var/www/example.com/html

Права должны быть правильными, если вы не меняли unmask, но на всякий случай вы можете их проверить:

sudo chmod -R 755 /var/www/example.com

Затем создайте образец страницы index.html с помощью nano или другого редактора:

Вставьте в файл:

Зачастую многие пользователи, которые недавно перешли на Linux с Windows, задаются вопросом, как установить OpenServer на Linux? Конечно, у опытных такой вопрос вызовет лишь усмешку, ведь отличительной частью этой системы является тот факт, что это ненужно в принципе. Можно просто установить LAMP. Аббревиатура LAMP расшифровывается как Linux Apache Mysql PHP, это набор программного обеспечения, который чаще всего используется для разработки сайтов.

На самом деле в интернете полно различных мануалов и инструкций по установке. Но к сожалению значительная часть из них уже устарела, вторая часть не полная. К примеру рассматривается установка php, mysql, а как добавить хосты? А для разработки очень часто нужно работать с таблицами, через терминал с ними работать не удобно. Нужна PhpMyAdmin. В общем сегодня я решил написать самый полный и подробный мануал по установке LAMP сервера на Debian 10. За основу я взял эту инструкцию, но немного модифицировал с расчётом на то, что мы делаем локальный сервер для разработки сайтов. Инструкция получилась немного длинная, но не пугайтесь, зато на выходе мы получим полноценный, готовый к использованию сервер с несколькими сайтами для разработки, готовой панелью PhpMyAdmin и всеми необходимыми плюшками.

И так, начнём с того, что если вы только что установили систему и ничего не делали — вам не помешало бы прочитать статью о первых шагах по этой ссылке. Если Вы это уже сделали — отлично, входим от имени суперпользователя (если вы читали статью, то вы знаете как это сделать) и обновляем репозитории командой:

Устанавливаем сервер

Первым делом нам нужно установить Apache. Делается это элементарно командой:

После этого можете перейти по адресу http://localhost/ и увидеть страницу приветствия. Выглядит она вот так:

Если вы увидели такое же окно — поздравляю! Веб-сервер успешно установлен! 🙂

Но к сожалению в 21-м веке сайты представляют из себя не просто набор HTML страничек. По этому давайте теперь научим наш сервер понимать какой нибудь язяк программирования. К примеру php.

Делается это ещё одной простой командой:

apt install php libapache2-mod-php php-mysql

Но нам ещё нужно где то хранить данные. По этому давайте добавим базу данных. Но в Debian 10 метапакет mysql-server, который традиционно использовался для установки сервера MySQL, был заменен на default-mysql-server. Этот метапакет ссылается на MariaDB , сообщество форка исходного сервера MySQL от Oracle, и в настоящее время это сервер баз данных, совместимый с MySQL по умолчанию, доступный в репозиториях менеджера пакетов на основе debian. Но для долгосрочной совместимости давайте установим MariaDB с использованием действующего пакета программы mariadb-server.

В общем то на этом этапе работу можно считать завершённой. Сервер готов. Но конечно же для полноценной работы нам не хватает панели phpMyAdmin, было бы не плохо сделать так, чтоб можно было работать с несколькими сайтами по разным адресам, иметь папку для бекапов баз данных и другие полезные плюшки. Следующие разделы статьи как раз и посвящены этим самым «плюшкам».

Читайте также:  Задания для проверки памяти

Устанавливаем phpMyAdmin для нашего LAMP сервера

И первое, с чего начнём — это с панели для БД. Работать через терминал конечно весело, но не слишком комфортно. Так что давайте для начала добавим некоторые модули для php:

apt install php-mbstring php-zip php-gd

И тут нас ждёт первая «засада». Пока что панель недоступна в репозиториях Debian 10 (но возможно появится в будущем) по умолчанию, поэтому нам нужно загрузить исходный код на компьютер с сайта phpMyAdmin.

Для этого переходим сюда, прокручиваем вниз до таблицы со ссылками на скачивание последней стабильной версии и копируем ссылку на скачивание, заканчивающуюся на all-languages.tar.xz. «all-languages» указывает на то, что эта версия мультиязычная, а значит там будет Русский интерфейс, а «tar.xz» указывает на архивный файл, известный как tarball, который при извлечении создаст несколько файлов в вашей системе. На момент написания этой статьи последняя версия — версия 4.9.0.1.

В таком случае команда будет выглядеть так:

wget https://files.phpmyadmin.net/phpMyAdmin/ 4.9.0.1 /phpMyAdmin- 4.9.0.1-all-languages .tar.gz

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

tar xvf phpMyAdmin- 4.9.0.1-all-languages .tar.gz

Перемещаем каталог в каталог файлов конфигурации по умолчанию

mv phpMyAdmin- 4.9.0.1-all-languages / /usr/share/phpmyadmin

Теперь нам нужно произвести первоначальные настройки. Создаём каталог временных файлов, создаём профиль пользователя и создаём конфиг. Для этого поочерёдно выполните следующие команды:

chown -R www-data:www-data /var/lib/phpmyadmin

cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php

Теперь отредактируем только что скопированный кинфигурационный файл по умолчанию Для этого откроем его в текстовом редакторе:

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

Важно! После скачивания нового конфига — замените в нём: строка №43 — замените его на любой другой пароль (и запомните его, он нам один раз дальше пригодится). И на строке №17 — просто втавьте любые другие символы, запоминать их не обязательно! 🙂

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

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

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

Теперь создаём пользователя, от имени которого будем входить в панель и от имени которого собственно будем работать. В принципе хватит и одного, но можете создавать столько, сколько считаете необходимым. Важно! «uzers» меняем на имя пользователя, а «password» меняем на свой пароль, который будем вводить при входе в панель.

GRANT ALL PRIVILEGES ON *.* TO ‘ uzers ‘@’localhost’ IDENTIFIED BY ‘ password ‘ WITH GRANT OPTION;

Всё, выходим из БД:

Всё готово, теперь нам осталось только создать конфиг и можно работать. Для этого выполняем:

И в открывшийся новый документ вписываем этот конфиг.

И «скармливаем» этот конфиг Apache:

* — Если у Вас a2enconf выдаёт ошибку — в конце статьи есть заметка по этому поводу.

Теперь мы можем перезагрузить Apache и всё заработает. Но делать мы этого не будем т.к. после создания новых хостов нам опять же нужно будет его перезагружать. Давайте сразу обновим хосты и после этого уже один раз перезагрузим сервер.

Создаём новые сайты в Apache2

И так, давайте создадим нужные каталоги. Мы в каталоге /var/www/ создадим каталог нового сайта и каталог для бекапов базы данных, который мы указывали в конфиге phpMyAdmin. После чего передадим права пользования этими каталогами себе, чтоб иметь возможность без помощи root записывать в них файлы и удалять их. Для этого поочерёдно выполняем следующие команды:

chown -R $USER:$USER /var/www/ test_site

chown -R $USER:$USER /var/www/backup

Как Вы наверняка догадались, «test_site» — имя каталога для будущего сайта, а «backup» — имя каталога с бекапами. Имя сайта может быть любым, а вот если решите переименовать каталог с бекапами — не забудьте поменять его в том числе и в конфиге.

Теперь создаём конфигурационный файл для нашего нового сайта:

gedit /etc/apache2/sites-available/ test_site .conf

И вписываем в открывшийся новый конфиг следующие строки:

ServerName your_domain
ServerAlias www. your_domain
ServerAdmin webmaster@localhost
DocumentRoot /var/www/ test_site
ErrorLog $/error.log
CustomLog $
/access.log combined

Как Вы наверняка заметили, имя сайта и имя его каталога не обязательно должны совпадать, но всё же лучше так не делать т.к. в случае, если сайтов будет много, а каталоги и именя совпадать не будут — вы сами себя запутаете. По этому лучше, чтоб имя сайта и имя каталога в папке /var/www/ совпадали.

Читайте также:  Как вычислить количество дней в эксель

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

В этом файле уже есть два адреса. Первая строка — localhost. Тот самый, по которому вы проверяли работоспособность сервера после первой команды установки. Далее идёт имя компьютера в сети. Вы по этому адресу так же можете перейти и увидите абсолютно то же самое, что и при localhost. И ниже мы можем дописать новые адреса. Как видите на скриншоте ниже, у меня есть ещё два адреса. Это qb.test и v.test. Адрес, по которому я тестирую свой сайт Qbik.club и ещё один секретный адрес, про который я ничего не скажу! 😉

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

Теперь компьютер знает, что этот сайт ненужно искать в интернете, но где же? Теперь нужно сказать apache, где искать файлы сайта и какие у его конфигурации. Для этого выполняем команду:

Внмиание! Распространённая ошибка, выполнять команду a2ensite передавая имя сайта. передаём не имя сайта, а имя конфигурационного файла, который мы создавали выше!

* — Если у Вас a2ensite выдаёт ошибку — в конце статьи есть заметка по этому поводу.

Теперь мы можем перезагрузить Apache и если Всё сделано правильно — радоваться жизни! 🙂

Включаем обработку .htaccess и вывод ошибок php

Вроди всё работает, база есть, интерфейс для управления базами есть, всё работает. Но вот есть несколько досадных ошибок. Это кое какие конфигурации по умолчанию. К примеру на «боевом сервере» как правило отключен вывод ошибок php. Это и логично, ведь это потенциальная уязвимость, которая сообщает «много интересного» потенциальному взломщику. Но мы же делаем локальный сервер для разработки. По этому давайте включим вывод ошибок, который нам пригодится для работы. для этого открываем конфиг:

Теперь в файлике нужно найти следующие значения и заменить их на вот такие:

error_reporting = E_ALL

display_errors = On

display_startup_errors = On

И обработка .htaccess. Для этого открываем другой конфиг:

Там ближе к концу будут свойства главной директории. В её впишем разрешения и они автоматически будут применяться ко всем сайтам. Хотя в случае необходимости тут можете применять их к любым отдельным, просто создавая новый блок для нового сайта. Но мы пойдём по самому простому и применим ко всем сразу вот таким образом:

Options Indexes FollowSymLinks
Require all granted
AllowOverride All

Лично я когда так сделал и перезапустил Apache — получил ошибку 500. Всё дело оказалось в том, что по умолчанию mod_rewrite отключен. А это довольно популярный модуль по перенаправлениям в .htaccess. По этому если у вас будет такая же проблема — включаем его одной простой командой:

Разумеется, после того, как был сохранён конфиг или включен модуль — перезагружаем Apache:

Замечание для тех, у кого не работает a2enmod, a2ensite или a2enconf!

Важное замечание! Лично я был довольно неплохо так озадачен, почему a2ensite выдаёт ошибку? Всё оказалось просто, на форуме мне подсказали. Просто войдите через su — root и будет Вам счастье! 😉

P.s. небольшое послесловие. Вся работа по поиску информации, переводу, проверке работоспособности и написанию этой статьи у меня заняли почти неделю. Так что надеюсь если статья была полезна — Вы поделитесь ей с друзьями. Это лучшая благодарность за проделанную работу. Если же я что то упустил или попутал от переизбытка информации — свяжитесь со мной Вк, постараюсь поправить! 🙂

Публикация относится к тематической подборке: «Первые шаги в Debian»

Данная публикация относится к череде публикаций о первых шагах в настройке и освоении ОС Debian.

Ссылка на основную публикацию
Как удалить файл php
Как удалить файл с моего сервера с помощью PHP если файл находится в другой директории? вот мой макет страницы: projects/backend/removeProjectData.php...
Как создать словарь в word
Меня интересует вот такая тема: когда печатаешь текст на компе, например, с ошибкой правописания, появляется подсказка - как правильно надо....
Как создать таблицу на компьютере
Как создать таблицу в Word? Сейчас я просто не представляю, как можно работать без такой нужной и полезной программы, как...
Как удалить файл если он используется
Не редко встречаются ситуации, когда нужно удалить файл, но Windows сообщает, что файл занят другим процессом. Это может быть важный...
Adblock detector