Краткое руководство по быстрой установке и настройке веб-сервера в связке FreeBSD 13.0, Apache HTTP Server, PHP и MariaDB (MySQL).
Установка сервера баз данных
Для начала необходимо установить MariaDB (MySQL) сервер. Как это делается, можно почитать здесь: https://dondub.com/2021/05/zapusk-subd-mariadb-na-freebsd/
Установка веб-сервера
Теперь устанавливаем Apache HTTP Server
# pkg install apache24
Затем открываем файл /etc/rc.conf
# vi /etc/rc.conf
и пропишем в нём строчку:
apache24_enable="YES"
После этого открываем файл /usr/local/etc/apache24/httpd.conf
# vi /usr/local/etc/apache24/httpd.conf
и под закомментированной строчкой
#ServerName www.example.com:80
добавить такую:
ServerName localhost
Далее запускаем службу apache24
# service apache24 start
На другой машине в сети в браузере впишем адрес сервера:
http://IP-адрес-сервера
И видим долгожданное It works!
Это — страница по умолчанию. Она расположена в директории /usr/local/www/apache24/data/.
Установка и настройка PHP
Пришло время установить интерпретатор PHP и его расширения, а также модуль PHP для apache
# pkg install php74 php74-mysqli php74-pgsql php74-pdo php74-zip php74-bz2 php74-gd php74-curl php74-json php74-session php74-fileinfo php74-opcache php74-mbstring php74-openssl php74-extensions mod_php74
Затем открываем файл /usr/local/etc/apache24/httpd.conf
# vi /usr/local/etc/apache24/httpd.conf
находим строчку
DirectoryIndex index.html
и исправим её на:
DirectoryIndex index.html index.htm index.shtml index.php
Теперь создадим файл /usr/local/etc/apache24/Includes/php-application.conf
# touch /usr/local/etc/apache24/Includes/php-application.conf
откроем его
# vi /usr/local/etc/apache24/Includes/php-application.conf
и впишем в него такие строчки:
AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phpsXsource
либо можно создать файл /usr/local/etc/apache24/Includes/php.conf и прописать в него такие строчки:
<FilesMatch "\.php$"> SetHandler application/x-httpd-php </FilesMatch> <FilesMatch "\.phps$"> SetHandler application/x-httpd-php-source </FilesMatch>
После этого скопируем файл /usr/local/etc/php.ini-production в /usr/local/etc/php.ini
# cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini
и зададим ему необходимые права
# chmod u+w /usr/local/etc/php.ini
Снова перезапускаем службу apache24
# service apache24 restart
Проверяем:
создадим файл /usr/local/www/apache24/data/info.php
# touch /usr/local/www/apache24/data/info.php
откроем его
# vi /usr/local/www/apache24/data/info.php
и пропишем в него следующие строчки:
<?php phpinfo(); ?>
На другой машине в сети в браузере впишем:
http://IP-адрес-сервера/info.php
и мы должны увидеть информацию о PHP и его расширениях
Настройка виртуальных хостов
Перед созданием виртуальных хостов необходимо убедиться в наличии соответствующих A или AAAA записей на DNS-сервере. Эти записи создаются в личном кабинете в панели управления регистратора доменных имён, или на собственном DNS-сервере https://dondub.com/tag/nameserver/.
Создадим директории для хранения файлов сайтов
# mkdir /usr/local/www/apache24/data/{ws45.local,test.ws45.local} # mkdir /usr/local/www/apache24/data/{ws45.local,test.ws45.local}/public_html
затем в каждой директории создадим файл index.html
# touch /usr/local/www/apache24/data/ws45.local/public_html/index.html # touch /usr/local/www/apache24/data/test.ws45.local/public_html/index.html
Далее в каждой директории открываем файл index.html
# vi /usr/local/www/apache24/data/ws45.local/public_html/index.html
и прописываем что-нибудь для того, чтобы убедиться, что виртуальные хосты работают, например:
<html> <body> <h1>ws45.local works!</h1> </body> </html>
Также и для второго:
# vi /usr/local/www/apache24/data/test.ws45.local/public_html/index.html
<html> <body> <h1>test.ws45.local works!</h1> </body> </html>
После этого открываем файл /usr/local/etc/apache24/httpd.conf
# vi /usr/local/etc/apache24/httpd.conf
и раскомментировать строку
Include etc/apache24/extra/httpd-vhosts.conf
Теперь откроем файл /usr/local/etc/apache24/extra/httpd-vhosts.conf
стираем всё, что там есть, и прописываем конфиги своих виртуальных хостов:
<VirtualHost *:80> ServerAdmin webmaster@ws45.local DocumentRoot "/usr/local/www/apache24/data/ws45.local/public_html" ServerName www.ws45.local ServerAlias ws45.local ErrorLog "/var/log/ws45.local-error_log" CustomLog "/var/log/ws45.local-access_log" common </VirtualHost> <VirtualHost *:80> ServerAdmin webmaster@test.ws45.local DocumentRoot "/usr/local/www/apache24/data/test.ws45.local/public_html" ServerName test.ws45.local ServerAlias test.ws45.local ErrorLog "/var/log/test.ws45.local-error_log" CustomLog "/var/log/test.ws45.local-access_log" common </VirtualHost>
Перезапускаем службу apache24
# service apache24 restart
Проверяем:
http://ws45.local
http://test.ws45.local