Mac 下配置PHP环境
1. 启动 Apache
2. 设置虚拟主机
3. 运行 PHP
4. 安装 MySQL
5. 使用 phpMyAdmin
6. 配置 PHP 的 MCrypt 扩展库
7. GD 库安装
8. 增加 CAPTCHA 支持
9. 增加 Zendframework
10. 其他可能遇到的问题
------------------------------------------------------------------------------------------------------------------------------------------------------------------
一 . 启动 Apache
有两种方法:
1. 打开 “ 系统偏好设置( System Preferences ) ” -> “ 共享( Sharing ) ” -> 勾选“ Web 共享( Web Sharing ) ”
2. 打开 “ 终端( terminal ) ” ,然后
2.1. 运行 “ sudo apachectl start ” ,再输入帐号密码,这样 Apache 就运行了。
2.2. 运行 “ sudo apachectl - v ” ,你会看到 Mac OS X 10.6. 7中的 Apache 版本号:
Server version: Apache/2.2.17 (Unix)
Server built: Jan 17 2011 20:56:17
这样在浏览器中输入 “ http://localhost ” ,就可以看到出现一个内容为 “ It works! ” 的页面,它位于 “ /Library (资源库) /WebServer/Documents/ ” 下,这是 Apache 的默认根目录。
PS:开启了 Apache 就是开启了 “ Web 共享 ” ,这时联网的用户就会通过 “ http://[ 本地 IP]/ ” 来访问 “ /Library (资源库)/WebServer/Documents/ ” 目录,通过 “ http://[ 本地 IP]/~[ 用户名 ] ” 来访问 “ /Users/[ 用户名 ]/Sites / ” 目录,可以通过设置 “ 系统偏好设置 ” 的 “ 安全( Security ) ” 中的 “ 防火墙( Firewall ) ” 来禁止这种访问。
二.设置虚拟主机
1. 在终端运行 “ sudo vi /etc/apache2/httpd.conf ” ,打开 Ap ache 的配置文件
2. 在 httpd.conf 中找到 “ #Include /private/etc/apache2/extra/httpd-vhosts.conf ” ,去掉前面的 “ # ” ,保存并退出。
3. 运行 “ sudo apachectl restart ” ,重启 Apache 后就开启了它的虚拟主机配置功能。
4. 运行 “ sudo vi /etc/apache2/extra/httpd-vhosts.conf ” ,这样就打开了配置虚拟主机的文件 httpd-vhost.conf ,配置你需要的虚拟主机了。需要注意的是该文件默认开启了两个作为例子的虚拟主机
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
ServerName dummy-host.example.com
ServerAlias www.dummy-host.example.com
ErrorLog "/private/var/log/apache2/dummy-host.example.com-error_log"
CustomLog "/private/var/log/apache2/dummy-host.example.com-access_log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "/usr/docs/dummy-host2.example.com"
ServerName dummy-host2.example.com
ErrorLog "/private/var/log/apache2/dummy-host2.example.com-error_log"
CustomLog "/private/var/log/apache2/dummy-host2.example.com-access_log" common
</VirtualHost>
而实际上,这两个虚拟主机是不存在的,在没有配置任何其他虚拟主机时,可能会导致访问 localhost 时出现如下提示:
Forbidden
You don't have permission to access /index.php on this server
5. 最简单的办法就是在它们每行前面加上 # ,注释掉,这样既能参考又不导致其他问题。 然后增加如下配置(比如我将虚拟主机的目录放到我的个人文件夹下的“站点(Sites)”目录下,名为mySite):
<VirtualHost 127.0.0.1>
ServerName mySite
DocumentRoot /Users/refresh/Sites/mySite
// 下面这段不是必需的,最好加上,但注意参数根据自己的需要更改
<Directory /Users/refresh/Sites/mySite>
AllowOverride All
Options All
</Directory>
</VirtualHost>
PS. 其实这段内容可以参考 httpd-vhost.conf给出的示例来设置
34. 保存退出,并重启 Apache 。
35. 运行 “ sudo vi /etc/hosts ” ,打开 hosts 配置文件,加入 ” 127.0.0.1 mySite“ ,这样就配置完 mySite 虚拟主机了,就可以用 “ http:// mySite/” 访问了, 与“ http://localhost/~[ 用户名 ] /Sites/mySite” 完全一致。
PS :其实也可以在需要设置虚拟主机的目录放置一个 httpd.conf 文件,其内容和上面所说的一致,然后再修改 httpd.conf 中
“ Include /private/etc/apache2/extra/httpd-vhosts.conf ” 为 Include /Users/refresh/Sites/mySite
三.运行 PHP (apache增加php 支持 )
1. 在终端中运行 “ sudo vi /etc/apache2/httpd.conf ” ,打开 Apache 的配置文件。(如果不习惯操作终端和 vi 的可以设置在 Finder 中显示所有的系统隐藏文件,记得需要重启 Finder ,这样就可以找到对应文件,随心所欲编辑了,但需要注意的是某些文件的修改需要开启 root 帐号,但整体上还是在终端上使用 sudo 来临时获取 root 权限比较安全。)
2. 找到 “ #LoadModule php5_module libexec/apache2/libphp5.so ” ,把前面的 # 号去掉,保存并退出
3. 运行 “ sudo cp /etc/php.ini.default /etc/php.ini ” ,这样就可以通过 php.ini 来配置各种 PHP 功能了。比如 :通过下面两项来调整 PHP 提交文件的最大值,比如 phpMyAdmin 中导入数据的最大值
upload_max_filesize = 2M
post_max_size = 8M
再比如通过 display_errors 来控制是否显示 PHP 程序的报错
display_errors = Off
运行 “ sudo apachectl restart ” ,重启 Apache ,这样 PHP 就可以用了。
4. 运行 “ cp /Library/WebServer/Documents/index.html.en ibrary/WebServer/Documents/info.php ” ,即在 Apache 的根目录下复制 index.html.en 文件并重命名为 info.php (或者直接创建一个php 文件 )
5. 在 vi 中编辑 info.php 文件 (vi /Library/WebServer/Documents/info.php)或者直接使用你喜欢的文本编辑软件编辑它。加入<?php phpinfo();?>,保存。这样就可以在 http://localhost/info.php 中看到有关 PHP 的信息 了。
四.安装 MySQL
由于 Mac OS X 中并没有预装 MySQL ,所以需要自己手动安装。 MySQL 提供了 Mac OS X 下的安装说明
1. 选择合适的版本 并下载。
2. 运行 下载的dmg文件,会发现里面有 4 个文件。首先点击安装 “mysql-版本号-osx10.6-x86_64.pkg”,这是 MySQL 的主安装包。 一般情况下,安装文件会自动把 MySQL 安装到 /usr/local 下的同名文件夹下。比如点击运行 “ mysql- 版本号-osx10.6- x86_64.dmg ” 会把 MySQ L安装到“/usr/local/mysql-版本号-osx10.6-x86_64 ” 中 ,一路默认安装完毕即可。
3. 点击安装第 2 个文件 MySQLStartupItem.pkg ,这样 MySQL 就会自动在开机时自动启动了。
4. 点击安装第 3 个文件 MySQL.prefPane ,这样就会在 “ 系统设置偏好 ” 中看到名为 “ MySQL ” 的 设置项,通过它就可以设置 MySQL 开始 或停止,以及是否开机时自动运行。到这里 MySQL 就基本安装完毕了。
5. 通过运行 “ sudo vi /etc/bashrc ” ,在 bash 的配置文件中加入 mysql 和 mysqladmin 的别名
#mysql
alias mysql='/usr/local/mysql/bin/mysql'
alias mysqladmin='/usr/local/mysql/bin/mysqladmin'
6. 这样就可以在终端中比较简单地通过命令进行相应的操作,比如安装完毕之后 MySQL 的 root 默认密码为空,如果要设置密码可以在终端运行 “ mysqladmin -u root password "mysqlpassword" ” 来设置,其中 mysqlpassword 即 root 的密码 ,更多相关内容可以参考相关文档。
PS: Mac OS X 的升级或者其他原因可能会导致 MySQL 启动或者开机自动运行,在 MySQL 的操作面板上会提示 “ Warning:The /usr/local/mysql/data directory is not owned by the 'mysql' or '_mysql' ” ,或者在命令行下提示 “ Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) ” ,这应该是某种情况下导致 /usr/local/mysql/data 的宿主发生了改变,只需要运行 “ sudo chown -R mysql /usr/local/mysql/data ” 即可。
五.使用 phpMyAdmin
phpMy Admin 是用 PHP 开发的 MySQL 管理程序,非常的流行和实用。能够 使用phpMyAdmin 管理 MySQL 是检验前面几步成果的非常有效方式。
1. 选择合适的版本 并下载。
2. 把 刚下载的 phpMyAdmin- 版本号-all-languages 文件夹复制到 “ /Users/[ 用户名 ]/Sites ” 中,改名为 phpmyadmin 。
3. 复制 “ /Users/[ 用户名 ]/Sites/phpmyadmin/ ” 中的 config.sample.inc.php ,并命名为 config.inc.php
4. 打开 config.inc.php, 做如下修改:
用于 Cookie 加密,随意的长字符串
$cfg['blowfish_secret'] = ''; ( cookie 写上吧 )
当 phpMyAdmin 中出现 “ #2002 无法登录 MySQL 服务器 ” 时, 请把 localhost 改成 127.0.0.1 就 ok 了,(这里挺重要) ,这是因为 MySQL 守护程序做了 IP 绑定( bind-address =127.0.0.1 )造成的
$cfg['Servers'][$i]['host'] = 'localhost';
另外,把 false 改成 true ,这样就可以访问无密码的 MySQL 了,即使 MySQL 设置了密码也可以这样设置
$cfg['Servers'][$i]['AllowNoPassword'] = false;
5. 通过 http://localhost/~[ 用户名 ]/phpmyadmin 访问 phpMyAdmin 。这个时候就看到一个提示 “ 无法加载 mcrypt 扩展,请检查您的 PHP 配置。 ” ,这就涉及到下一节安装 MCrypt 扩展了。
六.配置 PHP 的 MCrypt 扩展
MCrypt 是一个功能强大的加密算法扩展库,它包括有 22 种算法, phpMyAdmin 依赖这个 PHP 扩展库。但是它在 Mac OS X 下的安装却不那么友善,具体如下:(安装软件前你要先在电脑里安装 XCODE, 要不编译不了软件 )
1. 下载并解压 libmcrypt-2.5.8.tar.bz2
2. 在终端执行如下命令:
cd ~/Downloads/libmcrypt-2.5.8/
./configure --disable-posix-threads --enable-static
make
sudo make install
3. 下载并解压 PHP
4 在终端执行如下命令:
cd ~/Downloads/php-5.3.6/ext/mcrypt
phpize ( 这是一条命令)
./configure
make
cd modules
sudo cp mcrypt.so /usr/lib/php/extensions/no-debug-non-zts-20090626/
5. 打开 php.ini
sudo vi /etc/php.ini
在 php.ini 中加入如下代 码 :
extension=/usr/lib/php/extensions/no-debug-n on-zts-20090626/mcrypt.so
保存后退出,然后重启apache 。
当你再访问 http://localhost/~[ 用户名 ]/phpmyadmin 时,你会发现 “ 无法加载 mcrypt 扩展,请检查您的 PHP 配置。 ” 的提示没有了,这就表示 MCrypt 扩展库安装成功了。
七.增加gd 支持
mac 自带的 php 默认是没有启用 gd 支持的,需要额外编译 gd 库。
sudo bash
Install libjpeg
PS : 安装 GD 支持安装 libjpeg ,所以我们先创建一个源代码目录并下载代码编译安装。
mkdir -p /SourceCache
cd /SourceCache
下载并解压
curl -O http://www.ijg.org/files/jpegsrc.v8c.tar.gz
tar xzpf jpegsrc.v8c.tar.gz
cd /SourceCache/jpeg-8c
cp /usr/share/libtool/config/config.sub .
cp /usr/share/libtool/config/config.guess .
32 位的使用:
./configure --enable-shared
64 位的使用 :
MACOSX_DEPLOYMENT_TARGET=10.6 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
最后编译安装:
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
这样 libjpeg 就安装好了。
下面安装 GD 库。 ( 因为之前下载安装了 php ,在 php 的 ext 目录下有 gd 扩展 )
cd ~/Downloads/libmcrypt-2.5.8/ext/gd
32 位的使用:
phpize
./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
64 位的使用:
MACOSX_DEPLOYMENT_TARGET=10.6 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
特别注意执行一下 Notice 代码 ,避免出现 /usr/X11/lib/libpng.3.0.0.dylib: No such file or directory 的错误提示。
sudo ln -s /usr/X11/lib/libpng.3.dylib /usr/X11/lib/libpng.3.0.0.dylib
make clean
make make install
(上面的命令后如果: /usr/lib/php/extensions/no-debug-non-zts-20090626/ 目录下没有 gd.so 那就 执行下面的命令:
cd modules
sudo cp gd.so /usr/lib/php/extensions/no-debug-non-zts-20090626/
)
配置 php 加载 gd.so :
编辑 /etc/php.ini , 增加一行
extension=gd.so
如果没有 /etc/php.ini, 则使用
echo -e extension=gd.so > /etc/php.ini 创建它。
配置 extension_dir="/usr/lib/php/extensions/no-debug-no n-zts-20060613"
这个目录在 make install 里也能看到。
重启 httpd :sudo apachectl restart
八 . 增加 CAPTCHA 支持
在一般的网站注册中我们经常会看到要求根据一副图像来输入一个验证码,从而避免机器注册。在 PHP 里面,我们可以通过 CAPTCHA 来完成这种功能,具体方法如下:
先从 http://pear.php.net/ 上下载一下组件:
Text_CAPTCHA
Text_Password
Image_Text
然后将组件整合到 PHP 中,首选需要为 PHP 添加 Pear 功能以支持组件扩展,操作步骤如下:
curl http://pear.php.net/go-pear.phar > go-pear.phar
sudo php -d phar.require_hash=0 go-pear.phar
PS : 跟着步骤走,让你打安装目录的时候换到 /usr/local 下 ( 注意看提示 ) ,提示要更新 php.ini 的时候让他更新 。
接下来安装上面的三个组件:
pear install -f Text_CAPTCHA
pear install -f Image_Text
pear install -f Text_Password
PS:这里 -f 表明安装非稳定版本,安装过程可能需要等待一段时间安装完成后,屏幕会有提示。 另外,在运行上面的命令时可能会提示你说找不到可用版本,并提示有一个带版本号的beta版本,那就在上面的命令后附加上版本号再次执行(注意看提示,安装这三个组件非常简单!)。
九.配置 Zendframework
安装 Zend Framework 非常简单。只要你下载并解压它,并把发行版里的 /library 文件夹加到你的 include 路径里就行了。 你也可以把 library 文件夹移动到其它可共享的位置 。具体可参考官方文档。
PS :一定要注意将 /library 文件夹加到你的 include 路径里 ,我就是没有做好这步,始终都没找到无法运行的原因,甚是苦恼!
十.其他问题
当一个人找不到出路的时候,最好的办法就是将当前能做好的事情做到极致,做到无人能及。