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