尊重作者:轉(zhuǎn)自:http://dancewithnet.com/2010/05/09/run-apache-php-mysql-in-mac-os-x/
?
Mac OS X 內(nèi)置Apache 和 PHP,使用起來(lái)非常方便。本文以Mac OS X 10.6.3和?10.8.1為例。主要內(nèi)容包括:
有兩種方法:
Server version: Apache/2.2.22 (Unix) Server built: Jun 20 2012 13:57:09
如此在瀏覽器中輸入“http://localhost”,就可以看到一個(gè)內(nèi)容為“It works!”的頁(yè)面,其位于“/Library(資源庫(kù))/WebServer/Documents/”下,這就是Apache的默認(rèn)根目錄。
立即學(xué)習(xí)“PHP免費(fèi)學(xué)習(xí)筆記(深入)”;
?
注意:開(kāi)啟了Apache就是開(kāi)啟了“Web共享”,這時(shí)聯(lián)網(wǎng)用戶就會(huì)通過(guò)“http://[本地IP]/”來(lái)訪問(wèn)“/Library(資源庫(kù))/WebServer/Documents/”目錄,通過(guò)“http://[本地IP]/~[用戶名]”來(lái)訪問(wèn)“/Users/[用戶名]/Sites/”目錄。值得注意的是,Mac OS X在10.8中取消”Web共享(Web Sharing)”時(shí),也移除了“/Users/[用戶名]/Sites/”目錄,所以10.8中訪問(wèn)“http://[本地IP]/~[用戶名]”會(huì)顯示“403 Forbidden”,但http://[本地IP]/依舊可以訪問(wèn)。可以到“系統(tǒng)偏好設(shè)置” -> “安全(Security)” -> “防火墻(Firewall)”,開(kāi)啟防火墻,然后在“防火墻選項(xiàng)(Firewall Options)”中勾上“組織所有進(jìn)入連接(block all incoming connections)”即可。也可以通過(guò)設(shè)置httpd.conf來(lái)只允許localhost和127.0.0.1訪問(wèn)“/Library(資源庫(kù))/WebServer/Documents/”。
<Directory "/Library/WebServer/Documents"> <span>...... # # Controls who can get stuff from this server. #</span> Order allow,deny <span>#Allow from all</span> Allow from 127.0.0.1 Allow from localhost </Directory>
<span>;通過(guò)下面兩項(xiàng)來(lái)調(diào)整PHP提交文件的最大值,如phpMyAdmin中導(dǎo)入數(shù)據(jù)的最大值</span> upload_max_filesize = 2M post_max_size = 8M <span>;通過(guò)display_errors來(lái)控制是否顯示PHP程序的報(bào)錯(cuò)信息,這在調(diào)試PHP程序時(shí)非常有用</span> display_errors = Off
Mac OS X沒(méi)有內(nèi)置MySQL,所以需要自己手動(dòng)安裝,目前MySQL的最穩(wěn)定版本是5.5。MySQL提供了Mac OS X下的安裝說(shuō)明。
#mysql alias mysqlstart='sudo /Library/StartupItems/MySQLCOM/MySQLCOM restart' alias mysql='/usr/local/mysql/bin/mysql' alias mysqladmin='/usr/local/mysql/bin/mysqladmin'
這樣就可以在終端中比較簡(jiǎn)單地通過(guò)命令進(jìn)行相應(yīng)的操作。由于開(kāi)始安裝MySQLStartupItem.pkg到“/Library/StartupItems/MySQLCOM/”來(lái)控制MySQL的運(yùn)行、自動(dòng)運(yùn)行、停止、關(guān)閉之類。在MySQL沒(méi)有啟動(dòng)時(shí),直接運(yùn)行mysql或mysqladmin命令會(huì)提示“Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)”,所以我們可以通過(guò)控制面板或者直接運(yùn)行mysqlstart命令來(lái)啟動(dòng)MySQL,之后再運(yùn)行mysql或mysqladmin命令就正常了。比如安裝完畢后MySQL的root默認(rèn)密碼為空,如果要設(shè)置密碼可以在終端運(yùn)行“mysqladmin -u root password "mysqlpassword"”來(lái)設(shè)置,其中mysqlpassword即root的密碼。更多相關(guān)內(nèi)容可以參考B.5.4.1. How to Reset the Root Password。
注意:Mac OS X的升級(jí)或其他原因可能會(huì)導(dǎo)致MySQL啟動(dòng)或開(kāi)機(jī)自動(dòng)運(yùn)行時(shí),在MySQL操作面板上會(huì)提示“Warning:The /usr/local/mysql/data directory is not owned by the 'mysql' or '_mysql'?”,這應(yīng)該是某種情況下導(dǎo)致/usr/local/mysql/data的宿主發(fā)生了改變,只需要運(yùn)行“sudo chown -R mysql /usr/local/mysql/data”即可。
另外,使用PHP連接MySQL可能會(huì)報(bào)錯(cuò)“Can’t connect to local MySQL server through socket ‘/var/mysql/mysql.sock’”,或使用localhost無(wú)法連接MySQL而需要127.0.0.1,原因是連接時(shí)php默認(rèn)去找/var/mysql/mysql.sock了,但MAC版的MYSQL改動(dòng)了文件位置,放在/tmp下了。處理辦法是按如下修改php.ini:
mysql.default_socket = /tmp/mysql.sock
phpMyAdmin是用PHP開(kāi)發(fā)的管理MySQL的程序,非常的流行和實(shí)用。能夠使用phpMyAdmin管理MySQL是檢驗(yàn)前面幾步效果的非常有效方式。
sudo tar -xf ~/Downloads/phpMyAdmin-3.5.2.2-all-languages.tar.bz2 -C /Library/WebServer/Documents/ sudo mv /Library/WebServer/Documents/phpMyAdmin-3.5.2.2-all-languages /Library/WebServer/Documents/phpmyadmin
<span>用于Cookie加密,隨意的長(zhǎng)字符串</span> $cfg['blowfish_secret'] = 'a8b7c6d'; <span>當(dāng)phpMyAdmin中出現(xiàn)“#2002 無(wú)法登錄 MySQL 服務(wù)器(#2002 Cannot log in to the MySQL server)”時(shí), 請(qǐng)把localhost改成127.0.0.1就ok了, 這是因?yàn)镸ySQL守護(hù)程序做了IP綁定(bind-address =127.0.0.1)造成的</span> $cfg['Servers'][$i]['host'] = 'localhost'; <span>把false改成true,這樣就可以訪問(wèn)無(wú)密碼的MySQL了, 即使MySQL設(shè)置了密碼也可以這樣設(shè)置,然后登錄phpMyAdmin時(shí)輸入密碼</span> $cfg['Servers'][$i]['AllowNoPassword'] = false;
MCrypt是一個(gè)功能強(qiáng)大的加密算法擴(kuò)展庫(kù),它包括有22種算法,phpMyAdmin依賴這個(gè)PHP擴(kuò)展庫(kù)。但在Mac OS X下的安裝卻不那么友善,具體如下:
cd ~/Downloads tar -zxvf libmcrypt-2.5.8.tar.bz2 cd libmcrypt-2.5.8 ./configure --disable-posix-threads --enable-static make sudo make install
cd ~/Downloads tar -zxvf php-5.3.13.tar.bz2 cd php-5.3.13/ext/mcrypt curl -O http://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gz tar -zxvf autoconf-latest.tar.gz cd autoconf-2.69 ./configure make sudo make install cd .. phpize ./configure make sudo make install
sudo vi /etc/php.ini
在php.ini中加入如下代碼,并保存后退出,然后重啟Apache
extension=mcrypt.so
當(dāng)你再訪問(wèn)http://localhost/phpmyadmin時(shí),會(huì)發(fā)現(xiàn)“無(wú)法加載 mcrypt 擴(kuò)展,請(qǐng)檢查您的 PHP 配置?!碧崾緵](méi)有了,這就表示MCrypt擴(kuò)展庫(kù)安裝成功了。如果還不能加載,嘗試把php.ini中的加入的extension修改為:
extension=/usr/lib/php/extensions/no-debug-non-zts-20090626/mcrypt.so
Mac OS X下安裝MCrypt擴(kuò)展的確比較復(fù)雜,而且稍微不小心會(huì)有各種小問(wèn)題出現(xiàn),大家還可以參考How to Install mcrypt for php on Mac OSX Lion 10.8 & 10.7 Development Server和Adding MCRYPT to your OSX Lion PHP install
<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>
而實(shí)際上,這兩個(gè)虛擬主機(jī)是不存在的,在沒(méi)有配置任何其他虛擬主機(jī)時(shí),可能會(huì)導(dǎo)致訪問(wèn)localhost時(shí)出現(xiàn)如下提示:
Forbidden You don't have permission to access /index.php on this server
最簡(jiǎn)單的辦法就是在它們每行前面加上#,注釋掉就好了,這樣既能參考又不導(dǎo)致其他問(wèn)題。
<VirtualHost *:80> DocumentRoot "/Library/WebServer/Documents" ServerName localhost ErrorLog "/private/var/log/apache2/localhost-error_log" CustomLog "/private/var/log/apache2/localhost-access_log" common </VirtualHost> <VirtualHost *:80> DocumentRoot "/Users/[用戶名]/Sites" ServerName sites ErrorLog "/private/var/log/apache2/sites-error_log" CustomLog "/private/var/log/apache2/sites-access_log" common <Directory /> Options Indexes FollowSymLinks MultiViews AllowOverride None Order deny,allow Allow from all </Directory> </VirtualHost>
保存退出,并重啟Apache。
這里利用Mac OS X 10.6.3和10.8.1中原生支持的方式來(lái)實(shí)現(xiàn)的配置,也可以參考“Mac OS X Leopard: 配置Apache, PHP, SQLite, MySQL, and phpMyAdmin(一)?”和“Mac OS X Leopard: 配置Apache, PHP, SQLite, MySQL, and phpMyAdmin(二)?”。實(shí)際上,還可以使用XAMPP或MacPorts這種第三方提供的集成方案來(lái)實(shí)現(xiàn)簡(jiǎn)單的安裝和使用。
PHP怎么學(xué)習(xí)?PHP怎么入門?PHP在哪學(xué)?PHP怎么學(xué)才快?不用擔(dān)心,這里為大家提供了PHP速學(xué)教程(入門到精通),有需要的小伙伴保存下載就能學(xué)習(xí)啦!
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://www.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)