在共享主机上安装PHP扩展
我需要在我的网站上启用mcrypt功能,除了我在共享主机上(运行linux),并且显然无法访问php.ini
文件。似乎有安装PEAR模块的选项,但搜索告诉我mcrypt不可用。有什么办法可以做到这一点,而不是乞求技术支持来帮助我?在共享主机上安装PHP扩展
更新:环顾四周多一点,它看起来像我可能能够使用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有时候对版本号很挑剔。
dl()
也不会帮你,因为它只加载来自特定路径的库,并且出于安全原因,这些路径通常只能由系统管理员写入。
我非常怀疑有没有办法使用二进制库未经主机的同意。
5.2.5之前的版本中的PHP允许您在dl()函数中使用路径,以便您可以轻松地将库加载到共享环境中。
由于5.2.5的“安全”原因,因此我改变了,并且据我所知,唯一的选择是让系统管理员将模块添加到extensions_dir。
啊那须藤部分行不通的,因为我是一个共享的主机上。 – nickf 2008-12-29 05:59:45