有人知道如何在.htaccess
文件中启用 PHP 扩展吗?
可能:
(.htaccess file)
php_value extension=php_soap.so
答案1
它与 Apache 的 httpd.conf 的语法完全相同,因此:
LoadModule php_soap modules/php_soap.so
(对于“模块”位,我假设您正在使用 /etc/httpd 中的常规模块目录。如果不是,请将该目录放在它的位置。)(错误)
它不是一个模块,正如我最初所想的那样,而是一个 php 扩展。扩展具有以下语法:
extension=soap.so(也是错误的)
显然是:
php_extension soap.so
得到这个这Drupal 论坛中的主题。Ymmv。我现在要回家了,因为显然我的大脑今天已经筋疲力尽了。
另外,请确保您允许覆盖,否则网络服务器将忽略您的 .htaccess 文件。
答案2
根据手册扩展键可以仅有的在php.ini文件中使用。
但是您可以在.htaccess 文件中执行此操作......
php_value auto_prepend_file /path/to/loadsoap.php
....并且在/path/to/loadsoap.php中...
<?php
dl(init_get("extension_dir") . "/php_soup.so");
答案3
这取决于您的 php 版本和操作系统。
例如在较旧的 php 版本中你必须这样做
php_value php_extension php_curl.so
在 Linux 和
php_value php_extension php_curl.so
在 Windows 中。但在 php 7 中你可以这样做
php_value php_extension curl
并且它也适用于 Windows 和 Linux。对于 PHP 版本,您可以添加如下块:
<IfModule mod_php5.c>
php_value php_extension php_curl.so
</IfModule>
<IfModule mod_php7.c>
php_value php_extension curl
</IfModule>
但不幸的是,我不知道如何在 .htaccess 中检查 Windows 或 Linux。因此,您必须接受大多数托管服务器都是 Linux 的情况,您的服务器在 Windows 中运行。您必须更改php_curl.so
为php_curl.dll
更新:我今天注意到,使用和php_value php_extension curl
时对模块没有影响,我不确定哪些版本受到此问题的影响。Apache/2.4.41 (Win64)
PHP/7.3.13