mac lion10.8中安装gettext php扩展

以前这个模块好像很少用到。默认是使用这个模块来提供多语言的。使用.po .mo 来实现多语言的支持。这样。程序只需来确定调取同一个模块,就可以实现多语言模式,方便了程序核模板的灵活性! 今天在本地安装boxbilling的时候提示我这个模块没有安装。以前还真的没注意这个。因为没用到过。这次看到了就记录安装下!

curl -O http://ftp.gnu.org/pub/gnu/gettext/gettext-0.18.1.1.tar.gz
tar zxvf gettext-0.18.1.1.tar.gz 
 cd gettext-0.18.1.1
./configure
make
sudo make install

这一步在 ./configure 的时候会报错! 这个需要更改源码编译包里面的一个小参数 找到下载包目录里面的

fyhqytekiMacBook-Pro:gettext-tools fyhqy$ pwd
/Users/fyhqy/gettext-0.18.1.1/gettext-tools

找到 

gettext-tools/gnulib-lib/stpncpy.c

找到这几行 

#ifndef weak_alias
define __stpncpy stpncpy
#endif
把上面的 define __stpncpy stpncpy 更改为 define __stpncpy gnu_stpncpy

重新 make make install 就可以了。就不会在报错!   如果上面安装不成功。可以按照下面的来安装! 1.下载核自己对应的php版本。我这里是5.3.15就用这个了 2.

curl -O http://cn2.php.net/distributions/php-5.3.15.tar.gz
tar zxvf php-5.3.15.tar.gz
cd php-5.3.15/ext/gettext/
/usr/bin/phpize
./configure
make
sudo make install

出现这一句证明已经安装上了

Installing shared extensions:     /usr/lib/php/extensions/no-debug-non-zts-20090626/

然后修改php.ini。把扩展添加进去 php.ini 存在  /etc/php.ini 

extension=gettext.so
sudo apachectl restart

 

重启下apache。然后打开phpinfo(); 

看是不是已经安装上了嗯!

已有 2 条评论
  1. huanyu

    不知道为啥我的被案装到这了:Installing shared extensions: /opt/local/lib/php/extensions/no-debug-non-zts-20090626/

    结果还是没起作用,还是 Fatal error: Call to undefined function bindtextdomain()

    huanyu 回复
  2. hevin

    define __stpncpy stpncpy,这个前面是有个#的吧。
    另外,我出现问题的时候是在make的时候才报错了。

    hevin 回复
发表新评论