Запуск FEMP-сервера

Краткая инструкция по быстрой установке и настройке веб-сервера в связке FreeBSD 13.0, HTTP-сервера nginx, PHP и MariaDB (MySQL).

Установка сервера баз данных

Для начала необходимо установить MariaDB (MySQL) сервер. Как это делается, можно почитать здесь: https://dondub.com/2021/05/zapusk-subd-mariadb-na-freebsd/

Установка веб-сервера

Теперь устанавливаем HTTP-сервер nginx

# pkg install nginx

Открываем файл /etc/rc.conf

# vi /etc/rc.conf

и в нём запишем строчку:

nginx_enable="YES"

Далее запускаем службу nginx

# service nginx start

На другой машине в сети в адресной строке браузера введём IP-адрес сервера:

http://IP-адрес-сервера

и увидим страницу nginx по умолчанию:

Установка и настройка PHP

Теперь установим PHP с расширениями, а также php-fpm

# pkg install php74 php74-mysqli php74-pdo php74-zip php74-bz2 php74-gd php74-curl php74-json php74-session php74-fileinfo php74-opcache php74-mbstring php74-openssl php74-extensions

После этого скопируем файл /usr/local/etc/php.ini-production с именем php.ini

# cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini

открываем его

# vi /usr/local/etc/php.ini

под закомментированной строчкой

;cgi.fix_pathinfo=1

напишем

cgi.fix_pathinfo=0

Также зададим файлу php.ini необходимые права

# chmod u+w /usr/local/etc/php.ini

Теперь откроем файл /usr/local/etc/php-fpm.d/www.conf

# vi /usr/local/etc/php-fpm.d/www.conf

исправим строчку

listen = 127.0.0.1:9000

на

listen = /var/run/php-fpm.sock

а также раскомментируем и при необходимости исправим такие строчки:

listen.owner = www
listen.group = www
listen.mode = 0660

Снова откроем /etc/rc.conf

# vi /etc/rc.conf

и добавим строчку:

php_fpm_enable="YES"

Далее запустим службу php-fpm

# service php-fpm start

Затем откроем файл /usr/local/etc/nginx/nginx.conf

# vi /usr/local/etc/nginx/nginx.conf

в секции server после строк

listen = 80;
server_name = localhost;

добавить строчку:

# root /usr/local/www/nginx;

также находим строчки

location ~ \.php$ {
...
}

и приводим к такому виду:

        location ~ \.php$ {
            try_files      $uri =404;
            fastcgi_pass   unix:/var/run/php-fpm.sock;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

После этого перезапускаем службу nginx

# service nginx restart

Далее проверим работу PHP. Для этого создадим файл /usr/local/www/nginx/info.php и откроем его:

# touch /usr/local/www/nginx/info.php
# vi /usr/local/www/nginx/info.php

в него запишем такие строчки:

<?php
	phpinfo();
?>

На другом компьютере в строке браузера введём http://IP-адрес-сервера/info.php и должны будем увидеть страницу с настройками PHP

Настройка виртуальных хостов

Перед созданием виртуальных хостов необходимо убедиться в наличии соответствующих A или AAAA записей на DNS-сервере. Эти записи создаются в личном кабинете в панели управления регистратора доменных имён, или на собственном DNS-сервере https://dondub.com/tag/nameserver/.

Для виртуальных хостов создадим файл /usr/local/etc/nginx/vhosts.conf

# touch /usr/local/etc/nginx/vhosts.conf

Затем откроем файл /usr/local/etc/nginx/nginx.conf

# vi /usr/local/etc/nginx/nginx.conf

и для создания виртуальных хостов перед последней закрывающей скобкой подключим файл /usr/local/etc/nginx/vhosts.conf:

include /usr/local/etc/nginx/vhosts.conf;

Теперь создадим каталоги для хранения файлов сайтов ws45.local и test.ws45.local, и выдадим права пользователю www группы www

# mkdir /var/www/
# chown -R www:www /var/www/
# mkdir /var/www/{ws45.local,test.ws45.local}
# chown -R www:www /var/www/{ws45.local,test.ws45.local}

Открываем файл /usr/local/etc/nginx/vhosts.conf

# vi /usr/local/etc/nginx/vhosts.conf

и в него запишем следующие строчки:

    server {
        listen       80;
        server_name  ws45.local;

        root /var/www/ws45.local;
        location / {
            root   /var/www/ws45.local;
            index  index.php index.html index.htm;
        }

        location ~ \.php$ {
            try_files $uri =404;
            fastcgi_pass   unix:/var/run/php-fpm.sock;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
		
    }

    server {
        listen       80;
        server_name  test.ws45.local;

        root /var/www/test.ws45.local;
        location / {
            root   /var/www/test.ws45.local;
            index  index.php index.html index.htm;
        }

        location ~ \.php$ {
            try_files $uri =404;
            fastcgi_pass   unix:/var/run/php-fpm.sock;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
		
    }

Затем перезапустим службу nginx

# service nginx restart

После этого создадим файл index.html в директории сайта ws45.local и откроем его

# touch /var/www/ws45.local/index.html
# vi /var/www/ws45.local/index.html

и для проверки внесём в него строчки:

<html>
<head>
<title>ws45.local</title>
</head>
<body>
<p align="center">Welcome to ws45.local webserver</p>
</body>
</html>

Также поступим и с сайтом test.ws45.local

# touch /var/www/test.ws45.local/index.html
# vi /var/www/test.ws45.local/index.html
<html>
<head>
<title>test.ws45.local</title>
</head>
<body>
<p align="center">Welcome to test.ws45.local webserver</p>
</body>
</html>

На другой машине в адресной строке браузера откроем

http://ws45.local

а также:

http://test.ws45.local

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *