Mac下搭建PHP環(huán)境-利用系統(tǒng)自帶的

系統(tǒng)環(huán)境:macOS Mojave 10.14

Apache配置

Apache 版本:2.4.34

Apache 的安裝目錄默認(rèn)在系統(tǒng)中是隱藏的馁痴,我們可以通過 open /private/etc/apache2/ 來找到它
/etc 存放的大多是系統(tǒng)配置文件如 :php.ini 、php-fpm.conf 等諸如此類的

找到 Apache 的存放路徑也就不難找到它的配置文件 httpd.conf 及系統(tǒng)的 web 資源目錄了
我們需要做以下的修改操作以使 apache 可以正確的支持 php:
進(jìn)入文件故河,全文檢索將下面語句前的注釋打開

vim /etc/apache2/httpd.conf
LoadModule php5_module libexec/apache2/libphp5.so  #加載php模塊  注意你的可能是 php7_module  libphp7.so
LoadModule rewrite_module libexec/apache2/mod_rewrite.so #加載重寫模塊
Include /private/etc/apache2/extra/httpd-vhosts.conf #加載配置虛擬主機(jī)文件

web資源根目錄 DocumentRoot "/Library/WebServer/Documents" 也就是你的項(xiàng)目文件存放根目錄猛铅,此處我們不做改動(dòng),用系統(tǒng)默認(rèn)路徑, 也可用 open 命令來打開找到它

httpd-vhosts.conf 虛擬主機(jī)配置文件修改

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "/Library/WebServer/Documents" # web 資源目錄
    ServerName www.xxx.com 
    ErrorLog "/private/var/log/apache2/dummy-host2.example.com-error_log"
    CustomLog "/private/var/log/apache2/dummy-host2.example.com-access_log" common
    <Directory /Library/WebServer/Documents/> #需與 web 資源目錄路徑保持一致
                Options Indexes FollowSymLinks MultiViews
                #AllowOverride None 
                AllowOverride all #將 None 修改為 all
                Order deny,allow
                Allow from all
    </Directory>
</VirtualHost>

重啟 apache 使配置生效

虛擬主機(jī)域名配置文件 sudo vim /etc/hosts

然后我們來看一些基本的 apache 啟動(dòng)停止命令

sudo apachectl start/restart
sudo apachectl stop
sudo apachectl -v

啟動(dòng)后在瀏覽器中輸入 localhost 或者 127.0.0.1如果看到 “It works!” 那就表示 apache 啟動(dòng)成功了;
這里我們用的還是系統(tǒng)默認(rèn)端口 80 未做更改竭钝,如有需要的話也可以輸入 Listen 80 語句全文檢索,注意更改成功后記得重啟 apache

Apache的配置到這就告一段落了雹洗,接下來我們看下 PHP 的具體配置


PHP配置

PHP 版本:7.1.19

php的默認(rèn)安裝目錄是在 /usr/bin 像我們經(jīng)常執(zhí)行的一些 phpize香罐、./configure 等操作都是在這下面的

php 的配置文件存放路徑我們前面也簡單提到了下,同樣我們可以通過 open /private/etc/php.ini 迅速地快速地找到它

怎么樣时肿,有木有很棒棒

extension_dir='/usr/lib/php/extensions/no-debug-non-zts-20160303' 這個(gè)文件夾路徑主要是用來存放一些 php 的擴(kuò)展包如 redis.so 等

最后我們可以通過 php -m 來查看已經(jīng)安裝的一些模塊

至此庇茫,我們就華麗麗的配置好了系統(tǒng)自帶的 apache+php 環(huán)境了。


Nginx配置

Nginx 版本:1.15.1

我們可以通過上一篇文章提到的 caskbrew 可視化工具或者 brew install nginx 語句來下載安裝 Nginx

Nginx 配置文件默認(rèn)存放路徑 /usr/local/etc/nginx/nginx.conf
Nginx 默認(rèn)的 web 資源目錄 /usr/local/var/www

安裝完成后我們在瀏覽器輸入 localhost 如果看到一個(gè)歡迎界面那就表示安裝成功了螃成,接下來我們還需要做一些簡單的配置以使支持 php

sudo cp /private/etc/php-fpm.conf.default  /private/etc/php-fpm.conf
vim  /private/etc/php-fpm.conf
error_log = /usr/local/var/log/php-fpm.log  # 將32行的 error_log替換為這條語句

上述中的第三步操作是為了解決旦签、防止 php-fpm 啟動(dòng)時(shí)會報(bào)錯(cuò):
ERROR: failed to open error_log (/usr/var/log/php-fpm.log): No such file or directory (2)

修改 nginx 的配置文件:
1、找到 server 的 location 配置寸宏,給 index 加一個(gè) index.php
2宁炫、并打開 server 下被注釋的 location ~.php$(即刪除代碼前面的 ‘#’)
3、并修改 fastcgi_param 參數(shù)

vim  /usr/local/etc/nginx/nginx.conf

location / {
    root   html;
    index  index.html index.htm index.php; #在此處新增  index.php
}

#將下列代碼塊前的注釋刪除
location ~ \.php$ {
    root           html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name; #注釋掉原始語句
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name; #修改后的內(nèi)容
    include        fastcgi_params;
}

nginx 虛擬主機(jī)文件配置:
1氮凝、在 servers 目錄下建立以虛擬主機(jī)域名為名稱的文件如:xxx.com.conf
2羔巢、并鍵入如下內(nèi)容

server {
       listen       8088; # nginx默認(rèn)端口為80為避免與 apache 沖突 此處修改為8088
       server_name  www.xxx.com;

       #error_log  /var/log/xxx.error.log;
       location / {
           root   /Library/WebServer/Documents/YourProject;  #此處需替換為你自己的 web 資源目錄
           index  index.html index.htm index.php;
           try_files $uri $uri/ /index.php?$query_string;
       }
       location ~ \.php$ {
           root           /Library/WebServer/Documents/YourProject; #與上一處保持一致
           fastcgi_pass   127.0.0.1:9000;
           fastcgi_index  index.php;
           fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
           include        fastcgi_params;
       }
   }

nginx 一些基本的命令:

sudo lsof -i:8088   #查看端口是否被占用
nginx -t   #檢測nginx配置文件是否正常
sudo nginx   #啟動(dòng)nginx
sudo nginx -s reload  #熱啟動(dòng)nginx
sudo nginx -s stop  #停止nginx服務(wù)
sudo php-fpm  #啟動(dòng)php-fpm

Nginx 啟動(dòng)報(bào)錯(cuò)
nginx: [error] open() "/usr/local/var/run/nginx.pid" failed (2: No such file or directory)
解決方法:
運(yùn)行 nginx -c /usr/local/etc/nginx/nginx.conf 命令 (此處的 nginx.conf 路徑需替換成你自己的)
再運(yùn)行 nginx -s reload 就可以了
參考文章:https://blog.csdn.net/wn1245343496/article/details/77974756


Mysql配置

mysql 可以到官網(wǎng)下載安裝,這有一份詳盡的安裝說明 傳送門 Mac 安裝 mysql

查看 mysql 安裝位置 which mysql

mysql默認(rèn)的用戶名是 root覆醇,端口是3306, 默認(rèn)是沒有密碼的
Admin 無權(quán)限朵纷,所以要用 sudo mysql 登陸

Mysql啟動(dòng)異常
"ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)"
解決方法:
MySQL是把 mysql.sock 文件放在/tmp目錄下,而 Mac OS 卻去了/var/mysql目錄下尋找對應(yīng)的 mysql.sock 文件永脓;我們可以通過修改配置文件或建立軟連接方式來解決
sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock
然后重啟 mysql 服務(wù)
傳送門1-解決方法
傳送門2-具體問題分析

Mysql 基本命令

mysql -u root -p
mysql.server start/restart
mysql.server stop
mysql.server status

最后再附上一些參考文章:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末威创,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子谎懦,更是在濱河造成了極大的恐慌肚豺,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,188評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件界拦,死亡現(xiàn)場離奇詭異吸申,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)享甸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評論 3 395
  • 文/潘曉璐 我一進(jìn)店門截碴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蛉威,你說我怎么就攤上這事日丹。” “怎么了蚯嫌?”我有些...
    開封第一講書人閱讀 165,562評論 0 356
  • 文/不壞的土叔 我叫張陵哲虾,是天一觀的道長。 經(jīng)常有香客問我择示,道長束凑,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,893評論 1 295
  • 正文 為了忘掉前任栅盲,我火速辦了婚禮湘今,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘剪菱。我一直安慰自己,他們只是感情好拴签,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評論 6 392
  • 文/花漫 我一把揭開白布孝常。 她就那樣靜靜地躺著,像睡著了一般蚓哩。 火紅的嫁衣襯著肌膚如雪构灸。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,708評論 1 305
  • 那天岸梨,我揣著相機(jī)與錄音喜颁,去河邊找鬼。 笑死曹阔,一個(gè)胖子當(dāng)著我的面吹牛半开,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播赃份,決...
    沈念sama閱讀 40,430評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼寂拆,長吁一口氣:“原來是場噩夢啊……” “哼奢米!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起纠永,我...
    開封第一講書人閱讀 39,342評論 0 276
  • 序言:老撾萬榮一對情侶失蹤鬓长,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后尝江,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體涉波,經(jīng)...
    沈念sama閱讀 45,801評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評論 3 337
  • 正文 我和宋清朗相戀三年炭序,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了啤覆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,115評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡少态,死狀恐怖城侧,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情彼妻,我是刑警寧澤嫌佑,帶...
    沈念sama閱讀 35,804評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站侨歉,受9級特大地震影響屋摇,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜幽邓,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評論 3 331
  • 文/蒙蒙 一炮温、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧牵舵,春花似錦柒啤、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至没炒,卻和暖如春涛癌,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背送火。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評論 1 272
  • 我被黑心中介騙來泰國打工拳话, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人种吸。 一個(gè)月前我還...
    沈念sama閱讀 48,365評論 3 373
  • 正文 我出身青樓弃衍,卻偏偏與公主長得像,于是被迫代替她去往敵國和親坚俗。 傳聞我的和親對象是個(gè)殘疾皇子笨鸡,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評論 2 355