OpenBSD上的PHP-FPM 8.2 7.3
#php #phpfpm #httpd #chroot

概括

非常值得庆幸的是,OpenBSDðâ项目及其社区支持的网络服务包(包括PHP)。

通过端口软件包系统,PHP核心软件包作为预编译的二进制包装提供。此外,还提供重要的软件,例如extensionsComposerPECL库。 NextCloudZabbix等框架也是如此。

此外,当它与OpenBSD httpd集成时,其chroot有助于确保服务器的安全。当然,它还可以将它们与relayd进行整合。

好吧,PHP-FPM,PHP FastCGI Process Manager,是OpenBSD软件包中PHP软件包的一部分。
因此,安装php(由于版本,php-?.?)随附php??_fpm自动ð

这篇文章显示了如何安装它和配置为服务器。

环境

â€â€

教程

安装PHP

首先,安装主包:

$ doas pkg_add php

您会被问到:

quirks-6.121 signed on 2023-08-02T17:33:30Z
Ambiguous: choose package for php
a   0: <None>
    1: php-7.4.33p0
    2: php-8.0.29
    3: php-8.1.22
    4: php-8.2.9
Your choice:

为8.2选择“ 4”。
此外,您可以检查每个版本here的寿命。

结果是:

php-8.2.9:capstone-4.0.2: ok
php-8.2.9:femail-1.0p1: ok
php-8.2.9:femail-chroot-1.0p3: ok
php-8.2.9:libsodium-1.0.18p1: ok
php-8.2.9:argon2-20190702: ok
php-8.2.9:oniguruma-6.9.8: ok
php-8.2.9: ok
The following new rcscripts were installed: /etc/rc.d/php82_fpm
See rcctl(8) for details.
New and changed readme(s):
    /usr/local/share/doc/pkg-readmes/femail-chroot
    /usr/local/share/doc/pkg-readmes/php-8.2

您必须看到php82_fpmphp-8.2一起!

配置PHP

生成这些目录/文件:

$ ls /etc/php*
/etc/php-8.2.ini    /etc/php-fpm.conf

/etc/php-8.2:

/etc/php-8.2.sample:
opcache.ini

/etc/php-fpm.d:

根据需要编辑.ini.conf文件。

编辑示例(可选)

编辑:

$ doas nvim /etc/php-8.2.ini

喜欢:

- post_max_size = 8M
+ post_max_size = 30M
  (...)
- upload_max_filesize = 2M
+ upload_max_filesize = 24M
  (...)
- allow_url_fopen = Off
+ ; for composer; disabled in php-fpm
+ allow_url_fopen = On

另外,编辑:

$ doas nvim /etc/php-fpm.conf

要附加到底部:

+ ; set On in php.ini for composer, therefore:
+ php_admin_value[allow_url_fopen] = Off

激活扩展(可选)

php-8.2.sample中的文件是php扩展名,例如koude8
根据您的必要性,在/etc/php-8.2/中创建符号链接,这将激活扩展名:

$ doas ln -sf /etc/php-8.2.sample/${ini} /etc/php-8.2/

供小参考,还有更多必须处理的文件,您可以使用loop Parocessing与shellð进行示例:

$ # case ksh:
$ for x in $(ls /etc/php-8.2.sample/*); do doas ln -sf $x /etc/php-8.2/; done
$ # case fish:
$ for x in /etc/php-8.2.sample/*; doas ln -sf $x /etc/php-8.2/; end

配置PHP-FPM

好的。我们几乎准备启动PHP服务。

php pkg-readme在安装中以/usr/local/share/doc/pkg-readmes/php-8.2的范围说:

主要的OpenBSD PHP软件包包括PHP-FPM,FastCGI Process Manager。
这管理了FastCGI过程的池:启动/重新启动它们并
作为
保持最小和最大数量的备用流程数 配置。您可以使用rcctl(8)在启动时启用php-fpm,
并在运行时开始:

rcctl enable php82_fpm

rcctl start php82_fpm

让我们激活守护程序:

$ doas rcctl enable php82_fpm

对于另一个小引用,它会附加或修改/etc/rc.conf.local中的行:

+ pkg_scripts=(...) php82_fpm (...)

现在是时候开始守护程序了:

$ doas rcctl start php82_fpm

结果是:

php82_fpm(ok)

yayð

设置/var/www/etc(可选)

有时不仅需要PHP,还需要Web应用程序。

设置/var/www/etc,即etcchroot下,例如以下,因此启用了名称分辨率或TLS连接:

$ ls -lR /var/www/etc
/var/www/etc:
total 16
-rw-r--r--  1 root  daemon   35 Aug 03 00:00 hosts
-r--r--r--  1 root  daemon  292 Aug 03 00:00 localtime
-rw-r--r--  1 root  daemon   99 Aug 03 00:00 resolv.conf
drwxr-xr-x  2 root  daemon  512 Aug 03 00:00 ssl/

/var/www/etc/ssl:
total 708
-r--r--r--  1 root  daemon  341121 Aug 03 00:00 cert.pem
-r--r--r--  1 root  daemon     745 Aug 03 00:00 openssl.cnf

用法

接下来,我们必须为他们设置Web服务器。

仅在您尚未配置httpd时,请从示例中复制.conf文件,如下所示:

$ doas cp -p /etc/examples/httpd.conf /etc/

好吧,编辑koude19以在某些SERVERS部分中添加 fastcgi socket 这样的定义:

server "default" {
    listen on * port 80
    #listen on * port 443

    root "/htdocs"
    directory index index.php

    location "/*.php" {
        fastcgi socket "/run/php-fpm.sock"
    }
    location "/*.php[/?]*" {
        fastcgi socket "/run/php-fpm.sock"
    }
}

请注意,koude0在这种情况下工作 因此,php-?.?中的fastcgi socket "/run/php-fpm.sock"实际上是指fastcgi socket "/var/www/run/php-fpm.sock"
这与root "/htdocs"表示相同,表示"/var/www/htdocs"
实际上,有:

$ ls -l /var/www/run
total 0
srw-rw----  1 www  www  0 Aug 03 00:01 php-fpm.sock=

整合

让我们制作测试的/var/www/htdocs/index.php

$ echo "<?php phpinfo(1); ?>" | \
      doas tee "/var/www/htdocs/index.php" >> /dev/null
$ # delete it afterwards:
$ #doas rm /var/www/htdocs/index.php

使用浏览器连接到主机将显示一般信息!

php-82-on-openbsd-73

OpenBSD7.3ð»

在这里出现在PHP 8.2
â€â€

快乐服务ðð