在没有服务器权限的情况下安装PECL-Extension“SPL-Types”

时间:2012-01-30 07:57:10

标签: php pecl

我想在我的Web应用程序中使用SPLEnum,它是PECL-Extension SPL-Types的一部分。

现在,我从未使用过扩展程序,因此我不知道它们是如何工作的。我已经要求我的托管服务商安装软件包,但由于服务器的安全原因,他们无法安装软件包。

是否有可能手动包含文件,就像在Java中一样(手动将文件复制到网络服务器并包含它们)?

感谢您的回答

问候,Flo

4 个答案:

答案 0 :(得分:3)

PECL包含用于编译为PHP的C扩展。因此,您需要在运行PHP的服务器上拥有适当的权限,这是您永远无法在共享主机上获得的。尝试找到类似的PEAR扩展,这些扩展是用PHP编写的,其行为与任何其他PHP文件一样。

答案 1 :(得分:3)

我使用Ubuntu 14.04和Apache而不是nginx。使用here中的脚本。

sudo apt-get install libpcre3-dev php5-dev php-pear -y
sudo pecl install SPL_Types
echo extension=spl_types.so | sudo tee /etc/php5/mods-available/spl_types.ini
sudo php5enmod spl_types
sudo service apache2 reload

这与Michael Noyb的答案之间的关键区别在于,这将继续使用php5enmod系统将扩展加载到Apache中,您可以read about here

共享主机

CodeZombie的回答是,共享主机不允许你这样做,但是你可以在DigitalOcean之类的东西上以每月5美元的价格启动你自己的虚拟专用服务器(VPS),这是与共享主机方案的成本大致相同。

答案 2 :(得分:2)

Ubuntu 12.04+安装顺序:

sudo apt-get install libpcre3-dev
sudo apt-get install php5-dev
sudo apt-get install php-pear
sudo pecl install SPL_Types

答案 3 :(得分:2)

Ubuntu 14.04使用php5-fpm和nginx以及php 5.5 +

sudo apt-get install libpcre3-dev
sudo apt-get install php5-dev
sudo pecl install SPL_Types

然后转到/etc/php5/fpm/php.ini并添加此行

extension=spl_types.so

注意:您可能必须对/etc/php5/cli/php.ini

执行相同的操作

然后

sudo service nginx restart
sudo service php5-fpm restart

然后你可以写这样的课程(我的真实例子):

<?php

namespace Metronic\Lib;

use SplEnum;
class PortletColor extends SplEnum {
    const __default = self::YELLOW;

    const YELLOW = 'yellow';
}

当您需要调用常量黄色时,请使用\Metronic\Lib\PortletColor::YELLOW;