Feb 04
被wordpress搞 posted by maoz

(高手不想听我唠叨的请直接拉到文末看问题描述,谢谢!)

下定决心好好折腾一把wp。虽然说这玩意儿是传说中的傻瓜式,但我好歹也用了快两年了,至今仍停留在后台发发文删删垃圾留言的状态有点说不过去。

于是把水煮鱼老师的教程研读了一遍,发现还得先安装一个XAMPP,以方便在本地调戏调试wp,要不然随便一搞把网站搞挂了怎么办?我可是一分钟三百万上下的成功人士呢。

所以乖乖的安装了xampp lite,不出意料,用什么东西都能出问题的我,运行apache的时候端口冲突了。在网上google了一下,把httpd.conf文件里面所有的80都改成8081,OK了。然后是在本地安装wp,这个没问题,我熟门熟路了已经,接下来是导入现有的数据库,我歪着脑袋想了很久以前vichare教我的phpmyadmin导出功能,总算磕磕绊绊的把本地wp镜像给建好了。

搞这个镜像有啥用呢?主要是我的blog有一个奇怪的问题:不少以前的留言在后台看是重复的,但是前台看却没有,也就是说莫名其妙多了好多的留言出来。究其原因,可能是某次我重装wp的时候,导入数据库操作有问题吧?以前这也只是影响后台,所以我就假装忽略了,这次有机会拿我就好好搞搞它。

在wp_comment这个表里面找出几条冗余的留言,发现了他们的一个共同特点,就是comment_post_ID这个值为0。为了印证这个想法,我拼命回想了半天这个学期刚学的SQL语句:SELECT * FROM wp_comment WHERE comment_post_ID = 0,果然筛选出了700条多余的留言,于是一句删除语句,OK啦,世界清净啦!

这下我信心大增,这事情都能搞定,我无敌啦!于是一边看一点wp官方的codex,一边小小的在本地修改正在使用的这个主题,想把细节搞好一点。

话说昨天我正好看到了这个“动态菜单高亮”,觉得十分神奇,于是就想一试。但有个问题,本地搭建的wp好像不能用permalink(一用就404),只能用默认的?p=xx这种链接形势,这也就罢了,可是页面的链接也变成了page_id=xx,很不爽。于是就想把permalink给搞回来。

google一圈下来的信息大致是:这是因为mod_rewrite功能没有开启所致,而xampp lite版默认是没有开启mod_rewrite的。按照网上的教程(说一句,原来网上疯狂转载的一个xampp简易教程竟然是柠檬写的,汗),修改了httpd.conf,然后重启apache,进后台开启permalink,然后点击,——咦,这次没有404了,但是竟然自动跳到xampp首页去了!

我先以为是开启不彻底的原因,所以一会儿重启电脑,一会儿重启apache,搞来搞去,依然没有用。于是我觉得可能是wp出了问题,那么,清空数据库,删掉wp_config.php,俺们来重装wp!

结果,这一重装,出问题了。

填好数据库名称、账号、密码之后,点击“run the install”,然后就一直loading啊loading,一眼望不到边。终于停止了,一看,空白页。检查文件,发现wp-config.php根本就没有被创建,打开blog首页的时候继续提醒你安装。无奈中,我想是不是wp安装包出问题了,于是从官网上下载了最新的2.7(我一直死不悔改的用着2.5不肯升级),复制粘贴,安装,终于报了个错:

Warning: require(C:\Program Files\xampp\htdocs\wordpress/wp-includes/http.php) [function.require]: failed to open stream: No such file or directory in C:\Program Files\xampp\htdocs\wordpress\wp-settings.php on line 310

Fatal error: require() [function.require]: Failed opening required 'C:\Program Files\xampp\htdocs\wordpress/wp-includes/http.php' (include_path='.;C:\Program Files\xampp\php\pear\') in C:\Program Files\xampp\htdocs\wordpress\wp-settings.php on line 310

问hidecloud,他告诉我说,是xampp出问题了……

好吧,我还保留着xampp的安装文件,重装好了。

重装之后,问题没有解决,还是老样子。又有人跟我说,lite版的功能不全,可能会是这个的问题,于是我又吭哧吭哧下载了一个完整版的,安装,还是没有解决。这时候我又google出一条信息,说多次安装xampp后可能注册表里会有以前安装过的信息,这样即使重装也没什么用。于是我又吭哧吭哧搜索注册表里所有带有apache和mysqld的条目,能干掉的全都干掉了,再重装,——这下可好,apache和mysql,都启动不起来了,显示端口冲突,可是我用netstat看了半天也没发现有什么东西占了那几个端口的(主要是mysql的3306端口),修改了也没用,所以我只有投降了。

最后,我在家里的台式机上安装了xampp(安装过程及其顺利,连端口都不用改),又把wp原原本本的搬了一次,修改permalink,还是没有用!我已经无语了,这时候阿禅童鞋事后诸葛亮般的跟我说:windows主机都是不能用permalink的。我批评了他的错误思想,因为网上那么多文章写着教程呢,都说把mod rewrite开启了就可以了,怎么会不行呢?

但当我半信半疑的查看wp的codex的时候,脑中还是“叮”的敲了一下,传说中,传说中的,index.php大法……

是的,最后的半吊子解决方案,就是我妥协了,在所有的url中加上了那个丑陋的/index.php/,算是伪permalink了,将就着先用吧。

最后再吼一声我的问题,望牛仁能给点建议:

问题:本地搭建的wordpress上不能使用permalink

环境:win XP sp2, 官方下载的完整版xampp 1.7.0, wordpress 2.5
xampp已去掉mod_rewrite.so前面的那个井号,AllowOverride也改成了All
.htaccess文件是存在的

描述:开启permalink功能后,单篇文章点进去的时候直接跳转到xampp主页(注意不是提示404错误)。
url中插入/index.php/后可用,但我不想要这个恶心的东西啊……

update:搞定了,居然是.htaccess文件的问题……因为我是很久之前建的.htaccess,又传说wp会对它自动更新,所以我怎么也想不到会是这个的问题……重新建一个就好了,具体的看这条留言。感谢!CnSoLoer童鞋!


Tags:

也许还有这些:


37坨评论

  1. Elton Disney

    貌似沙发??
    我本地的时候用EasyPHP,然后rewrite了一下子数据库,就不有问题了,但是没有进行同步,反正都是折腾,需要的时候导入数据库就好了

  2. Denis

    SLUG 很强大!

    ===== maoz replies =====

    您还不睡,不是传说中明天要聚会的吗

  3. lonnie

    我不懂您的问题,不过提两个问题哦:
    1. 80端口被谁占了?
    2. XP是不是应该升到sp3比较好?
    3. C:\Program Files\xampp\htdocs\wordpress/wp-includes/http.php这个文件有吗?是不是正反斜杠的问题?

    ===== maoz replies =====

    1、一般说来是firefox
    2、好像是
    3、我不知道了……

  4. lonnie

    er 是三个……

    ===== maoz replies =====

    全国理的人就三个字:不会数数!

  5. blogkid

    我怀疑是不是RewriteBase没有设置对,你的文件是放在网站根目录下的?

    ===== maoz replies =====

    我这是本地的,就放在xampp的htdocs路径下,建了一个wordpress文件夹
    您说的那个是什么设置?

  6. 漫步

    删除 .htaccess, 重新设置一下永久链接格式, 另外也许可能可以考虑升级一下wp 的版本...

    ===== maoz replies =====

    为什么要删除.htaccess呢?删了还需要重建吗?
    我想把这个搞了之后在本地升级一下体验看看,因为我不是很喜欢2.7的后台,也不是很想用thread comment,不知道除了这些还有啥好处……

  7. 胡作非为

    我不发表评论,我怎么没学计算机呢?

  8. !CnSoLoer

    有这么麻烦?
    我vista ,用的是XAMPP 1.7.0 免安装版的zip包,不是 lite版的。可以自定义链接的。
    url 中的index.php可以在.htaccess里面定义去掉。

    ===== maoz replies =====

    咋的去掉?
    您的.htaccess文件里面是什么内容?

  9. !CnSoLoer

    如果怀疑是以前的 XAMPP 搞的鬼,你也可以先把原来的 XAMPP 重新安装一遍,在卸载。再安装一遍完整版的。

    ===== maoz replies =====

    我说过了,我重装n遍了,注册表都删完了……现在是放在一台从未装过的电脑上的,xampp正常运行中

  10. sein

    maoz 姐姐真厉害

    ===== maoz replies =====

    sein叔叔不帮帮我?

  11. othor

    说个与本文不相关的建议,我都是直接在线修改主题滴。80端口是被apache自身占用的,在前面加个#也可以。小请求:能否把您的wp2.5给通过邮箱传给我捏?网上这个版本很少了,有也好多有错误…我讨厌2.7…我将无上感谢

    ===== maoz replies =====

    端口现在已经不是问题了
    我怕我把主题乱搞给搞坏了……
    内什么,握手!我也不喜欢2.7!
    不过,是不是2.7的数据库跟2.5的是不太一样的?直接降级是不是会有问题?

  12. ZhouGe

    我记得谁告诉过我在XP用不了permalink ,所以我在本地一直没有用。我也关注一下解决办法~

  13. Black-Xstar

    不是windows下无法用rewrite,而是IIS下无法直接用rewrite而已。
    其实xampp开启rewrite模块后可以用permalink,我以前成功过。
    可能是新版本很有某些新特性,建议换个旧版本的xampp试试看?

    再或者,手动安装apache+mysql+php试试看?

    ===== maoz replies =====

    是丫,我查到的信息也都说是IIS才不能rewrite,都说xampp是可以的
    旧版本……汗,我记得在哪儿看到说这个东西要apache一定版本以上才能支持的……

    太折腾了,罪过啊罪过

  14. !CnSoLoer

    xmapp 我用过两个版本的,现在的1.7,还有前面用过一个版本不知道是1.68,还是1.67,都没遇到啥问题的,xp我没试过,我的是vista。自定义永久链接没出现过你这样的问题,你所介绍的index.php出现在的url里面只是以前在windows平台里面架wp出现的无法解决的问题(貌似有插件实现过),但在xampp这个模拟的apache平台肯定是可以解决的。

    可以试试.htaccess。首先看看你的index.php同目录下有没有.htaccess 文件(一般就是wordpress根目录)。没有建一个,然后在后台改变一下permalink,.htaccess里面即被写入,

    # BEGIN WordPress

    RewriteEngine On
    RewriteBase /wordpress/
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /wordpress/index.php [L]

    # END WordPress

    (我的wordpress 安装在\xampp\htdocs\wordpress\目录下)

    正常使用。

    如果还是不能去掉(确认你没有在permalink中定义了index.php 字样),可以试试这个
    http://htaccess.wordpress.com/2007/12/08/removing-indexphp-with-htaccess/
    (可能需要用代理才能访问到)

    或者直接看这里:http://www.build-your-website.co.uk/Blogging/Wordpress-htaccess.htm

    其实一般情况下是不会出现在xampp里面安装wordpress,自定义的permalink里面还存在index.php的。

    ===== maoz replies =====

    哎呀呀呀,照你说的重新改了一下.htaccess,居然好了……
    谢谢谢谢了

  15. bread

    xampp...
    既然打算折腾,干嘛不自己整合
    这种第三方整合的虽然刚开始觉得方便...
    万一出了问题...刚开始的那些方便,全都搭进去了

    ===== maoz replies =====

    我不太会……主要是因为满世界都是xampp的傻瓜教程,所以……

  16. Johnny

    xmapp 我倒没用过,我用的是IIS+PHP的
    permalink嘛,用了IIS rewrite就可以搞定

  17. lonnie

    firefox应该不会占80啊,我的firefox怎么不占80?

  18. lonnie

    总之80端口被无端打开着不是什么好兆头。

  19. leehow

    我拉到文末也没有办法...

  20. netputer

    阿姨真是爱折腾,像我,直接用 PHPNow ,然后再改几个参数就完美调戏 WP 了嘛,你还被调戏,真……

    ===== maoz replies =====

    小朋友,我甘拜下风……

  21. kc

    楼上用phpnow的朋友,我记得我用那玩意的时候好痛苦,有时间再折腾下,没解决的话问你好了.  用APPSERV装康盛的玩意结果始终没弄明白zend到底要怎么装.
    强烈建议不要本地折腾了,随便找个空间试试就好.
    80端口比较有可能是迅雷占着.

    ===== maoz replies =====

    没装迅雷

  22. 雪梨

    maoz 姐姐真厉害~~

    ===== maoz replies =====

    别说风凉话了……

  23. 大猫

    小猫,看到有人叫阿姨。。。
    我先去刮胡子。。。

    ===== maoz replies =====

    我……我无法抑止的老去了……

  24. Tracy

    很久没调戏wp了,呵呵。

  25. Black-Xstar

    原来maoz姐姐搞定啦,恭喜!

  26. Showfom

    迅雷要占用80端口的
    每次都要关闭
    本地测试用phpnow也不错的

  27. hoorace

    终于看到传说中的maoz阿姨的blog了,你的blog上果然和传说中的效果一样!

    ===== maoz replies =====

    你为什么要叫我阿姨,为!什!么!

  28. Showfom

    想和阿姨交换链接
    我已经做好你的了...

    ===== maoz replies =====

    不好意思,不交换链接的

  29. 。。。

    ===== maoz replies =====

    拍飞

  30. 雪梨

    为何迅雷要占用 80 端口啊

    ===== maoz replies =====

    你应该去问迅雷的人 = =

  31. [FeedBack] 被wordpress搞 > Feed博客聚合

    [...] update:搞定了,居然是.htaccess文件的问题……因为我是很久之前建的.htaccess,又传说wp会对它自动更新,所以我怎么也想不到会是这个的问题……重新建一个就好了,具体的看这条留言。感谢!CnSoLoer童鞋! [...]

  32. kc

    像maoz这么能折腾的人少见呵,无论是上飞机还是看医生,总是一波三折,但不管怎样,你得承认她最终解决了问题,而她的分享也给了大家快乐.
    ls的朋友,因为迅雷bt下载的默认tcp监听端口是80.
    maoz可以用苹果茶把本地调戏好的wp弄出来大家瞅瞅.你的电脑到底是什么占用了80呢,好奇下.

    ===== maoz replies =====

    谢谢谢谢哦~~~好开心
    其实……我没有解决的问题也有不少……但是本着娱乐原则,一般烂摊子我就不写在这里了,hiahia
    我也不知道什么东西占了80,最近又装了一次,居然好了

  33. Showfom

    哦,不交换链接哇。。。那算了,嘿嘿。

    以后常来看看阿姨的博客

    ===== maoz replies =====

    不要叫我阿姨 - -

  34. febird

    哈哈,曾经看到Jason的twitter上好像那天有你这个ID,maoz,帽子,不知是蓝帽子还是绿帽子..

    要看你哪个程序占用了80,很简单哪,netstat -aon|findstr "80" 然后找出 PID,打开任务管理器找出PID的进程就OK啊。

    ===== maoz replies =====

    回帖不看帖……我文中说了,nestat检查不出来

  35. 365

    840

  36. 780

    833

  37. 人造处女膜

    回帖不看帖……我文中说了,nestat检查不出来

留个言吧:

注意:邮箱可以不填,填了也不会公开,方便我联系你用:)