admin avatar

FreeBSD 安装PHP7.4 和 Nginx

🕒 by admin

FreeBSD 为 Nginx 安装带有 FPM 的 PHP 7.4

在 FreeBSD 上安装 PHP 7.4 的过程如下:

  1. 更新 FreeBSD

您必须使用portsnap 命令

portsnap fetch update

  1. 在 FreeBSD 上安装 PHP 7.4

您可以使用编译或二进制包方法安装 PHP 7.4。

使用以下任何一种方法。

端口方法

1
2
# cd /usr/ports/lang/php74/
# make install clean

在 FreeBSD 上安装 PHP 7.4

二进制打包方式 运行 pkg 命令来安装它:

# pkg install php74

FreeBSD 使用 pkg 命令为 Nginx 安装带有 FPM 的 PHP 7.4

出于验证目的,请检查 PHP version,键入:

1
2
php -v
php --version

  1. 在 FreeBSD 上安装 PHP 7.4 扩展 可以再次使用ports 或pkg 方法安装PHP 扩展。使用以下任一方式。

要编译安装,请运行以下命令并选择所需的扩展:

cd /usr/ports/lang/php74-extensions/ && make install clean

或添加二进制包:

pkg install php74-extensions

如何在 FreeBSD Unix 机器上安装带有扩展的 PHP 7.4

另一种选择是根据您的 Web 应用程序或软件项目需要安装单独的 PHP 扩展。

可以使用 pkg 命令和grep 命令/ egrep 命令搜索 PHP 7.4 扩展

1
2
3
# pkg search php74 | grep gd
# pkg search php74 | egrep -i --color 'gd|mysqli|openssl'
# pkg search php74 | egrep --color -i -- '-(gd|mysqli|openssl|memcached|opcache|json|mbstring|imagick|xml|zip|composer|igbinary)-'

FreeBSD 安装所需的 PHP 扩展

只需安装它:

1
2
3
# pkg install php74-composer php74-gd php74-json
### OR ###
# pkg install php74-composer-1.6.5 php74-gd-7.4.10 php74-json-7.4.10 php74-mbstring-7.4.10 php74-mysqli-7.4.10 php74-opcache-7.4.10 php74-openssl-7.4.10 php74-pecl-imagick-3.4.3_2 php74-pecl-memcached-3.0.4 php74-xml-7.4.10 php74-zip-7.4.10 php74-pecl-igbinary-2.0.7

4.配置PHP-FPM

1
2
编辑文件 /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/php74-fpm.sock

取消注释以下行: 保存并关闭文件。 启用 php-fpm 服务: # sysrc php_fpm_enable=YES在 FreeBSD 服务器上启动、停止、重启 php-fpm服务的命令:

1
2
3
4
5
6
7
8
9
10
11
12
listen.owner = www
listen.group = www
listen.mode = 0660




# service php-fpm stop
# service php-fpm start
# service php-fpm restart
# service php-fpm status

关于 PHP 7 配置的说明 您需要使用 php 命令安装 php.ini 文件: 接下来,我们将保护 PHP 并对其进行自定义:

添加以下配置:

1
2
3
4
5
# cp -v /usr/local/etc/php.ini-production /usr/local/etc/php.ini
/usr/local/etc/php.ini-production -> /usr/local/etc/php.ini


# vi /usr/local/etc/php/99-custom.ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
display_errors =off
safe_mode =off
safe_mode_exec_dir之=
safe_mode_allowed_env_vars = PHP_ 
expose_php =off
log_errors =off
error_log = /var/log/nginx/php.scripts.log
register_globals =off
cgi.force_redirect = 0 
file_uploads =on
了allow_url_fopen =off
sql.safe_mode =off
disable_functions = show_source, system, shell_exec, passthru, proc_open, proc_nice, exec 
max_execution_time= 60 
memory_limit = 60M 
upload_max_filesize = 2M 
post_max_size = 2M 
cgi.fix_pathinfo = 0 
sendmail_path = /usr/sbin/sendmail [email protected] -t
保存并关闭文件。在 FreeBSD 上重启 PHP:
# service php-fpm restart
5. 配置 Nginx 使用 PHP 7.4 (PHP-FPM)

最后一步是通过 FCGI 协议将 Nginx 连接到 PHP-FPM 服务。

按如下方式编辑您的虚拟域或 nginx.conf 文件: 或 这是更新的示例配置文件:

1
2
3
4
5
# cd /usr/local/etc/nginx
# vi nginx.conf


# vi vdomains/http.192.168.2.31.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
server { 
    server_name 192.168.2.31; # 使用域名如果你这里有
    access_log /var/log/nginx/192.168.2.31.access.log; 
    error_log /var/log/nginx/192.168.2.31.error.log; 
 
    根 /wwwwiki; 
    # php 配置让 nginx 与 php 套接字
    location ~ [ ^/ ] \.php ( /|$ )  { 
        fastcgi_split_path_info ^ ( .+?\.php ) ( /.* ) $; 
        if ( !-f $document_root$fastcgi_script_name )  {
                返回404 ;
        }
 
        # 缓解 https://httpoxy.org/ 漏洞
         fastcgi_param HTTP_PROXY "" ; 
 
        fastcgi_pass unix:/var/run/php74-fpm.sock; 
        fastcgi_index index.php; 
 
        # 包括 fastcgi_param 设置
        include fastcgi_params; 
 
        # SCRIPT_FILENAME 参数用于 PHP FPM 确定
        # 脚本名称。
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
    ```
重新加载或重启 Nginx 服务器:
`# service nginx reload`

6. 测试设置
在 /wwwwiki/ 中创建一个名为 test.php 的 PHP 脚本

`# vi /wwwwiki/test.php`

附加以下代码,使用phpinfo显示有关 PHP 配置的信息:


<?php 
     phpinfo(); 
?>

保存并关闭文件。在 DocumentRoot(Web 服务器根)上设置严格的文件权限:启动 Web 浏览器并对其进行测试:
chown -R wwwwiki:wwwwiki /wwwwiki/ chmod -R 0555 /wwwwiki/


http://192.168.2.31/test.php
http://your-domain-name-here/test.php


在 FreeBSD 上运行的 Nginx PHP-7.4-fpm

并且 PHP 按预期工作,Nginx 正在通过 Unix 套接字与 PHP-FPM 对话。

如何验证 PHP-fpm 正在运行

在 FreeBSD 上使用sockstat 命令列出正在运行的服务、打开的端口和 unix 套接字:

`sockstat -46lu | egrep --color 'www|nginx|php'`

如果在运行 PHP 时遇到任何问题,请检查日志文件:


`ls -l /var/log/nginx/`
` tail -f /var/log/nginx/192.168.2.31.error.log`

💘 相关文章

写一条评论