在 ubuntu 12.04 中使用 gd 编译 php5 时出错

在 ubuntu 12.04 中使用 gd 编译 php5 时出错

我需要imageantialias()在我建立的服务器上运行。我以前编译过 PHP,但由于某种原因,我不能再这样做了。我运行了以下步骤来尝试:

  1. apt-get source php5
  2. apt-get build-dep php5
  3. cd php5-*
  4. nano debian/rules
  5. 找到此行--with-gd=shared,/usr --enable-gd-native-ttf \并删除,/usr
  6. 保存并退出
  7. nano debian/setup_mysql.sh
  8. 搜索Start the daemon
  9. 添加–user=rootmysqld
  10. 保存并退出
  11. dpkg-buildpackage –rfakeroot -us –uc -d

然后它会运行很长时间然后在这里结束:

make[1]: Leaving directory `/usr/src/php5-5.3.10/cgi-build'
    sed -i -e 's/-d output_buffering=1 -d open_basedir="" -d safe_mode=0/-d output_buffering=1 -d open_basedir="" -d safe_mode=0 -d memory_limit="-1"/' \
           /usr/src/php5-5.3.10/pear-build/usr/bin/pear && \
    sed -i -e 's/-d output_buffering=1 -d safe_mode=0/-d output_buffering=1 -d open_basedir="" -d safe_mode=0 -d memory_limit="-1"/' \
           /usr/src/php5-5.3.10/pear-build/usr/bin/pecl && \
    sed -i -e 's/-d memory_limit="-1"//' \
           -e 's/-d output_buffering=1 -d open_basedir="" -d safe_mode=0/-d output_buffering=1 -d open_basedir="" -d safe_mode=0 -d memory_limit="-1"/' \
           /usr/src/php5-5.3.10/pear-build/usr/bin/peardev
    sed -i -re "s#('PEAR_CONFIG_SYSCONFDIR', PHP_SYSCONFDIR)#\1 . '/pear'#" /usr/src/php5-5.3.10/pear-build/usr/share/php/PEAR/Config.php
    patch -s -d /usr/src/php5-5.3.10/pear-build/usr/share/php/ -p1 -i /usr/src/php5-5.3.10/debian/patches/PEAR-Builder-print-info-about-php5-dev.patch
    touch build-pear-stamp
    mkdir -p temp_session_store
    # start our own mysql server for the tests
    /bin/sh debian/setup-mysql.sh 2963 /usr/src/php5-5.3.10/mysql_db
make: *** [test-results.txt] Error 1
    dpkg-buildpackage: error: debian/rules build gave error exit status 2

我也尝试过不修改setup-mysql.sh,但还是发生了同样的事情。我不太清楚为什么这不起作用。我知道上次我这样做时遇到了很多麻烦。此外,我在两台不同的 12.04 服务器上尝试过,但遇到了同样的问题。

答案1

我只是想把这个问题告诉其他遇到同样问题的人。我必须在 Ubuntu 服务器上修复同样的问题,本文(归功于撰写本文的人)实际上涵盖了解决方案。

简而言之:

错误:

make: *** [test-results.txt] Error 1
dpkg-buildpackage: error: debian/rules build gave error exit status 2

解决方案(如上文所述):

这是因为 mysql 服务器拒绝在 root 下运行

$ sudo vim debian/setup-mysql.sh

在此文件中注释启动服务器的行,并复制命令,添加“--user=root”参数:

# Start the daemon
#$mysqld > $datadir/run.log 2>&1 &
#add root user
$mysqld --user=root > $datadir/run.log 2>&1 &

最后:

$ sudo dpkg-buildpackage -rfakeroot

相关内容