![在 ubuntu 12.04 中使用 gd 编译 php5 时出错](https://linux22.com/image/612614/%E5%9C%A8%20ubuntu%2012.04%20%E4%B8%AD%E4%BD%BF%E7%94%A8%20gd%20%E7%BC%96%E8%AF%91%20php5%20%E6%97%B6%E5%87%BA%E9%94%99.png)
我需要imageantialias()
在我建立的服务器上运行。我以前编译过 PHP,但由于某种原因,我不能再这样做了。我运行了以下步骤来尝试:
apt-get source php5
apt-get build-dep php5
cd php5-*
nano debian/rules
- 找到此行
--with-gd=shared,/usr --enable-gd-native-ttf \
并删除,/usr
- 保存并退出
nano debian/setup_mysql.sh
- 搜索
Start the daemon
- 添加
–user=root
后mysqld
- 保存并退出
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