在開始介紹怎樣在MAC中安裝LNMP環(huán)境之前,我只想說一句話,這個過程主要看人品,有的人不用浪費太多時間就能很輕松的完成,但是某些人(例如:myself)實在是一個不愿回憶的慘痛時光。好了不說廢話,切入主題......
10余年的南木林網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。營銷型網(wǎng)站建設(shè)的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整南木林建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯(lián)公司從事“南木林網(wǎng)站設(shè)計”,“南木林網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。一、安裝Homebrew
Homebrew是一個依賴管理工具,通過brew命令就可以快速的幫助你安裝工具。安裝brew命令行之前要確保你的電腦上已經(jīng)安裝了Xcode,然后執(zhí)行以下命令:
ruby-e"$(curl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/master/install)"
安裝完成之后,在命令行中輸入
username$brew #下面是返回的內(nèi)容 Eampleusage: brew[info|home|options][FORMULA...] brewinstallFORMULA... brewuninstallFORMULA... brewsearch[foo] brewlist[FORMULA...] brewupdate brewupgrade[FORMULA...] brewpin/unpin[FORMULA...] Troubleshooting: brewdoctor brewinstall-vdFORMULA brew[--env|config] Brewing: brewcreate[URL[--no-fetch]] brewedit[FORMULA...] https://github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/Formula-Cookbook.md Furtherhelp: manbrew brewhome
這是你就可以根據(jù)返回的幫助信息進行下一步操作了,再此就不一一介紹每個命令了。只重點說一下 install和unstall
#安裝FORMULA==需要安裝的工具名稱如:php、mysql、nginx username$brewinstallFORMULA #卸載FORMULA==需要安裝的工具名稱如:php、mysql、nginx username$brewuninstallFORMULA
二、安裝PHP
首先,添加Homebrew官方的幾項軟件源。
brewtaphomebrew/dupes brewtaphomebrew/versions brewtaphomebrew/php
安裝的時候可以根據(jù)需要自己的需要安裝不同版本的PHP環(huán)境,網(wǎng)上大多說安裝的說5.6和5.5.
使用以下命令就可以安裝PHP環(huán)境(php56 => PHP5.6),配置項可以自己制定(--with-debug 可以考慮不要)。
#安裝PHP5.6 brewinstallphp56 --without-snmp --without-apache --with-debug --with-fpm --with-intl --with-homebrew-curl --with-homebrew-libxslt --with-homebrew-openssl --with-imap --with-mysql --with-tidy
在安裝的過程中可能會出現(xiàn)報錯,如下
#出現(xiàn)問題 checkingforZLIBsupport...yes checkingifthelocationofZLIBinstalldirectoryisdefined...no configure:error:Cannotfindlibz
筆者搜索了網(wǎng)上的一些資料,根據(jù)https://github.com/Homebrew/homebrew-php/issues/2549上介紹的解決方法,執(zhí)行一條命令就可以解決這個報錯
xcode-select--install
除了這個報錯之外,還會遇到跟中權(quán)限問題,主要是文件夾沒有寫入權(quán)限,根據(jù)提示的文件夾,逐一進行修改即可。
建議使用b "rew doctor" 命令進行錯誤檢查,它會返回一些很有價值的問題信息,并有解決問題的提示。
MAC都會自動帶有PHP和Apache環(huán)境,因此我們要添加環(huán)境變量,優(yōu)先執(zhí)行我們使用brew安裝的PHP環(huán)境。
#增加環(huán)境變量 username$echo\'exportPATH="/usr/local/bin:/usr/local/sbib:$PATH"\'>>~/.bash_profile username$source~/.bash_profile
在安裝PHP5.6環(huán)境后(如果幸運的你能順利的來到這一步),就要繼續(xù)安裝PHP的擴展了,可以直接安裝擴展,無需重新編譯PHP,我們可以通過
#使用brew查找PHP username$brewsearchphp56
此命令可以幫助我們查看當前PHP5.6環(huán)境下有哪些擴展可以安裝,這樣我們就可以自主選擇擴展進行安裝。下面是我安裝的擴展。
#安裝PHP擴展 username$brewinstallphp56-gearmanphp56-msgpackphp56-memcachephp56-memcachedphp56-mongophp56-phalconphp56-redisphp56-xdebug
在這個過程之中,可能會遇到一個錯誤如下,導致redis安裝失敗
Error:Nosuchfileordirectory-/usr/local/opt/igbinary/include/igbinary.h
解決方法是取網(wǎng)上下載igbinary-1.1.1.tar
#進入到igbinary-1.1.1.tar所在目錄 username$tarzxvfigbinary-1.1.1.tar username$cdigbinary-1.1.1 username$/usr/local/Cellar/php56/5.6.17/bin/phpize username$./configure--with-php-config=/usr/local/Cellar/php56/5.6.17/bin/php-config username$make username$makeinstall username$vim/usr/local/etc/php/php.ini 加上: extensions=igbinary.so
在igbinary-1.1.1文件夾里面會有igbinary.h這個文件,將文件放到錯誤提示中的目錄下即可解決,然后重新安裝沒有安裝完成的擴展。
注意,擴展安裝了,那對應(yīng)的軟件也要安裝,同樣是實用brew命令進行安裝。然后使用PHP命令查看一下PHP是否安裝成功,它會返回PHP的版本和安裝的擴展等信息。
#查看PHP信息 username$php-v
接下來修改php-fpm配置文件,vim /usr/local/etc/php/5.6/php-fpm.conf,找到pid相關(guān)大概在25行,去掉注釋pid = run/php-fpm.pid, 那么php-fpm的pid文件就會自動產(chǎn)生在/usr/local/var/run/php-fpm.pid,下面要安裝的Nginx pid文件也放在這里。
我們還可以使用php-fpm命令來測試。
#測試php-fpm配置 username$php-fpm-t
啟動關(guān)閉重啟php-fpm
#啟動 username$php-fpm-D #關(guān)閉 username$kill-INT`cat/usr/local/var/run/php-fpm.pid` #重啟 username$php-fpmkill-USR2`cat/usr/local/var/run/php-fpm.pid`
啟動php-fpm之后,確保它正常運行監(jiān)聽9000端口
username$lsof-Pni4|grepLISTEN|grepphp php-fpm30907calvin9uIPv40xf11f9e8e8033a2a70t0TCP127.0.0.1:9000(LISTEN) php-fpm30917calvin0uIPv40xf11f9e8e8033a2a70t0TCP127.0.0.1:9000(LISTEN) php-fpm30918calvin0uIPv40xf11f9e8e8033a2a70t0TCP127.0.0.1:9000(LISTEN) php-fpm30919calvin0uIPv40xf11f9e8e8033a2a70t0TCP127.0.0.1:9000(LISTEN) #正常情況,會看到上面這些進程
為了使用方便,將php-fpm設(shè)為開機自啟動。
username$ln-sfv/usr/local/opt/php56/*.plist~/Library/LaunchAgents launchctlload~/Library/LaunchAgents/homebrew.mxcl.php56.plist
經(jīng)過一番周折應(yīng)該可以順利的完成PHP環(huán)境的安裝與配置了,如果你在安裝的過程中出現(xiàn)了其他問題,請耐心的在網(wǎng)上進行搜索,此文也許只能解決你一部分的問題,good luck!
三、安裝Nginx
在經(jīng)歷了安裝PHP環(huán)境的曲折之后,還沒有得到很好的休息,我們又來安裝Nginx,說起Nginx還是有有必要多說幾句的,一般情況下有些人會使用Mac自帶的Apahce,這樣就不需要安裝Nginx了,但為了更好的開發(fā)環(huán)境還是建議去安裝一下Nginx,有益無害。
同樣,我們還說使用brew命令來安裝Nginx,命令如下
username$brewinstallnginx
這個安裝過程相當順暢一些,也許還是會出現(xiàn)文件夾權(quán)限寫入問題,逐一進行排查就能夠解決。不要忘記使用 "brew doctor" 去檢查是否有錯誤或警告產(chǎn)生在安裝的過程中。
安裝完成后去檢查Nginx
#測試配置是否有語法錯誤 username$nginx-t nginx:theconfigurationfile/usr/local/etc/nginx/nginx.confsyntaxisok nginx:configurationfile/usr/local/etc/nginx/nginx.conftestissuccessful
常用的Nginx命令
#打開nginx username$sudonginx #重新加載配置|重啟|停止|退出nginx username$nginx-sreload|reopen|stop|quit
Nginx默認監(jiān)聽的端口說8080,而不是通常認為的80,所以要使用root執(zhí)行權(quán)限讓Nginx去監(jiān)聽80端口
#將Nginx的端口由8080改為80,1.8.1是我安裝的版本,可以根據(jù)安裝情況去替換 username$sudochownroot:wheel/usr/local/Cellar/nginx/1.8.1/bin/nginx username$sudochmodu+s/usr/local/Cellar/nginx/1.8.1/bin/nginx
將Nginx設(shè)為開機自啟
#開機自啟 user$ln-sfv/usr/local/opt/nginx/*.plist~/Library/LaunchAgents launchctlload~/Library/LaunchAgents/homebrew.mxcl.nginx.plist
到此Nginx安裝完成。
四、Nginx+PHP-FPM配置
單單是安裝完成Nginx和PHP是不夠的,需要將兩者結(jié)合起來才能滿足我們的常規(guī)開發(fā)模式。
創(chuàng)建需要用到的目錄,注意要有權(quán)限才可以執(zhí)行命令。
#創(chuàng)建目錄 username$mkdir-p/usr/local/var/logs/nginx username$mkdir-p/usr/local/etc/nginx/sites-available username$mkdir-p/usr/local/etc/nginx/sites-enabled username$mkdir-p/usr/local/etc/nginx/conf.d username$mkdir-p/usr/local/etc/nginx/ssl username$sudomkdir-p/var/www username$sudochown:staff/var/www username$sudochmod775/var/www
接下來配置nginx.conf
#打開配置文件進入編輯狀態(tài) username$vim/usr/local/etc/nginx/nginx.conf
輸入以下內(nèi)容并保存
worker_processes1; error_log/usr/local/var/logs/nginx/error.logdebug; pid/usr/local/var/run/nginx.pid; events{ worker_connections256; } http{ includemime.types; default_typeapplication/octet-stream; log_formatmain\'$remote_addr-$remote_user[$time_local]"$request"\' \'$status$body_bytes_sent"$http_referer"\' \'"$http_user_agent""$http_x_forwarded_for"\'; access_log/usr/local/var/logs/access.logmain; sendfileon; keepalive_timeout65; port_in_redirectoff; include/usr/local/etc/nginx/sites-enabled/*; }
設(shè)置 Nginx php-fpm 配置文件
#編輯配置文件 username$vim/usr/local/etc/nginx/conf.d/php-fpm #proxythephpscriptstophp-fpm location~.php${ try_files$uri=404; fastcgi_pass127.0.0.1:9000; fastcgi_indexindex.php; fastcgi_intercept_errorson; include/usr/local/etc/nginx/fastcgi.conf; }
準備Nginx虛擬主機
#創(chuàng)建info.phpindex.html404.html403.html文件到/var/www下面,如果沒有寫入權(quán)限去調(diào)整一下 username$vi/var/www/info.php username$vi/var/www/index.html username$vi/var/www/403.html username$vi/var/www/404.html
創(chuàng)建默認虛擬主機
#編輯文件 username$vim/usr/local/etc/nginx/sites-available/default #輸入以下內(nèi)容 server{ listen80; server_namelocalhost; root/var/www/; access_log/usr/local/var/logs/nginx/default.access.logmain; location/{ indexindex.htmlindex.htmindex.php; autoindexon; include/usr/local/etc/nginx/conf.d/php-fpm; } location=/info{ allow127.0.0.1; denyall; rewrite(.*)/.info.php; } error_page404/404.html; error_page403/403.html; }
創(chuàng)建虛擬主機軟連接并開啟虛擬主機
username$ln-sfv/usr/local/etc/nginx/sites-available/default/usr/local/etc/nginx/sites-enabled/default
這時我們就可以在瀏覽器中訪問我們localhost,去訪問我們的主頁了(當然,你要事先在index.html/index.php 編輯好內(nèi)容,才能在localhost中顯示出來)。
到此,我們就將Nginx和PHP配置完成,如果發(fā)現(xiàn)localhost不能被訪問到的話,可以試一下localhost:8080,如果可以輸出的話,那么就說明你的80端口沒有開放給Nginx。
四、安裝MySQL
在整個安裝的過程中,個人感覺MySQL比起上面兩個環(huán)境在安裝的過程中出現(xiàn)問題的概率更大一些。我選擇的是5.6版本,由于默認的版本的5.7,但是在安裝和配置的過程中出現(xiàn)了一些問題沒有成功的解決,所以就選擇了低一點的版本。
#mysql56表示5.6版本,可以選擇其他版本進行安裝 username$brewinstallmysql56
整個過程還是比較順利的,但是不要高興的太早,如果你用mysql命令的時候,它就會報錯,如果沒有報錯那么恭喜你,下面的內(nèi)容就可以跳過了并且可以放心去使用mysql了。
#執(zhí)行mysql命令后的錯誤提示 username$mysql-uroot-p(初始密碼為空,建議修改) ERROR2002(HY000):CannotconnecttolocalMySQLserverthroughsocket\'/tmp/mysql.sock\'(2)
出現(xiàn)這個錯誤的原因是mysql服務(wù)沒有啟動。
#開始解決上一步出現(xiàn)的錯誤 username$unsetTMPDIR #然后進入mysql的安裝目錄 username$cd/usr/local/Cellar/mysql56/5.6.27/ #執(zhí)行 username$mysql_install_db--verbose--user=`whoami`--basedir="$(brew--prefixmysql)"--datadir=/usr/local/var/mysql--tmpdir=/tmp #檢查問題 username$mysqld--initializespecified #如果出現(xiàn)問題,有可能是目錄不存在,去創(chuàng)建對應(yīng)的目錄即可 #啟動mysql username$mysql.serverstart #進入mysql username$mysql-uroot-p #如果能成功的進入mysql證明mysql已經(jīng)安裝成功了
將mysql設(shè)為開機自啟
username$mkdir-p~/Library/LaunchAgents username$cp/usr/local/Cellar/mysql56/5.6.27/homebrew.mxcl.mysql56.plist~/Library/LaunchAgents/
一切順利的話,到了這里你就已經(jīng)將mysql環(huán)境安裝完成了。
結(jié)束語:安裝過程中可能會出現(xiàn)各種奇葩的問題,只要有足夠的耐心就可以將問題解決,本問僅供參考并不具有權(quán)威性,如果可以解決你所遇到的問題,那么非常榮幸。請不要吝嗇分享好的文章給其他人。
新聞名稱:怎樣在MAC下通過brew安裝LNMP
URL鏈接:http://www.rwnh.cn/article24/cpedje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、品牌網(wǎng)站制作、用戶體驗、App設(shè)計、網(wǎng)站設(shè)計、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)