1

Мне нужно запустить скрипт Perl, потому что мне нужен модуль, который есть в Perl, а PHP - нет.

Это мой код для тестирования в PHP

<?php


echo ("Hello World");


$perl = new Perl();
$perl->require("someperlscript.pl");

я получил

Hello WorldPHP Fatal error:  Class 'Perl' not found in /var/virtual/abc.com/testperl/testperl.php on line 7
PHP Stack trace:
PHP   1. {main}() /var/virtual/abc.com/testperl/testperl.php:0

Тогда я попытался установить безрезультатно.

Что я должен сделать, чтобы запустить Perl внутри серверной версии ubuntu 12.10?

2 ответа2

2

Этот ответ работает по состоянию на 29 января 2013 года.

Прежде всего, внутри Ubuntu сделать

wget http://pecl.php.net/get/perl-1.0.1.tgz

скачать файл tgz с http://pecl.php.net/package/perl

Распакуйте архив

tar -zxvf perl-1.0.1.tgz

Перейти в несжатый каталог

cd perl-1.0.1

Удалите текущий php_perl.c, потому что по какой-то причине он не работал с моим php5.

Загрузите еще один php_perl.c из репозитория github https://github.com/do-aki/php-ext-perl

wget https://raw.github.com/do-aki/php-ext-perl/a3d7db22eb7964ea9cb39ea2f866d10df26655d4/php_perl.c

Запустите эту строку за строкой

export PHP_PREFIX="/usr"
export PERL_PREFIX="/usr"
$PHP_PREFIX/bin/phpize
./configure --with-perl=$PERL_PREFIX --with-php-config=$PHP_PREFIX/bin/php-config
make  

Если вы получаете такие ошибки, как /usr/bin/ld: cannot find -lperl , вам нужно установить

sudo apt-get install libperl-dev

Установите расширение (для этого шага могут потребоваться права суперпользователя)

make install

Добавьте расширение perl в ваш php.ini (для этого шага могут потребоваться права суперпользователя)

extension=perl.so

Перезагрузите ваш php5-fpm

sudo /etc/init.d/php5-fpm restart

При запуске Perl могут возникнуть проблемы с локалью.

Посмотрите на недостающие локали. Предполагая, что у вас отсутствуют en_SG и en_SG.UTF-8

Пытаться

sudo locale-gen en_SG en_SG.UTF-8
sudo dpkg-reconfigure locales

и затем перезагрузите компьютер.

Если у вас все еще есть проблемы с локалью,

Пытаться

sudo nano /etc/environment

Добавить недостающую локаль в LC_ALL

LC_ALL = "en_SG.UTF-8"

Перезагружать.

Я хочу поблагодарить tm064 из #perl и NullDev из #ubuntu за помощь в решении этой проблемы.

0

Существует более новая версия perl-1.0.1.tgz, доступная с 2013-01-23. У него более адекватный package.xml (пробовал под SuSE 12.2 - все ок).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .