WordPress使用常见问题

    分享 jwcyber 3年前 (2016-03-03) 28013次浏览 56个评论

    1 提示需要输入FTP信息

    后台安装插件或主题都提示需要输入FTP信息

    出现这个问题,是因为文件目录权限问题。解决方法,SSH登录VPS,执行以下两条命令即可

    chmod -R 755 /home/wwwroot
    chown -R www /home/wwwroot

    2 301重定向jwcyber.com到www.jwcyber.com

    目前VPS推荐的架构LNMP,将Apache更换为更高效的Nginx。但唯一坏处在于许多位于.htaccess 的规则都无法使用。通用办法是找到对应网站的conf文件,比如www.jwcyber.com.conf,通常在/usr/local/nginx/conf/vhost/ 目录下,可以找到用sftp软件编辑此文件:

    server_name www.jwcyber.com;

    改为

    server_name www.jwcyber.com jwcyber.com;
    if ($host != 'www.jwcyber.com' ) { 
    rewrite ^/(.*)$ http://www.jwcyber.com/$1 permanent;}

    重启服务器即可实现访问jwcyber.com跳转到www.jwcyber.com。

    更新:使用新版LNMP可以不用重定向。新版的LNMP添加虚拟主机的时候会让你输入两个域名:jwcyber.com和www.jwcyber.com,然后在WordPress仪表盘的设置->常规中将WordPress地址和站点地址都设为一个,如:http://jwcyber.com,就可以实现将两个地址都定向到jwcyber.com。

    3 WordPress只显示一个主题

    LNMP禁用了部分危险函数,而scandir函数也在此列,所以这样问题的解决方法只能是将scandir从禁用函数剔除就可以了。

    disable_functions =passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server

    修改/usr/local/php/etc下的php.ini,删去scandir,然后用putty重启一下php进程“/etc/init.d/php-fpm restart”就可以了。

    clipboard.png

    4 自带编辑器不够用

    可以选择第三方编辑器,比如直接在插件库中搜索Kindeditor,我这里使用的是UEditor。

    UEditor原是百度开发,目前已停止更新,由第三方的个人进行改进。目前用着还不错,可以直接上传图片,不用再用WordPress自带上传方式了。

    具体的版本我用的是大山的1.5版,可以直接上传安装插件,适用于WP4.4版,详细可以查看树新风。(发现我用的一个微信编辑器也是以UEditor为基础的。)

    1457021825115715.jpg

    更新:现在我还是更推荐使用自带编辑器,原因包括:1)在可见的未来都会更新;2)与WordPress后台不存在兼容性问题;3) 不会因为更换编辑器导致排版混乱;4)编辑器与媒体库配合好(我已经将UEditor上传的图片全部加入媒体库,大工程呀,早知今日何必当初)。

    5 为文章添加目录

    需要安装一个插件Table of Contents Plus,安装完成后在文章需要添加目录的地方加上’‘即可。如果需要将目录也添加到文章侧栏,可以进入外观->小工具中,把TOC 拖到文章页侧栏中。

    6 网站导航菜单

    外观→菜单,可以对网站导航菜单进行设置。网站导航指的就是网站上方的菜单,只能指定一个,但是这个导航可以有多个项目,左边添加后拖动就可实现多级网站导航菜单。详细的看图就明白了。

    最后的显示结果是这样:

    1457281491789417.png

    7 Gravatar头像不能加载或者加载缓慢

    出现这种情况是Gravatar.com被墙了?设置头像的时候就翻墙出去弄的,结果显示又出问题了。最后参考这篇文章完美解决。

    使用多说Gravatar镜像服务器加载Gravatar头像可以解决这一问题。因为多说社会化评论插件就是使用Gravatar头像资源的,多说有Gravatar头像的镜像服务器,且该服务器位于国内,而且没有防盗链,那么我们就可以利用多说的Gravatar镜像服务器来加载网站的Gravatar头像了,方法很简单,只要在当前主题的functions.php文件加入以下代码即可:

    function twentyten_get_avatar( $avatar ) {$avatar = str_replace ( array ( “gravatar.proxy.ustclug.org” , “gravatar.proxy.ustclug.org” , “gravatar.proxy.ustclug.org” , “gravatar.proxy.ustclug.org” ),“gravatar.duoshuo.com” , $avatar );return $avatar ;}add_filter( ‘get_avatar’ , ‘twentyten_get_avatar’ , 10, 3 );

    把这段代码放到function.php中后,问题立马解决了,头像正常显示,并且没有出现加载缓慢的问题。

    function.php可以在外观→编辑中找到。

    更新:好像只是当时的错觉,之后发现还无法显示。

    发现弄了这么多还不如直接装一个插件方便:WP-DuoShuo-Gravatar。安装后刷新,发现头像地址已经来自多说了。

    本来打算使用第三方的评论插件,但是多说偷传网站数据,畅言需要备案,放弃了。

    更新:现在好像可以正常显示头像了。

    8 使用百度统计分析网站

    网站建立完成,并且添加了一些内容后就可以开始推广网站了。为了明确自己网站到底有多少人访问,有必要进行一下统计,这里有两种方法,一个是安装WP插件,另一个是使用百度、cnzz等的第三方进行统计。

    WP Statistics是一个非常强大的统计分析插件,通过这个插件,你可以比较详细地了解到访问网站的用户信息,比如每天访问量、来源、浏览了哪些文章、使用的系统、浏览器等等。具体的可以看看WordPress大学的介绍,安装使用都很方便,这里也不细说了。

    百度统计需要主题的支持,因为百度统计是在网页的每个界面都增加一段代码,通过这段代码来进行统计。

    注册一个百度统计的账号,在网站中心中增加自己的域名,然后就能获取一段代码,将其粘贴在主题设置的流量统计代码中,完成设置。这时候你可以随便打开一个自己网站的网页,右键查看源代码,如果有刚才添加的代码,那么百度统计就设置成功。设置成功后百度那边需要隔一段时间才能生效,虽然官方说是20分钟,但我觉得不止。

    百度统计.png

    这是我网站推广第三天的效果,第二天的时候由于朋友圈的转发,有77 IP的访问量,今天没有新的内容,朋友圈那边没有新的流量来了,访问量一下子就下来了。还有很长的路要走。

    另外,添加了百度统计后网站就能在百度搜到了,Google那边有了,不错的副作用。

    9 添加站点地图

    站点地图是一个页面,上面放置了网站上需要搜索引擎抓取的所有页面的链接。如果希望让搜索引擎更好地检索,可以添加一个站点地图。可以使用插件直接完成。

    在WP的插件商店中搜索Google XML Sitemaps(类似的插件还有一些,比如Baidu Sitemap Generator)。安装启用,然后在设置中设置即可。这时会在网站根目录下产生一个sitemap.xml的文件,就是站点地图了。

    这时可以在页面的页脚,也就是主题页脚 (footer.php)文件中把站点地图的地址加上去。

    具体的操作:外观→编辑,在右边的模板里面找到footer.php,然后修改原有的页脚代码。可以先在写文章的编辑器里面把页脚的样式编辑好,然后切换成html格式复制到footer.php中。记得先备份原有的内容,因为如果不懂代码的话,一般都会多次编辑才能得到希望的效果。

    10 文章内容分页

    我用的不是默认主题,不是很清楚默认主题是否有翻页功能。在yusi博客也没发现怎么设置翻页,而用的编辑器UEditor的翻页功能又不可用,结果就一直没用翻页忍过来了。但今天要发上千张的图,总不可能放在一个页面吧,加载就得10分钟。搜了搜,试了试,终于在WordPress大学找到一个可用的方法:

    WordPress系统是内置分页功能的,要实现它极其简单,只需要在你想要分页的地方加入下面的代码即可(注意,是在文本编辑模式下):

    <!–nextpage–>

    但还有一个问题.要让这个代码真正能够实现其分页功能,还需要你所使用的Wordpress主题支持,Wordpress的默认主题是支持的,如果你的主题不支持,那解决方法也很简单,找到你主题文件内的single.php里的下面这行代码:

     <?php the_content(); ?>

    在这段代码下面加上:

     <?php wp_link_pages('before=<div id="page-links">&after=</div>'); ?>

    我用的yusi主题Git主题其实是有这个的,所以直接在需要分页的地方加上<!–nextpage–>就可以了,但我还是试了好几次才出现了分页。

    11 使用七牛云为已备案网站加速

    这个站一开始是在搬瓦工上搭的,后来觉得速度慢就放到了Vultr/Linode上,但Vultr的访问效果受时间地域运营商影响太大,极度不稳定。正好遇到腾讯云学生优惠,就花360买了3年的云主机(1核/2G/50G/1Mbps),然后也备了案(腾讯云的网站必须备案),但图片多的文章访问速度实在太慢,于是就开始折腾起听闻已久的七牛云,效果确实很不错。

    首先需要注册一个七牛云的账号,冲10块钱,完成认证。

    然后添加对象存储

    创建存储空间(存储空间名称任意,记住就行)

    立即绑定一个加速域名(我的网站是jwcyber.com,设置的加速域名为static.jwcyber.com,最终完成设置后的效果是:网站图片资源域名在前端自动被替换成这个加速域名,即http://jwcyber.com/test.jpg变成了http://static.jwcyber.com/test.jpg)

    同时,也需要<镜像存储>中设置加速资源的镜像源地址,我这里直接是原始的网站地址http://jwcyber.com/

    完成之后就可以去域名提供商(比如我是阿里云)那里将加速域名static.jwcyber.com解析到七牛云提供的一个CNAME地址那里

    再回到Wordpress后台,安装WPJAM Basic插件,启用七牛云存储功能,然后如图设置(两个Key可以在七牛云个人面板中找到)

    这样就完成所有设置,等待解析完成再访问网站,就可以发现加速生效了。

    对于整个过程,我是这样理解的:Wordpress后台WPJAM插件以及七牛云相关设置相同(空间名、加速域名、Key、网站原始域名/镜像源),这使得二者存在一种关联性。WPJAM插件让网站前端展示的资源地址全部由jwcyber.com/xxx变成了static.jwcyber.com/xxx,而阿里云那边将static.jwcyber.com解析到了一个七牛云的地址,相当于用户访问的就是七牛云上的资源,而七牛云这边首先在自己服务器上检测有没有用户需要的资源,没有就去镜像源jwcyber.com拖下来放到自己的空间里,然后下次其他用户就可以直接访问七牛云上的资源了,速度很快。

    最后为了防止搜索引擎直接去爬static.jwcyber.com(七牛云上的)而不是源站jwcyber.com,需要对robots.txt文件进行一些修改,可以参考:七牛robots正确写法

     


    喜欢 (24)
    发表我的评论
    取消评论

    表情 贴图 加粗 删除线 居中 斜体 签到

    Hi,您需要填写昵称和邮箱!

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址
    (56)个小伙伴在吐槽
    1. 感谢作者🙏,请问输入IP地址访问时,界面显示的是lnmp界面。如何更改?应该显示什么?
      shane2017-10-15 06:17 回复
      • 域名解析和添加虚拟主机、安装WordPress都按照教程做了一遍吗?
        jwcyber2017-10-15 13:51 回复
    2. chmod -R 755 /home/wwwroot chown -R www /home/wwwroot 你好我想问下为什么我输入这两行指令显示的不能完成呢
      James2017-10-11 19:10 回复
      • 一行一行输入的吗?是用root账号输入的吗?
        jwcyber2017-10-12 21:58 回复
      • 做一下第三步就好了,删去 scandir
        shihongji2017-10-16 05:17 回复
    3. 你好,你这个网站是在Linux搭建还是window环境
      leeheok2017-09-13 17:04 回复
    4. 感谢大大的文章,我这边也按照您的方法做完博客网站了。
      jpsdj2017-05-23 14:38 回复
    5. 博主您好,那个只能用一个主题的错误,怎么修改php.ini,是在哪里还是用什么修改
      秣陵别雪2017-03-24 23:10 回复
      • 你可以用FileZilla Client进入服务器对应文件夹/usr/local/php/etc修改,然后用putty重启。
        jwcyber2017-03-26 09:36 回复
    6. 博主你好,你的目录生成是怎么实现的
      ZZ2017-03-08 16:17 回复
      • 装了个插件:Table of Contents Plus。然后在编辑文章的时候加上[toc]
        jwcyber2017-03-08 17:16 回复
    7. 站长你好,为什么我的网站用chrome可以打开,用ie也可以,但用搜狗不行,PC、移动端都打不开,是浏览器限制了吗,要怎么解决啊,小白求指导。谢谢
      果果绒绒2017-03-08 13:59 回复
    8. 你好,关于3里面的重启php进程,看不太懂,能稍微扩展一下吗?我先把php.ini文件用ftp软件下载下来的,然后在notepad里删除了scandir,重新上传到了文件夹下面。接下来说用putty重启一下php进程“/etc/init.d/php-fpm restart”就可以了,看不懂。/etc/init.d/php-fpm restart这个是不是不是完整的文件目录,前面还要加上省略的?完整的是“/usr/local/php/etc/init.d/php-fpm restart?我在putty里用了这个完整的,但为什么putty返回”-bash: /usr/local/php/etc/init.d/php-fpm: No such file or directory“? 谢谢。
      novicepq2016-12-15 23:37 回复
      • 其实不用想这么多,上传完成后直接在putty中执行“/etc/init.d/php-fpm restart”就可以了,会返回“Gracefully shutting down php-fpm . done Starting php-fpm done”。我这边“/etc/init.d/php-fpm”这个路径也存在,只是init.d是个快捷方式,最后进入的是“/etc/rc.d/init.d/php-fpm”。
        jwcyber2016-12-16 20:32 回复
    9. 站长你好,我按照你的教程搭建后重启VPS后,wordpress就不显示转而显示默认lnmp页面了。请问你知道这是为什么吗?
      乙醚2016-08-27 10:54 回复
      • 是本来显示wordpress,重启后就显示lnmp了吗?如果是这样,那还真奇怪。如果一开始就没显示wordpress界面,可以看看profile文件怎么配置的,另外文件位置是否放置正确,实在不行重新安装一遍试试。因为我也不会技术,所以只能想到这些了。
        jwcyber2016-08-27 23:46 回复
    10. 你好,看完你的文章,收益匪浅,我是新手,有个别地方不是很明白,希望您能指点一二:1,搬瓦工的vps如果搭建多个WordPress网站,怎么解析和绑定域名啊2多个域名的解析都是这一个vps的ip吧? 3,您可以有空写一个关于搬瓦工搭建多个WordPress网站的文章么 谢谢!
      Mr.dream2016-06-04 02:35 回复
      • 这个暂时还没有计划折腾呀,如果你要弄的话应该会比我这边做出来更快。解析上很容易解决的,解析到相同ip即可;不同网站用不同文件夹和不同的.conf文件(为了301重定向)。现在我这个vps就挂了两个站,还有一个hit123.cc(随便找了个模板放上去)。搭建多个WordPress难度应该是数据库那边?
        jwcyber2016-06-04 16:44 回复
        • 有没有留意过安全方面的技巧,我最近发现有3000多连接我ssh通过root穷举,正在做安全防范
          你好啊2016-06-05 11:43
        • 不是很懂,这个怎么可以看出来呢?
          jwcyber2016-06-05 15:25
    11. 站长你好,请提供一下etc/profile这个文件给我可以吗,我误删了。另外如果你配置了java还是其他环境的,请说明一下。
      你好啊2016-06-01 15:26 回复
      • www.jwcyber.com/upload/files/profile 我网站搭好后就没有管了,所以没有配置其他什么环境
        jwcyber2016-06-01 20:06 回复
    12. 这时会在网站根目录下产生一个sitemap.xml的文件,就是站点地图了。 这时可以在页面的页脚,也就是主题页脚 (footer.php)文件中把站点地图的地址加上去。(这一步不解,我装了百度xml都没理了,然后再根目录中并没有发现xml,) 这时可以在页面的页脚,也就是主题页脚 (footer.php)文件中把站点地图的地址加上去。(在那个标签前加呢,具体一点,站点地图)
      你好啊2016-05-07 00:08 回复
      • 我是在div class="footer-inner"后面加的页脚,你多试几次就知道在哪个位置了。Google XML Sitemaps直接在插件设置的界面更新设置它就会自动更新sitemap了。Baidu Sitemap Generator也是在设置——Baidu-Sitemap中update就可以了。
        jwcyber2016-05-07 15:54 回复
    13. 站长,我这几天才了解到测速,发现速度都在900ms+啊,感觉当下之急要换vps。你的ping如何呢?
      你好啊2016-04-23 19:22 回复
    14. 图片外链,有什么推介呢
      你好啊2016-04-23 16:16 回复
      • 我图片没有用外链,发的图不多,vps能放下。另外因为访问的人也不多,我对速度也没什么要求,所以就不用外链了。测速如果你指的是站长之家那种测速,我的网站的速度你应该也可以直接测出来,肯定比你香港的慢得多。我的目的是能用就行,暂时没考虑速度这块儿。
        jwcyber2016-04-23 21:04 回复
    15. 怎么我按你的写了301转向,软重启vps后发现:404了页面找不到...,难道重启后还要十来分钟域名分析么?
      你好啊2016-04-18 16:36 回复
      • 这个应该是立即生效的,前提是你之前就把两种域名都解析到vps的IP了。这个是我的conf文件:www.jwcyber.com.conf
        jwcyber2016-04-18 18:27 回复
    16. 但是我用 xftp进入 文档 直接修改权限是可以的,请问在权限里 打勾哪几个选项。他有所有者 组 其他,还有第二条命令的 www 是什么意思?怎么用xftp修改
      x2016-03-21 00:10 回复
      • 我.user.ini的权限是644,其他文件是755
        jwcyber2016-03-21 00:15 回复
    17. root@www:~# chmod -R 755 /home/wwwroot chmod: changing permissions of `/home/wwwroot/www.chopin.pw/.user.ini': Operation not permitted chmod: changing permissions of `/home/wwwroot/default/.user.ini': Operation not permitted root@www:~# chown -R www /home/wwwroot chown: changing ownership of `/home/wwwroot/www.chopin.pw/.user.ini': Operation not permitted chown: changing ownership of `/home/wwwroot/default/.user.ini': Operation not permitted 你好我是debian 出现了被拒绝 如何是好啊。。不是不能安装插件和主题了。
      x2016-03-21 00:06 回复
      • 其实对于技术这一块我也不懂,都是搜索得到的。我看看我这边权限是怎样的
        jwcyber2016-03-21 00:14 回复