Mac下搭建php開發環境php
Mac OS X 內置了Apache 和 PHP,這樣使用起來很是方便。本文以Mac OS X 10.6.3爲例。主要內容包括:html
啓動Apachemysql
運行PHPlinux
安裝MySQLweb
使用phpMyAdmin算法
配置PHP的MCrypt擴展庫sql
設置虛擬主機apache
啓動Apachewindows
有兩種方法:xcode
打開「系統設置偏好(System Preferences)」 -> 「共享(Sharing)」 -> 「Web共享(Web Sharing)」
打開「終端(terminal)」,而後(注意:sudo須要的密碼就是系統的root賬號密碼)
運行「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的默認根目錄。
注意:開啓了Apache就是開啓了「Web共享」,這時聯網的用戶就會經過「http://[本地IP]/」來訪問「/Library(資源庫)/WebServer/Documents/」目錄,經過「http://[本地IP]/~[用戶名]」來訪問「/Users/[用戶名]/Sites/」目錄,能夠經過設置「系統偏好設置」的「安全(Security)」中的「防火牆(Firewall)」來禁止這種訪問。
運行PHP
在終端中運行「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.php
在終端中運行「vi /Library/WebServer/Document/info.php」,這樣就能夠在vi中編輯info.php文件了。在「It’s works!」後面加上「<?php phpinfo(); ?>」,而後保存之。這樣就能夠在http://localhost/info.php中看到有關PHP的信息,好比版本號是5.3.1。
安裝MySQL
因爲Mac OS X中並無預裝MySQL,因此須要本身手動安裝,目前MySQL的最穩定版本是5.1。MySQL提供了Mac OS X下的安裝說明。
下載MySQL 5.1。選擇合適的版本,好比這裏選擇的是mysql-5.1.46-osx10.6-x86_64.dmg。
運行dmg,會發現裏面有4個文件。首先點擊安裝mysql-5.1.46-osx10.6-x86_64.pkg,這是MySQL的主安裝包。通常狀況下,安裝文件會自動把MySQL安裝到/usr/local下的同名文件夾下。好比點擊運行「mysql-5.1.46-osx10.6-x86_64.dmg」會把MySQ安裝到「/usr/local/mysql-5.1.46-osx10.6-x86_64」中。一路默認安裝完畢便可。
點擊安裝第2個文件MySQLStartupItem.pkg,這樣MySQL就會自動在開機時自動啓動了。
點擊安裝第3個文件MySQL.prefPane,這樣就會在「系統設置偏好」中看到名爲「MySQL」的ICON,經過它就能夠設置MySQL開始仍是中止,以及是否開機時自動運行。到這裏MySQL就基本安裝完畢了。
經過運行「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。
注意: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」便可。
另外,使用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:
mysql.default_socket = /tmp/mysql.sock
使用phpMyAdmin
phpMyAdmin是用PHP開發的管理MySQL的程序,很是的流行和實用。可以實用phpMyAdmin管理MySQL是檢驗前面幾步成果的很是有效方式。
下載phpMyAdmin。選擇合適的版本,好比我選擇的是phpMyAdmin-3.3.2-all-languages.tar.bz2這個版本。
把「下載(downloads)」中的phpMyAdmin-3.32-all-languages文件夾複製到「/Users/[用戶名]/Sites」中,名更名爲phpmyadmin。
複製「/Users/[用戶名]/Sites/phpmyadmin/」中的config.sample.inc.php,並命名爲config.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擴展了。
配置PHP的MCrypt擴展
MCrypt是一個功能強大的加密算法擴展庫,它包括有22種算法,phpMyAdmin依賴這個PHP擴展庫。可是它在Mac OS X下的安裝卻不那麼友善,具體以下:
下載並解壓libmcrypt-2.5.8.tar.bz2。
在終端執行以下命令(注意以下命令須要安裝xcode支持):
cd ~/Downloads/libmcrypt-2.5.8/
./configure --disable-posix-threads --enable-static
make
sudo make install
下載並解壓PHP源碼文件php-5.3.1.tar.bz2。Mac OS X 10.6.3中預裝的PHP版本是5.3.1,而如今最新的PHP版本是5.3.2,你須要依據本身的實際狀況選擇對應的版本。
在終端執行以下命令:
cd ~/Downloads/php-5.3.1/ext/mcrypt
phpize
./configure
make
cd modules
sudo cp mcrypt.so /usr/lib/php/extensions/no-debug-non-zts-20090626/
打開php.ini
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的配置文件
在httpd.conf中找到「#Include /private/etc/apache2/extra/httpd-vhosts.conf」,去掉前面的「#」,保存並退出。
運行「sudo apachectl restart」,重啓Apache後就開啓了它的虛擬主機配置功能。
運行「sudo vi /etc/apache2/extra/httpd-vhosts.conf」,這樣就打開了配置虛擬主機的文件httpd-vhost.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這種第三方提供的集成方案來實現簡單的安裝和使用。
MMMMMMMMMMMMMMMMMMMMMMMM分割線!!!
實在厭倦了windows平白無故的宕機、病毒,今天決心必定要把家裏的這臺iMac搞成能作php的開發,因而乎開始在百度和谷歌上各類搜,在iMac上各類試,最後終於讓我在瀏覽器經過輸入http://localhost/Joana看到了那久違了的「hello world!"。趁着還熱乎,趕忙記錄下來,省的之後本身忘了。
好吧,我必須認可我根本對linux不熟,若是對linux熟的話,就不會走那麼多的冤路,不過,還好有我最愛的"BackStreet Boys"的最新專輯(2013-7-30發行)陪着我,讓我能夠在這麼炎熱的夏日,靜下心來好好學習。下面正式開始了。
Mac OS X是內置apache和php的,因此不須要安裝額外的軟件,只須要到對應的地方把權限更改而後啓動apache就好了。
1.開啓apahce
Mac OS X10.8版本中把圖形化的操做開啓apache的界面取消了,因此只能經過」終端「輸入命令的方式來啓動。
① 打開終端,輸入命令: sudo apachectl start回車後,終端提示我輸入密碼,密碼?密碼?密碼是什麼?在我糾結了幾秒鐘後,忽然想起當時買iMac時那個銷售小夥跟我說若是設置了更改系統的密碼,那之後不論安裝軟件仍是作點別的跟系統有關的事兒都須要輸入密碼,我試着輸入了個人那個密碼以後,果真OK了。
②在Safari中輸入http://localhost以後,果真看到了那個」It Works!「。
③若是想要關閉apache,只須要在終端輸入sudo apachectl stop便可,若要重啓apache,則命令爲sudo apachectl restart
④在終端輸入httpd -v還能夠看到當前apache的版本,個人版本是:
Server version: Apache/2.2.22 (Unix)
Server built: Dec 9 2012 18:57:18
2.配置虛擬目錄
Mac OS X中apache的文檔根目錄在/Library/WebServer/Documents/下,這個目錄不是很差用,只是就像創建本身的目錄。那在windows下改過apahce配置文件的都知道須要找到httpd.conf文件,並修改其中的配置內容。可是Mac OS X卻把這個文件所在的目錄/etc設爲隱藏了,因此須要經過在Finder中想辦法打開這個目錄才行,百度以後我選擇了最方便的在Finder中經過快捷鍵Shift+Command+G的方式能夠調出讓你輸入文件夾路徑的窗口,來進入/etc目錄。
在/etc/apache2/目錄下找到了那個httpd.conf,我當時那個興奮呀,火燒眉毛的就雙擊要打開進行編輯,結果iMac頗有禮貌的提醒我要選擇什麼程序打開?當我選擇了iMac自帶的」文本編輯器.app「後,文件打開了,而後我就開始按照在windows下的配置開始各類改,結果文本編輯器也是頗有禮貌的提醒我,」您沒有修改的權限「,我去,我都找到你,打開你了,竟然只能看不能改?右鍵-》顯示簡介,調出窗口,看到」權限「,嘿嘿,還不讓我改,我把權限設置成能夠讀寫總行了吧,正當我覺得大功告成時,用文本編輯器打開後仍是看到了那句頗有禮貌的話,無奈,只好繼續百度......
網上找到的都是用vi去編輯這個文件,我實在是不想再學什麼vi命令了,但是在糾結了幾秒鐘,我決定秉承」活到老學到老「的人生信念,終於開始瞭如下的一段在終端的操做。
①sudo vi /etc/apache2/httpd.conf回車後進入vi程序
②在屏幕中輸入e,進入修改模式。
③在打開的httpd.conf文件中,首先找到#LoadModule php5_module libexec/apache2/libphp5.so,而後把光標定位到那個井號」#「,而後按下x鍵,把那個#刪掉,至關去掉註釋。
④添加虛擬目錄其實跟windows下設置同樣,找到配置AliasModule的標記,在裏面添加Alias /Joana "這裏是個人虛擬目錄路徑"(命令是先按esc鍵退出剛纔的刪除模式,而後再按i鍵進入插入模式,爲了這個我專門把vi命令搜了個全面的好好學習了一下)。個人那個路徑是:/Users/lucyliu/Sites 。還要添加對這個目錄的訪問權限,代碼跟Windows的同樣,修改完畢按esc鍵退出當前模式進入通常模式,輸入」:w「把更改保存,再輸如」:q「退出vi回到終端。
這裏須要說明一點:這個Sites目錄一開始是沒有的(仍是在10.8以後被刪掉了),須要手動建立,不過最好仍是在終端建立,輸入命令:sudo mkdir ~/Sites回車就行。一開始不知道那個~是啥意思,後來百度了才知道是當前的用戶目錄的意思。
⑤配置完成後重啓apache,我就興致沖沖的去那個Sites目錄下創建網頁了,結果被告知沒有權限,再次崩潰,又沒有權限,搞什麼呀,後來百度到須要經過chmod命令更改那個目錄的權限才行,因而又進入終端輸入sudo chmod 777 /Sites回車,搞定。
⑥趕忙在Sites目錄下建了一個index.php,裏面就寫了一句echo 'Hello World';,在Safari中輸入http://localhost/Joana/回車,而後我看到了,我笑了,哈哈!!!