我有視窗伺服器 2003 R2阿帕契2.2.4 和PHP5.2.6。我想透過 https (SSL) 存取頁面。
我收到此錯誤(Zend Framework GData):
Unable to find the socket transport "ssl" - enter code here did you forget to enable it when you configured PHP?
所以我做了什麼。我轉到 php.ini 並取消註釋該行
extension=php_openssl.dll
我也安裝了Win32 OpenSSL。
但沒有任何作用。我該怎麼辦?
答案1
好的,這裡有很多步驟要檢查:
- 首先,建立一個phpinfo() 檔案來檢查PHP 的SSL 擴充功能是否確實已啟用,我知道您說過您已啟用它,但請檢查您是否已在正確的PHP.ini 檔案中執行此操作,並且更改是否已實際生效。
- 確保 libeay32.dll 和 ssleay32.dll 位於 Windows 路徑中的某個位置
- 確保 php_openssl.dll 位於您的擴充目錄中
- 檢查您的 phpinfo() 檔案是否顯示正確的擴充目錄。
答案2
這些是本教學的相關部分:http://fash7y.wordpress.com/2011/12/0/solved-how-to-set-up-https-with-openssl-in-wamp/
繼續使用http://openssl-for-windows.googlecode.com/files/openssl-0.9.8k_WIN32.zip。
好的,讓我們進行下一步。 ;)
- 建立 SSL 憑證和金鑰
A。 Ekstrak OpenSSL 到您的目錄,並複製此檔案:
openssl.cnf to .\Apache2.2.11\conf\
from folder bin, copy all files to .\Apache2.2.11\bin\
// 替換舊檔案! :D
b.透過CMD
在搜尋選單中鍵入內容開啟 DOS 命令視窗。
C。鍵入此 cd C:\wamp\bin\apache\apache2.2.11\bin
d.輸入以下命令以建立具有 1024 位元加密的伺服器私鑰:openssl genrsa -des3 -out server.key 1024
// 它會詢問你一個密碼短語(password),只需輸入你喜歡的任何密碼。
e.從 RSA 私鑰中刪除密碼(同時保留原始檔案的備份副本)。輸入這個:
複製 server.key server.key.org
openssl rsa -in server.key.org -out server.key
// 它會詢問您密碼,只需輸入即可。
F。使用您剛剛建立的 RSA 金鑰建立自簽章憑證(X509 結構)。輸入:openssl req -new -x509 -nodes -sha1 -days 365 -key server.key -out server.crt -config C:\wamp\bin\apache\apache2.2.11\conf\openssl.cnf
- 複製 server.key 和 server.crt 文件
A。在Apache2.2.11\conf\中,建立兩個資料夾,分別命名為ssl.key和ssl.crt
b.將 server.key 檔案複製到 ssl.key 資料夾,將 server.crt 檔案複製到 ssl.crt 資料夾
- 編輯 httpd.conf 檔案、php.ini 和 httpd_ssl.conf
A。開啟httpd.conf文件
b.刪除以下行中的註解「#」:LoadModule ssl_module module/mod_ssl.so
C。刪除以下行中的註解「#」: Include conf/extra/httpd-ssl.conf
d.開啟此檔案-> C:\wamp\bin\php\php5.3.8\php.ini
e.刪除註釋“;”在顯示下列內容的行:extension=php_openssl.dll
F。開啟此檔案 -> C:\wamp\bin\apache\Apache2.2.11\conf\extra\httpd_ssl.conf
G。找到顯示以下內容的行: 。
H。緊接著,請更改以下行:
Change the line “DocumentRoot …” to DocumentRoot “C:/wamp/www/”
Change the line “ServerName…” to ServerName localhost:443
Change the line “ErrorLog….” to Errorlog “C:/wamp/bin/apache/Apache2.2.11/logs/sslerror.log”
Change the line “TransferLog ….” to TransferLog “C:/wamp/bin/apache/Apache2.2.11/logs/sslaccess.log”
Change the line “SSLCertificateFile ….” to SSLCertificateFile “C:/wamp/bin/apache/Apache2.2.11/conf/ssl.crt/server.crt”
Change the line “SSLCertificateKeyFile ….” to SSLCertificateKeyFile “C:/wamp/bin/apache/Apache2.2.11/conf/ssl.key/server.key”
Change the line which says <Directory “C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin”> or something like that (sorry I’m forget what its default dir :p) to <Directory “C:/wamp/www/”>
Add the following lines inside those <Directory … >…</Directory> tags:
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
Change the line “CustomLog…” to CustomLog “C:/wamp/bin/apache/Apache2.2.11/logs/ssl_request.log”
- 確保它有效!
A。在先前的 DOS 指令視窗中,輸入 httpd -t 。如果顯示 Sysntax is OK,則進入下一步。如果不是,則更正錯誤的語法並重做步驟 3。
b.重新啟動 Apache 伺服器。如果重新啟動成功,則開啟瀏覽器輸入http.s localhost/
進展如何?有效,嗯?恭喜! :D
- 試試這個:htt..localhost