loading...

让Mac OS X中的PHP支持GD

发布时间:May 22, 2009 分类:Mac

让PHP跑在Mac OS X中

让Mac OS X中的PHP支持mcrypt

GD库已经是近乎于是现在主流PHP程序的标配了,所以也必须让Mac OS X中的PHP支持GD。在网上搜索了好多,最终按照这个方式成功实现,如何让Mac OS X支持PHP,请查看《让PHP跑在Mac OS X中》。

原文地址是:http://www.gigoblog.com/2008/10/08/install-gd-for-php-on-mac-os-x-105-leopard/
这里全文转载如下,以防止被GFW和谐掉。在安装配置的时候需要注意几点:
1.务必使用root用户来进行如何操作;
2.务必确认你的Mac OS X是64位还是32位,我折腾了两天就是应该按照64位的方法安装,却按照32位安装了;
3.如果提示目录不存在的错误请手动建立。

So, you need GD for your killer PHP web app, and you’re running Mac OS X 10.5? A quick look shows that GD doesn’t ship with Leopard. No worries. It’s pretty simple to install.

There are a few core requirements you must take care of before getting started. Choose to ignore these, and you’re doomed to failure!

  1. Always back up your system before a command-line activity such as this.
  2. Update your system to Mac OS 10.5.5. I could detail how to do this with prior versions, but I don’t have time.
  3. Install the latest version of Apple’s Developer Tools: XCode 3.0+ for 10.5. XCode is available on your OS X DVD, or from Apple as a free download.
  4. X11 must be installed (it is by default), as well as X11 SDK (from the Developer Tools in step 3).

DISCLAIMER: The author claims no responsibility for any damage that may occur from the use of any information found here or found on links followed from this document. If you choose to use this information, you do so at your own risk.

Get Started


To begin, open Terminal (Macintosh HD -> Applications -> Utilities ->Terminal) and invoke the superuser do command. You will need to enter your administrator password. Careful - you can now utterly destroy your machine:

sudo bash


You will need to enter your administrator password.

Determine Your Architecture


Mac OS X Leopard comes in two flavors, depending on the capabilities of your CPU — 32-bit or 64-bit. YOU MUST COMPILE FOR THE PROPER ARCHITECTURE.

Which architecture do you have? Easy enough using Terminal or the GUI. For Terminal, issue this command:

/usr/sbin/system_profiler SPHardwareDataType | grep "Processor Name:"


Or, in the GUI, choose the Apple Menu, select “About This Mac”:

The Core 2 Duo is a 64-bit CPU

Match your CPU to the table below:

Model 32-bit 64-bit
PowerPC G3 X
PowerPC G4 X
PowerPC G5 X
Intel Core Duo X
Intel Core2 Duo X
Intel Xeon X

Make a note of whether your CPU is 32-bit or 64-bit, because you will be compiling software using vastly different settings depending on your CPU.

Install libjpeg


The free image compression library, libjpeg, is required by GD.

First, let’s create a directory for storing the source files we’ll be downloading:

mkdir -p /SourceCache

cd /SourceCache


Download the source file and unpack it:

curl -O http://www.ijg.org/files/jpegsrc.v6b.tar.gz

tar xzpf jpegsrc.v6b.tar.gz

cd /SourceCache/jpeg-6b

cp /usr/share/libtool/config.sub .

cp /usr/share/libtool/config.guess .

Mac OS X Leopard comes in two flavors, depending on the capabilities of your CPU — 32-bit or 64-bit. YOU MUST COMPILE FOR THE PROPER ARCHITECTURE.

For 32-bit only, use the following command:

./configure --enable-shared


64-bit architecture uses this command instead:

MACOSX_DEPLOYMENT_TARGET=10.5 CFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp" CCFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe" CXXFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe" LDFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -bind_at_load" ./configure --enable-shared


Continue on for both architectures:

make clean

make

mkdir -p /usr/local/include

mkdir -p /usr/local/bin

mkdir -p /usr/local/lib

mkdir -p /usr/local/man/man1

make install


You now have compiled libjpeg!

Download and compile the GD graphics library extension (gd.so)


We will be using Apple’s Darwin sources for PHP, which interestingly contain the GD source code. Why Apple doesn’t ship with gd.so already compiled is known only to the maker.

mkdir -p /SourceCache

cd /SourceCache

curl -O http://www.opensource.apple.com/darwinsource/10.5.5/apache_mod_php-44.1/php-5.2.6.tar.bz2

tar xjf php-5.2.6.tar.bz2

cd /SourceCache/php-5.2.6/ext/gd

phpize


Again: YOU MUST COMPILE FOR THE PROPER ARCHITECTURE.

For 32-bit use:

./configure --with-zlib-dir=/usr --with-jpeg-dir=/usr/local/lib --with-png-dir=/usr/X11R6 --with-freetype-dir=/usr/X11R6 --with-xpm-dir=/usr/X11R6


For 64-bit use:

MACOSX_DEPLOYMENT_TARGET=10.5 CFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp" CCFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe" CXXFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe" LDFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -bind_at_load" ./configure --with-zlib-dir=/usr --with-jpeg-dir=/usr/local/lib --with-png-dir=/usr/X11R6 --with-freetype-dir=/usr/X11R6 --with-xpm-dir=/usr/X11R6

NOTE: Check the output of the last command. If you get an error similar to this –”/usr/X11/lib/libpng.3.0.0.dylib: No such file or directory” — you should create a symbolic link with a name matching the file referred to in the error message. For example, the above error indicates that no libpng.3.0.0.dylib file exists. Simply create a link named libpng.3.0.0.dylib pointing to libpng.3.dylib:

sudo ln -s /usr/X11/lib/libpng.3.dylib /usr/X11/lib/libpng.3.0.0.dylib

Likewise, if your error refers to libpng12.0.##.#, you should create a symbolic link to libpng12.0.dylib.

Then, recompile GD.


Continue on for both architectures:

make clean

make

make install

Add gd.so to PHP


PHP needs to be configured to load the
gd.so
shared object extension that you just compiled. You will tell PHP to load it by adding a directive in your 
/etc/php.ini
file.

First, let me give you a couple of pointers about this file. It *probably* exists on your machine. If not, you should just create it as a simple text file. Directives in the file can be commented out by placing a semi-colon in front of the directive.

Open the 

/etc/php.ini
file in a text editor, and search for the section on Dynamic Extensions. Mine looks like this:

;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;


Simply add the following line, which loads your newly compiled GD shared object:

extension=gd.so


Search your 
/etc/php.ini
file for the  
extension_dir=
directive, and either comment it out (by inserting a semi-colon in front of it) or ensure it is pointing to the directory where your new GD shared object is stored:

extension_dir=/usr/lib/php/extensions/no-debug-non-zts-20060613

Confirm gd.so is loading


Restart Apache to force the reloading of the PHP configuration file.

apachectl graceful


Confirm that PHP is loading the
gd.so
extension by running the following command, and looking for the line “GD Support => enabled” in the resulting output:

/usr/bin/php -i|grep -i gd


Alternatively, you can create a file called
phpinfo.php
in your web server document directory (
/Library/WebServer/Documents/
) with the following contents:

<?php
phpinfo();
?>


Point your web browser to http://localhost/phpinfo.php, and you should see a GD block verifying installation, as shown below:
GD info block as it appears via phpinfo();

Tags: PHP, 配置, GD


已有 6 条评论 »

  1. 淘宝 淘宝

    占个沙发好好学习一下

  2. 卢克 卢克

    非常感谢这篇文章

    1. kimi kimi

      @卢克, 有机会我们可以多交流交流,国内用Mac的开发者还是相对较少的。

  3. bam bam

    kimi,你很强嘛. 初三就捣鼓起来了,

    1. kimi kimi

      @bam, 这篇文章好像没有说这个吧~~

  4. kamwing kamwing

    最近在学习drupal.提示说没有GD支持.于是上google找到这里
    十分感谢

添加新评论 »

captcha
请输入验证码