Установите PECL-расширение "SPL-Types" без прав доступа к серверу. - PullRequest
3 голосов
/ 30 января 2012

Я хочу использовать SPLEnum, часть SPL-типов PECL-расширения, в моем веб-приложении.

Теперь я никогда не работал с расширениями, поэтому я не знаю, как они работают. Я попросил хостера установить пакет, но не смогли из-за соображений безопасности на своих серверах.

Возможно ли как-то вручную включить файлы, как в Java (вручную скопировать файлы на веб-сервер и включить их)?

Спасибо за ваши ответы

С уважением, Фло

Ответы [ 4 ]

3 голосов
/ 20 апреля 2015

Я использую Ubuntu 14.04 с Apache, а не nginx. Использование скрипта из здесь работает.

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

Ключевое различие между этим и ответом Майкла Нойба заключается в том, что он продолжает заботиться о загрузке расширения в Apache с помощью системы php5enmod, о которой вы можете прочитать здесь .

Общий хостинг

Ответ CodeZombie заключается в том, что общий хост не позволит вам сделать это, но вы можете раскрутить свой собственный виртуальный частный сервер (VPS) на что-то вроде DigitalOcean за 5 долларов в месяц, что примерно такая же стоимость плана общего хостинга.

3 голосов
/ 30 января 2012

PECL содержит расширения C для компиляции в PHP. Поэтому вам нужны соответствующие права на сервере под управлением PHP, которые вы никогда не получите на виртуальном хостинге. Попробуйте найти аналогичное расширение PEAR, оно написано на PHP и ведет себя как любой другой файл PHP.

2 голосов
/ 14 февраля 2015

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;

2 голосов
/ 26 мая 2014

Порядок установки 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
...