在Mac OS X中配置Apache + PHP + MySQL

内容如下:

1. 启动Apache
2. 设置虚拟主机
3. 运行PHP 
4. 安装MySQL 
5. 使用phpMyAdmin 
6. 配置PHP的MCrypt扩展库
7. GD库安装
8. 增加CAPTCHA支持
9. 增加Zendframework

------------------------------------------------------------------------------------------------------------------------------------------------------------------

一.启动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”,打开Apache的配置文件 
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 [email protected]

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 [email protected]

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”会把MySQL安装到“/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


phpMyAdmin是用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 路径里,我就是没有做好这步,始终都没找到无法运行的原因,甚是苦恼!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章