小Q:雄關(guān)漫道真如鐵,而今邁步從頭越。從頭越,蒼山如海,殘陽如血。 ——***
成都創(chuàng)新互聯(lián)主要為客戶提供服務(wù)項(xiàng)目涵蓋了網(wǎng)頁視覺設(shè)計(jì)、VI標(biāo)志設(shè)計(jì)、全網(wǎng)整合營銷推廣、網(wǎng)站程序開發(fā)、HTML5響應(yīng)式網(wǎng)站建設(shè)、手機(jī)網(wǎng)站制作、微商城、網(wǎng)站托管及成都網(wǎng)站維護(hù)公司、WEB系統(tǒng)開發(fā)、域名注冊(cè)、國內(nèi)外服務(wù)器租用、視頻、平面設(shè)計(jì)、SEO優(yōu)化排名。設(shè)計(jì)、前端、后端三個(gè)建站步驟的完善服務(wù)體系。一人跟蹤測(cè)試的建站服務(wù)標(biāo)準(zhǔn)。已經(jīng)為陽光房行業(yè)客戶提供了網(wǎng)站建設(shè)服務(wù)。
目前php最新版本7.0,因?yàn)樾枰?,所以我嘗試安裝了一下,期間也遇到了好多問題,其中一些問題和老的版本差不多,我就不一 一細(xì)說了,有問題的朋友可以給我留言,一塊探討;
-------------------------------------------------------------------------------------------------
第一:安裝完成之后找不到php-fpm.conf配置文件,其實(shí)好多關(guān)于fpm的配置文件都沒有,只是我的水平不高,只能意識(shí)到php-fpm.conf;當(dāng)時(shí)我沒注意直接在解壓的源碼包里復(fù)制了一個(gè)大致類似的www.conf作為主配置文件,拷貝了一個(gè)啟動(dòng)文件,稍微配置了一下倒也是能啟動(dòng)成功,沒什么大問題。
直到我在給php加擴(kuò)展模塊的時(shí)候出現(xiàn)了make編譯時(shí)一直提示少目錄文件報(bào)錯(cuò)的問題;
【我在想是不是/usr/local/php/bin/phpizen生成./configure時(shí)也會(huì)生成一些make時(shí)需要的目錄文件,如果是這樣那么我的錯(cuò)就出在php安裝的過程,是不是因?yàn)榫幾gphp時(shí)漏掉了一些選項(xiàng)而導(dǎo)致phpize“生成”的不完全(其實(shí)我也感覺不是這的問題,不過不試試怎么知道呢),網(wǎng)上說也許是--enable-fpm的作用是開啟php的fastcgi功能即開啟php-fpm功能】
于是我又到了解壓php的目錄下,再次./configure --enable-fpm >> make >> make install;
完成之后意外的發(fā)現(xiàn)有了php-fpm.conf等文件,但是再次編譯模塊還是不成功,但也不是無功而返。
第二:(這是重點(diǎn)要說的)
一般下載php模塊去PECL,里邊的模塊都是可用的,都沒問題;
于是我下載好之后,開始編譯,首先用phpizen生成configure文件,然后./confoigure先預(yù)編譯一下,很成功沒什么問題;
之后make
[root@bogon memcache-3.0.8]# make /bin/sh /usr/local/src/memcache-3.0.8/libtool --mode=compile cc -I/usr/local/include/php -I. -I/usr/local/src/memcache-3.0.8 -DPHP_ATOM_INC -I/usr/local/src/memcache-3.0.8/include -I/usr/local/src/memcache-3.0.8/main -I/usr/local/src/memcache-3.0.8 -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /usr/local/src/memcache-3.0.8/memcache.c -o memcache.lo mkdir .libs cc -I/usr/local/include/php -I. -I/usr/local/src/memcache-3.0.8 -DPHP_ATOM_INC -I/usr/local/src/memcache-3.0.8/include -I/usr/local/src/memcache-3.0.8/main -I/usr/local/src/memcache-3.0.8 -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /usr/local/src/memcache-3.0.8/memcache.c -fPIC -DPIC -o .libs/memcache.o In file included from /usr/local/src/memcache-3.0.8/php_memcache.h:34:0, from /usr/local/src/memcache-3.0.8/memcache.c:30: /usr/local/src/memcache-3.0.8/memcache_pool.h:45:47: 致命錯(cuò)誤:ext/standard/php_smart_str_public.h:沒有那個(gè)文件或目錄 #include "ext/standard/php_smart_str_public.h" ^ 編譯中斷。 make: *** [memcache.lo] 錯(cuò)誤 1
出現(xiàn)這種錯(cuò)誤,缺少這個(gè)文件,剛開始沒多想,去網(wǎng)上找了一個(gè)這個(gè)文件的模板,添加了進(jìn)來,
之后再make出現(xiàn)這種情況
這就游戲有些棘手了,因?yàn)椴豢赡芤粋€(gè)文件一個(gè)文件去改配置啊,所以錯(cuò)誤不是在這;
在此之前我用低版本的L N M P編譯過memcache,一樣的源碼包,很正常,于是我又開了一個(gè)低版本的php測(cè)試,其他的配置都同高版本一樣(只有系統(tǒng)版本和php版本不一樣),memcache包也用的相同的;每一把都很正常的就ok了;
于是版本出的問題占百分之八十了。
我用make出的錯(cuò)誤,去比較兩個(gè)模塊內(nèi)的文件
左邊是正常版本,右邊是最新版本php的文件列表,很清楚地知道m(xù)ake調(diào)用的php_smart_str_public.h跟老版本中的文件對(duì)應(yīng),而新版本中也有這個(gè)文件,只不過名字變了,所以找不到;
當(dāng)我把新版的文件改成對(duì)應(yīng)的名字之后,文件便存在了,只不過他又會(huì)去報(bào)各種配置參數(shù)的錯(cuò)(如上),所以在此我就確定是因?yàn)閜hp版本太高,已經(jīng)和PECL內(nèi)的模塊編譯對(duì)應(yīng)的文件和參數(shù)不再匹配,而導(dǎo)致了這一系列的錯(cuò)誤。
不過幸好的是,php7.0本身就自帶Zend模塊,只需在配置文件php.ini中打開選項(xiàng)即可
問題就到這了。。。。。。。。。。
文章名稱:第四十九天:php-7.0編譯模塊的出錯(cuò)
文章鏈接:http://jinyejixie.com/article44/poedee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、做網(wǎng)站、網(wǎng)站營銷、網(wǎng)站改版、網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)