溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

php配置問題匯總

發(fā)布時間:2020-07-21 15:11:22 來源:網(wǎng)絡(luò) 閱讀:561 作者:_老曹_ 欄目:web開發(fā)
   前兩天開始跟進(jìn)PHP;我覺得,PHP的環(huán)境配置遠(yuǎn)比其他語言的要復(fù)雜很多。我所說的“其他語言”,包括Java,Oracle,scala,Python等。到現(xiàn)在PHP的環(huán)境被搭好,因?yàn)槭侨謩拥呐渲?,我完完整整的花了兩天的時間。暫且記錄一下這兩天入手PHP的曲折的過程,以備不時之需。

   前天下午開始,我最先下載的是幾個IDE。因?yàn)槲业囊回炦壿嬍窍认翴DE,再搭語言環(huán)境。(不過現(xiàn)在看來似乎這種邏輯有些問題,
也有輕視了PHP的緣故,因?yàn)楹芏嗳硕颊fPHP相當(dāng)容易。。。)。
   這幾個IDE是我在網(wǎng)上看了很久找到的評價較高的。當(dāng)然,是除了zend和PHPEclipse之外的。
   名字分別是 PHPEdit(推薦)
KomodoEdit 8、Komodo IDE、(注意:科莫多的Edit和IDE是兩碼事,IDE付費(fèi)且我用了一個下午完全不知道怎么用,不過個人覺得Komodo IDE的圖標(biāo)很好看)、SaDE(一個普通的Edit軟件,類似notepad++或VIm)、VIm、wix(我到現(xiàn)在也不知道這個是干嘛的,下載的原因是官方文檔如下圖~)
php配置問題匯總

   首先需要注意的是,PHP下載的版本問題。我先后下過四個版本,但都不對。
挑選版本需要注意:文件夾數(shù)量(應(yīng)該只有三到四個)、是否有php-cgi、php-win等三四個exe可執(zhí)行文件、是否有php5apache2_4.dll文件(此條極為重要,必須有此文件,重要性見下文)

網(wǎng)上摘的一段話:(By lixunhuanIT
“下載時要注意non-thread-safe和thread-safe這兩個版本。

non-thread-safe是非安全線程主要與IIS搭配環(huán)境。

thread-safe安全線程與Apache搭配環(huán)境。

注意thread-safe版本中會有php5apache2_4.dll的動態(tài)鏈接庫,與apache搭配。

其次,就是把php.ini-production改成php.ini文件,并存到根目錄下?!?/span>

   請注意下此問題:
   百度上很多人都說,是改什么php.ini-dist或 php.ini.recommended。
   對此問題,后來我又看了視頻以及官網(wǎng),應(yīng)該是老版本~
   有兩個ini文件,一個是以development為擴(kuò)展名,一個以production為擴(kuò)展名。前者是開發(fā)者用,后者是商業(yè)用途??戳撕芏啻笊竦奈恼拢颊f修改商業(yè)用途,理由我也不清楚,按此做即可~

   然后就是修改php.ini,首先按官方api去修改,如圖:概不贅述。
php配置問題匯總

   需要注意的是:extension_dir之后指向的路徑應(yīng)是php根目錄下的ext文件夾。如果是復(fù)制的話,需要把斜杠改成“/”,如:我的目錄是
C:\php55\ext,在粘貼到ini中時,需改成C:/php55/ext。另外,我自己的測試,C這個字母的大小寫是無影響的~
   此行代碼的目的是加入擴(kuò)展的dll文件,比如php對mysql等等。在ini文件中若有需要可以適當(dāng)?shù)慕怄i。
網(wǎng)絡(luò)上很多人都說,需要把ini文件放到C盤windows文件夾下,但根據(jù)我的經(jīng)驗(yàn),這個野史類似.dist之類的老版本問題。

   完成之后,可以在dos下執(zhí)行下命令,觀察版本等信息~
   輸入: cd c:/php55/(我的目錄是php55)
   然后輸入php -v查詢版本信息
php配置問題匯總

出現(xiàn)類似界面,則說明配置成功!


   下一步就是最難解決的,也是成功后最有成就感的一件事,配置服務(wù)器
注:網(wǎng)上很多人說要先配apache,在配php,但我是正好相反,我覺得無所謂。
   此服務(wù)器為apache2.x,一開始我以為是tomcat,想了半天怎么還用2.x的呢。 后來明白了,兩個不是一個東西,要不怎么說我笨呢。
   我用的是最新的2.4,官網(wǎng)就有下載(不是apache的download頁面
http://httpd.apache.org/download.cgi<——不是這個。請自行百度。
   正確的版本內(nèi)應(yīng)有包括bin和conf在內(nèi)的11個左右的文件夾,并在conf文件夾中有httpd.conf文件。

   然后就是配置,野史最麻煩的一部分。
   打開httpd.conf文件(ps:我一直是用notepad++,個人覺得比vim或者什么Edit的那個好用很多)。
   釋放并修改以下內(nèi)容:
ServerRoot "c:/Apache24"

Listen 81
PHPIniDir "c:/php55"

LoadModule php5_module c:/php55/php5apache2_4.dll

ServerAdmin chinacyzmail@163.com

DocumentRoot "c:/Apache24/htdocs"
<Directory "c:/Apache24/htdocs">

ErrorLog "logs/error.log"


(網(wǎng)上有很多詳細(xì)介紹,請百度,重要的就以上幾個。)

然后win+R,cmd,輸入cd c:/Apache24/bin/,輸入httpd.exe -k install,輸入http.exe -k start/stop/restart,輸入后無反應(yīng),則說明配置正確。

主要我想說的是異常情況:
1、最開始我一直碰到的問題,提示can't load XXX\php5apache2_4.dll into server: The specified module could not be found.
   問題原因:PHP根目錄下無php5apache2_4.dll文件、此文件和你的php版本不匹配,也就是說,你這個文件是你自己單下的,(
我就在這上頭吃了大虧)、最后的可能就是你配置沒配對,見上文。
   解決辦法:這個dll文件千萬不要單下,若發(fā)現(xiàn)根目錄下無此文件,只能說明一個問題——就是你的php沒下對,重新去官網(wǎng)下載吧,記住要下載有tread safe并符合你系統(tǒng)的版本。

2、“
Warning: DocumentRoot [/usr/local/apache2/docs/dummy-host.example.com] does not exist
    問題原因:
conf/extra/httpd-vhosts.conf文件了多了一些沒有實(shí)質(zhì)的文件。
    解決辦法:講這個配置文件中的所有東西都注掉~

3、
Address already in use: make_sock: could not bind to address [:]:80
   問題原因:你設(shè)置的apache的端口已被占用,
   解決辦法:似乎很簡單的問題,但解決起來一點(diǎn)也不簡單。百度谷歌了很久,網(wǎng)上說法各異,但都語焉不詳或者風(fēng)馬牛不相及。比較靠譜的說法是,在include文件夾中,有一個port.conf的文件,其中也有l(wèi)isten 80這個語句,啟動時一起啟動,當(dāng)然會占用。但我沒找到這個文件。
我是首先在dos下查看了端口信息,果然80是被占用。

后來找到了個老外的文章:

Description:

./apachectl start
(98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs

Cause:
This problem is caused by another service listening to TCP/IP port 80.

Solution:
1.  $ sudo fuser -k -n tcp 80

2.  Change the listen port in the httpd config file to 81, by doing this we want to see which service is using port 80.

   netstat -tlnp | grep 80

3.  Third solution is to change binging address in your httpd.conf  like this:
Listen 127.0.0.1:80 ( that means:  instead of  Listen 0.0.0.0:80)

問題迎刃而解!
注意:英文不好的我解釋下,其實(shí)就一句話:把端口從80設(shè)置成81~

然后啟動apache,出現(xiàn)此界面說明正確:
php配置問題匯總

搞定!~


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI