PHP单独添加扩展 无需重启服务器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP单独添加扩展 无需重启服务器相关的知识,希望对你有一定的参考价值。

参考技术A 问题
php自身提供了很多扩展,比如curl,gmp, mbstring等等。我们在编译安装php时未必安装了所有扩展。那么在安装完php后,如果想单独安装某个php自身的扩展怎么办呢?

我们以curl扩展模块的安装为例说明如何单独添加扩展。

步骤
1.进入php源码的扩展目录。本例中我的源码对应目录如下:

/search/src/php-7.0.14/ext
1
2.进入模块目录,我们安装的是curl扩展,所以进入curl目录。此时,我们所在的目录是

/search/src/php-7.0.14/ext/curl
1
3.执行phpize。注意,如果你的机器上有多个php版本,一定要执行你准备安装扩展的php版本对应的phpize。比如,我的机器上同时有php7和php5.3.3。我当前准备为php7安装curl扩展。所以执行php7对应的phpize

1 /usr/local/php70/bin/phpize
2
3 结果类似:
4 Configuring for:
5 PHP Api Version: 20151012
6 Zend Module Api No: 20151012
7 Zend Extension Api No: 320151012

4.执行

./configure --with-php-config=/usr/local/php70/bin/php-config
1
说明:如果你的机器上只有一个php版本,大多时候不需要特别使用–with-php-config指明相应的php-config所在位置。

5.执行make,之后会在./modules/目录下生成curl.so文件

6.执行make install

结果类似:
Installing shared extensions: /usr/local/php70/lib/php/20151012/
1
2
执行结果告诉你将curl.so安装到了哪个目录。

一般情况,如果你正确的指定了php-config或者你的机器只有一个php版本,so都会被正确安装到相应php的extension_dir。如果执行make install后,extension_dir目录下没有相应的so,可以手动将第5步中生成的so文件cp过去。

要查看具体extension_dir,可以执行如下命令。

php -i| grep extension_dir
结果类似
extension_dir => /usr/local/php70/lib/php/20151012/ => /usr/local/php70/lib/php/20151012/
1
2
3
7.在php.ini中增加

extension=curl.so
1
如果不知道php.ini的具体位置,可以通过如下命令查看

php --ini
1
8.执行如下命令,查看是否安装成功

php -m | grep curl
1
如果你看到了curl, 恭喜你,安装成功!

Kafka 动态添加 SASL 用户,无需重启集群

【中文标题】Kafka 动态添加 SASL 用户,无需重启集群【英文标题】:Kafka adding SASL users dynamically without cluster restart 【发布时间】:2019-06-06 10:20:54 【问题描述】:

我们想使用 SASL 向我们的 kafka 集群添加身份验证。正如我们看到的那样,我们希望能够频繁地添加我们正在寻找的方法来执行此操作的用户,而无需执行滚动重启。

我们尝试过的:

使用动态代理配置界面,为所有代理重新配置listener.name.sasl_plaintext.plain.sasl.jaas.config

kafka 经纪人了解 zookeeper 的变化 [2019-01-11 11:08:23,403] INFO Processing override for entityPath: brokers/1 with config: Map(listener.name.sasl_plaintext.plain.sasl.jaas.config -> encryptedPassword:XXX,keyLength:128,cipherAlgorithm:AES/CBC/PKCS5Padding,initializationVector:YYY,keyFactoryAlgorithm:PBKDF2WithHmacSHA512,salt:ZZZ,iterations:4096,passwordLength:270) (kafka.server.DynamicConfigManager)

但是,在代理重新启动之前,新用户无法连接。

是否可以在不重启 Kafka 集群的情况下将新用户添加到 SASL JAAS 配置?

【问题讨论】:

您使用的是哪个版本的 Kafka? @Steephen 2.1.0 【参考方案1】:

如果您在sasl_plaintext 中使用plain 机制, 基于this answer,您无法在正在运行的集群中添加新用户。

相反,您可以切换到SCRAM 机制,之后,您将能够使用如下命令在运行集群中创建用户:

$ > bin/kafka-configs.sh --zookeeper localhost:2181 --alter --add-config 'SCRAM-SHA-256=[iterations=8192,password=alice-secret],SCRAM-SHA-512=[password=alice-secret]' --entity-type users --entity-name alice

但是,您仍然需要保留 JAAS 配置文件,但是,您只需在启动服务器时传递一次。

这是一个关于使用SCRAM 机制的useful link in Kafka document。

【讨论】:

谢谢!我们将朝着这个方向努力 我认为您应该在 --add-config 之后从配置部分中删除引号。 @M.Ismail 基于答案中的Kafka文档链接,有必要。 是否可以在其中添加 tls? 警告:--zookeeper 已弃用,将在未来版本的 Kafka 中删除。

以上是关于PHP单独添加扩展 无需重启服务器的主要内容,如果未能解决你的问题,请参考以下文章

CentOS 7中添加新磁盘而不用重启系统

php安装扩展模块后,重启不生效的原因及解决办法

什么情况下IIS服务需要重启

Linux 如何不重启而识别新增的 LUN

无需重启 Web 服务器的 Compojure 开发

无需重启服务器即可更改静态内容(html、css、JS) Wildfly 8