在Mac OS X中配置Apache + PHP + MySQL
Jul 09, 2016 am 09:09 AM尊重作者:轉(zhuǎn)自:http://dancewithnet.com/2010/05/09/run-apache-php-mysql-in-mac-os-x/
?
在Mac OS X中配置Apache + PHP + MySQL
Mac OS X 內(nèi)置Apache 和 PHP,使用起來(lái)非常方便。本文以Mac OS X 10.6.3和?10.8.1為例。主要內(nèi)容包括:
- 啟動(dòng)Apache
- 運(yùn)行PHP
- 安裝MySQL
- 使用phpMyAdmin
- 配置PHP的MCrypt擴(kuò)展庫(kù)
- 設(shè)置虛擬主機(jī)
啟動(dòng)Apache
有兩種方法:
- 打開(kāi)“系統(tǒng)設(shè)置偏好(System Preferences)” -> “共享(Sharing)” -> “Web共享(Web Sharing)”。注意,從Mac OS X從10.8開(kāi)始取消了 “Web共享(Web Sharing)”。
- 打開(kāi)“終端(terminal)”,然后(注意,sudo需要的密碼就是系統(tǒng)的root帳號(hào)密碼)
- 運(yùn)行“
sudo apachectl start
”,再輸入帳號(hào)密碼,這樣Apache就運(yùn)行了。 - 運(yùn)行“
sudo apachectl -v
”,你會(huì)看到Mac OS X的Apache版本信息,如10.8.1中:<code>Server version: Apache/2.2.22 (Unix) Server built: Jun 20 2012 13:57:09 </code>
- 運(yùn)行“
如此在瀏覽器中輸入“http://localhost”,就可以看到一個(gè)內(nèi)容為“It works!”的頁(yè)面,其位于“/Library(資源庫(kù))/WebServer/Documents/”下,這就是Apache的默認(rèn)根目錄。
?
注意:開(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/”。
<code><directory> <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> </code>
運(yùn)行PHP
- 在終端中運(yùn)行“
sudo vi /etc/apache2/httpd.conf
”,打開(kāi)Apache的配置文件。(如果不習(xí)慣操作終端和vi,可以設(shè)置在Finder中顯示所有系統(tǒng)隱藏文件,記得設(shè)置完畢后需要重啟Finder,然后就可以找到對(duì)應(yīng)文件,隨心所欲編輯了,需要注意的是某些文件的修改還是需要開(kāi)啟root帳號(hào),但整體上還是在終端上使用sudo
來(lái)臨時(shí)獲取root權(quán)限比較安全。) - 找到“
#LoadModule php5_module libexec/apache2/libphp5.so
”,把前面的#號(hào)去掉,保存(在命令行輸入:w
)并退出vi(在命令行輸入:q
)。 - 運(yùn)行“
sudo cp /etc/php.ini.default /etc/php.ini
”,這樣就可以運(yùn)行<code>sudo vi /etc/php.ini</code>來(lái)編輯php.ini配置各種功能了。比如:<code><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 </code>
- 運(yùn)行“
sudo apachectl restart
”,重啟Apache,這樣PHP就可以用了。 - 運(yùn)行“
sudo cp /Library/WebServer/Documents/index.html.en /Library/WebServer/Documents/info.php
”,即在Apache的根目錄下復(fù)制index.html.en文件并重命名為info.php。 - 在終端中運(yùn)行“
sudo vi /Library/WebServer/Document/info.php
”,這樣就可以在vi中編輯info.php文件了。在“It’s works!”后面加上“<?php phpinfo(); ?>
”,然后保存之。如此就可以在http://localhost/info.php中看到有關(guān)PHP的信息,比如10.8中內(nèi)置PHP版本號(hào)是5.3.13。
安裝MySQL
Mac OS X沒(méi)有內(nèi)置MySQL,所以需要自己手動(dòng)安裝,目前MySQL的最穩(wěn)定版本是5.5。MySQL提供了Mac OS X下的安裝說(shuō)明。
- 下載MySQL 5.5。選擇合適版本,如這里選擇了mysql-5.5.27-osx10.6-x86_64.dmg。
- 運(yùn)行dmg,會(huì)發(fā)現(xiàn)里面有4個(gè)文件。首先點(diǎn)擊安裝mysql-5.5.27-osx10.6-x86_64.pkg,這是MySQL主安裝包。一般情況下,安裝文件會(huì)自動(dòng)把MySQL安裝到
/usr/local
下的同名文件夾下。如運(yùn)行“mysql-5.5.27-osx10.6-x86_64.dmg
”會(huì)把MySQL安裝到“/usr/local/mysql-5.5.27-osx10.6-x86_64
”中,一路默認(rèn)安裝完畢。(注意,從10.8開(kāi)始Mac OS X的權(quán)限更加嚴(yán)格,直接點(diǎn)擊會(huì)提示“mysql-5.5.27-osx10.6-x86_64.pkg can’t be opened because it is from an unidentified developer. Your security preferences allow installation of only apps from the Mac App Store and identified developers.”阻止了安裝,你可以使用雙指單擊該安裝文件,在彈出菜單中選擇“用…打開(kāi)(open with)”,再選擇“安裝(Installer)”就可以接著安裝了。) - 安裝第2個(gè)文件MySQLStartupItem.pkg,MySQL就會(huì)自動(dòng)在開(kāi)機(jī)時(shí)啟動(dòng)了。(注意,10.8的安裝方法同上。)
- 安裝第3個(gè)文件MySQL.prefPane,就會(huì)在“系統(tǒng)設(shè)置偏好”中看到“MySQL”的ICON,通過(guò)它就可以控制MySQL是否開(kāi)啟,以及開(kāi)機(jī)時(shí)是否自動(dòng)運(yùn)行。到這里MySQL就基本安裝完畢了。(注意,10.8中用雙指單擊該安裝文件,在彈出的菜單中選擇“用…打開(kāi)(open with)”,然后選擇“系統(tǒng)偏好(System Perference)”就可以接著安裝了。)
- 通過(guò)運(yùn)行“
sudo vi /etc/bashrc
”,在bash配置文件中加入mysqlstart
、mysql
和mysqladmin
的別名(注意:修改完畢之后需要退出“終端(Terminal)”之后重新進(jìn)入,這些命令才會(huì)生效):<code>#mysql alias mysqlstart='sudo /Library/StartupItems/MySQLCOM/MySQLCOM restart' alias mysql='/usr/local/mysql/bin/mysql' alias mysqladmin='/usr/local/mysql/bin/mysqladmin' </code>
這樣就可以在終端中比較簡(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:
<code>mysql.default_socket = /tmp/mysql.sock</code>
使用phpMyAdmin
phpMyAdmin是用PHP開(kāi)發(fā)的管理MySQL的程序,非常的流行和實(shí)用。能夠使用phpMyAdmin管理MySQL是檢驗(yàn)前面幾步效果的非常有效方式。
- 下載phpMyAdmin。選擇合適的版本,比如這里選擇phpMyAdmin-3.5.22-all-languages.tar.bz2這個(gè)版本。
- 把“下載(downloads)”中phpMyAdmin-3.5.22-all-languages.tar.bz2文件解壓到“
/Library/WebServer/Documents/
”中,并改名為phpmyadmin。<code>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 </code>
- 復(fù)制“
/Library/WebServer/Documents/phpmyadmin/
”中的config.sample.inc.php,并命名為config.inc.php - 編輯config.inc.php,修改如下:
<code><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; </code>
- 這樣就可以通過(guò)
http://localhost/phpmyadmin
訪問(wèn)phpMyAdmin了。此時(shí)會(huì)看到一個(gè)提示“無(wú)法加載 mcrypt 擴(kuò)展,請(qǐng)檢查您的 PHP 配置。(The mcrypt extension is missing. Please check your PHP configuration.)”,這會(huì)涉及到下一節(jié)安裝MCrypt擴(kuò)展了。
配置PHP的MCrypt擴(kuò)展
MCrypt是一個(gè)功能強(qiáng)大的加密算法擴(kuò)展庫(kù),它包括有22種算法,phpMyAdmin依賴這個(gè)PHP擴(kuò)展庫(kù)。但在Mac OS X下的安裝卻不那么友善,具體如下:
- 下載libmcrypt-2.5.8.tar.gz。
- 在終端執(zhí)行如下命令(注意如下命令需要安裝Xcode支持,可直接去Mac App Store下載,安裝完畢后可能會(huì)發(fā)現(xiàn)在終端運(yùn)行
./configure --disable-posix-threads --enable-static
會(huì)報(bào)錯(cuò),運(yùn)行make
會(huì)提示命令不存在,此時(shí)還需要打開(kāi)Xcode,然后在Xcode的軟件“配置(Preference…)”)-> “下載(Downloads)” 中安裝 “命令行工具(Command Line Tools)”:<code>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</code>
- 下載PHP源碼文件php-5.3.13.tar.bz2,記得選擇中國(guó)鏡像會(huì)比較快。Mac OS X 10.6.3中預(yù)裝的PHP版本是5.3.1,10.8的版本是5.3.13,而現(xiàn)在最新的PHP版本是5.4.6,所以需要依據(jù)自己的實(shí)際情況選擇對(duì)應(yīng)的版本,本文以10.8的PHP版本為例。
- 在終端執(zhí)行如下命令,把php-5.3.13.tar.bz2,并配置autoconf(在新的Mac OS X的Xcode中需要自己配置),然后才能運(yùn)行
phpize
命令:<code>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 </code>
- 打開(kāi)php.ini
<code>sudo vi /etc/php.ini</code>
在php.ini中加入如下代碼,并保存后退出,然后重啟Apache
<code>extension=mcrypt.so</code>
當(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
修改為:
<code>extension=/usr/lib/php/extensions/no-debug-non-zts-20090626/mcrypt.so</code>
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
設(shè)置虛擬主機(jī)
- 在終端運(yùn)行“
sudo vi /etc/apache2/httpd.conf
”,打開(kāi)Apche的配置文件 - 在httpd.conf中找到“
#Include /private/etc/apache2/extra/httpd-vhosts.conf
”,去掉前面的“#
”,保存并退出。 - 運(yùn)行“
sudo apachectl restart
”,重啟Apache后就開(kāi)啟了虛擬主機(jī)配置功能。 - 運(yùn)行“
sudo vi /etc/apache2/extra/httpd-vhosts.conf
”,就打開(kāi)了配置虛擬主機(jī)文件httpd-vhost.conf,配置虛擬主機(jī)了。需要注意的是該文件默認(rèn)開(kāi)啟了兩個(gè)作為例子的虛擬主機(jī):<code><virtualhost> 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> 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> </code>
而實(shí)際上,這兩個(gè)虛擬主機(jī)是不存在的,在沒(méi)有配置任何其他虛擬主機(jī)時(shí),可能會(huì)導(dǎo)致訪問(wèn)localhost時(shí)出現(xiàn)如下提示:
<code>Forbidden You don't have permission to access /index.php on this server</code>
最簡(jiǎn)單的辦法就是在它們每行前面加上#,注釋掉就好了,這樣既能參考又不導(dǎo)致其他問(wèn)題。
- 增加如下配置
<code><virtualhost> 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> DocumentRoot "/Users/[用戶名]/Sites" ServerName sites ErrorLog "/private/var/log/apache2/sites-error_log" CustomLog "/private/var/log/apache2/sites-access_log" common <directory></directory> Options Indexes FollowSymLinks MultiViews AllowOverride None Order deny,allow Allow from all </virtualhost> </code>
保存退出,并重啟Apache。
- 運(yùn)行“
sudo vi /etc/hosts
”,打開(kāi)hosts配置文件,加入"127.0.0.1 sites
",這樣就可以配置完成sites虛擬主機(jī)了,可以訪問(wèn)“http://sites”了,在10.8之前Mac OS X版本其內(nèi)容和“http://localhost/~[用戶名]”完全一致。 - 注意,記錄log的“
ErrorLog "/private/var/log/apache2/sites-error_log"
”也可以刪掉,但記錄日志其實(shí)是一個(gè)好習(xí)慣,在出現(xiàn)問(wèn)題時(shí)可以幫助我們判斷。如果保留這些log代碼,一定log文件路徑都是存在的,如果隨便修改一個(gè)不存在的,會(huì)導(dǎo)致Apache無(wú)法服務(wù)而沒(méi)有錯(cuò)誤提示,這個(gè)比較惡心。
這里利用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)單的安裝和使用。
您或許有興趣:

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

settings.json ??? ??? ?? ?? ?? ?? ?? ??? ??? VSCODE ??? ??? ???? ? ?????. 1. ??? ?? ?? : Windows? C : \ Users \\ AppData \ Roaming \ Code \ User \ Settings.json, MacOS IS /users//library/applicationsupport/code/user/settings.json, linux? /home//.config/code/user/settings.json; 2. Workspace ?? ?? : .vscode/settings project root ????

Python? ETL ????? ???? ???? ?????. 1. ??? ?? : ??????, API, ?? ? ?? ???? Pandas, Sqlalchemy, ?? ? ?? ?????? ?? ???? ?? ? ? ????. 2. ??? ?? : ??, ?? ??, ???, ?? ? ?? ??? ??? ???? ??? ??? ???? ??? ??????. 3. ??? ?? : Pandas 'To_SQL ??? ?? ???? ??? SDK? ???? ?? ???? ???? ???? ?? ?? ? ?? ?????? ?????. 4. ?? ?? ?? : ?? ??, Dagster, Prefect? ???? ???? ? ??? ???? ?? ?? ? ?? ??? ???? ???? ?? ??? ??????.

ustuzzleforrobusthtttprequestswithHeadSandtimeouts.2.parsehtMleffiallywithSymfonyDomcraWlerusingcsSelectors.3. handlejavaScript-heaVysitesByIntegratingPuppetErgateErgateEcpExec () TorenderPages.4.Resptobots.txt, AddDelays, andUsepoTecpexec () TorenderPages

CloseNotePad? ??? ??? theprocessintaskmanager.2.renameordeletethe%appdata%\ notepad foldertoresetsettings— renamingtonotepad _backupisrecemendedforbackup.3.restartnotepad togenerateafreshconfigwitdertings.4.optionally, 4.optionally, restartnotepad

NetworkPortSandfirewallsworkTogetToenableCommunication whileensuringsecurity.1.networkportSarevirtualendpointsnumbered0–65535, Withwell-nownports like80 (http), 443 (https), 22 (ssh) ? 25 (smtp) ?? (specservices

keytoconfiguringwindowventforwarding (wef) issettinguptheeventcollectorandsourcesscorrectlyingbuingbuing-intools.2

CertBot ? Apache ????? ??????. 2. ???? ?? ??? ??? ????? certbot? ??????. 3. ????? HTTP?? HTTP? ?? ????? ?????. 4. ?? ??? ???? ?? ? ???? ?????. 5. ??? ???? Apache? ?? ? ?? ??? ??????. ???? ????? ???? ??? ???? ?????. ?? ????? ???? ?? HTTPS ???? ?? ? ? ????.

DEFER? ??? ???? ?? ??? ??? ???? ? ?????. ?? ??? ?? ? ? ?? ????, ??? ??? ? ?? ?? (LIFO)? ??? ?????. 1. ?? ??? ??? ? ??? ?????. 2. ?? ??? ?? ??? ??? ????? ?????. 3. ?? ? ?? ?? ??? ? ????. 4. ??? ?????? ??? ??? ???? ?????. 5. ?? ??? ???? ?? ??? ?? ??? ?????. ??? ??? ?? ?? ? ???? ???? ? ????.
