FreeBSD为Nginx安装带有FPM的PHP 7.2
时间:2019-11-20 08:54:01 来源:igfitidea点击:
如何在FreeBSD中安装PHP7.2?
如何在Nginx服务器中配置使用FPM的PHP?
PHP是PHP: Hypertext Preprocessor(超文本预处理器)的缩写。
是现在流行的web开发脚本语言。
1.更新FreeBSD ports树
使用portsnap命令完成操作:
# portsnap fetch update
2.在FreeBSD上安装PHP 7.2
可以使用端口或者二进制软件包方法安装PHP 7.2。
使用ports方法安装
# cd /usr/ports/lang/php72/ # make install clean
使用二进制包安装
运行pkg命令进行安装:
# pkg install php72
3.在FreeBSD上安装PHP 7.2扩展
同样,可以使用ports或pkg方法安装PHP扩展。
使用ports方法安装php扩展:
# cd /usr/ports/lang/php72-extensions/ && make install clean
使用二进制安装包安装php扩展:
# pkg install php72-extensions
如果还有其他扩展包需要安装,可以参照下面命:
# pkg search php72 | grep gd # pkg search php72 | egrep -i --color 'gd|mysqli|openssl' # pkg search php72 | egrep --color -i -- '-(gd|mysqli|openssl|memcached|opcache|json|mbstring|imagick|xml|zip|composer|igbinary)-' pkg install php72-composer php72-gd php72-json
4.配置PHP-FPM
编辑文件/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/php72-fpm.sock
取消下面行的注释:
listen.owner = www listen.group = www listen.mode = 0660
启用php-fpm服务:
sysrc php_fpm_enable = YES
在FreeBSD服务器上启动,停止,重启php-fpm服务的命令:
# service php-fpm stop # service php-fpm start # service php-fpm restart # service php-fpm status
配置PHP 7
安装php.ini文件:
# cp -v /usr/local/etc/php.ini-production /usr/local/etc/php.ini `/usr/local/etc/php.ini-production -> /usr/local/etc/php.ini`
对php进行个性化配置:
# vi /usr/local/etc/php/99-custom.ini
添加以下配置:
display_errors=Off safe_mode=Off safe_mode_exec_dir= safe_mode_allowed_env_vars=PHP_ expose_php=Off log_errors=On 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.2(PHP-FPM)
通过FCGI协议将Nginx连接到PHP-FPM服务。如
编辑虚拟域或者nginx.conf文件:
# cd /usr/local/etc/nginx # vi nginx.conf
或者
# vi vdomains/http.192.168.1.100.conf
配置示例,注意fastcgi相关的配置项:
server { server_name 192.168.1.100; # use domain name if you have here access_log /var/log/nginx/192.168.1.100.access.log; error_log /var/log/nginx/192.168.1.100.error.log; root /var/www/html; # php config let nginx talk to php socket location ~ [^/]\.php(/|$) { fastcgi_split_path_info ^(.+?\.php)(/.*)$; if (!-f $document_root$fastcgi_script_name) { return 404; } # Mitigate https://httpoxy.org/ vulnerabilities fastcgi_param HTTP_PROXY ""; fastcgi_pass unix:/var/run/php72-fpm.sock; fastcgi_index index.php; # include the fastcgi_param setting include fastcgi_params; # SCRIPT_FILENAME parameter is used for PHP FPM determining # the script name. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
重新加载nginx配置:
# service nginx reload
6.测试设置
在/var/www/html 中创建一个PHP脚本文件test.php
# vi /var/www/html/test.php
文件代码如下:
<?php phpinfo(); ?>
设置站点根目录的权限
# chown -R nginx:nginx /var/www/html/ # chmod -R 0555 /var/www/html/
使用浏览器打开测试页面
http://192.168.1.100/test.php
一切正常,将会看到PHP的有关信息。
如何检查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.1.100.error.log