Установка и настройка веб-сервера Apache на FreeBSD 13.2
Как установить и настроить веб-сервер Apache 2.4 на FreeBSD 13.2, включая дополнительные модули, виртуальные хосты и работу с Cloudflare.
Настройка сервера на FreeBSD 13.2 -> Apache 2.4
Apache не входит в стандартную комплектацию FreeBSD 13.2, поэтому его сначала надо установить. Для установки httpd-сервера Apache выполняем следующую команду: pkg install apache24редактируем файл настроек: vim /etc/rc.confдобавляем строку: apache24_enable="YES"и запускаем сервер: service apache24 startредактировать конфигурацию: vim /usr/local/etc/apache24/httpd.confдля работы по протоколу HTTPS надо прослушивать соответствующий порт: Listen 443для работы SSL: LoadModule ssl_module libexec/apache24/mod_ssl.soдля работы SSI: LoadModule include_module libexec/apache24/mod_include.soдля работы CGI: LoadModule cgi_module libexec/apache24/mod_cgi.soдля работы механизма перезаписи (переадресации): LoadModule rewrite_module libexec/apache24/mod_rewrite.soподключаем глобально движок перезаписи, чтобы не указывать его в каждом виртуальном хосте, а в следующей строке указываем директорию, необходимую нам для получения SSL сертификатов: <IfModule rewrite_module>
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$ [OR]
</IfModule>перезагрузить для вступления изменений в силу: apachectl restart
Установка дополнительных модулей
Устанавливаем систему для настройки информации о зависимостях сборки. Эта программа поможет настроить флаги компилятора и компоновщика для библиотек разработки. Позволяет системам сборки обнаруживать другие зависимости и использовать их с системным набором инструментов.pkg install pkgconf
FreeBSD имеет отличную систему управления пакетами, известную как "Ports". Поэтому устанавливать дополнительные модули лучше из портов - это может упростить процесс установки. Начинаем с обновления индекса портов: portsnap fetchа затем распаковываем индекс портов: portsnap extract
Устанавливаем DBI: cd /usr/ports/databases/p5-DBI
make install cleanGD::Text: cd /usr/ports/graphics/p5-GD-TextUtil
make install clean
установка модуля всегда может превратиться в очень длительный и не простой процесс установки зависимостей, которые постоянно меняются.
CGI:cpan install CGI
perl -MCGI -e 'print $CGI::VERSION . "\n";'LWP: cpan install LWP
perl -MLWP -e 'print "LWP is installed\n";'перейти в каталог с портом gdlib: cd /usr/ports/graphics/gdустановить gdlib с помощью команды make: make install cleanобновить индексы пакетов: pkg updateустановить GD: pkg install graphics/gdустановить Lingua::EN::Sentence: cpan install Lingua::EN::Sentenceустановить JSON: pkg install p5-JSON
Виртуальные хосты
Виртуальные хосты - это главное, для чего производятся все эти многочисленные настройки программного обеспечения. На сервере FreeBSD может быть размещено практически любое количество виртуальных хостов, которое ограничено лишь мощностью оборудования и шириной канала связи.
Для добавления нового виртуального хоста сначала, находясь в каталоге "/home", создаем для него каталог где он будет размещен, сразу же со всеми подкаталогами нужными для работы и получения SSL сертификатов одной командой: mkdir -p /home/example/public_html/.well-known/acme-challengeустанавливаем права на нужный каталог и все внутренние: chown -R username:www exampleдалее для добавления виртуального хоста на FreeBSD 13.2 нужно отредактировать этот файл: vim /usr/local/etc/apache24/extra/httpd-vhosts.confдобавляем виртуальный хост: <VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot "/home/example/public_html"
#RewriteCond %{HTTPS} off
#RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</VirtualHost>
Пока мы не получили SSL-сертификат, строки отвечающие за перезапись должны быть закомментированы. После успешного получения SSL-сертификата мы их раскомментируем, и добавим блок для работы с новым виртуальным хостом по защищенному протоколу с использованием полученного сертификата:<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
SSLEngine on
SSLCertificateFile /usr/local/etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /usr/local/etc/letsencrypt/live/example.com/privkey.pem
DocumentRoot "/home/example/public_html"
<Directory "/home/example/public_html">
Require all granted
AllowOverride All
</Directory>
ScriptAlias /cgi-bin/ /home/example/public_html/cgi-bin/
ErrorLog "/var/log/example-error_log"
CustomLog "/var/log/example-access_log" common
</VirtualHost>
Таким образом мы получили переадресацию любых обращений к сайту на безопасный протокол HTTPS, даже если пользователь набрал http:// или перешел по такой ссылке.
Метки: apache; httpd; freebsd
Опрос
В каком году был сделан ваш сайт? (голосов: 24)
- до 2015 года - 23 (96%)
- в 2015 - 0 (0%)
- в 2016 - 0 (0%)
- в 2017 - 0 (0%)
- в 2018 - 1 (4%)
- в 2019 - 0 (0%)