PHP+Nginx
Подготовка клетки для PHP+Nginx
Перед использованием этой статьи рекомендуется пройти по ссылке Qjail.
Создание отдельной файловой системы для клетки с PHP+Nginx в ZFS:
# zfs create zroot/usr/jails/www
Создание клетки c именем "www" и IPv4-адресом "192.168.0.104", запуск и управление клеткой:
# qjail create -4 192.168.0.104 www # qjail start www # qjail console www
Установка lang/php84
PHP - язык сценариев общего назначения с открытым исходным кодом, который особенно подходит для веб-разработок.
Подробная информация на сайте https://www.php.net/
Перед использованием этой статьи рекомендуется пройти по ссылке PKG.
Установка из пакета:
# pkg install php84
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
The following 6 package(s) will be affected (of 0 checked):
New packages to be INSTALLED:
indexinfo: 0.3.1_1
libargon2: 20190702_1
libxml2: 2.11.9
pcre2: 10.45
php84: 8.4.5_1
readline: 8.2.13_2
Number of packages to be installed: 6
The process will require 41 MiB more space.
7 MiB to be downloaded.
Proceed with this action? [y/N]: y
[1/4] Fetching libxml2-2.11.9.pkg: 100% 872 KiB 893.4kB/s 00:01
[2/4] Fetching php84-8.4.5_1.pkg: 100% 5 MiB 5.0MB/s 00:01
[3/4] Fetching libargon2-20190702_1.pkg: 100% 69 KiB 70.2kB/s 00:01
[4/4] Fetching pcre2-10.45.pkg: 100% 1 MiB 1.5MB/s 00:01
Checking integrity... done (0 conflicting)
[1/6] Installing indexinfo-0.3.1_1...
[1/6] Extracting indexinfo-0.3.1_1: 100%
[2/6] Installing libargon2-20190702_1...
[2/6] Extracting libargon2-20190702_1: 100%
[3/6] Installing pcre2-10.45...
[3/6] Extracting pcre2-10.45: 100%
[4/6] Installing readline-8.2.13_2...
[4/6] Extracting readline-8.2.13_2: 100%
[5/6] Installing libxml2-2.11.9...
[5/6] Extracting libxml2-2.11.9: 100%
[6/6] Installing php84-8.4.5_1...
[6/6] Extracting php84-8.4.5_1: 100%
Проверка установки PHP:
# pkg version -v | grep php php84-8.4.5_1 = up-to-date with remote
Копирование файла настроек:
# cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini
Установка часового пояса и т.д. в /usr/local/etc/php.ini:
date.timezone = Europe/Moscow date.default_latitude = <ваше значение> date.default_longitude = <ваше значение>
Установка автозапуска php_fpm в /etc/rc.conf:
# sysrc php_fpm_enable="YES" php_fpm_enable: -> YES
Запуск PHP-FPM:
# service php_fpm start Performing sanity check on php-fpm configuration: [28-Apr-2025 16:30:56] NOTICE: configuration file /usr/local/etc/php-fpm.conf test is successful Starting php_fpm.
Проверка PHP-FPM:
# sockstat -l | grep php-fpm www php-fpm 1322 8 tcp4 127.0.0.1:9000 *:* www php-fpm 1321 8 tcp4 127.0.0.1:9000 *:* root php-fpm 1320 7 tcp4 127.0.0.1:9000 *:*
Установка www/nginx
Nginx - отличный web-сервер.
Подробная информация на сайте https://nginx.org/
Установка из пакета:
# pkg install nginx
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
The following 2 package(s) will be affected (of 0 checked):
New packages to be INSTALLED:
nginx: 1.26.3_2,3
pcre2: 10.45
Number of packages to be installed: 2
The process will require 9 MiB more space.
558 KiB to be downloaded.
Proceed with this action? [y/N]: y
[1/1] Fetching nginx-1.26.3_2,3.pkg: 100% 558 KiB 571.2kB/s 00:01
Checking integrity... done (0 conflicting)
[1/2] Installing pcre2-10.45...
[1/2] Extracting pcre2-10.45: 100%
[2/2] Installing nginx-1.26.3_2,3...
===> Creating groups
Using existing group 'www'
===> Creating users
Using existing user 'www'
[2/2] Extracting nginx-1.26.3_2,3: 100%
=====
Message from nginx-1.26.3_2,3:
--
Recent version of the NGINX introduces dynamic modules support. In
FreeBSD ports tree this feature was enabled by default with the DSO
knob. Several vendor's and third-party modules have been converted
to dynamic modules. Unset the DSO knob builds an NGINX without
dynamic modules support.
To load a module at runtime, include the new `load_module'
directive in the main context, specifying the path to the shared
object file for the module, enclosed in quotation marks. When you
reload the configuration or restart NGINX, the module is loaded in.
It is possible to specify a path relative to the source directory,
or a full path, please see
https://www.nginx.com/blog/dynamic-modules-nginx-1-9-11/ and
http://nginx.org/en/docs/ngx_core_module.html#load_module for
details.
Default path for the NGINX dynamic modules is
/usr/local/libexec/nginx.
Проверка установки Nginx:
# pkg version -v | grep nginx nginx-1.26.3_2,3 = up-to-date with remote
Установка автозапуска Nginx в /etc/rc.conf:
# sysrc nginx_enable="YES" nginx_enable: -> YES
Запуск Nginx:
# service nginx start Performing sanity check on nginx configuration: nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful Starting nginx.
Проверка Nginx:
# sockstat -l | grep nginx www nginx 1544 6 tcp4 *:80 *:* root nginx 1543 6 tcp4 *:80 *:*