Быстро, доступно, безопасно!
Магазин готовых сайтов

Установка и настройка веб-сервера 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 clean
GD::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%)