我使用的是 ubuntu 12.10。无法使用 PHP_PERL 扩展。也无法安装该扩展

我使用的是 ubuntu 12.10。无法使用 PHP_PERL 扩展。也无法安装该扩展

我需要运行一个 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 服务器版本中运行?

答案1

此答案自 2013 年 1 月 29 日起有效。

首先,在 ubuntu 中执行

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

下载 tgz 文件http://pecl.php.net/package/perl

解压 tar

tar -zxvf perl-1.0.1.tgz

进入解压后的文件夹

cd perl-1.0.1

删除当前的 php_perl.c,因为出于某种原因,它不能与我的 php5 一起使用。

从 github repo 下载另一个 php_perl.chttps://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

安装扩展(此步骤可能需要 root 权限)

make install

将 perl 扩展添加到您的 php.ini 中(此步骤可能需要 root 权限)

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 帮助我找到这个解决方案。

答案2

自 2013-01-23 起,perl-1.0.1.tgz 有了更新版本。它有更合适的 package.xml(在 SuSE 12.2 下试过 - 一切正常)。

相关内容