Настройка apache linux: Установка и настройка сервера Apache
Установка и настройка сервера Apache
Apache — это популярнейший свободный веб-сервер. Состоянием на 2016 год он используется на 33% всех сайтов интернета, а это приблизительно 304 миллиарда сайтов. Этот веб-сервер был разработан в далеком 1995, как замена для популярного того сервера NCSA и исправил множество его проблем. Ходят слухи что его имя походит от a patchy, заплатка, так как он исправлял ошибки NCSA. Сейчас же, это кроссплатформенная программа, поддерживающая Windows, Linux и MacOS и обеспечивающая достаточную гибкость, настраиваемость и функциональность. Программа имеет модульную структуру, что позволяет расширять ее функциональность почти до бесконечности с помощью модулей.
Установить Apache в Linux можно с помощью нескольких команд, но программа предоставляет очень большое количество настроек, которые можно изменить, а также модулей, после включения которых она будет работать лучше. В этой статье будет рассмотрена установка и настройка Apache, в качестве основной системы мы будем использовать Ubuntu, но вы можете повторить эти действия в любом другом дистрибутиве. Будет рассмотрена не только установка самой программы, но и способы ее настройки, настройка виртуальных хостов apache, а также самые полезные модули.
Содержание статьи:
Установка Apache
На данный момент, самая новая версия программы 2.4 поэтому и будет рассмотрена настройка apache 2.4. Как я уже говорил, в Linux программа устанавливается буквально в пару команд. Для установки в Ubuntu сначала обновим систему до самой новой версии:
sudo apt update
$ sudo apt upgrade
Затем установка apache2:
sudo apt install apache2
В других дистрибутивах пакет программы называется либо так, либо httpd и его установка у вас не вызовет трудностей.
После завершения установки нужно добавить веб-сервер в автозагрузку, чтобы не запускать его вручную после включения компьютера:
sudo systemctl enable apache2
Настройка Apache
Уже прошло то время, когда конфигурация Apache хранилась в одном файле. Но оно и правильно, когда все распределено по своим директориям, в конфигурационных файлах легче ориентироваться.
Все настройки содержатся в папке /etc/apache/:
- Файл /etc/apache2/apache2.conf отвечает за основные настройки
- /etc/apache2/conf-available/* — дополнительные настройки веб-сервера
- /etc/apache2/mods-available/* — настройки модулей
- /etc/apache2/sites-available/* — настойки виртуальных хостов
- /etc/apache2/ports.conf — порты, на которых работает apache
- /etc/apache2/envvars
Как вы заметили есть две папки для conf, mods и site. Это available и enabled. При включении модуля или хоста создается символическая ссылка из папки available (доступно) в папку enable (включено). Поэтому настройки лучше выполнять именно в папках available. Вообще говоря, можно было бы обойтись без этих папок, взять все и по старинке свалить в один файл, и все бы работало, но сейчас так никто не делает.
Сначала давайте рассмотрим главный файл конфигурации:
vi /eta/apache2/apache2.conf
Timeout — указывает как долго сервер будет пытаться продолжить прерванную передачу или прием данных. 160 секунд будет вполне достаточно.
KeepAlive On — очень полезный параметр, позволяет передавать несколько файлов, за одно соединение, например, не только саму html страницу, но и картинки и css файлы.
MaxKeepAliveRequests 100 — максимальное количество запросов за одно соединение, чем больше, тем лучше.
KeepAliveTimeout 5 — таймаут соединения, обычно для загрузки страницы достаточно 5-10 секунд, так что больше ставить не нужно, но и рвать соединение раньше чем загрузились все данные тоже не нужно.
User, Group — пользователь и группа, от имени которых будет работать программа.
HostnameLookups — записывать в логи вместо ip адресов доменные имена, лучше отключить, чтобы ускорить работу.
LogLevel — уровень логирования ошибок. По умолчанию используется warn, но чтобы логи заполнялись медленнее достаточно включить error
Include — все директивы include отвечают за подключение рассмотренных выше конфигурационных файлов.
Директивы Directory отвечают за настройку прав доступа к той или иной директории в файловой системе. Синтаксис здесь такой:
<Directory /адрес/в/файловой/системе/>
Параметр значение
</Directory>
Здесь доступны такие основные опции:
AllowOverride — указывает нужно ли читать .htaccess файлы из этой директории, это такие же файлы настроек и таким же синтаксисом. All — разрешать все, None — не читать эти файлы.
DocumentRoot — устанавливает из какой папки нужно брать документы для отображенияа пользователю
Options — указывает какие особенности веб-сервера нужно разрешить в этой папке. Например, All — разрешить все, FollowSymLinks — переходить по символическим ссылкам, Indexes — отображать содержимое каталога если нет файла индекса.
Require — устанавливает, какие пользователи имеют доступ к этому каталогу. Require all denied — всем запретить, Require all granted — всем разрешить. можно использовать вместо all директиву user или group чтобы явно указать пользователя.
Order — позволяет управлять доступом к директории. Принимает два значения Allow,Deny — разрешить для всех, кроме указанных или Deny,Allow — запретить для всех, кроме указанных. Теперь мы можем запретить доступ к директории для всех: Deny from all, а затем разрешить только для приложения от losst.ru: Allow from losst.ru.
Здесь все эти директивы не используются, поскольку нас устраивают значения по умолчанию, но вот в файлах .htaccess они могут быть очень полезны.
У нас остался файл /etc/apache2/ports.conf:
В нем только одна директива, Listen, которая указывает программе на каком порту нужно работать.
Последний файл /etc/apache2/envvars, его вы вряд ли будете использовать, в нем указанны переменные, которые можно использовать в других конфигурационных файлах.
Дальше поговорим немного о htacess. Совсем немного.
Настройка сервера Apache через htaccess
Файлы .htaccess позволяют настраивать веб-сервер на Ubuntu для поведения в определенной директории. Все инструкции, указанные в этом файле выполняются как бы они были обвернуты в тег <directory адрес_папки> если бы находились в основном файле.
Важно заметить, что для того, чтобы сервер читал инструкции из .htaccess настройки для этой папки в основном файле или файле виртуального хоста не должны содержать AllowOverride None, чтобы могли работать все настройки нужно AllowOverride All.
А в остальном, здесь может выполняться любая настройка сервера apache, от включения модулей, до обычного изменения доступа к папке. Поскольку все параметры мы уже рассмотрели просто приведем пару примеров:
Order Deny,Allow
Deny from all
Запрещает всем доступ к этой папке, важно применить, для папок с конфигурацией. Чаще всего .htaccess используется для работы с модулем mod_rewrite, который позволяет изменять запросы на лету:
RewriteEngine on
RewriteRule ^product/([^/\.]+)/?$ product.php?id=$1 [L]
Но это очень обширная тема и выходит за рамки этой статьи.
Настройка модулей Apache
Как я уже говорил, Apache — модульная программа, ее функциональность можно расширять с помощью модулей. Все доступные модули загрузчики и конфигурационные файлы модулей находятся в папке /etc/apache/mods-available. А активированные в /etc/apache/mods-enable.
Но вам необязательно анализировать содержимое этих папок. Настройка Apache 2.4 с помощью добавления модулей выполняется с помощью специальных команд. Посмотреть все запущенные модули можно командой:
apache2ctl -M
Включить модуль можно командой:
sudo a2enmod имя_модуля
А отключить:
sudo a2dismod имя_модуля
После включения или отключения модулей нужно перезагрузить apache:
sudo systemctl restart apache2
Во время выполнения одной из этих команд создается или удаляется символическая ссылка на файл модуля с расширением load в директории mods-available. Можете посмотреть содержимое этого файла, там только одна строка. Например:
vi /etc/apache2/mods-available/deflate.load
Это к тому, что активировать модуль можно было просто добавив эту строчку в файл apache2.conf. Но принято делать именно так, чтобы избежать путаницы.
Настройки модулей находятся в той же папке, только в файле с расширением .conf вместо load. Например, посмотрим настройки того же модуля для сжатия deflate:
vi /etc/apache2/mods-available/deflate.conf
Файлы в папке conf-available, это такие же модули, только они установлены отдельно от apache, это может быть конфигурационные файлы для включения модуля php или любого другого языка программирования. Здесь работает все точно так же, только команды для включения и отключения этих модулей немного другие:
a2enconf имя_модуля
a2disconf имя модуля
Как вы убедились, включать модули очень просто. Давайте включим несколько необходимых, но не включенных по умолчанию модулей:
sudo a2enmod expires
$ sudo a2enmod headers
$ sudo a2enmod rewrite
$ sudo a2enmod ssl
Модули expires и headers уменьшают нагрузку на сервер. Они возвращают заголовок Not Modified, если документ не изменился с последнего запроса. Модуль expiries позволяет устанавливать время, на которое браузер должен кэшировать полученный документ. Rewrite позволяет изменять запрашиваемые адреса на лету, очень полезно при создании ЧПУ ссылок и т д. А последний для включения поддержки шифрования по SSL. Не забудьте перезагрузить apache2 после завершения настроек.
Настройка виртуальных хостов Apache
Было бы не совсем удобно, если на одной физической машине можно было размещать только один сайт. Apache может поддерживать сотни сайтов на одном компьютере и выдавать для каждого из них правильное содержимое. Для этого используются виртуальные хосты. Сервер определяет к какому домену приходит запрос и отдает нужное содержимое из папки этого домена.
Настройки хостов Apache расположены в папке /etc/apache2/hosts-available/. Для создания нового хоста достаточно создать файл с любым именем (лучше кончено с именем хоста) и заполнить его нужными данными. Обернуть все эти параметры нужно в директиву VirtualHost. Кроме рассмотренных параметров здесь будут использоваться такие:
- ServerName — основное имя домена
- ServerAlias — дополнительное имя, по которому будет доступен сайт
- ServerAdmin — электронная почта администратора
- DocumentRoot — папка с документами для этого домена
Например:
vi /etc/apache2/sites-available/test.site.conf
<VirtualHost *:80>
ServerName test.site
ServerAlias www.test.site
ServerAdmin webmaster@localhost
DocumentRoot /var/www/test.site/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Виртуальные хосты, как и модули нужно активировать. Для этого есть специальные утилиты. Чтобы активировать наберите:
sudo a2ensite test.site
Здесь test.site — имя файла виртуального хоста. Для отключения тоже есть команда:
sudo a2dissite test.site
Настройка виртуальных хостов Apache завершена и на публичном сервере это все бы уже работало, но если вам нужна настройка Apache на домашней машине, то вы ваш новый сайт не откроется в браузере. Браузер не знает такого сайта. И откуда ему знать? DNS службы не могут ничего сообщить об этом доменном имени. Но в системе Linux мы можем сами указать ip адреса для доменных имен в файле /etc/hosts. Поэтому добавляем в конец файла такие строки:
vi /etc/hosts
127.0.0.1 test.site
127.0.0.1 www.test.site
Вот, ну теперь будет работать, открывайте браузер, проверяйте.
Выводы
Вот и все. Установка и настройка Apache linux завершена, вы можете использовать программу для размещения ваших сайтов. Более того, вы не просто настроили ее, вы разобрались со всеми подробностями и теперь знаете чуточку больше. Если у вас остались еще вопросы, пишите в комментариях!
Оцените статью:
Загрузка…
Apache HTTP Server | Русскоязычная документация по Ubuntu
Apache HTTP Server — проект, развиваемый The Apache Software Foundation, в рамках которого разрабатывается кроссплатформенный HTTP сервер с открытым исходным кодом. Входит в состав LAMP и XAMPP.
Версии Apache в Ubuntu
Ubuntu | Apache |
---|---|
12.04 LTS (Precise) | 2.2 |
14.04 LTS (Trusty) | 2.4 |
15.10 (Wily) | 2.4 |
16.04 LTS (Xenial) | 2.4 |
Хостинг сайтов
Можно реализовать четырьмя способами:
по умолчанию в папке /var/www/html. Доступом является http://localhost/
настройки основного хостинга. Например, http://localhost/phpmyadmin
в любой папке с помощью модуля виртуальных хостов. Например, http://mysite/
в папке пользователя public_html (модуль userdir). Например, http://localhost/~username
Установка
Для установки Apache выполните в терминале:
sudo apt-get install apache2
Настройка
Для применения изменений в настройках необходимо перезапустить демон Apache:
sudo service apache2 restart
В Ubuntu конечный файл настройки (apache2.conf) расделён на несколько файлов, расположенных в разных поддиректориях. Подробней написано в комментариях файла apache2.conf.
/etc/apache2/ |-- apache2.conf | `-- ports.conf |-- mods-enabled | |-- *.load | `-- *.conf |-- conf-enabled | `-- *.conf `-- sites-enabled `-- *.conf
Настройки модулей расположены в директории /etc/apache2/mods-available. Для подключения или отключения модулей (настроек модулей) следует использовать соответствующие команды a2enmod
или a2dismod
. Пример подключения модуля:
sudo a2enmod <mod-name>
Свои настройки следует сохранять в файлы, расположенные в директории /etc/apache2/conf-available. Для подключения или отключения своих настроек следует использовать соответствующие команды a2enconf
или a2disconf
. Пример подключения файла со своими настройками:
sudo a2enconf <config-name>
Настройки виртуальных хостов следует сохранять в файлы, расположенные в директории /etc/apache2/sites-available. Для подключения виртуальных хостов следует использовать соответствующие команды a2ensite
или a2dissite
. Пример подключения виртуального хоста:
sudo a2ensite <site-name>
Кодировка по умолчанию
Для указания кодировки по умолчанию следует использовать директиву AddDefaultCharset
в файле /etc/apache2/conf-available/charset.conf (или раскомментировать соответствующую строку):
AddDefaultCharset UTF-8
Виртуальные хосты
Файлы настроек виртуальных хостов хранятся в /etc/apache2/sites-available/*.conf. По умолчанию в Apache уже настроен один виртуальный хост. Его настройки лежат в файле 000-default.conf. Вы можете использовать этот виртуальный хост в качестве примера.
Пример настройки виртуального хоста:
<VirtualHost *:80> #Имя хоста ServerName host1.server1 #Корневая папка хоста DocumentRoot /var/www/host1.server1 <Directory /var/www/host1.server1> #Разрешение на перезапись всех директив при помощи .htaccess AllowOverride All </Directory> </VirtualHost>
Назовите файл настройки именем вашего хоста host1.server1.conf и сохраните.
После создания файла настроек допишите в /etc/hosts имя вашего хоста:
127.0.0.1 host1.server1
Для включения созданного виртуального хоста используется утилита a2ensite
:
sudo a2ensite host1.server1
Отключается хост аналогично утилитой a2dissite
:
sudo a2dissite host1.server1
Модули
mod_userdir
Модуль mod_userdir
позволяет использовать директории, находящиеся в домашних директориях пользователей для хранения веб страниц. По умолчанию Apache ищет запрашиваемые страницы в директории ~/public_html
mkdir ~/public_html
Чтобы включить mod_userdir
, выполните:
sudo a2enmod userdir
и добавьте необходимого пользователя в группу www-data:
sudo adduser $USER www-data
после чего перезагрузите Apache:
sudo service apache2 restart
Страницы будут доступны по адресу http://localhost/~username, где username — имя пользователя.
Настройка public_html подробно.
CGI
Если Вы хотите запускать на сервере cgi-скрипты, подключите модуль cgi
командой
sudo a2enmod cgi
По умолчанию cgi-скрипты размещаются в директории /usr/lib/cgi-bin, но вы можете разместить их где угодно,
указав это в настройках своего виртуального хоста, либо глобально для всех хостов в файле
/etc/apache2/conf-enabled/serve-cgi-bin.conf.
Eсли ваш сервер работает во внешней сети, то в целях безопасности настоятельно рекомендуется размещать cgi-скрипты вне корневой директории виртуального хоста
Настройка HTTPS в Apache
Веб-сервер Apache полностью поддерживает работу по HTTPS. Чтобы активировать поддержку HTTPS на уже установленном Apache, необходимо выполнить следующее.
Создание ключа и ssl-сертификата
Использование самоподписанных сертификатов хоть и защищает от пассивного прослушивания, тем не менее не гарантирует клиентам, что сервер является именно тем сервером, который им нужен. Преимуществом самоподписанных сертификатов является их бесплатность. Сертификат, подписанный компанией-сертификатором (Certificate authority), стоит денег.
Для создания ключа и сертификата вводим команду:
openssl req -new -x509 -days 30 -keyout server.key -out server.pem
На вопрос «Enter PEM pass phrase:» отвечаем паролем, подтверждаем и запоминаем.
На все последующие вопросы отвечаем произвольно, можно просто щелкать по Enter, соглашаясь с предложенными вариантами, только на вопрос «Common Name (eg, YOUR name) []:» отвечаем именем сайта, для которого создаем сертификат, например www.example.com.
После ответа на все вопросы в директории должны появиться два новых файла — server.pem
(ключ) и server.crt
(сертификат).
Чтобы использовать сгенерированный ключ, нужно знать пароль, введённый нами, и Apache будет спрашивать его у нас при загрузке, а к чему нам лишние вопросы от демонов? 🙂 Поэтому снимаем пароль с ключа:
cp server.key{,.orig} openssl rsa -in server.key.orig -out server.key rm server.key.orig
Скопируем их в /etc/ssl и назначим файлу ключа права чтения только администратору:
sudo cp server.pem /etc/ssl/certs/ sudo cp server.key /etc/ssl/private/ sudo chmod 0600 /etc/ssl/private/server.key
Настройка Apache
Для начала необходимо активировать mod_ssl
:
sudo a2enmod ssl
А затем включить настройки HTTPS сайта по умолчанию:
sudo a2ensite default-ssl
Теперь необходимо отредактировать файл с настройками HTTPS сайта по умолчанию, указав в нём пути к вашим сертификатам. Сам файл называется /etc/apache2/sites-enabled/default-ssl
(или /etc/apache2/sites-enabled/default-ssl.conf
).
В этом файле рекомендуется после директивы
SSLEngine on
добавить строчку
SSLProtocol all -SSLv2
чтобы запретить использование устаревшего протокола SSLv2.
Дальше вам необходимо отредактировать параметры, ответственные за сертификаты.
# Публичный сертификат сервера SSLCertificateFile /etc/ssl/certs/server.pem # Приватный ключ сервера SSLCertificateKeyFile /etc/ssl/private/server.key
Теперь просто перезагрузите Apache:
sudo service apache2 restart
И если все параметры указаны верно, ваши сайты станут доступны по HTTPS.
Протокол HTTPS работает по 443 порту, поэтому если сервер находится за шлюзом, то необходимо на нём пробросить данный порт.
Перенаправление HTTP запросов на HTTPS
Если вы хотите запретить использование HTTP, то самым разумным будет перенаправлять все HTTP запросы к страницам на их HTTPS адрес. Сделаем это с помощью mod_alias
. Если он не включён — включаем:
sudo a2enmod alias sudo service apache2 restart
Затем изменяем файл /etc/apache2/sites-enabled/000-default
, отвечающий за виртуальный хост по умолчанию для HTTP запросов. В этот файл добавляем директиву
Redirect / https://example.com/
При этом все настройки директорий можно удалить, поскольку по HTTP на ваши сайты всё равно будет не попасть.
Всё, теперь ещё раз перезапустите Apache и убедитесь, что при заходе по HTTP вы автоматически перенаправляетесь на HTTPS-страницу.
Ссылки
Возможные проблемы
Если при запуске появляется ошибка
apache2: Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
добавьте в свой файл конфигурации строку
ServerName localhost
Смотрите также
Ссылки
Настройка веб-сервера (Apache-PHP-MySQL/MariaDB) на Linux
В данной статье будет дана пошаговая инструкция, как настроить веб-окружение на сервере под управлением Linux. Для начала, необходимо понимать, что типовой веб сервер состоит из взаимодействующих между собой компонентов, а именно:
- HTTP сервер
- интерпретатор языка программирования
- система управления базами данных (СУБД)
Также для работы с сайтом необходима система управления контентом (CMS), веб интерфейс для управления базами данных и возможность доступа по FTP.
Рассмотрим процесс установки и настройки распространенной связки Apache-PHP-MySQL(MariaDB) в операционной системе Linux. Дополнительно будут установлены ftp-сервер vsftpd, веб-интерфейс для управления базой данных phpMyAdmin и система управления контентом WordPress.
Для начала работы, следует заказать VPS или выделенный сервер. В данной статье примеры выполнены на виртуальном сервере со статическим публичным IP-адресом под управлением Ubuntu Server 18.04. Команды выполняются от имени суперпользователя.
Настройка HTTP-сервера Apache
1. Установка
apt install apache2
После завершения установки откроем браузер на любом устройстве с доступом в Интернет и перейдем по ссылке “http://[ip_адрес_сервера]”
Если вы увидите страницу приветствия как на скриншоте, значит HTTP сервер работает.
2. Создание тестовой страницы
По умолчанию корневым каталогом для размещения сайта является директория “/var/www/html”, именно там находится страница приветствия. Создадим отдельную директорию “/var/www/sites” для размещения виртуальных хостов и вложенную папку “/var/www/sites/site1” с индексной страницей тестового сайта.
cd /var/www/
mkdir -p sites/site1
echo "<h2>Welcome</h2>" > sites/site1/index.html
В результате файл “/var/www/sites/site1/index.html” будет содержать одну html-строку:
<h2>Welcome</h2>
3. Конфигурация Apache-сервера
Конфигурационные файлы сайтов находятся в каталоге “/etc/apache2/sites-available/”. Создадим конфигурационный файл для нового виртуального хоста взяв за основу конфигурацию по умолчанию из файла “000-default.conf”
cd /etc/apache2/sites-available/
cp 000-default.conf site1.conf
Откроем файл “site1.conf” и изменим параметр “DocumentRoot”. В качестве значения нужно указать путь к новому сайту, в нашем случае это “/var/www/sites/site1”
На данном этапе нам не требуется настройка одновременной работы нескольких сайтов, поэтому отключим сайт по умолчанию и включим новый сайт. Для применения изменений перезагружаем конфигурацию сервера.
a2dissite 000-default
a2ensite site1
systemctl reload apache2
Снова переходим по ссылке “http://[ip_адрес_сервера]” и убеждаемся, что вместо стандартной страницы приветствия отображается наша новая страница.
Настройка HTTP-сервера завершена, переходим к следующему этапу.
Настройка FTP-сервера
1. Установка
Устанавливаем ftp-сервер и дополнительный пакет “db-util”, который потребуется для настройки виртуальных пользователей.
apt install vsftpd db-util
2. Создание локальной учетной записи
Сервер vsftpd позволяет очень гибко настраивать права доступа. Для решения наших задач ftp-пользователям необходимо обеспечить следующие возможности:
- полный доступ к содержимому директории “/var/www/sites/”;
- невозможность выхода за пределы директории “/var/www/”;
- подключение с использованием виртуальной учетной записи;
Создадим локальную учетную запись “virtual” без возможности входа в систему, с домашней директорией “/var/www/”. Эта учетная запись будет использоваться для подключения виртуальных ftp-пользователей.
useradd -d /var/www virtual
По умолчанию, владельцем директо
Настройка виртуальных хостов Apache | Losst
Apache — это один из самых популярных веб-серверов для размещения сайтов на хостингах и VPS, а также для создания тестовых окружений. Если на вашем сервере один сайт, то все довольно просто, все запросы, поступающие к серверу, отправляется этот единственный сайт. А что если сайтов несколько? Как Apache будет понимать кому адресован запрос?
Для решения этой задачи есть виртуальные хосты. В этой статье мы поговорим о том, как выполняется настройка виртуальных хостов Apache, а также как все это работает.
Содержание статьи:
Как работают виртуальные хосты Apache?
Не будем пока о локальных системах. Если у вас есть веб-сайт, то наверное, вы занимались парковкой домена и уже знаете как все настраивается. Сначала используется DNS сервер, который выдает IP адрес вашего сервера всем клиентам, запросившим адрес этого домена. Затем клиенты отправляют запрос на ip вашего сервера, а веб-сервер уже должен его обработать.
Обычно, на хостингах один веб-сервер обслуживает десятки, а то и сотни сайтов. И как вы понимаете, все запросы поступают на один ip. Для распределения их между папками на сервере используется имя домена, которое передается вместе с запросом в HTTP заголовке «Host». Именно поэтому нужно выполнять парковку домена не только на DNS сервисе, но и на вашем сервере.
Вы настраиваете виртуальные хосты Apache, а затем веб-сервер сравнивает домен, переданный в заголовке «Host» с доступными виртуальными доменами и если находит совпадение, то возвращает содержимое настроенной папки или содержимое по умолчанию, или ошибку 404. Нужно сказать, что вы можете настроить виртуальный хост для любого домена, например, vk.com или losst.ru. Но пользователи смогут получить доступ к этому домену у вас, только если к вам будут поступать запросы от браузеров, в которых будет значиться этот домен. А теперь детальнее про настройку.
Настройка виртуальных хостов Apache?
Я уже подробно рассматривал как настроить Apache в отдельной статье. Поэтому не буду полностью расписывать здесь все конфигурационные файлы. Остановимся на файлах виртуальных хостов. Для удобства они вынесены в отдельные папки:
- /etc/apache2/sites-available
- /etc/apache2/sites-enabled
Ясно, что это разделение очень условно. Вы можете его убрать и добавлять свои виртуальные хосты прямо в основной конфигурационный файл. Все файлы из этих папок подключаются к нему с помощью директив Include. Но ведь так намного удобнее. В папке sites-available находятся все конфигурационные файлы, но они пока еще не активированы и отсюда не импортируются никуда. При активации нужного хоста на него просто создается ссылка в папку /etc/apache2/sites-enabled.
Для примера, создадим новый конфигурационный файл для виртуального хоста site1.ru. Для этого просто скопируем существующую конфигурацию для хоста по умолчанию — 000-default:
$ sudo cp /etc/apache2/sites-enabled/000-default.conf /etc/apache2/sites-enabled/site1.ru.conf
Сначала рассмотрим синтаксис того, что вы увидите в этом файле:
<VirtualHost адрес_хоста_для прослушивания:порт>
ServerName домен
ServerAlias псевдоним_домена
ServerAdmin емейл@администратора
DocumentRoot /путь/к/файлам/сайта
ErrorLog /куда/сохранять/логи/ошибок/error.log
CustomLog /куда/сохранять/логи/доступа/access.log combined
</VirtualHost>
Это минимальная конфигурация, которую вам нужно указать, чтобы создать виртуальный хост Apache. Конечно, здесь вы можете использовать и другие директивы Apache, такие как Deny, Allow и многие другие. А теперь рассмотрим наш пример для тестового сайта site1.ru:
<VirtualHost *:80>
ServerName site1.ru
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/site1.ru/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Здесь мы используем звездочку вместо ip адреса, это значит, что веб-сервер будет слушать соединения на всех адресах, как на внешнем, так и на localhost. Порт 80, это порт по умолчанию. Затем указываем домен, электронный адрес администратора, и путь к папке, в которой будут находиться данные сайта. Две строчки Log говорят куда сохранять логи, но добавлять их необязательно. Дальше, нам нужно активировать этот хост. Мы можем вручную создать ссылку или использовать уже заготовленную команду:
sudo a2ensite site1.ru
Затем перезапустите Apache:
sudo systemctl restart apache2
И нам осталось все это протестировать. Если ваш сервер имен еще не направляет запросы к домену на ваш ip, а вы хотите уже проверить как все работает, можно пойти обходным путем. Для этого достаточно внести изменения в файл /etc/hosts на машине, с которой вы собрались открывать сайт. Этот файл, такой себе локальный DNS. Если компьютер находит ip для домена в нем, то запрос в интернет уже не отправляется. Если вы собираетесь тестировать с той же машины, на которую установлен Apache2, добавьте:
sudo vi /etc/hosts
127.0.0.1 site1.ru
Если же это будет другой компьютер, то вместо 127.0.0.1 нужно использовать адрес вашего сервера, на котором установлен Apache. Затем можете открыть сайт в браузере:
site1.ru
Настройка виртуальных хостов с SSL
Если вы хотите использовать современный безопасный протокол https для работы вашего виртуального хоста, то вам кроме обычного хоста на порту 80 будет необходимо создать виртуальный хост на порту 443. Здесь будет не так много отличий, вот пример, для нашего сайта site1.ru:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ServerName site1.ru
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
</VirtualHost>
</IfModule>
Теперь о каждой новой строчке более подробно:
- <IfModule mod_ssl.c> — весь код в этой секции будет выполнен только в том случае, если активирован модуль mod_ssl. Это нужно для безопасности, чтобы если модуль не активирован, то код не вызывал ошибок;
- SSLEngine — включает поддержку SSL;
- SSLCertificateFile, SSLCertificateKeyFile — пути к файлам сертификата и приватного ключа;
- SSLOptions — для скриптов php, cgi и других мы передаем стандартные SSL опции.
Вот и все. Как видите, не так сложно. Осталось перезапустить Apache и проверить как все работает:
sudo a2enmod ssl
sudo a2ensite site1.ru-ssl
sudo systemctl restart apache2
Затем откройте https адрес в браузере:
https://site1.ru
Выводы
В этой статье мы рассмотрели как выполняется настройка виртуальных хостов Apache. Как видите, один веб-сервер может обслуживать сотни сайтов, а создание виртуальных хостов apache совсем не сложно. Надеюсь, эта статья была вам полезной. Если у вас остались вопросы, спрашивайте в комментариях!
Оцените статью:
Загрузка…
Настройка VDS на Ubuntu 14.04. Часть 6. Установка и настройка APACHE – База знаний Timeweb Community
Мы продолжаем рассказывать о пошаговой настройке VDS с операционной системой Ubuntu 14.04.
Предыдущая статья нашего цикла была посвящена веб-серверу Nginx, а сегодня мы поговорим об Apache.
Наряду с Nginx, Apache является одним из самых распространенных веб-серверов в мире и демонстрирует свою надежность уже не один десяток лет. Впрочем, подробнее о нем мы уже рассказывали в одной из предыдущих статей.
Для начинающих администраторов Apache может стать даже более подходящим выбором, чем его альтернативы — являясь гибким и мощным инструментом, Apache при этом достаточно прост в настройке и использовании.
Установка Apache
Для того чтобы установить веб-сервер Apache, мы будем использовать менеджер пакетов Ubuntu apt:
$ sudo apt-get update $ sudo apt-get install apache2
После завершения установки введите в адресной строке браузера IP-адрес Вашего сервера. Если установка прошла успешно, Вы увидите стандартное приветственное окно Apache:
На этом же этапе можно установить дополнительные необходимые модули.
Например, если Вам в дальнейшем потребуются инструменты для анализа работы сервера, рекомендуем установить модуль utils — он содержит полезные утилиты для тестирования и администрирования сервера.
$ sudo apt-get install apache2-utils
Если Вам будет необходимо разделять права между пользователями, рекомендуем также установить модуль mpm-itk. При этом нужно будет настроить дополнительные параметры виртуальных хостов — информацию об этом Вы можете найти в открытых источниках сети.
В рамках данной инструкции мы не будем касаться установки и настройки данного модуля.
Для работы сервера с различными языками программирования (а также для расширения функционала сервера) можно установить библиотеки.
Если Ваш сайт использует PHP, необходимая библиотека устанавливается следующим образом:
$ sudo apt-get install libapache2-mod-php5
При использовании python полезно расширение libapache2-mod-wsgi;
при использовании Rails and Rack — libapache2-mod-passenger.
Установка происходит аналогичным образом — просто замените наименование библиотеки в команде.
Теперь перейдем к непосредственной настройке Apache.
Настройка виртуальных хостов
Важной особенностью Apache является возможность создания виртуальных хостов, настраиваемых независимо друг от друга, что позволяет размещать на VDS-сервере сразу несколько сайтов. За конфигурацию каждого сайта будет отвечать конкретный виртуальный хост.
Даже если на начальном этапе Вы планируете размещать только один сайт на сервере, мы рекомендуем в любом случае использовать виртуальные хосты. Это обеспечит Вам удобство администрирования и обслуживания Вашего проекта, а в дальнейшем и легкость расширения при необходимости.
По умолчанию Apache содержит стандартный файл конфигурации 000-default.conf, который хранится в директории /etc/apache2/sites-available.
Файлы наших виртуальных хостов будут храниться здесь же, и мы сформируем их на основе 000-default.conf.
Однако сначала мы отключим стандартный файл конфигурации командой:
$ sudo a2dissite 000-default
Теперь скопируем его содержимое в файл, который будет содержать настройки Вашего сайта.
В наших примерах в качестве имени сайта мы будем использовать site1, Вам необходимо заменить это значение на имя Вашего сайта.
Вы можете давать конфигурационным файлам любые названия, но мы рекомендуем обозначать их так, чтобы в дальнейшем Вы легко могли определить, к какому сайту относится конкретный файл.
$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/site1.conf
Далее нам нужно отредактировать конфигурационный файл. Откроем его командой:
$ sudo nano /etc/apache2/sites-available/site1.conf
Приведем содержимое файла к следующему виду:
<VirtualHost *:80> ServerName site1.com DocumentRoot /var/www/site1/public_html <Directory /var/www/site1/public_html> AllowOverride All Require all granted </Directory> ErrorLog /var/www/site1/error.log CustomLog /var/www/site1/access.log combined </VirtualHost>
Поясним приведенные выше параметры.
Блок <VirtualHost> включает в себя набор директив, задающих настройки для конкретного виртуального хоста.
Имя этого хоста Вы указали в параметре ServerName — полное доменное имя Вашего сайта.
Далее следует директива DocumentRoot — она задает путь до директории, в которой хранятся файлы сайта site1 (все необходимые директории мы создадим позже).
Следующий параметр — блок <Directory>. Он задает настройки, которые будут применены для конкретной папки.
В данном случае:
- AllowOverride All — разрешение допускать настройки, заданные в .htaccess;
- Require all granted — доступ к каталогу разрешен всем.
В параметре ErrorLog мы указали расположение файла с логами ошибок.
В CustomLog — расположение файла с логами доступа.
Этого набора директив достаточно для функционирования виртуального хоста, хотя список не является исчерпывающим. Дополнительно могут указываться, например, ServerAdmin (e-mail администратора сервера), ServerAlias (альтернативное имя сайта), AssignUserID (пользователь; настройка этого параметра необходима при использовании mpm-itk) и др. Со списком всех возможных директив и их описанием можно ознакомиться на сайте Apache (информация на английском языке).
После указания всех необходимых параметров закройте файл, сохранив изменения.
Далее мы создадим все необходимые папки, которые мы прописали в конфигурационном файле, и установим права на них:
$ sudo mkdir /var/www/site1/ $ sudo chown www-data:www-data /var/www/site1/ $ sudo mkdir /var/www/site1/public_html $ sudo chown www-data:www-data /var/www/site1/public_html
На этом этапе настройка виртуального хоста завершена, но желательно, конечно, проверить корректность его работы.
Для этого рекомендуем Вам создать index-файл в директории public_html:
$ nano /var/www/site1/public_html/index.html
Внесите в него любой самый простой html-код для проверки и сохраните документ.
Например:
<html> <head> <title>Удалось!</title> </head> <body> <h2>Виртуальный хост работает!</h2> </body> </html>
Далее включите сайт следующей командой:
И выполните перезагрузку Apache:
$ sudo service apache2 restart
Теперь необходимо ввести в браузере адрес сайта, виртуальный хост для которого Вы настраивали. Если все работает, как нужно, на экране будет отражено содержимое созданного Вами индексного файла.
Надеемся, все получилось 🙂
Модули Apache
Apache имеет множество разнообразных модулей, с помощью которых можно расширять его функциональность.
Список доступных модулей можно просмотреть в директории /etc/apache2/mods-available
Список уже включенных модулей — в директории /etc/apache2/mods-enabled
Перейти в директорию можно командой cd, например:
$ cd /etc/apache2/mods-enabled
Чтобы просмотреть содержимое текущего каталога, наберите:
$ ls
Для включения и выключения нужных Вам модулей используйте команды a2enmod и a2dismod.
Например, Вы можете включить CGI-скрипты следующей командой:
С информацией о каждом модуле можно ознакомиться на сайте Apache.
Команды для управления сервером Apache
Для запуска веб-сервера используйте команду:
$ sudo service apache2 start
Для перезагрузки:
$ sudo service apache2 restart
Если Вам требуется сделать «мягкую» перезагрузку, то есть перезапуск без завершения всех процессов, вводите:
$ sudo service apache2 reload
Для остановки веб-сервера существует следующая команда:
$ sudo service apache2 stop
Мы надеемся, что информация в этой статье оказалась для Вас полезной и помогла справиться с установкой и настройкой веб-сервера Apache.
Если у Вас возникли вопросы, спрашивайте в комментариях, мы будем рады Вам помочь.
Установка и отладка веб-сервера для сайта в UBUNTU
2 years ago |
28.6K
Настройка веб-сервера для локального веб-сайта в Ubuntu является не простой задачей, но как это делать должен знать любой профессиональный веб-разработчик.
LAMP – что это
LAMP – это сочетание технологий Linux, Apache, MySQL, PHP, которые используются программистами для запуска интернет ресурсов, как личной разработки, так и проектов, функционирующих на известных CMS.
Как установить APACHE
Apache представляет собой веб-сервер с открытым исходным кодом. Его функционирование может быть описано следующим образом: На любой из поступающих запросов, данный сервер выдает ответ соответствующий запросу.
Другими словами говоря, обратившись к человеку с каким-то вопросом, он может, как дать ответ, так и нет. Однако, задав человеку вопрос, на который он дать ответ не в силах, прозвучит ответ: не знаю. Аналогичным образом функционирует и Apache, например, сервер покажет 404 ошибку, если вы обращаетесь к несуществующей странице.
Установка Apache производится посредством команды через терминал:
sudo apt-get install apache2
Если вы совсем новичок в Linux/Ubuntu, вы можете пройти курс Linux/GIT и вы получите базовые знания по командам Linux, а также научитесь работать с контролем версий кода GIT и сервисом BitBucket.
По завершению установки, следует проверить правильность функционирования веб-сервера. Сделать это можно при помощи введения ip адреса сервера в любом из существующих браузеров. В случае, если пользователь производил установку Apache локально, к примеру, на домашний ПК, ему следует ввести в браузере следующие цифры: 127.0.0.1. После этого должна будет отобразиться страница приветствия Apache.
Как установить PHP
Пользователь, который хочет, установить PHP на свой сервер, должен ввести следующую команду:
sudo apt-get install php5 php5-common libapache2-mod-php5 php5-cli php5-cgi php5-mysql
По завершению выполнения команды, необходимо ввести в терминале php -v. Благодаря этой команде должна будет отобразиться текущая версия php:
PHP 5.5.9-0ubuntu0.16.04.1 (cli) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v5.5.9-0ubuntu0.16.04.1, Copyright (c) 1999-2017, by Zend Technologies
Если пользователь наблюдает это в своем терминале, то это говорит о том, что php установлен правильно и готов к рабо
Настройка HTTP/2 на примере Apache 2.4, PHP 7 и Ubuntu 18.04 LTS / Хабр
Я понимаю, что, возможно, Апач на данный момент не является предпочтительным выбором для запуска на нём новых проектов, то тем не менее, он существует, здравствует и проекты на нём таки работают. Выбор на него может пасть по каким-то личным предпочтениям, по требованиям совместимости, или каким-то другим соображениям… не суть. В этой статье я хочу по пунктам описать, как настроить поддержку протокола HTTP/2 на веб-сервере Apache, потому что сам им пользуюсь и в такой статье нуждаюсь нуждался, и надеюсь, что кому-нибудь она тоже пригодится на практике.
Что такое HTTP/2? Как понятно из названия, это — вторая версия протокола HTTP. Подробнее о преимуществах Вы можете прочитать хотя бы на Википедии. От себя лишь скажу, что если Вы хоститесь не на шаред-хостинге, то поддерживать данный протокол — must have, как и, например, HTTPS. Да, для того, чтобы у Вас заработал HTTP/2, Вам потребуется полноценный доступ к консоли машины (пусть и к виртуальной) через ssh или каким-то иным образом, а также уже настроенный HTTPS (TLS/SSL). Ну что же, давайте приступим к делу.
Шаг первый. Обновление Apache
Протокол HTTP/2 поддерживается сервером Apache с версии 2.4.24, поэтому, если у Вас установлена более старая версия, — самое время её обновить. Но сначала проверим:
apache -v
Эта команда выдаст что-то вроде такого:
Server version: Apache/2.4.37 (Ubuntu)
Server built: 2018-10-28T15:27:08
В первой строчке указана версия сервера. Если она больше или равна 2.4.24, — можем смело переходить ко второму шагу. В противном случае, нужно обновить апач, актуальные версии которого Вы сможете найти в PPA известного (если Вам уже приходилось ставить что-то свеженькое на Debian/Ubuntu) разработчика — Ondřej Surý. PPA — это персональные пакеты, не включённые в официальные репозитории дистрибутивов. Поэтому, чтобы воспользоваться ими, сначала нужно научить систему, что и откуда брать:
sudo add-apt-repository ppa:ondrej/apache2
Парень делает хорошее дело, и не против получить небольшой донат, о чём весьма недвусмысленно заявляет при подключении к его репам…
Далее, собственно, обновляем пакеты:
sudo apt update
sudo apt upgrade
И снова проверяем версию Apache. Если всё прошло хорошо — на Вашем сервере будет стоять Apache, на котором можно настроить HTTP/2. Если всё пошло плохо — боюсь, это уже не тема данной статьи. А теперь переходим ко второму шагу.
Шаг второй. Использование FastCGI
Что такое FastCGI — лучше почитать, как я уже говорил, хотя бы в Википедии, потому что коротко не расскажешь. Вам нужно перейти на PHP, работающем в режиме FastCGI (php-fpm). Как это работает — дан хороший ответ на Тостере. Здесь же я в такие нюансы вдаваться не буду, а перейду сразу к установке:
sudo apt install php-fpm
После установки нам будет сказано буквально следующее: чтобы включить PHP 7.2 FPM в Apache2, сделайте:
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php7.2-fpm
Делаем. После этого нужно отключить mod_php, потому что вместо него у Вас теперь php-fpm.
sudo a2dismod php7.2
Вообще говоря, версия PHP у Вас до этого могла стоять другая. Глянуть, что за модули у Вас установлены в системе можно в директории /etc/apache2/mods-available/, а какие активны в /etc/apache2/mods-enabled
Далее перезапускаем Apache
sudo service apache2 restart
и переходим к третьему шагу.
Шаг третий. Переход с модуля Prefork на Event
Что такое MPM и в чём разница между prefork, event, worker — можно почитать вот в этой замечательной статье… но сейчас на самом деле важно знать только одно: «стандартный» prefork не очень совместим с HTTP/2, поэтому Вам нужно использовать более подходящий. Выключаем один, включаем другой, перезагружаем Apache.
sudo a2dismod mpm_prefork
sudo a2enmod mpm_event
service apache2 restart
Шаг четвёртый. Включаем HTTP/2
Либо в конфигурационный файл хоста, найти который можно в директории /etc/apache2/sites-enabled/, либо в конфиге самого сервера /etc/apache2/apache2.conf говорим, что нам нужна поддержка нового протокола:Protocols h3 h3c http/1.1
Что действительно важно — это h3. Два других пункта — на Ваше усмотрение. h3c — это поддержка HTTP/2 через TCP (а не TLS). http/1.1 — поддержка старой версии HTTP.
Включаем модуль http2 и перезагружаем сервер:
sudo a2enmod http2
service apache2 restart
Приехали
С настоящего момента всё. Ваш ресурс должен начать работать по протоколу HTTP/2. Если вы пользуетесь Хромом, зайдя на ресурс, Вы увидете, как засветилась синим цветом пиктограмма молнии в правом верхнем углу браузера. Наведя на неё курсор, вы увидите подсказку HTTP/2-enabled(h3). В Firefox войдите в панель разработчика и на вкладке Network включите столбец Protocol — для ресурсов с вашего сайта должен значиться HTTP/2.0. Также, можно проверить, поддерживает ли ваш ресурс этот протокол на одном из множества сайтов в Сети. Но не стоит расслабляться, потому что уже на пятки наступает HTTP/3 🙂
Установка и настройка веб-сервера Apache в Ubuntu 20.04 — Linux Hint
Веб-сервер Apache — это наиболее широко используемый веб-сервер с открытым исходным кодом, поддерживаемый в большинстве ОС, включая Linux, Windows, MacOS, Solaris и т. Д. Он обладает широкими возможностями настройки и может быть интегрирован с другими модулями. Установить и настроить Apache для базовой настройки довольно просто. В этой статье объясняется, как установить и настроить веб-сервер Apache в операционной системе Ubuntu.
Примечание. Мы объяснили процедуру, описанную в этой статье, на Ubuntu 20.04 Система LTS.
Установка Apache2; Шаг 1. Обновите
Во-первых, нам нужно будет обновить индекс системного репозитория, чтобы установить самую последнюю версию Apache2. Для этого запустите Терминал с помощью сочетания клавиш Ctrl + Alt + T и выполните следующую команду:
Обратите внимание, что только авторизованный пользователь может устанавливать, обновлять или удалять пакеты из системы Linux.
Шаг 2. Установите Apache2
Далее на этом шаге мы установим веб-сервер Apache2.Для этого выполните в Терминале команду ниже:
$ sudo apt установить apache2
Система может запросить подтверждение, предоставив вам вариант Да / Нет . Нажмите y , а затем Enter, чтобы продолжить. После этого веб-сервер Apache2 и все его зависимости будут установлены в вашей системе.
После установки проверьте версию сервера Apache следующим образом:
Конфигурация межсетевого экрана
Теперь нам нужно будет открыть определенные порты в нашей системе, чтобы получить доступ к Apache извне.Во-первых, давайте перечислим профили приложений, к которым нам нужно предоставить доступ Apache. Для этого выполните следующую команду:
Здесь вы можете увидеть разные профили apache.
Мы будем использовать профиль с жесткими ограничениями «Apache», чтобы активировать сетевую активность на порту 80.
$ sudo ufw allow ‘Apache’
Теперь проверьте статус, который показывает, что Apache разрешен в брандмауэре.
Настройка веб-сервера Apache; Проверка службы Apache
Прежде чем переходить к настройке, сначала проверьте, работает ли служба Apache.Для этого выполните в Терминале команду ниже:
$ sudo systemctl status apache2
Из приведенного выше вывода видно, что служба Apache2 активна и работает.
Другой подход к проверке правильности работы Apache путем запроса веб-страницы с веб-сервера Apache. Для этого найдите свой IP-адрес с помощью следующей команды:
Затем откройте веб-браузер и перейдите на страницу приветствия apache следующим образом:
http: // 192.168.72.134
Замените 192.168.72.134 IP-адресом вашего устройства.
Перейдя по указанной выше ссылке в браузере, вы увидите страницу приветствия Apache, которая указывает на то, что сервер Apache работает правильно.
Настройка виртуальных хостов в Apache
Если у вас есть несколько доменов, которые должны быть серверами одного веб-сервера Apache, вам потребуется настроить виртуальные хосты. Далее мы покажем вам, как настроить виртуальный хост в Apache.Мы создадим доменное имя «info.net». Обязательно замените info.ne своим собственным доменным именем.
Шаг 1. Создайте каталог для своего домена
На этом этапе мы создадим каталог для нашего доменного имени. Этот каталог будет использоваться для хранения данных на нашем веб-сайте.
Выполните следующую команду в Терминале, заменив info.net своим собственным доменным именем:
$ sudo mkdir -p /var/www/info.net/html
Изменить владельца каталога на текущего пользователя:
$ sudo chown -R $ USER: $ USER / var / www / info.net / html
Назначьте необходимые разрешения следующим образом:
$ sudo chmod -R 755 /var/www/info.net
Шаг 2. Создайте образец страницы для своего веб-сайта
Мы настроили виртуальный хост и даем необходимые разрешения. Теперь мы создадим образец страницы для нашего сайта. Мы создадим страницу-образец с помощью редактора Nano, однако для этой цели можно использовать любой текстовый редактор.
$ нано /var/www/info.net/html/index.html
Скопируйте и вставьте эти строки HML-кода:
Теперь используйте Ctrl + O для сохранения, а затем Ctrl + X для выхода из файла.
Шаг 3. Создайте файл виртуального хоста
Сервер
Apache по умолчанию поставляется с файлом виртуального хоста. Этот файл используется для обслуживания содержимого веб-сервера. Однако мы сгенерируем новый файл виртуального хоста с помощью следующей команды:
$ судо нано /etc/apache2/sites-available/info.net.conf
Теперь введите следующие строки, заменив info.net своим собственным доменным именем.
ServerAdmin admin @ info.net
ServerName info.net
ServerAlias info.net
DocumentRoot /var/www/info.net/html
ErrorLog $ {APACHE_LOG_DIR} /error.log
CustomLog $ {APACHE_LOG_DIR} /access.log вместе
Теперь используйте Ctrl + O для сохранения, а затем Ctrl + X для выхода из файла.
Шаг 4. Активируйте файл конфигурации виртуального хоста
На этом этапе мы создадим файл конфигурации виртуального хоста. Для этого выполните в Терминале следующую команду:
$ sudo a2ensite info.net.conf
Теперь отключите файл виртуальной конфигурации по умолчанию «000-default.conf» следующим образом:
$ sudo a2dissite 000-default.conf
Теперь перезапустите Apache, чтобы активировать новую конфигурацию следующим образом:
$ sudo systemctl перезапуск apache2
Шаг 5: Тест на наличие ошибок
После завершения всех конфигураций вы можете проверить наличие ошибок конфигурации:
$ sudo apache2ctl configtest
Вы можете получить следующую ошибку:
Чтобы устранить эту ошибку, отредактируйте имя сервера .conf файл:
$ sudo nano /etc/apache2/conf-available/servername.conf
Затем добавьте эту строку, заменив info.net своим собственным доменным именем:
Сохраните и выйдите из файла servername.conf и запустите:
$ sudo a2enconf имя сервера
Теперь снова выполните:
$ sudo apache2ctl configtest
Надеюсь, на этот раз вы не получите никакой ошибки.
Шаг 6. Тестируйте виртуальный хост
.
Теперь веб-сервер Apache готов обслуживать наш домен.Давайте проверим это, перейдя по следующей ссылке в браузере:
http://info.net
Замените info.net на свое доменное имя.
На следующей странице указателя показано, что сервер Apache готов обслуживать наше доменное имя.
Управление сервером Apache
Для управления сервером Apache вот некоторые из полезных команд, которые вы можете запустить в Терминале:
Для запуска сервера Apache:
$ sudo systemctl start apache2
Чтобы остановить сервер Apache:
$ sudo systemctl stop apache2
Чтобы остановить, а затем запустить Apache »
$ sudo systemctl stop apache2
Чтобы перезагрузить сервер Apache для обновления новых конфигураций:
$ sudo systemctl перезагрузить apache2
Для запуска Apache при загрузке:
$ sudo systemctl включить apache2
Чтобы отключить Apache при загрузке:
$ sudo systemctl отключить apache2
В этой статье подробно объясняется установка и настройка веб-сервера Apache в Ubuntu 20.04. Мы также объяснили настройку виртуального хоста. Теперь вы можете настроить несколько доменов на одном сервере Apache. В конце мы упомянули некоторые команды, которые могут быть очень полезны при управлении веб-сервером Apache.
.
Компиляция и установка — HTTP-сервер Apache, версия 2.4
Этот документ описывает компиляцию и установку HTTP-сервера Apache.
только в Unix и Unix-подобных системах. Для составления и
установку в Windows, см. Использование HTTP-сервера Apache с Microsoft
Windows и компиляция Apache для Microsoft Windows.
Для других платформ см. Документацию по платформе.
Apache httpd использует libtool
и autoconf
создать среду сборки, похожую на многие другие Open Source
проекты.
Если вы обновляете одну минорную версию до следующей (для
например, с 2.4.8 до 2.4.9), перейдите к разделу обновления.
См. Также
- Установка в Fedora / CentOS / Red Hat Enterprise Linux
sudo yum установить httpd sudo systemctl включить httpd sudo systemctl start httpd
- Установка в Ubuntu / Debian
sudo apt установить apache2 sudo service apache2 start
- Установка из исходников
NN необходимо заменить на текущую версию
номер, а PREFIX необходимо заменить на
путь файловой системы, под которым должен быть установлен сервер.Если
PREFIX не указан, по умолчанию
/ usr / local / apache2
.Каждый раздел процесса компиляции и установки
более подробно описано ниже, начиная с требований
для компиляции и установки Apache httpd.
Для сборки Apache httpd:
существуют следующие требования.
- APR и APR-Util
- Убедитесь, что у вас уже установлены APR и APR-Util на
ваша система.Если вы этого не сделаете или предпочитаете не использовать предоставленные системой
версий, загрузите последние версии APR и APR-Util
из Apache APR, распаковать
их в/ httpd_source_tree_root / srclib / apr
и/ httpd_source_tree_root / srclib / apr-util
(убедитесь, что в именах каталогов нет номеров версий; например,
распределение APR должно быть в / httpd_source_tree_root / srclib / apr /) и использовать
./configure
‘s--with-included-apr
вариант.На некоторых платформах вам может потребоваться установить
соответствующие пакеты-dev
для сборки httpd
против вашей установленной копии APR и APR-Util. - Perl-совместимая библиотека регулярных выражений (PCRE)
- Эта библиотека требуется, но больше не входит в комплект httpd.
Загрузите исходный код с http://www.pcre.org,
или установите порт или пакет. Если ваша система сборки не может найти
скрипт pcre-config, установленный сборкой PCRE, укажите на него
используя параметр--with-pcre
.На некоторых платформах
возможно, вам придется установить соответствующий-dev
пакет, чтобы позволить httpd строить против вашей установленной копии
PCRE. - Дисковое пространство
- Убедитесь, что у вас есть как минимум 50 МБ временного свободного диска
доступный объем. После установки сервер занимает
примерно 10 МБ дискового пространства. Фактическое дисковое пространство
требования будут значительно отличаться в зависимости от выбранного вами
параметры конфигурации, любые сторонние модули и, конечно же,
размер веб-сайта или сайтов, которые у вас есть на сервере. - Компилятор и система сборки ANSI-C
- Убедитесь, что у вас установлен компилятор ANSI-C. GNU C
компилятор (GCC) от Free Software Foundation (FSF)
Рекомендовано. Если у вас нет GCC
то, по крайней мере, убедитесь, что компилятор вашего поставщика — ANSI
совместимый. Кроме того, вашPATH
должен содержать
базовые инструменты сборки, такие как, делают
. - Точное время
- Элементы протокола HTTP выражаются как время
день.Итак, пришло время исследовать настройку
средство синхронизации в вашей системе. Обычно
ntpdate
илиxntpd
программы используются для
для этой цели, которые основаны на протоколе сетевого времени (NTP).
См. NTP
домашняя страница для получения дополнительной информации о программном обеспечении NTP и общедоступных
серверы времени. - Perl 5
[ДОПОЛНИТЕЛЬНО] - Для некоторых сценариев поддержки, таких как
apxs
илиdbmmanage
(которые
написан на Perl) требуется интерпретатор Perl 5 (версии
5.003 или новее). Если интерпретатор Perl 5 не найден
настроить скрипт
, вы не сможете использовать
затронутые сценарии поддержки. Конечно, вы все равно сможете
построить и использовать Apache httpd.
HTTP-сервер Apache можно загрузить с HTTP-сервера Apache.
сайт загрузок, на котором перечислены несколько зеркал. Большинство пользователей
Apache в unix-подобных системах будет лучше скачать и
компиляция исходной версии.Процесс сборки (описанный ниже)
легко, и это позволяет вам настроить ваш сервер в соответствии с вашими потребностями.
Кроме того, бинарные выпуски часто не обновляются до последней версии.
исходные релизы. Если вы загружаете двоичный файл, следуйте инструкциям
в файле INSTALL.bindist
внутри дистрибутива.
После загрузки важно убедиться, что у вас есть
полная и неизмененная версия HTTP-сервера Apache. Эта
может быть выполнено путем тестирования загруженного архива на соответствие
Подпись PGP.Подробности о том, как это сделать, доступны для скачивания.
странице и доступен расширенный пример, описывающий использование
PGP.
Извлечение исходного кода из архива HTTP-сервера Apache — это
простой вопрос распаковки, а затем распаковки:
$ gzip -d httpd- NN .tar.gz
$ tar xvf httpd- NN .tar
Это создаст новый каталог в текущем каталоге
содержащий исходный код дистрибутива.Вам следует
cd
в этот каталог, прежде чем продолжить
компилируем сервер.
Следующим шагом является настройка дерева исходных кодов Apache для вашего
конкретная платформа и личные требования. Это делается с помощью
скрипт configure
включен в
корневой каталог дистрибутива. (Разработчики скачивают
невыпущенная версия дерева исходных кодов Apache должна иметь
autoconf
и libtool
установлены и будут
необходимо запустить buildconf
, прежде чем переходить к следующему
шаги.Для официальных выпусков это не обязательно.)
Чтобы настроить дерево источников с использованием всех параметров по умолчанию,
просто введите ./configure
. Чтобы изменить значение по умолчанию
опции, configure
принимает множество переменных
и параметры командной строки.
Самый главный вариант — это расположение - префикс
где Apache будет установлен позже, потому что Apache должен быть
настроен для правильной работы в этом месте. Более точная настройка
контроль расположения файлов возможен при дополнительной настройке
параметры.
Также на этом этапе вы можете указать, какие функции вы
хотите включить в Apache, включив и отключив модули. Apache поставляется с широким набором модулей
включен по умолчанию. Они будут скомпилированы как
общие объекты (DSO), которые могут быть загружены
или выгружается во время выполнения.
Вы также можете выбрать статическую компиляцию модулей, используя опцию
- включить- модуль = статический
.
Дополнительные модули включаются с помощью
- включить- модуль
опция, где
модуль — это имя модуля с
mod_
строка удалена и с преобразованием любого подчеркивания
в тире.Точно так же вы можете отключить модули с помощью
--disable- модуль
опция. Будьте осторожны, когда
используя эти параметры, так как configure
не может вас предупредить
если указанный вами модуль не существует; он просто проигнорирует
вариант.
Кроме того, иногда необходимо предоставить
настроить сценарий
с дополнительной информацией о
расположение вашего компилятора, библиотек или файлов заголовков. Это
выполняется путем передачи переменных среды или командной строки
Опции для настроить
.Для получения дополнительной информации см.
настроить страницу справочника
. Или вызвать
настройте
с помощью параметра --help
.
Краткое описание имеющихся у вас возможностей см. Здесь
типичный пример компиляции Apache для установки
дерево / sw / pkg / apache
с определенным компилятором и флагами
плюс два дополнительных модуля mod_ldap
и
mod_lua
:
$ CC = "pgcc" CFLAGS = "- O2" \
./ configure --prefix = / sw / pkg / apache \
--enable-ldap = shared \
--enable-lua = shared
При запуске configure
потребуется несколько минут, чтобы
проверить наличие функций в вашей системе и собрать
Make-файлы, которые позже будут использоваться для компиляции сервера.
Подробная информация обо всех различных вариантах конфигурации
доступно на странице руководства configure
.
Теперь вы можете создавать различные части, из которых состоит Apache.
пакет, просто выполнив команду:
Будьте терпеливы, так как базовая конфигурация требует
несколько минут на компиляцию, и время будет широко варьироваться
в зависимости от вашего оборудования и количества модулей, которые вы
включены.
Теперь пора установить пакет под настроенный
установка PREFIX (см. опцию --prefix
выше), запустив:
Для этого шага обычно требуются права root, так как
PREFIX — это обычно каталог с ограничением записи
разрешения.
При обновлении установка не перезапишется
ваши файлы конфигурации или документы.
Теперь вы можете запустить свой Apache
HTTP-сервер при немедленном запуске:
$ ПРЕФИКС / bin / apachectl -k start
После этого вы сможете запросить свой первый документ.
через URL-адрес http: // localhost /
.Веб-страница, которую вы видите, находится
под DocumentRoot
,
обычно это PREFIX / htdocs /
.
Затем снова остановите сервер,
работает:
$ ПРЕФИКС / bin / apachectl -k stop
Первым шагом в обновлении является чтение объявления о выпуске
и файл CHANGES
в исходном дистрибутиве на
найдите любые изменения, которые могут повлиять на ваш сайт. При переключении между
основные выпуски (например, из 2.От 0 до 2,2 или от 2,2 до 2,4),
вероятно, будут существенные различия во времени компиляции и
конфигурация во время выполнения, которая потребует ручной настройки. Все
модули также необходимо будет обновить, чтобы учесть изменения в
модуль API.
Обновление с одной минорной версии до следующей (например, с
2.2.55 — 2.2.57) проще. make install
процесс не перезапишет ни один из ваших существующих документов, журнал
файлы или файлы конфигурации.Кроме того, разработчики делают
все усилия, чтобы избежать несовместимых изменений в
настроить параметры
, конфигурацию времени выполнения или
модуль API между минорными версиями. В большинстве случаев вы сможете
используйте идентичную командную строку configure
, идентичную
файл конфигурации, и все ваши модули должны продолжить
Работа.
Чтобы обновить дополнительные версии, начните с поиска файла
config.nice
в каталоге build
установленный сервер или в корне дерева исходных текстов для вашего
старая установка.Это будет содержать точный
настроить командную строку
, которую вы использовали для
настроить исходное дерево. Затем для обновления с одной версии на
далее вам нужно только скопировать файл config.nice
в
дерево исходных текстов новой версии, отредактируйте его, чтобы сделать любое желаемое
изменений, а затем запустите:
$ ./config.nice
$ make
$ make install
$ PREFIX / bin / apachectl -k graceful-stop
$ PREFIX / bin / apachectl -k start
Вы всегда должны тестировать любую новую версию в своем
среды перед запуском в производство.Например, вы
можно установить и запустить новую версию вместе со старой,
используя другой - префикс
и
другой порт (путем настройки директивы Listen
) для проверки любых
несовместимости до окончательного обновления.
Вы можете передать дополнительные аргументы в config.nice
,
который будет добавлен к исходной конфигурации
варианты:
$ ./config.nice --prefix = / home / test / apache --with-port = 90
Большое количество третьих лиц предоставляют свои собственные упакованные
дистрибутивы HTTP-сервера Apache для установки на
конкретные платформы.Это включает в себя различные дистрибутивы Linux,
различные сторонние пакеты Windows, Mac OS X, Solaris и многие другие
Больше.
Наша лицензия на программное обеспечение не только разрешает, но и поощряет подобные
перераспределения. Однако это приводит к ситуации, когда
макет конфигурации и значения по умолчанию для вашей установки сервера
может отличаться от указанного в документации. Пока
к сожалению, эта ситуация вряд ли когда-нибудь изменится
скоро.
Описание
этих сторонних дистрибутивов поддерживается в HTTP
Серверная вики и должна отражать текущее состояние этих
сторонние дистрибутивы.Однако вам нужно будет ознакомиться
себя с помощью управления пакетами вашей конкретной платформы и
процедуры установки.
.
Установка Apache Ant
Установка Apache Ant
Получение Apache Ant
Рассказ
Чтобы быстро начать работу с двоичным дистрибутивом Ant, выполните следующие действия:
- Убедитесь, что у вас установлена среда Java. См. Системные требования для
Детали. - Скачать Ant. Подробности см. В разделе «Двоичное распределение».
- Распакуйте загруженный файл в каталог.
- Установите переменные среды:
JAVA_HOME
для вашей среды Java,ANT_HOME
для каталога
вы распаковали Ant и добавили $ {ANT_HOME} / bin (Unix) или % ANT_HOME% / bin (Windows) в
вашПУТЬ
.См. Подробности в разделе «Настройка». - По желанию, из каталога
ANT_HOME
запустите ant -f fetch.xml -Ddest = system , чтобы получить
библиотечные зависимости большинства задач Ant, которым они необходимы. Если вы этого не сделаете, многие зависимые задачи Ant
не будет доступно. Дополнительные сведения и другие параметры см. В разделе «Дополнительные задачи».
параметр -Ddest . - При желании можно добавить любые нужные библиотеки Antlib. Увидеть муравей
Библиотеки для списка.
Обратите внимание, что ссылки в списке выше предоставят более подробную информацию о каждом из шагов, если они вам понадобятся.Или вы можете
просто продолжайте читать оставшуюся часть этого документа.
Краткая история работы с исходным кодом Ant (не нужна, если вы работаете с двоичным дистрибутивом):
- Получить исходный код. Подробности см. В разделе «Распространение исходного кода».
- Сборка Ant. См. Подробности в Building Ant.
Чтобы узнать полную историю, продолжайте читать.
Двоичное распределение
Последняя стабильная версия Ant доступна на веб-странице Ant https: // ant.apache.org/
Бинарный дистрибутив Ant доступен в виде 3 разных архивов.
- .zip — формат сжатия, рекомендуемый для Windows, также может использоваться на других платформах. Поддерживается
многими программами и некоторыми операционными системами изначально. - .tar.gz —Использование программы tar для сбора файлов и gzip для сжатия и распаковки.
- .tar.bz2 —Использование программы tar для сбора файлов и bzip2 для сжатия и распаковки.
Выберите формат, который лучше всего подходит для вашей платформы.
Пакет двоичных оборотов
См. Раздел jpackage ниже.
В составе IDE
Все основные Java IDE поставляются с Ant, такими продуктами, как Eclipse, NetBeans и IntelliJ IDEA. Если вы установите Ant таким образом
обычно вы получаете самый последний выпуск Ant на момент выпуска IDE. Некоторые из IDE (Eclipse и NetBeans
в частности) поставляются с дополнительными задачами, которые работают, только если инструменты, специфичные для IDE, находятся на пути Ant.Чтобы использовать их на
версии Ant для командной строки, соответствующие JAR-файлы необходимо добавить в Ant в качестве дополнительных библиотек / задач. Запись
что если это задача или расширение IDE, которые не работают, команда Ant не может отправлять отчеты об ошибках. Попробуйте IDE
списки рассылки первыми, кто при необходимости будет перекрестно перепрошивать сообщения об ошибках.
IDE всегда могут указывать на разные установки Ant. Это позволяет разработчикам перейти на новую версию Ant и
устранить несоответствия между командной строкой и IDE Ant.
в составе приложений Java
Многие приложения Java, особенно серверы приложений, поставляются с версией Ant. Это в первую очередь для
внутреннее использование приложением, используя API Java для делегирования таких задач, как компиляция страницы JSP, Ant
время выполнения. Такие дистрибутивы обычно не поддерживаются всеми. Особенно неприятны те продукты, которые не
поставляются только со своим собственным выпуском Ant, они добавляют свою собственную версию ANT.BAT или ant. шиллингов в
ПУТЬ
. Если Ant начинает странно себя вести после установки, попробуйте
консультации по диагностике.
Распространение исходного кода
Если вы предпочитаете исходный код, вы можете загрузить исходный код последней версии Ant.
с https://ant.apache.org/srcdownload.cgi.
Если вы предпочитаете передовой код, вы можете получить доступ к коду в процессе его разработки через Git. На сайте Ant есть
подробности о доступе к Git. Все исправления ошибок будут противоречить
HEAD дерева исходных текстов, и первым ответом на многие сообщения об ошибках будет «пробовали ли вы последнюю
версия».Не бойтесь загрузить и собрать предварительный выпуск, так как все, кроме новых функций
обычно стабильный.
См. Раздел Сборка Ant о том, как собрать Ant из исходного кода. Вы также можете получить доступ
он-лайн репозиторий Ant Git.
Схема области загрузки архива
Более старые версии Ant доступны в архивах по адресу https://archive.apache.org/dist/ant/. Файлы организованы следующим образом.
Имя файла или путь | Описание |
---|---|
КЛЮЧИ | ключевой файл PGP.Он содержит ключи PGP разработчиков Ant, так что вы можете «доверять» распространению. |
ЗАМЕТКИ О ВЫПУСКЕ- {версия} .html | Примечания к выпуску данной версии в формате HTML. При обновлении установки Ant вы Следует взглянуть на изменения , которые могут нарушить работу старых сред, раздел . |
ant-current-bin.zip | ZIP-архив, содержащий скомпилированную версию Ant в последней выпущенной версии.Рекомендуется не загрузите последнюю версию таким образом, так как стандартный способ загрузки, описанный выше, перенаправит вас на зеркало ближе к вам, тем самым ускоряя загрузку для вас и снижая нагрузку на серверы Apache. |
ant-current-src.zip | ZIP-архив, содержащий исходные коды Ant. Если он у вас есть, вы можете скомпилировать Ant. Если у вас нет требовал зависимостей, классы, зависящие от них, просто не строятся.Опять же, предпочтительно использовать стандартный способ получения пакета с исходным кодом, описанный выше, чтобы ускорить загрузку и снизить нагрузку на серверах Apache. |
противоток — *. Asc | Файл безопасности для проверки правильности zip-файла. Этот подпись PGP. |
противоток — *. Md5 | Файл безопасности для проверки правильности zip-файла. Этот контрольная сумма MD5. |
противоток — *. Sha1 | Файл безопасности для проверки правильности zip-файла. Этот контрольная сумма SHA1. |
противоток — *. Sha512 | Файл безопасности для проверки правильности zip-файла. Этот контрольная сумма SHA512. |
антлиб / | В этом каталоге хранятся библиотеки Antlib, которые предоставляются проектом Apache Ant.Antlib — это пакеты Ant задачи, которые не поставляются как часть ядра Ant, но доступны для дополнительной загрузки. |
двоичные файлы / | Каталог двоичных файлов содержит определенные выпуски Ant, упакованные в архивные форматы ZIP и tar.gz. Названный выпуски отличаются от файла ant-current-bin.zip в родительском каталоге, который всегда гарантированно будет самой последней версией Ant. |
общий / | В общем каталоге хранятся различные файлы, такие как файл лицензии Apache, на который распространяется лицензия Ant, которые люди может захотеть изучить, не загружая весь дистрибутив Ant. |
источник / | Исходный каталог содержит исходный код для определенных выпусков Ant, упакованных в архив ZIP и tar.gz. форматы. Названные выпуски отличаются от файла ant-current-src.zip в родительском каталоге, который всегда гарантированно содержит исходный код самой последней версии Ant. |
Системные требования
Ant успешно использовался на многих платформах, включая Linux, коммерческие разновидности Unix, такие как Solaris и
HP-UX, macOS, потомки Windows NT, OS / 2 Warp, Novell Netware 6, OpenVMS.Платформы, которые чаще всего используются для разработки:
в произвольном порядке Linux, macOS, Microsoft Windows и Unix; поэтому именно эти платформы работают
Лучший. Начиная с версии Ant 1.7 , Windows 9x больше не поддерживается.
Для текущей версии Ant (1.10) вам также понадобится установленный в вашей системе JDK, версия 8 или более поздняя.
Чем актуальнее версия Java, тем больше задач Ant вы получите.
Примечание : Если JDK отсутствует, только среда выполнения (JRE), то многие задачи не будут работать.
Примечание :
Ant 1.9. * Работает с JDK 1.5 и выше, Ant 1.8. * Работает с JDK 1.4 и выше, Ant 1.7. * Работает с JDK 1.3 и выше,
Ant 1.6. * Работает с JDK 1.2 и выше, от Ant 1.2 до Ant 1.5. * Работает с JDK 1.1 и выше.
Среда выполнения Java с открытым исходным кодом
Команда Ant решительно поддерживает пользователей, использующих Ant на OpenJDK и
другие среды выполнения Java с открытым исходным кодом, и поэтому стремится иметь продукт, который хорошо работает на этих платформах.
Установка Ant
Бинарный дистрибутив Ant состоит из следующего расположения каталогов:
муравей + --- README, LICENSE, fetch.xml, другие текстовые файлы. //основная информация + --- bin // содержит скрипты запуска | + --- lib // содержит файлы Ant JAR плюс необходимые зависимости | + --- руководство // Документация по Ant (обязательно к прочтению ;-) | + --- etc // содержит полезные xsl для: // - создать расширенный отчет из xml вывода различных задач. // - перенесем файлы сборки и избавимся от предупреждения об устаревании // - ... и другое ;-)
Для запуска Ant требуются только каталоги bin и lib .
Чтобы установить Ant, выберите каталог и скопируйте туда файлы распространения. Этот каталог будет известен
как ANT_HOME
.
Windows 95, Windows 98 и Windows ME Примечание
Обратите внимание, что текущие выпуски Ant больше не поддерживают эти системы. Если вы используете старую версию Ant,
однако сценарий, используемый для запуска Ant, будет иметь проблемы, если ANT_HOME
— длинное имя файла (т. е.
имя файла, формат которого отличается от «8.3 «). Это связано с ограничениями в обработке ОС
"для" выписки из пакетного файла
. Поэтому рекомендуется устанавливать Ant в
короткий , путь 8,3, например C: \ Ant .
В этих системах вам также потребуется настроить больше пространства среды, чтобы обслуживать используемые переменные среды.
в скрипте запуска Ant. Для этого вам нужно будет добавить или обновить следующую строку в
файл config.sys
оболочка = c: \ команда.com c: \ / p / e: 32768
Настройка
Прежде чем вы сможете запустить Ant, вам нужно будет выполнить некоторые дополнительные настройки, если вы не устанавливаете
Версия RPM с сайта jpackage.org:
- Добавьте к своему пути каталог bin .
- Задайте для переменной среды
ANT_HOME
каталог, в который вы установили Ant. На некоторых действующих
систем, сценарии запуска Ant могут угадатьANT_HOME
(диалекты Unix и потомки Windows NT), но это
лучше не полагаться на такое поведение. - При желании установите переменную среды
JAVA_HOME
(см. Раздел «Дополнительно»
ниже). Это должен быть каталог, в котором установлен ваш JDK.
Инструкции для конкретной операционной системы, как сделать это из командной строки, находятся в
Windows, Linux / Unix (bash) и Linux / Unix (csh)
разделы. Обратите внимание, что при использовании этого метода настройки будут действительны только для сеанса командной строки, в котором вы их запускаете.
Примечание : Не устанавливайте Ant Ant.jar в каталог lib / ext
JDK / JRE. Ant — это приложение, а каталог расширений предназначен для расширений JDK. В частности, есть
ограничения безопасности для классов, которые могут быть загружены расширением.
Windows Примечание
Скрипт ant.bat использует три среды
переменные — ANT_HOME
, CLASSPATH
и JAVA_HOME
. Обеспечить
что установлены переменные ANT_HOME
и JAVA_HOME
, и что они имеют значение , а не
кавычки (либо ‘или «), и они делают , а не , заканчиваются на \ или на /. CLASSPATH
должен быть
не задано или пусто.
Проверить установку
Вы можете проверить базовую установку, открыв новую оболочку и набрав ant . Вы должны получить сообщение вроде
этот
Файл сборки: build.xml не существует! Сборка не удалась
Так что Муравей работает. Это сообщение появляется потому, что вам нужно написать файл сборки для вашего проекта. С муравьем
-version вы должны получить результат вроде
Apache Ant (TM) версии 1.9.2 от 8 июля 2013 г.
Если это не сработает, убедитесь, что переменные среды установлены правильно. Например, в Windows они должны решить:
- требуется:
% ANT_HOME% \ bin \ ant.bat
- необязательно:
% JAVA_HOME% \ bin \ java.exe
- требуется:
% PATH% = ... возможно-другие-записи ...;% ANT_HOME% \ bin; ... возможно-другие-записи ...
ANT_HOME
используется скриптом запуска для поиска библиотек. JAVA_HOME
используется
пусковая установка для поиска JDK / JRE для использования. (Рекомендуется использовать JDK, поскольку для некоторых задач требуются инструменты Java.) Если не установлен,
Программа запуска пытается найти его с помощью переменной окружения % PATH%
. PATH
устанавливается для пользователя
удобство. С этим набором вы можете просто запустить ant вместо того, чтобы всегда
набрав / complete / path / to / your / ant / installation / bin / ant .
Дополнительные задачи
Ant поддерживает ряд дополнительных задач.Необязательная задача — это задача, для которой обычно требуется внешняя библиотека.
функция. Необязательные задачи упакованы вместе с основными задачами Ant.
Внешние библиотеки, необходимые для каждой из дополнительных задач, подробно описаны в Библиотеке.
Раздел зависимостей. Эти внешние библиотеки необходимо добавить в путь к классам Ant любым из следующих способов:
В
ANT_HOME / lib
. Это делает файлы JAR доступными для всех пользователей и сборок Ant.В
$ {user.home} /. Ant / lib
( с Ant 1.6 ). Это позволяет разным пользователям добавлять новые библиотеки в
Муравей. Все файлы JAR, добавленные в этот каталог, доступны Ant из командной строки.В командной строке с параметром -lib . Это позволяет добавлять новые файлы JAR в индивидуальном порядке.
В переменной среды
CLASSPATH
. Избегайте этого; он делает файлы JAR видимыми для всех Java
приложений и вызывает бесконечные обращения в службу поддержки.Подробнее см. Ниже.В какой-то
задача
(вместе с вашей программой и тестами) в пути к классам, переданным при запуске задачи.По возможности, этот вариант обычно предпочтительнее, так как сценарий Ant сам может определить лучший путь для загрузки.
библиотека из: через относительный путь от baseir (если вы держите библиотеку под контролем версий с вашим проектом),
в соответствии со свойствами Ant, переменными среды, загрузками Ivy, что угодно.
Если вы используете двоичный дистрибутив Ant или работаете с исходным кодом, вы можете легко собрать большую часть
зависимости и установите их для использования с задачами Ant. В вашем каталоге ANT_HOME
вы должны увидеть
файл с именем fetch.xml . Это сценарий Ant, который можно запустить для установки почти всех зависимостей, которые
необязательные задачи Ant.
Для этого перейдите в каталог ANT_HOME
и выполните команду:
ant -f fetch.xml -Ddest = [опция]
где option — одно из следующих, как описано выше:
-
system
— хранить в каталоге Ant Ant ( рекомендуется ) -
пользователь
— хранить в домашнем каталоге пользователя -
необязательно
— хранить в исходном коде Ant. lib / необязательный каталог , используемый при сборке Ant.
исходный код
Вам также может потребоваться установить настройки прокси. См. Подробности в разделе «Настройки прокси».
Обратите внимание, что не все зависимости собираются с помощью fetch.xml . Задачи, зависящие от коммерческого ПО, в
в частности, для использования вам потребуется установить коммерческое программное обеспечение.
Проект Apache Ant также предоставляет дополнительные задачи и типы, которые доступны как отдельно загружаемый Ant.
Библиотеки. Вы можете увидеть список доступных Antlib на странице Ant Libraries.
Вы также можете найти задачи и типы, предоставленные сторонними проектами, на странице «Внешние инструменты и задачи».
В IDE есть разные способы добавления в Ant внешних файлов JAR и сторонних задач. Обычно это делают некоторые
диалог конфигурации. Иногда файлы JAR, добавленные в проект, автоматически добавляются в путь к классам Ant.
CLASSPATH
Переменная среды
Переменная среды CLASSPATH
является источником многих запросов поддержки Ant. Как время туда и обратно для
диагностика в списке рассылки пользователей Ant может быть медленной, и из-за того, что отправка отчетов об ошибках с жалобами на файл ant.летучая мышь не
рабочая форма будет отклонена разработчиками как WORKSFORME «это проблема конфигурации, а не ошибка», вы можете сохранить
вы потратите много времени и разочарований, выполнив несколько простых шагов.
- Никогда не устанавливайте
CLASSPATH
. Муравью это не нужно, он только приводит в замешательство и ломает вещи. - Если вы проигнорируете предыдущее правило, никогда, никогда не помещайте кавычки в
CLASSPATH
, даже если есть
место в каталоге. Это сломает Ant, и в этом нет необходимости. - Если вы проигнорируете первое правило, никогда, никогда не используйте обратную косую черту в конце
CLASSPATH
, так как это нарушает
Способность Муравья цитировать строку. Опять же, это не требуется для правильной работыCLASSPATH
.
переменная окружения, даже если к пути нужно добавить каталог DOS. - Вы можете остановить Ant, используя переменную среды
CLASSPATH
, задав -noclasspath
параметр в командной строке. Это простой способ проверить наличие проблем, связанных с путями к классам.
Обычным признаком проблем CLASSPATH
является то, что Ant не запускается с ошибкой о невозможности
найдите org.apache.tools.ant.launch.Launcher
или, если у вас неправильные кавычки / обратная косая черта,
какая-то очень странная ошибка запуска Java. Чтобы узнать, так ли это, запустите ant -noclasspath или отключите
переменная среды CLASSPATH
.
Вы также можете заставить свой сценарий Ant отклонять эту переменную среды, просто поместив следующее в верхней части
скрипт (или в цели инициализации):
<условие> <не>
Конфигурация прокси
Многие встроенные в Ant и сторонние задачи используют сетевые подключения для получения файлов с HTTP-серверов. Если вы позади
брандмауэр с прокси-сервером, тогда Ant должен быть настроен с прокси.Вот разные способы сделать
этот.
- С Java 5 или выше
Когда вы запускаете Ant на Java 5 или выше, вы можете попробовать использовать механизм автоматической настройки прокси.
с -автопрокси . - С явными свойствами JVM.
Они задокументированы в свойствах сети Java и управляют поведением прокси-сервера всей JVM. Чтобы установить их в Ant,
объявите их в переменной средыANT_OPTS
. Это лучший вариант для немобильной системы.Для
ноутбука, вам придется изменять эти настройки во время перемещения. Чтобы установитьANT_OPTS
:Для csh / tcsh:
setenv ANT_OPTS "-Dhttp.proxyHost = proxy -Dhttp.proxyPort = 8080"
Для bash:
export ANT_OPTS = "- Dhttp.proxyHost = proxy -Dhttp.proxyPort = 8080"
Для Windows установите переменную среды в соответствующем диалоговом окне и откройте новую консоль или вручную
установить ANT_OPTS = -Dhttp.proxyHost = proxy -Dhttp.proxyPort = 8080
- В самом файле сборки
Если вы пишете файл сборки, который всегда будет использоваться за брандмауэром,
задача setproxy позволяет вам настроить прокси (что он делает, устанавливая JVM
свойства).Если вы это сделаете, мы настоятельно рекомендуем использовать свойства Ant для определения прокси-хоста, порта и т. Д., Чтобы
отдельные лица могут изменить настройки по умолчанию.
Команда Ant признает, что это неудовлетворительно. Пока автоматическая настройка прокси JVM не будет работать везде должным образом,
явные параметры JVM через ANT_ARGS
, вероятно, являются лучшим решением. Установка свойств в командной строке Ant
не работают, потому что задаются свойства Ant, , а не параметры JVM.Это означает, что следующее не устанавливает
вверх в командной строке:
муравей -Dhttp.proxyHost = прокси -Dhttp.proxyPort = 81
Все, что он делает, — это настраивает два свойства Ant.
Еще одна проблема с прокси-серверами — это аутентификация прокси. Ant не может выходить за рамки того, что здесь делает JVM, и поскольку
очень сложно удаленно диагностировать, тестировать и исправлять проблемы, связанные с прокси-сервером, пользователи, которые работают за безопасным прокси-сервером, будут
придется потратить много времени на настройку свойств JVM, пока они не будут довольны.
Windows и OS / 2
Предположим, Ant установлен в c: \ ant \ . Следующее устанавливает
окружающая среда:
установить ANT_HOME = c: \ ant установите JAVA_HOME = c: \ jdk1.7.0_51 установить PATH =% PATH%;% ANT_HOME% \ bin
Linux / Unix (bash)
Предположим, Ant установлен в / usr / local / ant . Следующие установки
окружение:
экспорт ANT_HOME = / usr / local / ant экспорт JAVA_HOME = / usr / local / jdk1.7.0_51 экспорт ПУТЬ = $ {ПУТЬ}: $ {ANT_HOME} / bin
Linux / Unix (csh)
setenv ANT_HOME / usr / местный / муравей setenv JAVA_HOME / usr / местные / jdk / jdk1.7.0_51 установить путь = ($ путь $ ANT_HOME / bin)
Наличие символической ссылки, указывающей на версию JVM / JDK, делает обновления более плавными.
Версия
RPM с сайта jpackage.org
Проект JPackage распространяет RPM-версию Ant. С этим
версии, не обязательно устанавливать переменные среды JAVA_HOME
или ANT_HOME
и RPM
Установщик правильно разместит исполняемый файл ant на вашем пути.
Примечание : Начиная с Ant 1.7.0 , если установлена переменная среды ANT_HOME
, JPackage
распространение будет проигнорировано.
Дополнительные JAR для версии JPackage обрабатываются двумя способами. Самый простой и лучший способ — получить эти внешние
библиотеки из JPackage, если они доступны в JPackage. (Примечание: для каждой такой библиотеки вам нужно будет получить как
сам внешний пакет (например, oro-2.0.8-2jpp.noarch.rpm ) и небольшая библиотека, связывающая Ant и
внешний пакет (например, ant-apache-oro-1.6.2-3jpp.noarch.rpm ).
Однако JPackage не упаковывает проприетарное программное обеспечение, и поскольку некоторые из дополнительных пакетов зависят от проприетарного ПО,
JAR, с ними нужно обращаться следующим образом. Это может нарушить дух JPackage, но это необходимо, если они вам нужны.
проприетарные пакеты. Например, предположим, что вы хотите установить поддержку NetRexx, которую JPackage не поддерживает:
- Решите, где вы хотите развернуть дополнительные JAR. Один из вариантов находится в
$ ANT_HOME / lib
, который для JPackage
обычно / usr / share / ant / lib .Другой, менее беспорядочный вариант — создать подкаталог .ant / lib .
вашего домашнего каталога и поместите туда JAR-файлы Ant, отличные от JPackage, тем самым избегая смешивания библиотек JPackage с
файлы, не относящиеся к JPackage, в той же папке. Дополнительная информация о том, где Ant находит свои библиотеки, находится
доступно здесь - Загрузите двоичный дистрибутив, отличный от JPackage, с обычного сайта Apache Ant
- Распаковать или распаковать дистрибутив во временный каталог
- Скопируйте связывающий JAR, в данном случае ant-jai.jar в каталог библиотеки, который вы выбрали на шаге 1
над. - Скопируйте проприетарный JAR в тот же каталог.
Наконец, если по какой-то причине вы работаете в системе с доступными версиями Ant для JPackage и Apache, если
вам нужно запустить версию Apache (которая должна быть указана с абсолютным именем файла, не найденным в
path), вы должны использовать параметр командной строки Ant --noconfig , чтобы избежать механизма пути к классам JPackage.
Продвинутый
Есть много разных способов запустить Ant. Вам понадобится как минимум следующее:
- Путь к классам для Ant должен содержать ant.jar и любые JAR / классы, необходимые для выбранной вами JAXP-совместимой
Парсер XML. - Когда вам нужна функциональность JDK (например, для задачи javac или
rmic task), то нужно добавить tools.jar . Скрипты, поставляемые с Ant,
в каталоге bin , автоматически добавит необходимые классы JDK, еслиJAVA_HOME
переменная окружения установлена. - Когда вы выполняете приложения для конкретной платформы, такие как задача exec или
задача cvs, свойствоant.home
должно быть установлено в каталог, содержащий
где вы установили Ant. Опять же, скрипты Ant устанавливают значение средыANT_HOME
.
переменная.
Все поставляемые сценарии оболочки Ant поддерживают переменную среды ANT_OPTS
, которую можно использовать для предоставления
дополнительные параметры для Ant. Некоторые из сценариев также читаются в дополнительном сценарии, хранящемся в домашнем каталоге пользователя, который может быть
используется для установки таких параметров.Подробности смотрите в источнике сценария вызова вашей платформы.
Строительный муравей
Чтобы собрать Ant из исходного кода, вы можете либо установить исходный дистрибутив Ant, либо клонировать репозиторий Ant из Git. Видеть
Исходный код для подробностей.
После того, как вы установили исходный код, перейдите в каталог установки.
Задайте для переменной среды JAVA_HOME
каталог, в котором находится JDK.
установлен. См. «Установка Ant», где приведены примеры того, как это сделать для вашей операционной системы.
Примечание : Процесс начальной загрузки Ant требует жадного компилятора, такого как OpenJDK или
Oracle javac . Он не работает с gcj или kjc .
Убедитесь, что вы загрузили все вспомогательные JAR-файлы, необходимые для сборки интересующих вас задач. Их следует добавить в
каталог lib / optional дерева исходных текстов. См. Зависимости библиотеки
для списка требований JAR для различных функций. Обратите внимание, что это сделает вспомогательный JAR доступным для
только здание Ant.Для запуска Ant вам все равно нужно сделать JAR доступными, как описано
в разделе Установка Ant.
Вы также можете получить большую часть вспомогательных файлов JAR (т.е. файлов JAR, от которых зависят различные дополнительные задачи Ant) с помощью
запуск Ant в файле сборки fetch.xml . См. Инструкции в разделе Дополнительные задачи.
о том, как это сделать.
Начиная с версии Ant 1.7.0 , Ant жестко зависит от JUnit. Сценарий сборки fetch.xml загрузит
JUnit автоматически, но если вы не используете его, вы должны установить его вручную в lib / optional (загрузите его
из JUnit.org), если вы используете исходный код Ant.
Теперь вы готовы построить Ant:
build -Ddist.dir = < каталог-содержащий-Ant-distribution > dist ( Windows )
sh build.sh -Ddist.dir = < каталог-содержащий-Ant-distribution > dist ( Unix )
Это создаст двоичный дистрибутив Ant в указанном вами каталоге.
Вышеуказанное действие делает следующее:
- При необходимости загрузит код Ant.Начальная загрузка включает в себя компиляцию вручную достаточного количества Ant-кода,
может запускать Ant. Загрузочный Ant используется на оставшихся этапах сборки. - Вызывает загруженный Ant с параметрами, переданными сценарию сборки. В этом случае эти параметры определяют
значение свойства Ant и укажите цельdist
в собственном файле Ant build.xml . - Создайте JAR-файлы ant.jar и ant-launcher.jar
- Создайте дополнительные JAR-файлы, для которых в сборке есть соответствующие библиотеки.Если конкретная библиотека отсутствует
из lib / optional , то соответствующий JAR-файл муравьиной библиотеки не будет создан. За
Например, ant-junit.jar создается только в том случае, если есть junit.jar в lib / optional
каталог.
В большинстве случаев вам не нужно явно загружать Ant, поскольку сценарии сборки делают это за вас. Однако если
build файл, который вы используете, использует функции, еще не скомпилированные в загрузочный Ant, вам нужно будет вручную
бутстрап.Запустите bootstrap.bat (Windows) или bootstrap.sh (UNIX), чтобы создать новую версию начальной загрузки.
Ant.
Если вы хотите установить сборку в текущий ANT_HOME
каталог, вы можете использовать:
сборка установить ( Windows )
sh build.sh установить ( Unix )
При желании вы можете избежать длинного шага Javadoc с помощью:
build install-lite ( Windows )
ш корп.sh install-lite ( Unix )
Это установит только каталоги bin и lib .
Цели install и install-lite перезапишут текущую версию Ant.
в ANT_HOME
.
Сценарий сборки Ant будет пытаться установить исполняемые флаги для своих сценариев оболочки в Unix (-подобных) системах. Есть разные
причины, по которым задача chmod может завершиться неудачно (например, когда вы запускаете сценарий сборки как
пользователь, отличный от того, который изначально установил Ant).В этом случае вы можете установить Ant
свойство chmod.fail
в false при запуске сборки, как в
sh build.sh install -Dchmod.fail = false
и любая ошибка, связанная с изменением разрешения, не приведет к сбою сборки.
Библиотеки зависимостей
Следующие библиотеки необходимы в пути к классам Ant, если вы используете указанную функцию. Обратите внимание, что только один из
библиотеки регулярных выражений необходимы для использования с картографами (а Java включает реализацию регулярных выражений, которую Ant найдет
автоматически).Вам также потребуется установить конкретный дополнительный JAR-файл Ant, содержащий определения задач для
эти задачи доступны. См. Раздел «Установка Ant / Дополнительные задачи» выше.
Имя JAR | необходимо для | Доступен по |
---|---|---|
jakarta-regexp-1.4.jar | regexp type с мапперами (если вы не хотите использовать java.util.regex) | https://attic.apache.org/projects/jakarta-regexp.HTML |
jakarta-oro-2.0.8.jar | regexp type с мапперами (если вы не хотите использовать java.util.regex) или задачу ftp с commons-net 1.4.1 | https://attic.apache.org/projects/jakarta-oro.html |
junit.jar | задача junit (может быть в пути к классам передана задаче, а не Путь к классам Ant) | https://junit.org/ |
xalan.jar | задача junitreport | https: // xml.apache.org/xalan-j/ |
antlr.jar | антлр задача | https://www.antlr.org/ |
bsf.jar | задача сценария Примечание : Ant 1.6 и новее требует Apache BSF 2.3.0 или новее. Примечание : BSF 2.4.0 необходим для использования 1.5R4 или более поздних версий Rhino JavaScript. Примечание : BSF 2.4.0 использует Commons Logging, поэтому ему нужен commons-logging.jar. | https: // commons.apache.org/bsf/ |
Groovy JAR | Задачи Groovy Ant с привязками или Groovy со сценарием и scriptdef задачи | http://groovy-lang.org/ Используйте либо groovy-ant для Задачи Groovy Ant с привязками или groovy-bsf для Groovy с задачами script и scriptdef (или groovy-all) |
netrexx.jar | netrexxc task, Rexx с задачей сценария | https://www.ibm.com/software/awdtools/netrexx/library.HTML |
rhino.jar (включен в среду выполнения Java 7, заменен на Nashorn в Java 8 и новее) | JavaScript с задачей сценария Примечание : Apache BSF 2.4.0 работает только с Rhino 1.5R4 и более поздними версиями. | https://www.mozilla.org/rhino/ |
jython.jar | Python с задачей сценария | https://www.jython.org/ |
jacl.jar и tcljava.jar | TCL с задачей сценария | http: // tcljava.sourceforge.net/ |
jtcl.jar | TCL с задачей сценария | https://jtcl-project.github.io/jtcl/ |
BeanShell JAR (ы) | BeanShell со скриптовой задачей. Примечание : Ant требует BeanShell версия 1.3 или новее | http://www.beanshell.org/ |
jruby.jar | Ruby со скриптовой задачей | https://jruby.org/ |
дзюдо.банка | Язык дзюдо со сценарием | раньше находился по адресу http://www.judoscript.org/, который сейчас больше не доступен. |
commons-logging.jar | CommonsLoggingListener | https://commons.apache.org/logging/ |
log4j.jar | Log4jListener | https://logging.apache.org/log4j/ |
commons-net.jar | ftp, rexec и задачи telnet Минимальная версия commons-net — 1.4.0 требуется для скомпилировать Ant, более ранние версии не поддерживали весь набор параметров конфигурации. jakarta-oro 2.0.8 это требуется вместе с commons-net 1.4.x во время выполнения. Примечание : не используйте commons-net 3.2 из-за проблем с производительностью | https://commons.apache.org/net/ |
bcel.jar | тип данных classfileset, JavaClassHelper, используемый фильтром ClassConstants считыватель и опционально используется задачей ejbjar для определения зависимости | https: // commons.apache.org/bcel/ |
jakarta.mail.jar | почтовая задача и устарело задача mimemail | https://eclipse-ee4j.github.io/mail/ |
activate.jar
| почтовая задача с кодировкой MIME, и устарело задача mimemail | https://github.com/eclipse-ee4j/jaf |
jdepend.jar | jdepend task | https://github.com/clarkware/jdepend |
resolver.jar 1.1 или новее | xmlcatalog тип данных , только если поддержка файлов внешнего каталога желаемый | https: // xerces.apache.org/xml-commons/components/resolver/ |
jsch.jar 0.1.55 или более поздняя версия | задачи sshexec и scp | http://www.jcraft.com/jsch/ |
JAI — Java Advanced Imaging | изображение задачи | https://download.java.net/media/jai/builds/release/1_1_3/INSTALL.html |
jai-imageio-core.jar | imageio задача для поддержки TIFF на Java 8, а также поддержки PCX, PNM, RAW | https: // github.com / jai-imageio / jai-imageio-core / Release |
XZ — XZ для Java 1.6 или более поздней версии | xz и unxz задачи, xzresource, сжатие xz в задачах tar / untar | https://www.tukaani.org/xz/java.html |
JUnit 5 Ящики платформы:
| задача junitlauncher.Дополнительные библиотеки могут потребоваться в зависимости от на выбранных тестовых движках, подробности о которых доступны в документации по этой задаче | https://junit.org/junit5/ |
Устранение неисправностей
Диагностика
Ant имеет встроенную функцию диагностики. Если вы запустите ant -diagnostics , Ant будет проверять его внутреннее состояние.
и распечатайте. Этот код проверит и распечатает следующее.
- Откуда запускается Ant.Иногда можно удивиться.
- Версия ant.jar и ant — *. Jar , содержащая необязательные задачи — и
соответствуют ли они - Какие файлы JAR находятся в
ANT_HOME / lib
- Какие дополнительные задачи доступны. Если задача не указана как доступная, либо ее нет, либо
библиотеки, от которых это зависит, отсутствуют. - Информация парсера XML
- Свойства системы JVM
- Состояние каталога temp .Если это не доступно для записи или его отметка времени ужасно неверна (возможно
если он находится на сетевом диске), многие задачи могут завершиться неудачно с непонятными сообщениями об ошибках. - Текущий часовой пояс, как его видит Java. Если это не то, что должно быть для вашего местоположения, то логика зависимости может
смутиться.
Запуск ant -diagnostics — хороший способ проверить, установлен ли Ant. Это также первый шаг к
самодиагностика любой проблемы. Любая проблема конфигурации, отправленная в список рассылки пользователей, вероятно, приведет к
кто-то просит вас запустить команду и показать результаты, так что сэкономьте время, используя ее самостоятельно.
Для диагностики из среды IDE используйте задачу диагностики, чтобы запустить те же тесты, что и
вариант Ant. Это можно добавить к цели диагностики в файле сборки, чтобы увидеть, какие задачи доступны в среде IDE,
что такое XML-парсер и путь к классам и т. д.
Список рассылки пользователей
Если вы не можете установить или запустить Ant, лучше всего начать со списка рассылки пользователей Ant.
проблема. Пожалуйста, сначала сделайте домашнее задание, убедитесь, что это не CLASSPATH
проблема и запустите диагностическую проверку, чтобы узнать, что Ant думает о своем состоянии.Почему пользователь
список, а не список разработчиков? Потому что пользователей больше, чем разработчиков, поэтому больше людей могут вам помочь.
Отправляйте отчет об ошибке Ant только в случае проблемы с конфигурацией / запуском, если в Ant действительно есть исправляемая ошибка.
связанных с конфигурацией, например, не работает на определенной платформе, с определенной версией JVM и т. д., или если вы
рекомендуется сделать это в списке рассылки пользователей.
.
Настройка CGI с Apache в Ubuntu Linux
CGI, общий интерфейс шлюза — это простой способ написания веб-приложений. Особенно, если вы используете Apache в качестве веб-сервера.
Недавно я хотел показать несколько примеров использования CGI на разных языках программирования, но сначала мне нужно было убедиться, что CGI включен на моем сервере.
Я использовал образ Vagrant на основе Ubuntu для своих экспериментов.
но я думаю, что те же шаги будут работать в любой другой системе на основе Ubuntu или Debian.
Установить Apache 2
Если он у вас еще не установлен, вам нужно будет установить сами веб-серверы:
$ sudo apt-get install apache2
Установить curl
curl можно использовать для получения веб-страниц.
Это не является обязательным требованием для нашей настройки, но его приятно иметь на сервере, поскольку его можно использовать для проверки страниц.
не открывая настоящий браузер. Кроме того, по крайней мере в моей настройке, я настроил веб-сервер в виртуальной среде,
но я еще не настроил переадресацию портов для порта 80, поэтому я не смогу получить доступ к веб-серверу с моего
рабочий стол.(Статья о среде разработки Vagrant
есть объяснение, как настроить переадресацию портов.)
$ sudo apt-get install curl
Попробуйте веб-сервер
На этом этапе мы можем попробовать, работает ли веб-сервер:
$ curl http://127.0.0.1/
Он напечатает HTML-код на экране.
Настроить CGI
Я просмотрел каталог / etc / apache2, который является стандартным местом для поиска
файлы конфигурации Apache. Я нашел файл / etc / apache2 / conf-available / serve-cgi-bin.conf
файл с символической ссылкой из /etc/apache2/conf-enabled/serve-cgi-bin.conf.
В нем есть раздел, который сопоставляет путь / cgi-bin в URL-адресах с / usr / lib / cgi-bin /
каталог на жестком диске и разрешает выполнение CGI в этом каталоге.
примеры / apache / serve-cgi-bin.conf
# vim: syntax = apache ts = 4 sw = 4 sts = 4 sr noet Определите ENABLE_USR_LIB_CGI_BIN Определите ENABLE_USR_LIB_CGI_BIN ScriptAlias / cgi-bin / / usr / lib / cgi-bin / <Каталог "/ usr / lib / cgi-bin"> AllowOverride Нет Параметры + ExecCGI -MultiViews + SymLinksIfOwnerMatch Требовать все предоставлено
Но этого недостаточно.Нам также необходимо включить модуль CGI Apache.
Установленные модули Apache можно найти в каталоге / etc / apache2 / mods-available.
Модуль cgi называется cgi.load
Включенные модули имеют символические ссылки в / etc / apache2 / mods-enabled, но, как я выяснил,
у модуля CGI не было символьной ссылки: модуль CGI не был включен по умолчанию.
$ cd / etc / apache2 / с поддержкой модов $ sudo ln -s ../mods-available/cgi.load
Добавлена символическая ссылка.
Перезагрузить конфигурацию Apache
Поскольку конфигурация Apache изменилась, нам нужно указать Apache перезагрузить файлы конфигурации:
$ sudo service apache2 перезагрузка
Создайте первый сценарий CGI
Теперь, когда мы включили CGI, мы можем создать наш первый сценарий CGI.
Этот первый пример CGI будет создан в Bash.
Позже вы можете проверить решения различных веб-упражнений.
Особенно Hello World! упражнения и
упражнение Web Echo и их решения.
Я создал файл с именем /usr/lib/cgi-bin/hw.sh, используя sudo vim /usr/lib/cgi-bin/hw.sh
примеры / apache / hw.sh
#! / bin / bash printf "Content-type: text / html \ n \ n" printf "Привет, мир! \ n"
Сделал исполняемым:
$ sudo chmod + x /usr/lib/cgi-bin/hw.sh
Затем я мог получить к нему доступ через Apache, используя:
$ curl http://127.0.0.1/cgi-bin/hw.sh Привет мир!
Поиск и устранение неисправностей
Если запрос curl возвращает 404 Not Found, то либо файл находится в неправильном месте, либо
URL-адрес для curl неверен.
Если запросы curl возвращают 500 Internal Server Error, возможно, вы забыли сделать скрипт
исполняемый файл с использованием sudo chmod + x /usr/lib/cgi-bin/hw.sh
или строка hashbang (первая строка, которая должна выглядеть так #! / bin / bash, была введена неправильно.
Другой распространенный источник ошибок — разница между символами новой строки в MS Windows и Linux в текстовых файлах.
Вы должны убедиться, что ваш скрипт имеет окончание строки Unix / Linux. Один из лучших способов — запустить
dos2unix hw.sh, который заменит символы новой строки Windows на символы новой строки Unix.
Наконец, ошибка 500 может возникнуть, если первая строка, напечатанная сценарием, не является Content-type: text / html.
с двумя (!) символами новой строки.
Дополнительная литература
Ознакомьтесь со всеми статьями, связанными с CGI, Perl и
CGI и Ruby.
В комментариях заключите фрагменты кода в теги
и используйте пробелы для отступов.
.