Mac OS X 內置了Apache 和 PHP,這樣使用起來很是方便。本文以Mac OS X 10.6.3爲例。主要內容包括:php
有兩種方法:html
sudo apachectl start
」,再輸入賬號密碼,這樣Apache就運行了。sudo apachectl -v
」,你會看到Mac OS X 10.6.3中的Apache版本號:Server version: Apache/2.2.14 (Unix) Server built: Feb 11 2010 14:40:31
這樣在瀏覽器中輸入「http://localhost」,就能夠看到出現一個內容爲「It works!」的頁面,它位於「/Library(資源庫)/WebServer/Documents/」下,這是Apache的默認根目錄。mysql
注意:開啓了Apache就是開啓了「Web共享」,這時聯網的用戶就會經過「http://[本地IP]/」來訪問「/Library(資源庫)/WebServer/Documents/」目錄,經過「http://[本地IP]/~[用戶名]」來訪問「/Users/[用戶名]/Sites/」目錄,能夠經過設置「系統偏好設置」的「安全(Security)」中的「防火牆(Firewall)」來禁止這種訪問。web
sudo vi /etc/apache2/httpd.conf
」,打開Apache的配置文件。(若是不習慣操做終端和vi的能夠設置在Finder中顯示全部的系統隱藏文件,記得須要重啓Finder,這樣就能夠找到對應文件,爲所欲爲編輯了,但須要注意的是某些文件的修改須要開啓root賬號,但總體上仍是在終端上使用sudo來臨時獲取root權限比較安全。)#LoadModule php5_module libexec/apache2/libphp5.so
」,把前面的#號去掉,保存(在命令行輸入:w
)並退出vi(在命令行輸入:q
)。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就能夠用了。cp /Library/WebServer/Documents/index.html.en /Library/WebServer/Documents/info.php
」,即在Apache的根目錄下複製index.html.en文件並重命名爲info.phpvi /Library/WebServer/Document/info.php
」,這樣就能夠在vi中編輯info.php文件了。在「It’s works!」後面加上「<?php phpinfo(); ?>
」,而後保存之。這樣就能夠在http://localhost/info.php中看到有關PHP的信息,好比版本號是5.3.1。因爲Mac OS X中並無預裝MySQL,因此須要本身手動安裝,目前MySQL的最穩定版本是5.1。MySQL提供了Mac OS X下的安裝說明。算法
/usr/local/mysql-5.1.46-osx10.6-x86_64
」中。一路默認安裝完畢便可。sudo vi /etc/bashrc
」,在bash的配置文件中加入mysql
和mysqladmin
的別名#mysql alias mysql='/usr/local/mysql/bin/mysql' alias mysqladmin='/usr/local/mysql/bin/mysqladmin'
這樣就能夠在終端中比較簡單地經過命令進行相應的操做,好比安裝完畢以後MySQL的root
默認密碼爲空,若是要設置密碼能夠在終端運行「mysqladmin -u root password "mysqlpassword"
」來設置,其中mysqlpassword即root的密碼。更多相關內容能夠參考B.5.4.1. How to Reset the Root Password。sql
注意: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
」便可。macos
另外,使用PHP鏈接MySQL可能會報錯「Can’t connect to local MySQL server through socket ‘/var/mysql/mysql.sock’」,或者使用localhost沒法鏈接MySQL而須要127.0.0.1,緣由是鏈接時候php默認去找/var/mysql/mysql.sock了,可是MAC版本的MYSQL改動了文件的位置,放在/tmp下了。處理辦法是按以下修改php.ini:apache
mysql.default_socket = /tmp/mysql.sock
phpMyAdmin是用PHP開發的管理MySQL的程序,很是的流行和實用。可以實用phpMyAdmin管理MySQL是檢驗前面幾步成果的很是有效方式。xcode
/Users/[用戶名]/Site
s」中,名更名爲phpmyadmin。/Users/[用戶名]/Sites/phpmyadmin/
」中的config.sample.inc.php,並命名爲config.inc.php用於Cookie加密,隨意的長字符串 $cfg['blowfish_secret'] = ''; 當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設置了密碼也能夠這樣設置,而後在登陸phpMyAdmin時輸入密碼 $cfg['Servers'][$i]['AllowNoPassword'] = false;
http://localhost/~[用戶名]/phpmyadmin
訪問phpMyAdmin了。這個時候就看到一個提示「沒法加載 mcrypt 擴展,請檢查您的 PHP 配置。」,這就涉及到下一節安裝MCrypt擴展了。MCrypt是一個功能強大的加密算法擴展庫,它包括有22種算法,phpMyAdmin依賴這個PHP擴展庫。可是它在Mac OS X下的安裝卻不那麼友善,具體以下:瀏覽器
cd ~/Downloads/libmcrypt-2.5.8/ ./configure --disable-posix-threads --enable-static make sudo make install
cd ~/Downloads/php-5.3.1/ext/mcrypt phpize ./configure make cd modulessudo cp mcrypt.so /usr/lib/php/extensions/no-debug-non-zts-20090626/
sudo vi /etc/php.ini
在php.ini中加入以下代碼,並保存後退出,而後重啓Apache
extension=/usr/lib/php/extensions/no-debug-non-zts-20090626/mcrypt.so
當你再訪問http://localhost/~[用戶名]/phpmyadmin
時,你會發現「沒法加載 mcrypt 擴展,請檢查您的 PHP 配置。」的提示沒有了,這就表示MCrypt擴展庫安裝成功了。
sudo vi /etc/apache2/httpd.conf
」,打開Apche的配置文件#Include /private/etc/apache2/extra/httpd-vhosts.conf
」,去掉前面的「#」,保存並退出。<VirtualHost *:80> ServerAdmin webmaster@dummy-host.example.com DocumentRoot "/usr/docs/dummy-host.example.com" ServerName 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
最簡單的辦法就是在它們每行前面加上#,註釋掉就行了,這樣既能參考又不致使其餘問題。
<VirtualHost *:80> DocumentRoot "/Users/[用戶名]/Sites" ServerName sites ErrorLog "/private/var/log/apache2/sites-error_log" CustomLog "/private/var/log/apache2/sites-access_log" common </VirtualHost>
保存退出,並重啓Apache。
sudo vi /etc/hosts
」,打開hosts配置文件,加入」127.0.0.1 sites
「,這樣就能夠配置完成sites虛擬主機了,這樣就能夠用「http://sites」訪問了,其內容和「http://localhost/~[用戶名]」徹底一致。這是利用Mac OS X 10.6.3中原生支持的方式來實現的配置,也能夠參考「Mac OS X Leopard: 配置Apache, PHP, SQLite, MySQL, and phpMyAdmin(一) 」和「Mac OS X Leopard: 配置Apache, PHP, SQLite, MySQL, and phpMyAdmin(二) 」。實際上,你還可使用XAMPP或MacPorts這種第三方提供的集成方案來實現簡單的安裝和使用。