分类: 笔记

好好学习,天天向上~O(∩_∩)O~

  • 网页获取APP版本信息及兼容显示

    遇到的情景是这样的:

    公司的APP需要增加一个新功能,可以在内嵌的页面上点击按钮跳转到相应的APP原生列表界面,内嵌的网页由后台编辑,但是以前的老版本APP没有这个功能,如果在页面上直接显示按钮,新版本没问题,老版本就会出现没反应的情况,因为老版本没有内嵌那个方法,所以如何兼容新老版本,我们得出一个简单的方法。

    就是先获取APP的一些信息,新版本会增加一些版本的信息在里面,然后判断这个信息版本是不是大于某个版本值,如果是,那就显示新按钮,如果不是,那就显示的按钮跳转到wap页面。

    [cce]
    <script type="text/javascript">
      //机型和版本判断
      function CanShare() {
        var ua = navigator.userAgent;
          // 判断是否 iPhone 或者 iPod
          if((navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPod/i))) {
            // 判断APP版本号是否大于630
            if (/podinn\/(\S+)/i.test(ua)) {
              var ver = RegExp['$1'];
              if(parseFloat(ver) >= 630)
              return true;
            }
            return false;
          } else {
            //安卓系统
            if (/podinn\/(\S+)/i.test(ua)) {
              var ver = RegExp['$1'];
              if(parseFloat(ver) >= 630)
              return true;
            }
            return false;
          }
        }
    </script>
    [/cce]
    
    
    
    [cce]
    <div id="divbutton1"><!--老版本显示部分-->
      <a href="#">杭州</button></a>
    </div>
    
    <div id="divbutton2" style="display:none"><!--新版本显示部分-->
      <a href="#">杭州</button></a>
    </div>
    
    <!--判断部分显示-->
    <script>
      $(function()
    {
      if(CanShare())
      {
      $("#divbutton1").hide();
      $("#divbutton2").show();
      }
    });
    </script>
    [/cce]
    
    APP信息获取概况
    [cce]
    <script type="text/javascript">
    var x = navigator;
    document.write("CodeName=" + x.appCodeName);
    document.write("<br />");
    document.write("MinorVersion=" + x.appMinorVersion);
    document.write("<br />");
    document.write("Name=" + x.appName);
    document.write("<br />");
    document.write("Version=" + x.appVersion);
    document.write("<br />");
    document.write("CookieEnabled=" + x.cookieEnabled);
    document.write("<br />");
    document.write("CPUClass=" + x.cpuClass);
    document.write("<br />");
    document.write("OnLine=" + x.onLine);
    document.write("<br />");
    document.write("Platform=" + x.platform);
    document.write("<br />");
    document.write("UA=" + x.userAgent);
    document.write("<br />");
    document.write("BrowserLanguage=" + x.browserLanguage);
    document.write("<br />");
    document.write("SystemLanguage=" + x.systemLanguage);
    document.write("<br />");
    document.write("UserLanguage=" + x.userLanguage);
    </script>
    [/cce]
  • WPtouch插件对接百度轻应用

    什么是轻应用?请戳这里http://qing.baidu.com/

    博客在与百度轻应用对接的时候需要在头部添加一段代码,如果你的博客主题自带了移动主题,或者你的移动端首页和PC端是共用头部文件的,那就不用这么麻烦,直接改就好了。

    如果你用的WPtouch插件,这样的话就需要在插件文件夹里找到对应的头部文件进行修改,因为直接在PC端首页添加是无法通过验证的,应该是百度模拟的手机端吧,况且轻应用也是针对用户通过百度手机端页面搜索进来的,一般都是移动端用户,打开的是移动端页面。

    好了,WPtouch插件需要修改的文件是
    wp-content/plugins/wptouch-pro-3/themes/foundation/default/header.php

    笔记记录,我的轻应用正在对接中,通过了再告诉大家结果。

    唉,审核没通过,对接失败,不知道为什么。。。

    轻应用对接报告
    名称: 蓝冰博客 类目: 自媒体 渠道: 轻应用中心 结果: 对接失败
    报告内容:

    亲爱的开发者,
    你提交的应用“蓝冰博客”审核未通过。原因为:
    应用是PC站点或PC版WebApp,无法在移动端正常访问(页面展现有误),需要改成wap站或可适配移动端浏览器的PC站页面。

    请您根据此原因修改后重新提交。
    同时,您也可以访问此网址查看详细的接入规范 http://developer.baidu.com/wiki/index.php?title=docs/lightapp/standard

     

  • 阿里云安装sendmail

    阿里云的linux主机安装完成之后我装了AMH4.2的面板,但是发现不能发送邮件,搜索了一下,发现,默认是木有安装sendmail的,就是不支持mail函数,于是,那就自己装吧,有人说可以用smtp服务呀,没错,是可以,但是免费的smtp像QQ邮箱,网易邮箱什么的,群发或者每天的发送量是有限制的,不如用sendmail方便。

    第一步,使用管理终端登录centos,执行命令:

    yum install sendmail

    安装sendmail组件。

    第二步,安装完sendmail后还不能直接使用,还需要再设置一下hosts来解决sendmail启动慢和sendmail发送邮件慢的问题。

    修改服务器上的hosts文件(文件地址是/etc/hosts),默认的hosts一般是这样:

    127.0.0.1 localhost
    ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
    10.160.26.7 AY130916172459676d34Z

    注意第一行127.0.0.1后面只有一个localhost,第二行的::1不用管,双冒号1是针对ipv6用的,第三行一般会有一个ip,后面跟着一个长字符串(如果::1下面还有多行的话,记住那个和你控制台中的实例id不一样的那个),记下这个串。

    然后修改第一行,加上localhost.localdomain和第三行那个串,变成如下的样子

    127.0.0.1 localhost.localdomain localhost AY130916172459676d34Z
    ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
    10.160.26.7 AY130916172459676d34Z

    保存,上传覆盖。

    第三步,修改php.ini(阿里云centos6.5文件是在/etc/php.ini)中的sendmail_path配置,如果使用的是cgi(php-fpm),则修改php-fpm.conf文件。

    打开php.ini或php-fpm.conf,搜索找到sendmail配置的位置。修改sendmail_path,加上-f你的用户名@你的域名,如:

    sendmail_path = /usr/sbin/sendmail -fadmin@blce.me -t -i

    php-fpm.conf中的那行应该是类似:

    <value name=”sendmail_path”>/usr/sbin/sendmail -fadmin@blce.me -t -i</value>

    最后,保存重启你的web服务和sendmail服务。

    哦,对了,使用AMH4.2面板的用户要注意,需要安装AMChroot插件并对网站开启兼容模式,否则mail函数好像不能成功使用。

    附:一些文件可能目录和命令

    /etc/php.ini
    /usr/local/php/sbin/php-fpm
    /usr/local/php/etc/php-fpm.conf /usr/local/php/etc/php.ini

     

    service nginx restart
    service php-fpm restart
    service sendmail restart

  • AMH4.2搭建过程手稿

    在阿里云买了云主机之后就开着折腾linux主机了,之前一直在玩虚拟主机,环境配置什么的都不用自己动手,只要改改网站就好了,现在可要自己配环境,装面板了,着实纠结了很久,现记下手稿记录。

    更换系统CentOS6.5,之前用的CentOS5.8老是安装AMH4.2面板失败,不知道为什么。

    第一步,先挂在数据盘到home目录。

    centos挂载硬盘

    查看硬盘设备列表

    • fdisk -l

    对数据盘进行分区

    • fdisk /dev/vdb

    依次输入为:n p 1 回车 回车 p w(vdb为数据盘名称,请根据各自服务器商的实际名称自行更改)

    格式化成ext3的分区格式

    • fdisk -l
    • mkfs.ext3 /dev/vdb1

    /dev/vdb1为新的分区设备名称

    挂载新分区

    • mkdir /www或(/home)
    • mount /dev/vdb1 /www或(/home)

    /www 为wdcp默认安装分区 /home 为amh默认安装分区

    写入fstab 开机自动挂载

    • echo “/dev/vdb1 /www(或/home) ext3 defaults 0 0” >> /etc/fstab  

    查看是否挂载成功

    • df -h  

     

    然后增加了一个SWAP虚拟内存,也不知道需不需要。

    阿里云的主机 不是默认自带swap的

    1.进入目录

    cd /var/

    2.获取要增加的SWAP文件块(这里以1GB为例)

    dd if=/dev/zero of=swapfile bs=1024 count=1038336

    3.创建SWAP文件

    /sbin/mkswap swapfile

    4.激活SWAP文件

    /sbin/swapon swapfile

    5.查看SWAP信息是否正确

    /sbin/swapon –s

    6.添加到fstab文件中让系统引导时自动启动

    echo “/var/swapfile swap swap defaults 0 0” >>/etc/fstab

     

    第二步,安装AMH4.2面板。

    1) 使用 root 账号登录 Linux 服务器.

    2) 执行 amh 安装脚本。

    • wget http://amh.sh/file/AMH/4.2/amh.sh && chmod 775 amh.sh && ./amh.sh 2>&1 | tee amh.log

    3) 根据提示输入选择1~3选项。1为安装amh,2为卸载amh,3为退出不做操作。

    输入1回车,接着输入MySQL与AMH密码即进入安装流程,安装过程大约需10至20分钟(以服务器性能为准),最后如看到安装成功提示,说明系统已安装完成。

    成功安装后有必要请删除日志文件:amh.log,如安装失败需协助安装请把错误日志反馈我们。

    访问http://ip:8888 即可进入AMH web端管理,默认账号为admin。

    上面是官方的安装脚本,但是有时候如果安装不成功,或者很慢,可以试试别人做的镜像,比如如下的 

    • wget http://codes.yutian.org/amh/amh.sh; chmod 775 amh.sh; ./amh.sh 2>&1 | tee amh.log;

    第三步,把mysql数据库挂载到数据盘。

    amh 4.2版的mysql数据库路径默认在系统盘,可以做个软连接把数据库也挂载到数据盘,5.0版请忽略。

    • mv /usr/local/mysql/data /home/mysql/data
    • cd /usr/local/mysql/
    • ln -s  /home/mysql/data

     

    第四步,安装phpmyadmin模块。

    phpmyadmin模块可以在面板的【模块扩展】-【模块下载】里下载安装好,安装完之后就可以正常使用了,但是大家会注意到有这么几个提示,但是并不影响使用,但但是,我看着就是不爽啊,所以把他们解决掉吧。

    phpmyadmin407

    phpMyAdmin 高级功能尚未完全设置,部分功能未激活。请点击这里查看原因。
    http://amh.sh/bbs/post-5127-1-1.htm

    在面板的【模块扩展】-【模块下载】里下载mysqli模块安装

    配置文件现在需要一个短语密码。

    1、将 phpMyAdmin/libraries/config.default.php中的

    $cfg[‘blowfish_secret’] = ”; 改成 $cfg[‘blowfish_secret’] = ‘ithov.com’; (注:其中的’ithov.com′为随意的字符)

    2、在phpMyAdmin目录中,打开config.sample.inc.php,18行

    $cfg[‘blowfish_secret’] = ”; 改成 $cfg[‘blowfish_secret’] = ‘ithov.com’; (注:其中的’ithov.com′为随意的字符)

    这个密码用于Cookies的加密,以免多个PhpMyAdmin或者和其他程序共用Cookies时搞混。

    缺少 mcrypt 扩展。请检查 PHP 配置。
    下载mcrypt模块安装(我失败了),算了,不解决这个问题了。http://amh.sh/bbs/post-5084-1-1.htm

    最后一步,关于伪静态。

    可以参考下这个帖子 http://amh.sh/bbs/post-221-1-1.htm

    然后,大家可以在面板的【模块扩展】-【模块下载】里装一些自己想要的扩展功能。

  • Wdcp升级Php5.3

    Wdcp升级Php5.3

    在lanmp/wdcp/wdOS的当前版本中,默认的php都是用到5.2.17的版本
    如需要升级到php5.3的,可使用如下脚本升级
    (注:此升级无安全漏洞等原因,只为某些追求高版本或应用需求需要高版本,对于无这个必要的同学,可不用升级)

    wget http://down.wdlinux.cn/in/php_up53.sh
    sh php_up53.sh

    看到”php update is OK”提示
    表示,顺利完成

    在升级过程中也是几番折腾才搞定。

    运行以上脚本后出现以下错误

    gcc: Internal error: Killed (program cc1)

    Please submit a full bug report.

    See <http://bugzilla.redhat.com/bugzilla> for instructions.

    make: *** [ext/fileinfo/libmagic/apprentice.lo] Error 1

    make err

    解决办法:

    重启了阿里云服务器释放了下内存,同时将脚本里的内容进行了修改,修改如下

    disablerpath

    //修改成

    disablefileinfo

    再次运行脚本,升级成功~

    wdcp1 wdcp2

  • Linux中如何删除特殊文件名的文件

    我在阿里云的linux主机上传了一些文件,然后想用winSCP删除,但是删除不了,因为他的文件名有一些特殊字符,不过可以用以下方法删除,亲测有效!

    第一种方法
    在连接终端的命令窗口里
    cd /www/命令打开所在文件夹
    然后用ls -i命令列出文件夹里的所有文件
    如:
    $ ls -il
    342137 -rw-r–r– 1 tw tw 0 2008-11-20 08:57 /+Xy /+/8
    342137就是我们要找的inode数字。下面用find命令删除它。
    命令find . -inum 342137 -exec rm -i {} \;
    再回复y回车就删除了。

    第二种方法
    可以通过windows ftp过去删除任何文件名的文件。
    果然可以,搞不懂为什么winSCP的SFTP删除不了,厄。。。

  • 微信菜单在线QQ跳转

    可以在微信的自定义菜单中添加【在线QQ】,采用链接的格式,当用户点击了菜单之后,微信会自动调用手机QQ客户端并弹出与你设定的QQ号聊天的窗口,这样,用户就可以直接和你聊天了。

    自定义菜单链接为

    [cce]http://wpa.qq.com/msgrd?v=3&uin=123456789&site=qq&menu=yes[/cce]

    其中将123456789替换为你自己的QQ号。

    如果失败,请检查自己的QQ号是否已经开通了在线会话功能,点击传送门