mac osx上搭建php開發環境:
1、由於系統自帶了apache2.4.10和php5.5.20,沒有打算再mamp。
啓動apache:
sudo apachectl start
重啓apache:
sudo apachectl restart
查看apache版本:
httpd -v
2、配置php:
查看php版本:
php -v
配置apache啓用php:
sudo vi /etc/apache2/httpd.conf
打開php5配置:
LoadModule php5_module libexec/apache2/libphp5.so
保存後重啓apache生效。3、之前已經安裝了mysql 5和數據庫管理軟件navicat premium,就不再安裝phpadmin了。
4、下載安裝netbeans php 8.0.2。
https://netbeans.org/downloads/index.html
5、使用netbeans php新建php項目,調試代碼:
調試代碼需要配置 php 啓用xdebug,筆者按照傳統的方式訪問xdebug的官網,發現只有windows binary的下載,差點走了彎路在mac上自行編譯。研究了一段時間後,終於解決問題。
a) osx 不僅自帶了apache、php、libphp for apache,還自帶了 xdebug ,啓用它的話,需要先 sudo cp /etc/php.ini.default /etc/php.ini 然後再執行以下命令:
sudo sh -c 'echo zend_extension=$(find /usr/lib/php/extensions -name "xdebug.so") >> $(php -qr "echo php_ini_loaded_file();") && apachectl restart'
注意:如果不先創建/etc/php.ini,會出現“ambiguos redirect”的錯誤。
b) 配置 php.ini 使其支持 xdebug:
sudo vi /etc/php.ini
shit + G轉到文件最後,添加(zend_extension=是a)步驟自動生成的):
zend_extension=/usr/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so
xdebug.remote_enable=on
xdebug.remote_log="/var/log/xdebug.log"
xdebug.remote_host=localhost
xdebug.remote_handler=dbgp
xdebug.remote_port=9000
xdebug.idekey=netbeans-xdebug
6、配置apache,使其引用netbeans創建的php項目路徑。因爲netbeans php ide默認創建項目到當前用戶xxx主目錄下的NetBeansProjects目錄下,所以要想在apache下運行ide創建的web項目TodoList,還需要設置Alias。TodoList項目是NetBeans IDE自帶的一個示例工程,特別要注意的是Alias 指向的是 TodoList/web 而不是 TodoList。
sudo vi /etc/apache2/httpd.conf
增加以下行:
Alias /TodoList /Users/xxx/NetBeansProjects/TodoList/web
<Directory "/Users/YXCD/NetBeansProjects/">
AllowOverrideAll
Options IndexesMultiViews FollowSymLinks
Requireall granted
</Directory>
配置TodoList/config/config.ini之後,可能還會出現錯誤:
DateTime::__construct(): It is not safe to rely on the system’s timezone settings.
解決辦法:編輯 /etc/php.ini,打開date.timezone並設置爲Asia/Shanghai
[Date]
date.timezone = Asia/Shanghai
重啓apache之後問題解決。7、萬事具備,只欠東風。最後使用netbeans調試php項目是非常容易的。在項目樹上右鍵單擊,上下文菜單中選擇“調試”即可。前面的步驟如果設置不正確,就會導致調試時netbeans一直在等待連接。
有的文章說等待連接是9000端口被佔用,需要修改php.ini中的
xdebug.remote_port=9000
爲其他值如9001,然後設置netbeans的調試監聽端口也爲9001。菜單:NetBeans IDE > Preferences
再單擊php面板,切換到“調試”窗口,可修改“調試器端口”。但是,筆者遇到調試時等待連接情況並非因爲端口,而是httpd.conf的Alias路徑問題,以及php.ini的配置。
ps:
1、windows版本的php環境,筆者也搭建過無數次了,每次也是如上述一般手動配置的。但今天幫助同事搭建環境,我通過httpd.apache.org,一步一步指引到下載xampp,發現更爲方便,所以就不再手工折騰了。xampp安裝時,絕大多數搭配的軟件都是不要的,只勾選apache、php等即可。
2、windows netbeans php ide調試也需要xdebug,雖然你可以區xdebug官網下載一個配套xampp版本(如32位、VC11、php 5.6等)的binary .dll,但我還是建議只需要編輯C:\xampp\php\php.ini,把關於xdebug的條目打開即可。注意,xdebug.remote_enable 項缺省不是on,而是0,0表示off,不僅要刪除註釋符分號,還得改寫這一項。或者直接參考我前面5、b)配置。
3、強烈推薦 php framework codeigniter ,8年前我接觸了它,還在猶豫到底選用 ci 還是它的社區衍生版 kohana,我就轉向了 java 陣營。如今再訪問 codeigniter,可喜的看到它終於出到 3.0 了,使用協議改爲了MIT,並將代碼移交給了一所美國大學。而 kohana 的最後更新似乎還停留在多年前。簡單看了一些介紹和視頻,自己動手寫了點東西,發現相比 java 世界,php + ci 是那麼的暢快,已經推薦給了正打算學後端的同事,藉此也推薦給大家。
中文ci站點:http://codeigniter.org.cn
3.0的中文手冊還未完成,請大家給予社區一些鼓勵。