mac配置php7運行環(huán)境

不用mac自帶的apache和php,安裝自己想要的版本羹唠。配置過程一直采坑惫皱,需要有閑時間和好的心理素質(zhì)才行叙量,哈哈产镐,因為網(wǎng)上很教程都有紕漏之處隘庄,所以先把采坑無數(shù)后發(fā)現(xiàn)的個人認為最好的一個教程鏈接放在這里https://github.com/nodejh/nodejh.github.io/issues/25下面記錄我的采坑過程。

安裝mysql

官網(wǎng)https://www.mysql.com/downloads/下載mysql癣亚,有問題百度丑掺。下載后安裝,安裝過程中會有一個臨時密碼的提示述雾,要注意保存一下街州,后面會用到。安裝完畢進入系統(tǒng)偏好設(shè)置在最下面找到mysql圖標并打開玻孟,點擊Start MySQL Server啟動mysql唆缴。命令行cd到/usr/local/mysql/bin,分別執(zhí)行alias mysql=/usr/local/mysql/bin/mysqlalias mysqladmin=/usr/local/mysql/bin/mysqladmin,這兩條命令是為了方便直接打開 iTerm 就可以運行mysql命令黍翎,而不是必須進入mysql安裝目錄才能運行面徽。接下來,重置密碼匣掸。執(zhí)行命令mysqladmin -u root -p password ******是你的新密碼趟紊。回車后提示輸入密碼旺聚,此時數(shù)次剛剛保存的臨時密碼织阳,我的是)6m1d/m<joVi。
此時提示mysqladmin: [Warning] Using a password on the command line interface can be insecure.Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.說明已經(jīng)重置密碼成功砰粹。我在這里浪費了很多時間,以為這是錯誤提示造挽,其實已經(jīng)ok了碱璃。
登錄mysql。命令mysql -u root -p,然后輸入剛剛重置的密碼饭入。然后登錄成功會跳出提示信息

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1032
Server version: 5.7.19 MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

大意是說sql命令以;結(jié)尾嵌器,當前mysql版本是5.7.19。另外我們也可以通過sql命令select version();來查看版本谐丢。用exit;退出登錄爽航。安裝完畢蚓让。

apache使用mac自帶的

(開始的時候想用mac自帶apache來著,后來和配置php7時候各種問題讥珍,放棄了使用mac自帶apache)
基本用法的命令如下:
apachectl -v查看版本历极,提示Server version: Apache/2.4.25 (Unix)
sudo apachectl start啟動
sudo spachectl stop停止
sudo apachectl restart重啟
相關(guān)目錄:
apache日志/private/var/log/apache2/error_log
apache配置主文件/etc/apache2/httpd.conf
apache的vhost配置/etc/apache2/extra/httpd-vhost.conf

安裝php7.0

參考博客http://www.cnblogs.com/redirect/p/6131751.html
添加brew的php擴展庫(mac上沒有php的包,需要綁定其他人的git倉庫,命令brew tap github_user/repo),執(zhí)行如下命令

brew update
brew tap homebrew/dupes
brew tap homebrew/php

可以使用brew options php70來查看安裝php的選項衷佃。注意如果使用apache作為web server趟卸,安裝php命令要加--with-apache選項,如果使用nginx作為web server氏义,安裝php命令要加--with-fpm選項锄列,我的安裝命令和選項brew install php70 --with-apache --width-apxs2 --with-gmp --with-imap --with-tidy --with-debug,然后我按照教程http://www.cnblogs.com/redirect/p/6131751.html上執(zhí)行brew link php70開啟php7.0的進程,但是查看php -v提示版本還是php5.6惯悠,執(zhí)行brew unlink php56來關(guān)閉php5.6的進程但是報錯提示Error: No such keg: /usr/local/Cellar/php56,反復試了很多次耽誤了時間邻邮,然后我查其他資料,執(zhí)行brew install php-version安裝了php-version來切換php版本克婶,php-version是一個幫助管理從brew安裝的php版本切換的工具筒严。安裝完執(zhí)行php-veision 7.0.22切換版本,然后php -v版本果然切換到php7.0.22了鸠补。
下面開始修改apache配置文件萝风。又遇見很耗時的一個坑。
按照上面的教程紫岩,打開apache配置文件sudo vi /etc/apache2/httpd.conf,不加sudo權(quán)限不夠沒辦法修改规惰,注釋(前面加#)掉LoadModule php5_module libexec/apache2/libphp5.soInclude /private/etc/apache2/other/*.conf兩句,然后加上LoadModule php7_module /usr/local/opt/php70/libexec/apache2/libphp7.so這句泉蝌,注意歇万,libphp7.so的地址是對應自己電腦文件所在的地址,于是我去檢查下我的libphp7.so文件是不是上面命令中的地址勋陪。結(jié)果發(fā)現(xiàn)/usr/local/opt/php70/下并沒有libphp7目錄贪磺,搞了半天不知道怎么整,于是brew uninstall php7.0.22卸載php7.0诅愚,卸載后/usr/local/opt/下面沒有了php70文件夾寒锚,然后重新安裝php7.0,并且又加了一個選項--httpd24,因為看其他教程里有加违孝。brew install php70 --with-apxs2 --with-apache --with-gmp --with-imap --with-tidy --with-debug --with-httpd24刹前,然后會提示如下

./configure --prefix=/usr/local/Cellar/php70/7.0.22_14 --localstatedir=/usr/local/var --sysconfdir=/usr/local/etc/php/7.0 --with-config-file-path=/usr/local/etc/php/7.0 --with-config-file-scan-dir=/us
Last 15 lines from /Users/yanhaoqi/Library/Logs/Homebrew/php70/01.configure:
checking for Kerberos support... /usr
checking whether to use system default cipher list instead of hardcoded value... no
checking for krb5-config... /usr/bin/krb5-config
checking for RAND_egd... no
checking for pkg-config... no
checking for OpenSSL version... >= 0.9.8
checking for CRYPTO_free in -lcrypto... yes
checking for SSL_CTX_set_ssl_version in -lssl... yes
checking for PCRE library to use... bundled
checking whether to enable PCRE JIT functionality... yes
checking whether to enable the SQLite3 extension... yes
checking bundled sqlite3 library... yes
checking for ZLIB support... yes
checking if the location of ZLIB install directory is defined... no
configure: error: Cannot find libz

其實前面最開始安裝php7的時候記得也有這個提示,當時也沒有在意雌桑。這時候執(zhí)行php -v提示版本是php5.6喇喉,執(zhí)行php-version提示Sorry, but you do not seem to have any PHP versions installed.,折騰半天后來查到資料,需要執(zhí)行xcode-select --install,然后按照提示去安裝校坑,安裝完畢后再重新裝php7.0,brew install php70 --with-apxs2 --with-apache --with-gmp --with-imap --with-tidy --with-debug --with-httpd24,這次沒有提示configure: error: Cannot find libz,然后查看版本是7.0拣技,php-version也提示7.0.22,并且找到了/usr/local/opt/php70/libexec/apache2/libphp7.so文件千诬。
ok,繼續(xù)apache配置文件。
注釋完上面所說的兩句話后膏斤,加上如下配置

LoadModule php7_module /usr/local/opt/php70/libexec/apache2/libphp7.so
 
<FilesMatch .php$>
    SetHandler application/x-httpd-php
</FilesMatch>
 
<IfModule php7_module>
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
    <IfModule dir_module>
        DirectoryIndex index.html index.php
    </IfModule>
</IfModule>

#ServerName www.example.com:80后面加上ServerName localhost:80徐绑,否則下面重啟apache的時候回報錯提示AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using ::1. Set the 'ServerName' directive globally to suppress this message
這是個更大的坑。我卡在這里將近兩天掸绞,各種博客資料查詢各種嘗試泵三。曲折過程已經(jīng)忘記,現(xiàn)在只記錄下結(jié)果衔掸。
我在上面寫apache用mac自帶的烫幕,版本是Apache/2.4.25 (Unix),但是后面經(jīng)過我安裝php7的各種折騰后敞映,記不清在什么時候我通過brew安裝了Apache/2.4.27我想執(zhí)行brew uninstall httpd24卸載掉但是提示Refusing to uninstall /usr/local/Cellar/httpd24/2.4.27 because it is required by php70 7.0.22_14, which is currently installed.较曼,php7引用了Apache/2.4.27。而且振愿,brew安裝的Apache/2.4.27捷犹,配置文件所在目錄/usr/local/etc/apache2/2.4/httpd.conf,其編譯安裝的目錄/usr/local/Cellar/httpd24/2.4.27冕末。oh my god!!!上面修改apache配置弄了這么長時間萍歉,配置的文件根本就不是正確的文件!
apache配置的正確姿勢
執(zhí)行命令使用管理員權(quán)限為通過brew安裝的apache配置為自動啟動档桃。

sudo cp -v  /usr/local/Cellar/httpd24/2.4.27/homebrew.mxcl.httpd24.plist /Library/LaunchDaemons
sudo chown -v root:wheel /Library/LaunchDaemons/homebrew.mxcl.httpd24.plist
sudo chmod -v 644 /Library/LaunchDaemons/homebrew.mxcl.httpd24.plist
sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.httpd24.plist

我的apache編譯安裝路徑是/usr/local/Cellar/httpd24/2.4.27枪孩,如果你的路徑不是這個,自行替換就好了藻肄。
此時瀏覽器訪問localhost將會看到

屏幕快照 2017-09-07 下午4.57.36.png

可以通過ps -aef | grep httpd命令查看apache服務是否啟動蔑舞,如果apache正在運行會看到一些http進程。

sudo vi /usr/local/etc/apache2/2.4/httpd.conf

修改php模塊配置及apache端口

LoadModule php7_module /usr/local/Cellar/php70/7.0.22_14/libexec/apache2/libphp7.so替換為LoadModule php7_module /usr/local/Cellar/php70/7.0.22_14/libexec/apache2/libphp7.so
找到代碼塊

<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>

替換為

<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>

<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

修改ServerName為ServerName localhost:8080
Listen:8080 apache監(jiān)聽了8080端口嘹屯,如果修改的話直接改端口號即可攻询。

修改web服務的根目錄在自己用戶主目錄下方便開發(fā)

找到DocumentRoot "/usr/local/var/www/htdocs"修改為DocumentRoot "/Users/yanhaoqi/sites"
修改下面的<Directory><Directory "/Users/yanhaoqi/sites">
修改AllowOverride NoneAllowOverride All
取消注釋,使用mod_rewrite模塊 LoadModule rewrite_module libexec/mod_rewrite.so

修改用戶和用戶組

修改User和Group如下

User yanhaoqi
Group staff

用戶主目錄下新建sites目錄

cd /Users/yanhaoqi
mkdir sites
sudo vi sites/index.html
sudo vi sites/info.php

在新建的index.html中編輯<h1>yanhaoqi web root</h1>
在新建的info.php中編輯

<?php
    phpinfo();
?>

保存退出后重啟apachesudo apachectl restart
訪問localhost:8080

屏幕快照 2017-09-07 下午5.32.28.png

訪問localhost:8080/info.php

屏幕快照 2017-09-07 下午5.36.30.png

大功告成!幾乎熱淚盈眶V莸堋>堋!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末婆翔,一起剝皮案震驚了整個濱河市桐经,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌浙滤,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件气堕,死亡現(xiàn)場離奇詭異纺腊,居然都是意外死亡畔咧,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門揖膜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來誓沸,“玉大人,你說我怎么就攤上這事壹粟“菟恚” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵趁仙,是天一觀的道長洪添。 經(jīng)常有香客問我,道長雀费,這世上最難降的妖魔是什么干奢? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮盏袄,結(jié)果婚禮上忿峻,老公的妹妹穿的比我還像新娘。我一直安慰自己辕羽,他們只是感情好逛尚,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著刁愿,像睡著了一般绰寞。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上酌毡,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天克握,我揣著相機與錄音,去河邊找鬼枷踏。 笑死菩暗,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的旭蠕。 我是一名探鬼主播停团,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼掏熬!你這毒婦竟也來了佑稠?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤旗芬,失蹤者是張志新(化名)和其女友劉穎舌胶,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體疮丛,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡幔嫂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年辆它,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片履恩。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡锰茉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤押逼,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布另凌,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一著瓶、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧啼县,春花似錦材原、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至子刮,卻和暖如春威酒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背挺峡。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工葵孤, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人橱赠。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓尤仍,卻偏偏與公主長得像,于是被迫代替她去往敵國和親狭姨。 傳聞我的和親對象是個殘疾皇子宰啦,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容