【问题标题】:how to enable extension (openssl,...) without access to php.ini?如何在不访问 php.ini 的情况下启用扩展(openssl,...)?
【发布时间】:2015-04-06 16:45:45
【问题描述】:

我正在使用 codeigniter 发送邮件,但我的共享主机出现问题,因为我无法访问 php.ini,所以出现以下错误:

A PHP Error was encountered
Severity: Warning
Message: fsockopen(): unable to connect to ssl://smtp.googlemail.com:465
(Connection timed out)
Message: fwrite() expects parameter 1 to be resource, boolean given
Message: fgets() expects parameter 1 to be resource, boolean given

我也使用 .htaccess 来处理这个内容:

php_extension openssl.so

但是我收到了这个错误:

内部服务器错误

服务器遇到内部错误或配置错误,无法 完成您的请求。 服务器错误日志中可能提供有关此错误的更多信息。 此外,尝试时遇到 500 Internal Server Error 错误 使用 ErrorDocument 来处理请求。

我也阅读了很多关于这个问题的主题,但没有一个能解决我的问题。 现在,我不知道该怎么办!

更新: 我在我的主机里发现了一些东西,我更困惑了!我是这样写的:

if (extension_loaded('openssl')) 
{
    echo "enabled";     
}
die();

那么为什么我会收到这些错误:

A PHP Error was encountered
Severity: Warning
Message: fsockopen(): unable to connect to ssl://smtp.googlemail.com:465
(Connection timed out)
Message: fwrite() expects parameter 1 to be resource, boolean given
Message: fgets() expects parameter 1 to be resource, boolean given

【问题讨论】:

  • 可能是不可能的,除非他们将dl() 保持打开状态,这并不保证无论如何都能正常工作。
  • 我以这种方式使用了这个功能dl('php_openssl.dll');,但我的主机错误日志中有这个:PHP Fatal error: Call to undefined function dl()

标签: php .htaccess codeigniter email gmail


【解决方案1】:

php 有dl() 在运行时启用扩展 见http://php.net/manual/en/function.dl.php

dl — 在运行时加载 PHP 扩展

这样试试

 function load_lib($n, $f = null)
 {
  return extension_loaded($n) or dl(((PHP_SHLIB_SUFFIX === 'dll') ? 'php_' : '') . ($f ? $f : $n) . '.' . PHP_SHLIB_SUFFIX);
 }

load_lib('openssl');

【讨论】:

  • 我也用过这个功能,我的主机错误日志里有这个:PHP Fatal error: Call to undefined function dl()
【解决方案2】:

OpenSSL 必须是 compiled with PHP,因此您可能不会在共享主机中使用该选项。

尝试切换到 SendGrid - 他们有一个 free usage tier,可让您每天发送 400 封电子邮件和大量 example code for PHP

【讨论】:

  • 我基于通过主机发送邮件编写了我的代码的重要部分,我更喜欢找到解决这个问题的方法而不是使用其他东西。
【解决方案3】:

我通过使用主机安全邮件服务器而不是 Gmail 解决了我的问题。无论如何我都没有找到通过 gmail 发送邮件!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-08
    • 1970-01-01
    • 2021-04-06
    相关资源
    最近更新 更多