GoogleAdsense的ads.txt未找到的解决方案

前提:

请十分确认ads.txt已经正确配置,即访问如www.liuhe36.cn/ads.txt返回的数据是正确的,如果无法访问到ads.txt,请确认nginx配置。

继续:

在确认ads.txt可以访问,但google还是提示ads.txt找不到时,可能是因为某些特殊字符导致。

请登录服务器,是使用如下命令检查文件的末尾是否存在其他字符。

od -c /var/www/html/ads.txt
0000000   g   o   o   g   l   e   .   c   o   m   ,       p   u   b   -
0000020   4   0   6   0   1   8   8   2   6   7   6   4   2   3   8   5
0000040   ,       D   I   R   E   C   T   ,       f   0   8   c   4   7
0000060   f   e   c   0   9   4   2   f   a   0  \n

注意上边最后一个字符,我的这个文件是多了个\n,想删除掉使用如下命令

1、编辑

vim /var/www/html/ads.txt 

2、在vim中输入

:set binary
:set noendofline
:wq

3、检查是否成功

od -c /var/www/html/ads.txt

android模拟点击程序并截图

本文章主要内容为如何在PC或服务器上为指定android程序模拟随机点击并对其进行截图

主要解决的问题是获取android设备上当前时间所显示的内容,截图后保存到本地(服务器端),而非android设备上。

主要利用的工具为chimpchat.jar与ddmlib.jar两个jar包,这两个jar包包含在android sdk内,一般在sdk/tools/lib/下,这两个jar包所完成的工作不过是封装了一些协议及一些常用操作,如操纵设备点击、拖动等,也包含了将命令(cmd)在android设备上执行的功能。

核心代码如下,代码展示了对一个应用程序进行随机点击并截图保存,里边用到了monkey自动化测试工具来完成随机点击事件:

ChimpChat c = ChimpChat.getInstance();
//等待设备连接
IChimpDevice paramIChimpDevice = c.waitForConnection();
//截图
paramIChimpDevice.takeSnapshot();
//cmd内容为执行monkey命令
paramIChimpDevice.shell(cmd, 5 * 1000 * 60);

继续阅读“android模拟点击程序并截图”

apache虚拟主机配置

记录一下配置apache的虚拟主机(virtual host)配置,可基于以下内容配置apache的单ip多域名,或多ip多域名访问

一般情况下,我们新建一个站点时都是新建一个配置文件而不是直接修改httpd.conf文件,这样做的好处是:一旦站点迁移,只需要复制新建的配置文件就可以了。

一个新配置文件的构成如下:

#监听某个端口
Listen 80
#为一个基于域名的虚机主机(VirtualHost)指定一个ip地址(端口),httpd2.4版本不需要此属性
NameVirtualHost *:80
#建立虚拟主机,可以使用ip地址和通配符:如*:80或115.28.52.195:80
<VirtualHost *:80>
      ServerAdmin webmaster@liuhe36.cn
      ServerName liuhe36.cn
      ServerAlias www.liuhe36.cn
      DocumentRoot /mnt/myDisk/wordpress
      <Directory />
          Options FollowSymLinks
          AllowOverride All
          Order allow,deny
          allow from all
      </Directory>
</VirtualHost>

继续阅读“apache虚拟主机配置”

linux增加和关闭swap

以下操作请在root用户下完成,文件位置可自拟

#创建一个1G的文件
dd if=/dev/zero of=/swapfile bs=1024 count=1048576

#格式化为swap文件
mkswap /swapfile

#使swap生效
swapon /swapfile

#修改启动挂载
echo "/swapfile swap swap defaults 0 0" >> /etc/fstab

修改linux名字

1、临时修改:使用hostname命令即可使计算机名临时变为指定的名字,如hostname test就可以使计算机在重启之前的名字变为test。

2、永久修改:

  • 修改/etc/sysconfig/network文件中的hostname的值为你期望的名字。
  • 一般情况下我们还需要修改hosts文件,当然如果你完全不知道修改host是为了做什么的,你最好确认一下hosts文件是否含有原来的服务器名,并且集群内的其他服务器如果使用服务器名来寻找本台服务器的话,那么在你修改服务器名之前则需要更改其他服务器的dns server的配置或者其hosts文件。hosts文件位于/etc/hosts

关闭linux服务

chkconfig --list #列出所有的系统服务

chkconfig --add httpd #增加httpd服务

chkconfig --del iptables #删除iptables服务(关闭防火墙)

chkconfig --list #列出系统所有的服务启动情况

chkconfig --list mysqld #列出mysqld服务设置情况

chkconfig mysqld on #使mysqld服务开机启动(运行级别2、3、4、5)

chkconfig iptables off #禁止mysqld服务开机启动(关闭防火墙)

mysql远程访问

经常的,我们遇到这种情况:在单机下使用mysql进行测试、开发都没有问题,但是一旦将应用与数据库服务器分离,就发生不能连接到mysql的情况。这是由于默认情况下mysql账户不支持远程访问而导致的,所以需要调整一下mysql的用户信息。

首先连接至mysql,查看mysql的用户表:

#-p部分填写root的密码
mysql -u root -p qwer1234
--查询mysql用户表
select host, user from user;

结果如下所示:

+———–+——+——————————————-+
| host      | user | password                                  |
+———–+——+——————————————-+
| localhost | root | *D75CC763C5551A420D28A227AC294FADE26A2FF2 |
+———–+——+——————————————-+

这里边可能存在多条记录。

接下来有以下几种方式能够达到我们远程访问mysql的目的:

1、通过授权实现

GRANT ALL PRIVILEGES ON *.* TO ‘root'@'%' IDENTIFIED BY ‘MyPassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;

注意密码需要填写正确,否则对原来的root用户不会修改成功,并且也会产生其他奇怪的问题(如数据库怎么也连接不上了,这时候要把刚才的user表里的数据清理一下)

另外上边语句的含义其实就是授权root用户在任意服务器(由%指定,也可@后接具体的服务器ip来达到指定ip才能访问mysql的目的)上均可访问mysql。

2、通过直接改表实现

update user set host = '%' where user = 'root';
commit;

重启mysql。

这里边容易发生user表数据冲突,所以在更改之前一定要确认好更新所影响的范围。

在64位linux系统无法启动avd及SD Card报错的问题

64位的linux下使用AVD启动android模拟器会报错,centOS会提示bad ELF interpreter而ubuntu只会提示NoSuchFile

这是由于从google下载的android虽然是x86_64的sdk包,但里边实际上是含有32位的程序的(或者说是对32位的相关包有依赖),所以需要安装32位的lib

对于ubuntu

sudo apt-get install ia32-libs lib32ncurses5 lib32stdc++6

对于centOS

yum install glibc.i686
yum install libstdc++.so.6

安装完毕后即可。

ssh免密码登陆

ssh 无密码登录要使用公钥与私钥。linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例。

有机器A(192.168.1.155),B(192.168.1.181)。现想A通过ssh免密码登录到B。

1.在A机下生成公钥/私钥对。
[chenlb@A ~]$ ssh-keygen -t rsa -P ”

-P表示密码,-P ” 就表示空密码,也可以不用-P参数,这样就要三车回车,用-P就一次回车。
它在/home/chenlb下生成.ssh目录,.ssh下有id_rsa和id_rsa.pub。

2.把A机下的id_rsa.pub复制到B机下,在B机的.ssh/authorized_keys文件里,我用scp复制。
[chenlb@A ~]$ scp .ssh/id_rsa.pub chenlb@192.168.1.181:/home/chenlb/id_rsa.pub
chenlb@192.168.1.181’s password:
id_rsa.pub 100% 223 0.2KB/s 00:00

由于还没有免密码登录的,所以要输入密码。

3.B机把从A机复制的id_rsa.pub添加到.ssh/authorzied_keys文件里。
[chenlb@B ~]$ cat id_rsa.pub >> .ssh/authorized_keys
[chenlb@B ~]$ chmod 600 .ssh/authorized_keys

authorized_keys的权限要是600。

4.A机登录B机。
[chenlb@A ~]$ ssh 192.168.1.181
The authenticity of host ‘192.168.1.181 (192.168.1.181)’ can’t be established.
RSA key fingerprint is 00:a6:a8:87:eb:c7:40:10:39:cc:a0:eb:50:d9:6a:5b.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘192.168.1.181’ (RSA) to the list of known hosts.
Last login: Thu Jul 3 09:53:18 2008 from chenlb
[chenlb@B ~]$

第一次登录是时要你输入yes。

现在A机可以无密码登录B机了。

小结:登录的机子可有私钥,被登录的机子要有登录机子的公钥。这个公钥/私钥对一般在私钥宿主机产生。上面是用rsa算法的公钥/私钥对,当然也可以用dsa(对应的文件是id_dsa,id_dsa.pub)

想让A,B机无密码互登录,那B机以上面同样的方式配置即可。

本文转自:http://chenlb.iteye.com/blog/211809