本文目錄一覽:
- 1、windows下開發並編譯PHP擴展的方法
- 2、如何在Windows下配置PHP環境
- 3、如何在Windows下配置搭建PHP環境
- 4、windows下php無法支持pgsql,該怎麼解決
- 5、如何在Windows7環境下安裝 PHP
- 6、Windows 2008 下 PHP 開啟 opcache 後頻繁 500 錯誤解決方式
windows下開發並編譯PHP擴展的方法
現在就簡單說一在WINDOWS下開發PHP擴展的步驟:
首先需要準備的軟體有:
cygwin
安裝路徑e:\app\cygwin
visual
studio
C++
6.0,
修改環境變數,把已經安裝好的PHP路徑設置為環境變數。在這裡,假設我的PHP安裝目錄是:e:\app\php5.2.5,那麼我把WINDOWS環境變數後面加上這個安裝目錄。方便一會兒使用php.exe。
PHP源代碼,這裡假設為e:\c_source_code\php-5.2.5
1、修改文件
「PHP源文件目錄/ext/ext_skel_win32.php」,在這裡就是:E:\c_source_code\php-5.2.5\ext,其中主要是修改其中的cygwin路徑。$cygwin_path
=
‘e:\app\cygwin\bin’;
把$cygwin_path修改為你實際安裝cygwin的路徑。
2、在源代碼ext目錄也就是e:\c_source_code\php-5.2.5\ext下,執行
php
ext_skel_win32.php
–extname=EXT_NAME,此時會在ext目錄下生成EXT_NAME目錄,這個目錄就是我們將要進行PHP擴展開發的框架。比如你運行php.exe
ext_skel_win32.php
–extname=foo,會在ext目錄下生成foo目錄。
3、將php-root\dev\php5ts.lib拷貝至
「ext/EXT_NAME」中。比如你要開發的PHP擴展名為foo,那麼就需要把php-root\dev\php5ts.lib拷貝到PHP源文件目錄\ext\foo中。
4、修改foo.c內容,編寫我們需要的C代碼。
5、進入EXT_NAME目錄,打開EXT_NAME.dsp。
設置VC6工程,
設置菜單「組建」-「移除工程配置」,選中「Win
32
Release_TS」,
設置菜單「工程」,選中「Win
32
Release_TS」
打開Tab「連接」,設置「輸出文件名」中的目錄,
[可選]打開Tab「C/C++」,增加「預處理器定義」「,COMPILE_DL_EXT_NAME」(注意全大寫,默認加入的),取消預定義「LIBZEND_EXPORTS」(否則不可引入zend函數)。
6、設置好以後,進行編譯,會生成一個dll文件,文件名是EXT_NAME.dll,比如在我們的例子中就為foo.dll
把foo.dll拷到e:\app\ext目錄下,並在php.ini里加上一行extension=foo.dll,重啟一下apache,查看phpinfo();,會發現我們的PHP擴展foo()已經載入進來,已經可以使用這個foo擴展了。
如何在Windows下配置PHP環境
1、Apache、MySql和PHP的安裝像安裝windows其他軟體一樣,這裡建議把Apache和PHP軟體安裝在D盤目錄下,把MySQL軟體安裝在C盤,這樣不需要做任何設置,MySQL就可以順利啟動運行。
2、配置開發環境
為了讓windows可以執行PHP,需要做進一步的工作,按以下步驟搭建好環境:
1)在PHP安裝目錄下,找到文件php5ts.dll,將其複製到C盤system32目錄下。
2)在PHP安裝目錄下,找到文件libmysql.dll,將其複製到C盤system32目錄下。
3)在PHP安裝目錄下,找到文件php.ini,將其複製到C:\windows下。這個文件是配置PHP的基本文件,如設置伺服器根目錄配置,用文本編輯器打開php.ini文件,找到”doc_root=”,因為我把Apache默認安裝在D盤根目錄下,所以,修改這個配置項的值為:doc_root=d:\apache2\htdocs
提示:用戶根據自己安裝Apache的路徑,修改該配置項的值。
4)在php.ini中找到「extension_dir
=”./”」,這個配置項用來載入PHP的擴展模塊,修改該配置項如下:extension_dir =
d:\php\ext,(需要按自己的安裝目錄修改PHP的載入位置)。
5)在php.ini中找到「;extension=php_mysql.dll」,把這項前面的分號去掉,表示使這個項生效。這個配置項用來使PHP支持MySQL,這裡分號起注釋作用。修改完PHP的配置文件php.ini後,保存退出該文件。
6)進行Apache的配置。轉到Apache的安裝目錄下的conf目錄,用文本編輯器打開Apache的配置文件http.conf。在此文件中找到
dynamic shared object(DOS)
Support,在LoadModule行的最後添加如下配置項:LoadModule php5_module
d:/php/php5apache2.dll,(需要按自己的安裝目錄修改PHP的載入位置)。該項是通過Apache來載入PHP模塊php5apache2.dll,即PHP以Apache的一個模塊來運行。
7)為了讓Apache支持.php後綴的文件,在http.conf中找到AddType項,在最後添加如下配置項:AddType
application/x-httpd-php.php。找到directoryIndex,在最後添加index.php。為了支持中文,找到AddDefaultCharset
ISO-8859-1改為AddDefaultCharset
GB2312。修改完後保存http.conf。即完成Apache的基本配置。
注意:強烈建議對Apache配置文件http.conf進行修改時,一定遵守修改一點測試一點的原則,即每次修改完一項並保存http.conf後,要重啟一下Apache,如果Apache正常啟動,則可以進行後續修改,否則,說明本次修改有誤,仔細檢查並重新修改。
如何在Windows下配置搭建PHP環境
現在很多站長PHP構建網站,因為PHP相對於其他的語言功能強大又簡單易學,PHP具有非常強大的功能,所有的CGI的功能PHP都能實現,而且支持幾乎所有流行的資料庫以及操作系統。最大的原因可能是因為幾乎所有用PHP編寫的網站程序都開源,可以直接下載使用並修改,這給站長們特別是個人站長建設網站節約了很多的時間和精力。我們在用PHP建網站的時候,首先要面臨的問題就是php環境搭建,今天筆者就跟大家分享一下如何在windows下配置搭建PHP開發環境,筆者主要講的是搭建Apache+php開發環境。
配置搭建Apache+php環境的軟體準備:
Apache官方下載地址:apache_2.0.55-win32-x86-no_ssl.msi
php官方下載地址:php-5.0.5-Win32.zip
一、安裝Apache,配置成功一個普通網站伺服器
運行下載好的「apache_2.0.55-win32-x86-no_ssl.msi」,
出現Apache HTTP Server 2.0.55的安裝嚮導界面,點「Next」繼續
確認同意軟體安裝使用許可條例,選擇「I accept the terms in the license agreement」,點「Next」繼續
將Apache安裝到Windows上的使用須知,請閱讀完畢後,按「Next」繼續
設置系統信息,在Network Domain下填入您的域名(比如:qdsulian.com),在Server Name下填入您的伺服器名稱(比如:,也就是主機名加上域名),在Administrator』s Email Address下填入系統管理員的聯繫電子郵件地址(比如:info@qdsulian.com),上述三條信息僅供參考,其中聯繫電子郵件地址會在當系統故障時提供給訪問者,三條信息均可任意填寫,無效的也行。下面有兩個選擇,圖片上選擇的是為系統所有用戶安裝,使用默認的80埠,並作為系統服務自動啟動;另外一個是僅為當前用戶安裝,使用埠8080,手動啟動。按「Next」繼續。
選擇安裝類型,Typical為默認安裝,Custom為用戶自定義安裝,我們這裡選擇Custom,有更多可選項。按「Next」繼續
出現選擇安裝選項界面,如圖所示,左鍵點選「Apache HTTP Server 2.0.55」,選擇「This feature, and all subfeatures, will be installed on local hard drive.」,即「此部分,及下屬子部分內容,全部安裝在本地硬碟上」。點選「Change…」,手動指定安裝目錄。
我這裡選擇安裝在「D:\」,各位自行選取了,一般建議不要安裝在操作系統所在盤,免得操作系統壞了之後,還原操作把Apache配置文件也清除了。選「OK」繼續。
返回剛才的界面,選「Next」繼續。
確認安裝選項無誤,如果您認為要再檢查一遍,可以點「Back」一步步返回檢查。點「Install」開始按前面設定的安裝選項安裝。
正在安裝界面,請耐心等待,直到出現下面的畫面。
裝嚮導成功完成,這時右下角狀態欄應該出現了下面的這個綠色圖標,表示Apache服務已經開始運行,按「Finish」結束Apache的軟體安裝
我們來熟悉一下這個圖標,很方便的,在圖標上左鍵單擊,出現如下界面,有「Start(啟動)」、「Stop(停止)」、「Restart(重啟動)」三個選項,可以很方便的對安裝的Apache伺服器進行上述操作。
好了現在我們來測試一下按默認配置運行的網站界面,在IE地址欄打「」,點「轉到」,就可以看到如下頁面,表示Apache伺服器已安裝成功。
現在開始配置Apache伺服器,使它更好的替我們服務,事實上,如果不配置,你的安裝目錄下的Apache2\htdocs文件夾就是網站的默認根目錄,在裡面放入文件就可以了。這裡我們還是要配置一下,有什麼問題或修改,配置始終是要會的,如圖所示,「開始」、「所有程序」、「Apache HTTP Server2.0.55」、「Configure Apache Server」、「Edit the Apache httpd conf Configuration file」,點擊打開。
XP的記事本有了些小變化,很實用的一個功能就是可以看到文件內容的行、列位置,按下圖所示,點「查看」,勾選「狀態欄」,界面右下角就多了個標記,「Ln 78, Col 10」就表示「行 78,列 10」,這樣可以迅速的在文件中定位,方便解說。當然,你也可以通過「編輯」,「查找」輸入關鍵字來快速定位。每次配置文件的改變,保存後,必須在 Apache伺服器重啟動後生效,可以用前面講的小圖標方便的控制伺服器隨時「重啟動」。
現在正式開始配置Apache伺服器,「Ln 228」,或者查找關鍵字「DocumentRoot」(也就是網站根目錄),找到如下圖所示地方,然後將””內的地址改成你的網站根目錄,地址格式請照圖上的寫,主要是一般文件地址的「\」在Apache里要改成「/」。
「Ln 253」,同樣,你也可以通過查找「
「Ln321」,DirectoryIndex(目錄索引,也就是在僅指定目錄的情況下,默認顯示的文件名),可以添加很多,系統會根據從左至右的順序來優先顯示,以單個半形空格隔開,比如有些網站的首頁是index.htm,就在游標那裡加上「index.htm 」文件名是任意的,不一定非得「index.html」,比如「test.php」等,都可以。
這裡有一個選擇配置選項,以前可能要配置,現在好像修正過來了,不用配置了,就是強制所有輸出文件的語言編碼,html文件里有語言標記(,這個就是設定文檔語言為gb2312)的也會強制轉換。如果打開的網頁出現亂碼,請先檢查網頁內有沒有上述 html語言標記,如果沒有,添加上去就能正常顯示了。把「#DefaultLanguage nl」前面的「# 」去掉,把「nl」改成你要強制輸出的語言,中文是「zh-cn」,保存,關閉。
簡單的Apache配置就到此結束了,現在利用先前的小圖標重啟動,所有的配置就生效了,你的網站就成了一個網站伺服器,如果你載入了防火牆,請打開80或8080埠,或者允許Apache程序訪問網路,否則別人不能訪問。
二、php的安裝、以module方式,將php與apache結合使你的網站伺服器支持php伺服器腳本程序
將下載的php安裝文件php-5.0.5-Win32.zip右鍵解壓縮。
指定解壓縮的位置,我的設定在「D:\php」
查看解壓縮後的文件夾內容,找到「php.ini-dist」文件,將其重命名為「php.ini」,打開編輯,找到下面圖中的地方, Ln385,有一個「register_globals = Off」值,這個值是用來打開全局變數的,比如表單送過來的值,如果這個值設為「Off」,就只能用「$_POST[‘變數名’]、$_GET[‘變數名 ‘]」等來取得送過來的值,如果設為「On」,就可以直接使用「$變數名」來獲取送過來的值,當然,設為「Off」就比較安全,不會讓人輕易將網頁間傳送的數據截取。這個值是否改成「On」就看自己感覺了,是安全重要還是方便重要?
這裡還有一個地方要編輯,功能就是使php能夠直接調用其它模塊,比如訪問mysql,如下圖所示,Ln563,選擇要載入的模塊,去掉前面的 「;」,就表示要載入此模塊了,載入的越多,佔用的資源也就多一點,不過也多不到哪去,比如我要用mysql,就要把「;extension= php_mysql.dll」前的「;」去掉。所有的模塊文件都放在php解壓縮目錄的「ext」之下,我這裡的截圖是把所有能載入的模塊都載入上去了,前面的「;」沒去掉的,是因為「ext」目錄下默認沒有此模塊,載入會提示找不到文件而出錯。這裡只是參考,一般不需要載入這麼多,需要的載入上就可以了,編輯好後保存,關閉。
如果上一步載入了其它模塊,就要指明模塊的位置,否則重啟Apache的時候會提示「找不到指定模塊」的錯誤,這裡介紹一種最簡單的方法,直接將php安裝路徑、裡面的ext路徑指定到windows系統路徑中——在「我的電腦」上右鍵,「屬性」,選擇「高級」標籤,點選「環境變數」,在「系統變數」下找到「Path」變數,選擇,雙擊或點擊「編輯」,將「;D:\php;D:\php\ext」加到原有值的後面,當然,其中的「D:\php」 是我的安裝目錄,你要將它改為自己的php安裝目錄,如下圖所示,全部確定。系統路徑添加好後要重啟電腦才能生效,可以現在重啟,也可以在所有軟體安裝或配置好後重啟。
現在開始將php以module方式與Apache相結合,使php融入Apache,照先前的方法打開Apache的配置文件,Ln 173,找到這裡,添加進如圖所示選中的兩行,第一行「LoadModule php5_module D:/php/php5apache2.dll」是指以module方式載入php,第二行「PHPIniDir “D:/php”」是指明php的配置文件php.ini的位置,是當然,其中的「D:/php」要改成你先前選擇的php解壓縮的目錄。
還是Apache的配置文件,Ln 757,加入「AddType application/x-httpd-php .php」、「AddType application/x-httpd-php .html」兩行,你也可以加入更多,實質就是添加可以執行php的文件類型,比如你再加上一行「AddType application/x-httpd-php .htm」,則.htm文件也可以執行php程序了,你甚至還可以添加上一行「AddType application/x-httpd-php .txt」,讓普通的文本文件格式也能運行php程序。
前面所說的目錄默認索引文件也可以改一下,因為現在加了php,有些文件就直接存為.php了,我們也可以把「index.php」設為默認索引文件,優先順序就自己排了,我的是放在第一位。編輯完成,保存,關閉。
現在,php的安裝,與Apache的結合已經全部完成,用屏幕右下角的小圖標重啟Apache,你的Apache伺服器就支持了php。在windows下配置搭建Apache+php環境就此大功告成。
windows下php無法支持pgsql,該怎麼解決
初學postgresql,想安裝一個在本機測試一下,環境為windows xp + apache2 + php5(5.2.6) + postgresql8.4.一切安裝正常,但是再裝上phppgadmin測試時,顯示「您的 PHP 中沒有完整的資料庫支持」。apache錯誤日誌為「PHP Warning: PHP Startup: Unable to load dynamic library ‘C:/php/ext/php_pgsql.dll’」。多次在網上搜索解決方法,已完成以下操作:
1、修改php.ini
2、確認C:\php\ext\下php_pgsql.dll存在
3、修改path環境變數,添加了postgresql的bin目錄
4、將libpg.dll放至windows\system32下
5、重啟apache多次
不好意思,僅有的一點積分已經用光了,所以只好請大家多多支持了。
cmd下,cd到php所在目錄,之後在cmd下運行 php 看提示吧,卻啥lib它會提示你,需要啥去pgsql下cpoy到windows\system32下,你只複製一個libpg.dll是不夠的,好象複製好多個
如何在Windows7環境下安裝 PHP
如果不是用windows的IIs做WEB伺服器的話,一般步驟是這樣的:
第一步:安裝Apache服務。
第二步:MySQL的安裝
第三步:安裝PHP。
其實在Windows 7下進行PHP安裝非常簡單,由於我下的是PHP代碼包,只要解壓php-5.3.2-Win32-VC6-x86並重名為文件夾為php,將其複製到C盤目錄下即可完成PHP安裝。
第四步:配置Apache以支持PHP。
具體的做法,可以參考軟體的文檔,或是在網上找個教程看一下。
Windows 2008 下 PHP 開啟 opcache 後頻繁 500 錯誤解決方式
最近公司後台訪問速度下降,操作卡頓,公司後台環境是 windows server 2008 + iis7 + php5.6,於是在參考網上解決方案後,覺得使用 opcache 最為方便,於是參考幾篇配置示例文檔後,在線部署了。經過一段時間體驗後,發現確實快了很多,但是相應的出現了一個以前幾乎沒見過的問題,訪問後台時經常性 500 錯誤,但是刷新頁面就恢復正常了,將這個現象在網上搜了一番,確實存在這個問題,但是找了許多帖子也沒有發現靠譜的解決方案,於是就擱置了這個問題,刷新頁面重試也是可以忍受的。
後來,經公司運營反饋發現,500 錯誤發生的太頻繁了,另外有時候刷新也不管用,因為後台有些頁面會一次性批量請求後端介面,然後幾乎都是 500,這個問題就有些嚴重了,於是重新開始在網上尋求解決方式。
搜索到兩個方案如下:
在 Internet 信息服務(IIS)管理器下的應用程序池中選擇應用,右鍵-高級設置-標識,將 ApplicationPoolIdentity 修改為 LocalSystem,經驗證,失敗。
在 PHP 手冊中有這麼一個配置項
另外,在評論中有下面這段話,
大致意思是當我們在 windows 平台下開啟 opcache 時,你可能發現運行時出現隨機 500 錯誤,然後在 php.ini 中添加一行配置 opcache.mmap_base = 0x20000000 可以解決。不幸的是,我不知道值「0x20000000」的意義,我只能告訴你這個值可以解決這個問題。
經過驗證,成功解決 500 錯誤!
下面貼下我自己的 opcache 配置
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/256416.html