过期域名预定抢注

 找回密碼
 免费注册

win主機搭wp遇到三個問題的解決方法

[複製鏈接]
發表於 2013-5-20 21:05:55 | 顯示全部樓層 |閱讀模式
本帖最後由 憶往惜 於 2013-5-20 21:08 編輯 . C* x& @: ~! q8 K+ o9 e

8 r9 D. S% N8 ~4 Z% P6 a' R6 m
最近用朋友的空間搭了個wordpress
9 F1 P. i/ p% m4 ]7 j  b因為主機是IIS,確實遇到了問題,7 {# z4 ?9 u: @( G5 I
所以建議大家盡量不要ISSphp的程序,問題真是不少。
  i0 _6 f; m& u+ T+ J3 {
下面三個問題幾乎所有用win空間的人搭建的wp都出現過,下面分享下我找到的解決方法。
問題一:郵件發不出(當有人留言時,收不到提示審批郵件)
據查找相關資料,這個問題是因為IIS服務器不支持main 函數原因造成的,大多數國內的空間都存在這個問題。請先看網上使用得最多的解決方法一和方法二,如果沒有效或者閒麻煩,請直接看方法三,肯定有效哦。
方法一:通過插件(如:ConfigureSMTP)配置 SMTP 服務器,然後使用我們帶有smtp功能的郵箱(如QQ,網易郵箱,gmail等)作為中介郵箱發送郵件。(網上使用這個方法很多,搜索一下大把,這裡我就不複製人家的了)
但很不幸,無論我怎麼配置,怎麼換smtp插件測試都無效,顯示的是Couldnot connect to SMTP host所以又折騰了,據查找相關資料,又應該是fsockopen()函數被禁用的原因,如果你也遇到這問題,請查看方法二。
方法二:用pfsockopen()函數取代掉 fsockopen()來發送郵件。具體步驟是找到wp-includes/class.smtp.php文件找到「@fsockopen」,改成「 @pfsockopen」,也就是多加了一個字母p,大部份人到此都解決問題。
但還是沒有解決得了,難道是pfsockopen這個函數也被禁用了?好吧,我又使用了stream_socket_client()這個函數來代替,當然這個函數的形參調用位置是不一樣的,這點我也注意到了,修改時特地按照這函數的參數順序改了。
但是,還是不行?難道是PHP版本低於5.0,沒有stream_socket_client()?好吧,我又百度了,按照前人經驗,自定義了這樣一個函數:function b_fsockopen($host, $port, &$errno, &$errstr, $timeout) {};然後再調用,但還是不行,難道我真的要崩潰了麼?沒有,結果讓我找了更簡的方法三。
3 E0 V- |9 |8 I; l5 C2 r0 R* v/ z
方法三:STMP插件就不用了,找到wp-includes/pluggable.php文件,搜索以下代碼:do_action_ref_array( 'phpmailer_init', array( &$phpmailer ) );
4 {0 T4 _6 U3 o* L" ?8 r找到這段代碼後,在其後面添加以下代碼:
  1. $phpmailer->FromName = 'WordPress';     //這個是發信的用戶名% h4 n4 v  M# K: w' o7 s  k
  2. $phpmailer->Host = 'smtp.exmail.qq.com';    //修改為你使用的SMTP服務器
    ( M8 `2 Y+ M: a! q1 l7 m. |
  3. $phpmailer->Port = 25; //port: 25 (or 465 for ssl)默認25就可以了2 N3 a  o/ t7 B4 d/ N
  4. $phpmailer->Username = '[email protected]/old'; //修改為你的名字# ~# s' k# o3 H0 {" s3 W
  5. $phpmailer->Password = '******'; //修改為你的郵箱密碼
    / p1 q# v: x; D# m( s
  6. $phpmailer->From = ' [email protected]/old '; //你的郵箱
    ( [' s4 P  N8 L: |- \
  7. $phpmailer->SMTPAuth = true;7 ]  i8 X: g/ f/ a! k
  8. $phpmailer->SMTPSecure = ''; //tls or ssl   (port=25留空,465為ssl)
    : g% c  d8 K& \% U" {9 r* s
  9. $phpmailer->IsSMTP();
    1 E. t: F& W' I& C0 a+ I* ~( S
複製代碼
用方法三終於解決了問題,夠折騰的。
問題二:wordpress固定鏈接無法使用。
這個問題很普遍,之前我經常在本地搭建php環境,也遇到這種問題,原因是它的Apache 無法打Mod_Rewrite,本地搭建很容易解決,修改相關apache相關配置文件就可以了。但是使用人家的空間就不是你能隨便更改的,所以我在網上找到了以下方法:
+ P1 H' {( o& n; `2 l
新建一個記事本,加入如下代碼:

, m$ v4 ^, U1 ~+ d$ _
  1. [ISAPI_Rewrite]0 `/ F' t& ]( A) L, ~: A

  2. 1 W- O4 a8 m$ z/ h& h
  3. # 3600 = 1 hour8 c# U% J+ U% W, \8 t$ m, B# v+ u
  4. CacheClockRate 3600  n0 S" s9 n8 N9 w$ N+ \' L8 h% y
  5. RepeatLimit 32
    4 r5 V9 n  N! U+ M* c
  6. # Protect httpd.ini and httpd.parse.errors files
    ! M' j( ]4 H4 i( H) g" N# T1 ~! O
  7. # from accessing through HTTP
    ( I) ~3 _- _1 m9 L) u( i/ J
  8. # Rules to ensure that normal content gets through
    ' x0 u, T1 z- l! |! @
  9. 3 ^$ G) T% ^% K
  10. RewriteRule /sitemap.xml /sitemap.xml [L]
    2 K; F  Q! x# H" I0 I, M6 U* K" s0 {
  11. RewriteRule /favicon.ico /favicon.ico [L]
    . J/ y( @$ H9 X5 F
  12. # For file-based wordpress content (i.e. theme), admin, etc.2 e+ `9 A- w* O
  13. RewriteRule /wp-(.*) /wp-$1 [L]0 Y- o3 \3 j8 v2 }
  14. # For normal wordpress content, via index.php
    + I2 K0 ^2 {5 k9 N' }3 y
  15. RewriteRule ^/$ /index.php [L]- z6 q* n3 e7 b7 F4 N. h/ L
  16. RewriteRule /(.*) /index.php/$1 [L]
複製代碼
另存為httpd.ini,然後將這個文件上傳至網站根目錄,再到wp後台設置固定鏈接,發現可以使用了。

/ t3 \4 K6 W$ N1 N
問題三:安裝Google XMLSitemaps插件,寫入sitemap文件時發生錯誤。
這個問題最容易解決,在插件配置中「自定義位置」(默認的是自動檢查),將絕對路徑的斜槓改為反斜槓,例如將「D:\wwwroot\haoren\web/sitemap.xml」改為「D:\wwwroot\haoren\web\sitemap.xml」就可以了。

評分

參與人數 1點點 +3 收起 理由
luguokankan + 3 認眞參與

查看全部評分

發表於 2013-5-20 21:15:06 | 顯示全部樓層
進來學習了
回復 给力 爆菊

使用道具 舉報

發表於 2013-5-20 22:18:20 | 顯示全部樓層
目測樓主是技術高手,謝謝分享。
回復 给力 爆菊

使用道具 舉報

發表於 2013-5-20 23:13:26 | 顯示全部樓層
windows服務器怎麼用的是apache呢?
回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2013-5-20 23:47:04 | 顯示全部樓層
jayhkun 發表於 2013-5-20 23:13
0 @1 z* n5 v: j/ e; q3 ]2 _windows服務器怎麼用的是apache呢?
' \3 a. m; u+ g, T
不是說win服務器有apache,是說在本地搭建模擬的Apache, 比如我最常用APMServ5.2.6來搭建php環境,如果要實現偽靜態,必須要找到 APMServ5.2.6\Apache\conf\httpd.conf,這個Apache配置文件,將AllowOverride None改為 AllowOverride Options FileInfo ,並且重啟模擬的Apache才會生效,要不然默認偽靜態也是用不了的
回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2013-5-20 23:50:44 | 顯示全部樓層
浮沉 發表於 2013-5-20 22:18 / l) h& [1 H' |6 W- O
目測樓主是技術高手,謝謝分享。
3 ?7 R% e/ g" T; o# `
我不是高手,非常菜鳥,讀書的候有學過C語言,後來發現php竟然跟C差不多,並且沒C那麼嚴謹,屬於弱類型語言,所以看得懂一些PHP代碼,太深也是不懂的
回復 给力 爆菊

使用道具 舉報

發表於 2013-5-21 07:12:45 | 顯示全部樓層
lz有試下WP Mail SMTP嗎?
. d( ^7 s/ M* V5 o0 W( [最好別修改核心文件
回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2013-5-21 09:28:31 | 顯示全部樓層
luguokankan 發表於 2013-5-21 07:12 - J" ?3 R, B% @6 L0 G  l6 c
lz有試下WP Mail SMTP嗎?
; e3 o' B3 p# Q1 A最好別修改核心文件
2 {' d, Y& [1 n# W9 k: B: U
有試過,幾乎常用的smtp插件都測試了,都不行,所以才找到了最後一個方法
回復 给力 爆菊

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 免费注册

本版積分規則

过期高净值品牌域名预定抢注

點基跨境 數位編輯創業論壇

GMT+8, 2025-3-14 14:59

By DZ X3.5

小黑屋

快速回復 返回頂部 返回列表