Ubuntu

使用 gd 為 ubuntu 12.04 編譯 php5 時出錯

  • March 4, 2015

我需要在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=root在後面加上mysqld
  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 伺服器上嘗試過這個問題,但問題相同。

只是想我會把這個放在那裡,給其他有同樣問題的人。我不得不在 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

引用自:https://serverfault.com/questions/512575