[英]Installing PHP extensions on shared hosting
我需要在我的网站上启用mcrypt功能,除了我在共享主机(运行linux)上,显然无法访问php.ini
文件。 似乎有安装PEAR模块的选项,但搜索告诉我mcrypt不可用。 有什么方法可以做到这一点,没有乞求技术支持来帮助我吗?
更新:再看一下,看起来我可以使用dl()
函数在运行时动态加载库。 因为我只在一个地方使用mcrypt函数,所以我可能会因为性能命中(我认为有一个命中)应该是最小的而逃避这样做。 现在唯一的问题是如何获取libmcrypt.so
文件?
另一个更新:我已经从Sourceforge下载的文件libmcrypt.tar.bz2和运行./configure
, make
,然后复制libmcrypt.so.4.4.8
文件到我的主目录(如libmcrypt.so
),但现在我无法找到放置它的位置,以便dl()
函数可以找到它。
MCrypt Sourceforge页面应该有http://mcrypt.sourceforge.net/
要编译它:
wget http://superb-east.dl.sourceforge.net/sourceforge/mcrypt/libmcrypt-2.5.8.tar.gz
tar -xzvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure
make
sudo make install
编辑:你能直接引用它吗?
你有什么尝试?
Edit2:似乎你只能从php.ini中设置的扩展目录加载模块,你不能用ini_set覆盖extensions_dir,所以你要么说服主机安装它,要么它们允许你拥有自己的php。 ini(许多通常在[username] /php.ini中)然后你可以在那里设置extensions_dir并加载模块。
真正最好的方法是告诉您的ISP包括mcrypt支持。 即使您捆绑自己的PHP扩展并使用dl()加载它,也无法保证它在PHP升级后能够正常工作,因为PHP有时候版本号非常挑剔。
5.2.5之前的版本中的PHP允许您在dl()函数中使用路径,以便您可以轻松地在共享环境中加载库。
由于5.2.5的“安全”原因,这一点发生了变化,据我所知,您唯一的选择是让系统管理员将模块添加到extensions_dir。
dl()
也不会帮助你,因为它只加载来自某些路径的库,并且出于安全原因,这些路径通常只能由系统管理员写入。
我非常怀疑在没有托管人同意的情况下,有一种方法可以使用二进制库。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.