在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 路徑裏,我就是沒有做好這步,始終都沒找到無法運行的原因,甚是苦惱!


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