Mac OS X 系统下的安装
在线手册:中文 英文
PHP手册

使用内置的PHP

从OS X 10.0.0版本开始,PHP作为Macs的标准配置被提供。在默认的WEB服务器中启用PHP,需要取消Apache配置文件httpd.conf中的几行注释掉的配置,而 CGI and/or CLI 默认都可使用(可以很容易的被终端程序使用).

按照以下的使用说明,可以快速的建立一个本地PHP开发环境。强烈建议将PHP升级到最新的版本。在大多数活跃的软件中, 新的版本会修复错误和添加新的功能,PHP也是如此。请参见相应的Mac OS X安装文档,以进一步了解详细的信息。以下的说明以初学者的角度来详细描述如何操作来得到一个缺省的运行环境。建议所有的用户都编译或者安装一个新的打包版本。

默认的安装类型为mod_php,在Mac OS X的Apache web服务器中启用PHP包含以下的步骤:

  1. 找到并打开Apache的配置文件。默认情况下,这个配置文件的位置是: /private/etc/apache2/httpd.conf 使用 Finder 或者 Spotlight 来找到这个文件可能不是很容的事情,因为在默认情况下它一般是 root 用户拥有所有权的私有文件。

    Note: 要打开这个文件,可以在命令行下面使用基于Unix的文本编辑器,例如 nano,因为他的属主是 root,所以我们需要使用 sudo 来打开 (以 root 用户权限) 。例如我们在 Terminal 程序中敲入下面的指令 (操作后,会提示输入密码): sudo nano /private/etc/apache2/httpd.conf 注意 nano 中的命令: ^w (搜索), ^o (保存), and ^x (退出) ; ^ 表示 Ctrl 键。

    Note: 在Mac OS X 10.5之前的版本中捆绑的是旧版本的PHP额Apache。因此在旧的计算机中Apache配置文件的位置可能是/etc/httpd/httpd.conf

  2. 使用文本的编辑器取消注释(删除前面的 #)看起来类似于下面的行 (这两行常常不在一起,需要在文件中找到这两行):

    # LoadModule php5_module libexec/httpd/libphp5.so
    
    # AddModule mod_php5.c
    
    注意位置/路径。如果在以后编译了新版本的PHP,应该更换或者注释掉上面文件中对应的配置(例如升级到了PHp6)。

  3. 需要将所需要的文件扩展解析为PHP基本(例如: .php .html 或者 .inc),否则不能正常运行。

    如果以下的生命配置已经写入 httpd.conf (自 Mac Panther),一旦PHP被启用则.php文件会被自动解析为PHP脚本。

    <IfModule mod_php5.c>
        # If php is turned on, we respect .php and .phps files.
        AddType application/x-httpd-php .php
        AddType application/x-httpd-php-source .phps
    
        # Since most users will want index.php to work we
        # also automatically enable index.php
        <IfModule mod_dir.c>
            DirectoryIndex index.html index.php
        </IfModule>
    </IfModule>
    

    Note:

    在 OS X 10.5 (Leopard) 以前版本中,捆绑的是PHP 4而不是PHP 5,因此上面的配置指令稍有不同,需要将5更改为4。

  4. 确保确定DirectoryIndex可以加载所需要的默认索引文件 。这个也是在 httpd.conf 中设置的。 通常情况下使用 index.phpindex.html 。默认情况下 index.php 会被启用,因为在我们上面的配置指令中写明了。根据实际情况可以做相应的调整。
  5. 设置 php.ini 的位置或者使用默认的位置。 Mac OS X 上通常默认的位置是 /usr/local/php/php.ini ,调用 phpinfo() 也可以得到此信息。 如果没有使用 php.ini , PHP 将使用所有的默认值。 查看 finding php.ini可获得相关的常见问题。
  6. 定位或者设置 DocumentRoot 这是网站所有文件的根目录。 此目录中的文件由 web 服务器提供服务,从而使得 PHP 文件将在输出到浏览器之前解析为 PHP 脚本。通常情况下默认的路径是 /Library/WebServer/Documents,但是可以根据需要在 httpd.conf中设置为任何其他目录。另外,用户自己的缺省 DocumentRoot/Users/yourusername/Sites
  7. 创建一个 phpinfo() 文件

    phpinfo() 将会显示PHP的相关系统信息。 可以在DocumentRoot下创建一个PHP文件,其代码如下:

    <?php phpinfo(); ?>

  8. 重启 Apache, 然后从浏览器访问上面创建的文件。 要重启Apache,可以在shell中执行 sudo apachectl graceful,也可以停止/启动OS X 系统首选项中的"Personal Web Server"选项。默认情况下,从浏览器访问本地文件的 网址 一般类似: http://localhost/info.php 或者使用: http://localhost/~yourusername/info.php来访问用户自己 DocumentRoot种的文件。

CLI (或者旧版本中的 CGI ) 一般文件名为 php ,其路径可能是 /usr/bin/php。打开一个终端,参开PHP手册中的 命令行选项,然后执行 php -v 可以检查当前运行的PHP的版本。调用 phpinfo() 也会显示相关的信息。


Mac OS X 系统下的安装
在线手册:中文 英文
PHP手册
PHP手册 - N: 使用内置的PHP

用户评论:

Anonymous (15-Nov-2008 10:36)

You only have to uncomment:
#LoadModule php5_module        libexec/apache2/libphp5.so

This is gone:
# AddModule mod_php5.c

The statement in 3 was changed to:
<IfModule mime_module>
    #
    # TypesConfig points to the file containing the list of mappings from
    # filename extension to MIME-type.
    #
    TypesConfig /private/etc/apache2/mime.types

    #
    # AddType allows you to add to or override the MIME configuration
    # file specified in TypesConfig for specific file types.
    #
    #AddType application/x-gzip .tgz
    #
    # AddEncoding allows you to have certain browsers uncompress
    # information on the fly. Note: Not all browsers support this.
    #
    #AddEncoding x-compress .Z
    #AddEncoding x-gzip .gz .tgz
    #
    # If the AddEncoding directives above are commented-out, then you
    # probably should define those extensions to indicate media types:
    #
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz

    #
    # AddHandler allows you to map certain file extensions to "handlers":
    # actions unrelated to filetype. These can be either built into the server
    # or added with the Action directive (see below)
    #
    # To use CGI scripts outside of ScriptAliased directories:
    # (You will also need to add "ExecCGI" to the "Options" directive.)
    #
    #AddHandler cgi-script .cgi

    # For type maps (negotiated resources):
    #AddHandler type-map var

    #
    # Filters allow you to process content before it is sent to the client.
    #
    # To parse .shtml files for server-side includes (SSI):
    # (You will also need to add "Includes" to the "Options" directive.)
    #
    #AddType text/html .shtml
    #AddOutputFilter INCLUDES .shtml
</IfModule>

Extra MIME types can either be added to the file /private/etc/apache2/mime.types or by using an AddType directive as commented on above.

jaffle (24-Oct-2008 10:36)

Additionally, it seems that the default installation of php on Mac OS X (10.5 tested) does not point to the default location of the mysql.sock file that is installed in a standard MySQL 5.0 installation.

This prevents php working with locally hosted MySQL databases.

Adding the following line to the /private/etc/apache2/other/php5.conf file did the trick:

php_value mysql.default_socket /tmp/mysql.sock

(make sure you put it in between the </IfModule> statements)

sachin at dharmapurikar dot in (22-Oct-2008 01:28)

I am using MacOSX 10.5.4 and only enabling the mod_php5 wasn't enough to get the PHP support. I had to add following block before I could use php on machine -

<IfModule mod_php5.c>
    # If php is turned on, we respect .php and .phps files.
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps

    # Since most users will want index.php to work we
    # also automatically enable index.php
    <IfModule mod_dir.c>
        DirectoryIndex index.html index.php
    </IfModule>
</IfModule>