MAMP 下安裝Swoole拓展

最近想學(xué)習(xí)swoole框架,在某些的安裝部分遇到一些了小坑汹想。在此記錄一下,希望幫助到大家撤蚊。
由于機(jī)子本身自帶的php版本過低,我是用Mamp集成環(huán)境開發(fā)的损话。PHP版本用的是5.6.10侦啸。命令行輸入which php時(shí),系統(tǒng)會(huì)顯示 系統(tǒng)自帶的php丧枪。這個(gè)時(shí)候你需要先把默認(rèn)的php修改為MAMP環(huán)境中的php 版本光涂。詳細(xì)操作可以點(diǎn)這里:把mac上的默認(rèn)php修改為MAMP等擴(kuò)展環(huán)境中的php 版本 。Swoole有兩種的安裝方式:一種是通過pecl方式一鍵安裝拧烦,這種最簡(jiǎn)單忘闻;另一種是編譯安裝。

Pecl安裝

MAMP自帶了各個(gè)版本的PHP環(huán)境恋博,目錄在/Applications/MAMP/bin/php齐佳。我用的是5.6.10版本,對(duì)應(yīng)的目錄是/Applications/MAMP/bin/php/php5.6.10债沮,如果使用Pecl炼吴,對(duì)應(yīng)的命令為:pecl install swoole 沒有權(quán)限的話就加上sudo 。如果你還沒安裝PECL的話疫衩,可以看這里mac上安裝pecl硅蹦。
接下來是我在用pecl安裝過程中遇到的一些問題:

1. autoconf 不存在
    running: phpize
            grep: /Applications/MAMP/bin/php/php5.6.10/include/php/main/php.h: No such file or directory
            grep:     /Applications/MAMP/bin/php/php5.6.10/include/php/Zend/zend_modules.h: No such file or directory
            grep: /Applications/MAMP/bin/php/php5.6.10/include/php/Zend/zend_extensions.h:         No such file or directory
            Configuring for:
            PHP Api Version:
            Zend Module Api No:
            Zend Extension Api No:
            Cannot find autoconf. Please check your autoconf installation and the
            $PHP_AUTOCONF environment variable. Then, rerun this script.
            ERROR: `phpize’ failed

由于我安裝了homebrew , 所以直接 brew install autoconf 就成功的解決了這個(gè)問題闷煤。

2. 找不到 php.h 等頭文件

然后再輸入命令進(jìn)行安裝童芹,出現(xiàn)了下面的情況:

  cc -I. -I/private/tmp/pear/install/swoole -DPHP_ATOM_INC -  
 I/private/tmp/pear/install/pear-build-rootapqmWw/swoole-1.9.8/include -
 I/private/tmp/pear/install/pear-build-rootapqmWw/swoole-1.9.8/main -
 I/private/tmp/pear/install/swoole -
 I/Applications/MAMP/bin/php/php5.6.10/include/php -
 I/Applications/MAMP/bin/php/php5.6.10/include/php/main -
 I/Applications/MAMP/bin/php/php5.6.10/include/php/TSRM -
 I/Applications/MAMP/bin/php/php5.6.10/include/php/Zend -
 I/Applications/MAMP/bin/php/php5.6.10/include/php/ext -
 I/Applications/MAMP/bin/php/php5.6.10/include/php/ext/date/lib -
 I/private/tmp/pear/install/swoole -I/private/tmp/pear/install/swoole/include -
 DHAVE_CONFIG_H -Wall -pthread -g -O2 -fno-strict-aliasing -std=gnu89 -c 
 /private/tmp/pear/install/swoole/swoole.c  -fno-common -DPIC -o 
 .libs/swoole.o
 In file included from /private/tmp/pear/install/swoole/swoole.c:16:
 /private/tmp/pear/install/swoole/php_swoole.h:22:10: fatal error: 'php.h' file 
 not found
 #include "php.h"
     ^
1 error generated.
make: *** [swoole.lo] Error 1
ERROR: `make’ failed

這個(gè)問題是由于 PECL 沒有在當(dāng)前MAMP的php版本目錄中的include目前下找到對(duì)應(yīng)的php頭文件。解決這個(gè)問題的前提是安裝了XCode鲤拿,Xcode的SDK里面包含了PHP的相關(guān)頭文件假褪,所以可以進(jìn)入到php5.6.10目錄下,創(chuàng)建一個(gè)軟鏈接皆愉,指向Xcode的PHP SDK嗜价。

 cd /Applications/MAMP/bin/php/php5.6.10`
 ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.3.sdk/usr/include/ include

注意MacOSX(版本號(hào)).sdk修改為自己系統(tǒng)的版本號(hào)

3. 權(quán)限問題

可能你輸入ln -s那段命令后艇抠,會(huì)出去 /usr/include: Operation not permitted。 這是mac更新后久锥,是El Capitan 加入了Rootless機(jī)制家淤,不再能夠隨心所欲的讀寫很多路徑下了。設(shè)置 root 權(quán)限也不行瑟由。

Rootless機(jī)制將成為對(duì)抗惡意程序的最后防線

于是嘗試關(guān)閉 Rootless絮重。重啟之后按住 Command+R,直到看見??的logo和進(jìn)度條歹苦,就是進(jìn)入恢復(fù)模式青伤,打開窗口上面的終端,輸入csrutil disable殴瘦。重啟即可狠角。如果要恢復(fù)默認(rèn),那么 輸入csrutil enable蚪腋。
重啟完畢后丰歌,再在目錄下嘗試pecl install swoole。終于輸出以下的東西了屉凯!

  Build process completed successfully
  Installing '/Applications/MAMP/bin/php/php5.6.10/lib/php/extensions/no-
  debug-non-zts-20131226/swoole.so'
  install ok: channel://pecl.php.net/swoole-1.9.8
  configuration option "php_ini" is not set to php.ini location
  You should add "extension=swoole.so" to php.ini

好大一個(gè)successfully傲⑻!悠砚,然后看到You should add "extension=swoole.so" to php.ini晓勇。我們?cè)谳斎朊?code>php -ini 找到php.ini文件的目錄,我的是在 /Appliacations/MAMP/bin/php/php5.6.10/conf/php.ini 然后添加一行 extension=swoole.so OK啦灌旧!
我們?cè)僭囈幌螺斎?code>php -m 绑咱,可以看到

WX20170407-174700@2x.png

編譯安裝大家可以看下官網(wǎng)

(__) 嘻嘻……點(diǎn)我跳轉(zhuǎn)!

測(cè)試

下面測(cè)試下我們剛剛安裝的Swoole节榜。
直接引用官網(wǎng)的例子吧羡玛。
新建一個(gè)swoole_demo.php

 {
  <?php
  $http = new swoole_http_server("0.0.0.0", 9502);
  $http->on('request', function ($request, $response) {
  var_dump($request->get, $request->post);
  $response->header("Content-Type", "text/html; charset=utf-8");
  $response->end("<h1>Hello Swoole. #".rand(1000, 9999)."</h1>");
      });
    $http->start();
 }

在命令行下運(yùn)行:
php swpple_demo.php
在瀏覽器中輸入http://localhost:9502/?hello=swoole,就可以看到結(jié)果啦宗苍!大功告成<诟濉!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末讳窟,一起剝皮案震驚了整個(gè)濱河市让歼,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌丽啡,老刑警劉巖谋右,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異补箍,居然都是意外死亡改执,警方通過查閱死者的電腦和手機(jī)啸蜜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來辈挂,“玉大人衬横,你說我怎么就攤上這事≈盏伲” “怎么了蜂林?”我有些...
    開封第一講書人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)拇泣。 經(jīng)常有香客問我噪叙,道長(zhǎng),這世上最難降的妖魔是什么霉翔? 我笑而不...
    開封第一講書人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任睁蕾,我火速辦了婚禮,結(jié)果婚禮上早龟,老公的妹妹穿的比我還像新娘惫霸。我一直安慰自己,他們只是感情好葱弟,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著猜丹,像睡著了一般芝加。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上射窒,一...
    開封第一講書人閱讀 51,688評(píng)論 1 305
  • 那天藏杖,我揣著相機(jī)與錄音,去河邊找鬼脉顿。 笑死蝌麸,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的艾疟。 我是一名探鬼主播来吩,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼蔽莱!你這毒婦竟也來了弟疆?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤盗冷,失蹤者是張志新(化名)和其女友劉穎怠苔,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體仪糖,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡柑司,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年迫肖,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片攒驰。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蟆湖,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出讼育,到底是詐尸還是另有隱情帐姻,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布奶段,位于F島的核電站饥瓷,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏痹籍。R本人自食惡果不足惜呢铆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蹲缠。 院中可真熱鬧棺克,春花似錦、人聲如沸线定。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽斤讥。三九已至纱皆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間芭商,已是汗流浹背派草。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留铛楣,地道東北人近迁。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像簸州,于是被迫代替她去往敵國和親鉴竭。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

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