php配置问题汇总
? ?前天下午開始,我最先下載的是幾個(gè)IDE。因?yàn)槲业囊回炦壿嬍窍认翴DE,再搭語(yǔ)言環(huán)境。(不過(guò)現(xiàn)在看來(lái)似乎這種邏輯有些問題,也有輕視了PHP的緣故,因?yàn)楹芏嗳硕颊f(shuō)PHP相當(dāng)容易。。。)。
? ?這幾個(gè)IDE是我在網(wǎng)上看了很久找到的評(píng)價(jià)較高的。當(dāng)然,是除了zend和PHPEclipse之外的。
? ?名字分別是 PHPEdit(推薦)、KomodoEdit 8、Komodo IDE、(注意:科莫多的Edit和IDE是兩碼事,IDE付費(fèi)且我用了一個(gè)下午完全不知道怎么用,不過(guò)個(gè)人覺得Komodo IDE的圖標(biāo)很好看)、SaDE(一個(gè)普通的Edit軟件,類似notepad++或VIm)、VIm、wix(我到現(xiàn)在也不知道這個(gè)是干嘛的,下載的原因是官方文檔如下圖~)
? ?首先需要注意的是,PHP下載的版本問題。我先后下過(guò)四個(gè)版本,但都不對(duì)。
挑選版本需要注意:文件夾數(shù)量(應(yīng)該只有三到四個(gè))、是否有php-cgi、php-win等三四個(gè)exe可執(zhí)行文件、是否有php5apache2_4.dll文件(此條極為重要,必須有此文件,重要性見下文)
網(wǎng)上摘的一段話:(By lixunhuanIT)“下載時(shí)要注意non-thread-safe和thread-safe這兩個(gè)版本。
non-thread-safe是非安全線程主要與IIS搭配環(huán)境。
thread-safe安全線程與Apache搭配環(huán)境。
注意thread-safe版本中會(huì)有php5apache2_4.dll的動(dòng)態(tài)鏈接庫(kù),與apache搭配。
其次,就是把php.ini-production改成php.ini文件,并存到根目錄下。”? ?請(qǐng)注意下此問題:
? ?百度上很多人都說(shuō),是改什么php.ini-dist或 php.ini.recommended。
? ?對(duì)此問題,后來(lái)我又看了視頻以及官網(wǎng),應(yīng)該是老版本~
? ?有兩個(gè)ini文件,一個(gè)是以development為擴(kuò)展名,一個(gè)以production為擴(kuò)展名。前者是開發(fā)者用,后者是商業(yè)用途。看了很多大神的文章,都說(shuō)修改商業(yè)用途,理由我也不清楚,按此做即可~
? ?然后就是修改php.ini,首先按官方api去修改,如圖:概不贅述。
? ?需要注意的是:extension_dir之后指向的路徑應(yīng)是php根目錄下的ext文件夾。如果是復(fù)制的話,需要把斜杠改成“/”,如:我的目錄是 C:\php55\ext,在粘貼到ini中時(shí),需改成C:/php55/ext。另外,我自己的測(cè)試,C這個(gè)字母的大小寫是無(wú)影響的~
? ?此行代碼的目的是加入擴(kuò)展的dll文件,比如php對(duì)mysql等等。在ini文件中若有需要可以適當(dāng)?shù)慕怄i。
網(wǎng)絡(luò)上很多人都說(shuō),需要把ini文件放到C盤windows文件夾下,但根據(jù)我的經(jīng)驗(yàn),這個(gè)野史類似.dist之類的老版本問題。
? ?完成之后,可以在dos下執(zhí)行下命令,觀察版本等信息~
? ?輸入: cd c:/php55/(我的目錄是php55)
? ?然后輸入php -v查詢版本信息
出現(xiàn)類似界面,則說(shuō)明配置成功!
? ?下一步就是最難解決的,也是成功后最有成就感的一件事,配置服務(wù)器…
注:網(wǎng)上很多人說(shuō)要先配apache,在配php,但我是正好相反,我覺得無(wú)所謂。
? ?此服務(wù)器為apache2.x,一開始我以為是tomcat,想了半天怎么還用2.x的呢。 后來(lái)明白了,兩個(gè)不是一個(gè)東西,要不怎么說(shuō)我笨呢。
? ?我用的是最新的2.4,官網(wǎng)就有下載(不是apache的download頁(yè)面http://httpd.apache.org/download.cgi<——不是這個(gè))。請(qǐng)自行百度。 ? ?正確的版本內(nèi)應(yīng)有包括bin和conf在內(nèi)的11個(gè)左右的文件夾,并在conf文件夾中有httpd.conf文件。
? ?然后就是配置,野史最麻煩的一部分。
? ?打開httpd.conf文件(ps:我一直是用notepad++,個(gè)人覺得比vim或者什么Edit的那個(gè)好用很多)。
? ?釋放并修改以下內(nèi)容:ServerRoot "c:/Apache24"
Listen 81PHPIniDir "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ì)介紹,請(qǐng)百度,重要的就以上幾個(gè)。)
然后win+R,cmd,輸入cd c:/Apache24/bin/,輸入httpd.exe -k install,輸入http.exe -k start/stop/restart,輸入后無(wú)反應(yīng),則說(shuō)明配置正確。
主要我想說(shuō)的是異常情況:
1、最開始我一直碰到的問題,提示can't load XXX\php5apache2_4.dll into server: The specified module could not be found.
? ?問題原因:PHP根目錄下無(wú)php5apache2_4.dll文件、此文件和你的php版本不匹配,也就是說(shuō),你這個(gè)文件是你自己?jiǎn)蜗碌?#xff0c;(我就在這上頭吃了大虧)、最后的可能就是你配置沒配對(duì),見上文。
? ?解決辦法:這個(gè)dll文件千萬(wàn)不要單下,若發(fā)現(xiàn)根目錄下無(wú)此文件,只能說(shuō)明一個(gè)問題——就是你的php沒下對(duì),重新去官網(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ì)的文件。
? ? 解決辦法:講這個(gè)配置文件中的所有東西都注掉~
3、Address already in use: make_sock: could not bind to address [:]:80
? ?問題原因:你設(shè)置的apache的端口已被占用,
? ?解決辦法:似乎很簡(jiǎn)單的問題,但解決起來(lái)一點(diǎn)也不簡(jiǎn)單。百度谷歌了很久,網(wǎng)上說(shuō)法各異,但都語(yǔ)焉不詳或者風(fēng)馬牛不相及。比較靠譜的說(shuō)法是,在include文件夾中,有一個(gè)port.conf的文件,其中也有l(wèi)isten 80這個(gè)語(yǔ)句,啟動(dòng)時(shí)一起啟動(dòng),當(dāng)然會(huì)占用。但我沒找到這個(gè)文件。
我是首先在dos下查看了端口信息,果然80是被占用。
后來(lái)找到了個(gè)老外的文章:
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~
然后啟動(dòng)apache,出現(xiàn)此界面說(shuō)明正確:
搞定!~
轉(zhuǎn)載于:https://blog.51cto.com/chinacyz/1350034
總結(jié)
- 上一篇: 【转】测试人员的思想理念和工作方法
- 下一篇: PHP中session与cookie的简