首頁  >  文章  >  後端開發  >  Mac系統下PHP開發

Mac系統下PHP開發

巴扎黑
巴扎黑原創
2016-11-11 10:06:481097瀏覽

Mac OS X 內建了Apache 和 PHP,這樣使用起來非常方便。本文以Mac OS X 10.6.3為例。主要內容包括: 
啟動Apache 
運行PHP 
安裝MySQL 
使用phpMyAdmin 
設定PHP的MCrypt擴充庫 
設定虛擬主機 
啟動Apache 
程式庫 
設定虛擬主機 
啟動Apache 
. “共享(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 20031這樣在瀏覽器中輸入“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權限比較安全。 )並退出vi(在命令列輸入:q)。 
運行“sudo cp /etc/php.ini.default /etc/php.ini”,這樣就可以透過php.ini來設定各種PHP功能了。例如: 
;透過以下兩個項目調整PHP提交檔案的最大值,例如phpMyAdmin中導入資料的最大值 
upload_max_filesize = 2M 
post_max_size = 8M 
upload_max_filesize = 2M 
post_max_size = 8M 
upload_max_ferrorsd
運行“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!”後面加上“”,然後保存之。這樣就可以在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/mysqlr'
alias mysql='/usr/local/mysql/bin/mysqlr'
alias '
alias /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 伺服器」時, 
請將localhosthost,127.0.0.1ok是因為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 
下載並解壓縮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
make 
cd modul 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 配置。
設定虛擬主機 

在終端運行“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,配置你需要的虛擬主機了。需要注意的是該文件預設開啟了兩個作為例子的虛擬主機: 
 
    ServerAdmin webmaster@dummy-host.example.com 
    DocumentRoot "/usr/docm/dummy-hosts/dummy host.example.com 
    ErrorLog "/private/var/log/apache2/dummy-host.example.com-error_log" 
    CustomLog "/private/var/log/acheache2/dummy-host.
 
 
    ServerAdmin webmaster@dummy-host2.example.com 
    DocumentRoot "/usr/docs/dummy-host2.example.com" . rrorLog "/private/var/log/apache2 /dummy-host2.example.com-error_log" 
    CustomLog "/private/var/log/apache2/dummy-host2.example.com-access_log" common ,在沒有配置任何其他虛擬主機時,可能會導致訪問localhost時出現如下提示: 
Forbidden 
You don't have permission to access /index.php on this server 
最簡單的辦法就是在它們每行前面加上加分上#,註解掉就好了,這樣既能參考又不導致其他問題。
增加如下設定 

 
    DocumentRoot "/Users/[使用者名稱]/Sites" 
    ServerName sites 
  ate/var/log/apache2/ sites-access_log" common 
 
儲存退出,並重新啟動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這種第三方提供的整合方案來實現簡單的安裝和使用。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:PHP 輸出控制下一篇:PHP 輸出控制