原本是centOS5,现在升级到了ubuntu14.04
中间遇到了坑:wordpress用了阿里云服务里的memcache,不知道阿里提供的和开源版本有什么区别,ubuntu自带的源内的memcache不支持sasl。
会报Call to undefined method Memcached::setSaslAuthData()的错误,按照这篇:https://help.aliyun.com/knowledge_detail/5974954.html帖子的步骤修改了一下,可以用了。
原本是centOS5,现在升级到了ubuntu14.04
中间遇到了坑:wordpress用了阿里云服务里的memcache,不知道阿里提供的和开源版本有什么区别,ubuntu自带的源内的memcache不支持sasl。
会报Call to undefined method Memcached::setSaslAuthData()的错误,按照这篇:https://help.aliyun.com/knowledge_detail/5974954.html帖子的步骤修改了一下,可以用了。
#将src目录挂在到/dst/目录上,在执行umount操作之前原本/dst/目录中的内容不能被访问 mount -o bind /src/ /dst/
umount /src/
如果不存在环境变量TZ,会读取/etc/sysconfig/clock文件中的ZONE内容(需要引号);
若都不存在,则读取使用/etc/localtime文件内容所对应的时区。
如果设置了-Duser.timezone,则使用指定的时区;
在java中一般使用SimpleDateFormat来格式化及解析时间,如
Date d = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String f = sdf.format(d); System.out.println(f);
但是上边的代码存在一个问题,就是时区的问题,
SimpleDateFormat默认会使用系统时区来格式化当前Date对象表示的时间戳
这样在中国,如果服务器的时区为非东8区(GMT+8)时,会发生格式化出来的字符串并不是我们想要的。
所以在使用SimpleDateFormat时会设置时区
TimeZone tz = TimeZone.getTimeZone("GMT+8"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); sdf.setTimeZone(tz);
但还有一个问题:
在redhat/centos中,有时使用date 和date -R时显示的系统时区没有问题(东8区、CTS、+0800)但是在代码中不设置时区时使用SimpleDateFormat时,得到的仍然不是我们想要的答案这是因为jvm在读取linux的系统时区时会读取/etc/sysconfig/clock文件中的ZONE内容,当仅仅更改/etc/localtime文件时,date命令返回的时间正确,但jvm读取的时区却正确。
而如果存在环境变量TZ,则jvm最优先读取环境变量TZ中的内容。
所以,在使用java进行日期处理时,为了避免上述麻烦,请在代码中显示的设定时区:
sdf.setTimeZone(tz);
附设置为东八区的配置
1、java -Duser.timezone=Asia/Shanghai 2、/etc/sysconfig/clock文件内容ZONE="Asia/Shanghai" 3、ln -s /etc/localtime /usr/share/zoneinfo/Asia/Shanghai 4、export TZ=Asia/Shanghai
参考:
http://my.oschina.net/huawu/blog/4646
http://linux.vbird.org/linux_server/0440ntp.php
http://bugs.java.com/view_bug.do?bug_id=6456628
本文章主要内容为如何在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);
记录一下配置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>
以下操作请在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
1、临时修改:使用hostname命令即可使计算机名临时变为指定的名字,如hostname test就可以使计算机在重启之前的名字变为test。
2、永久修改:
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的用户表:
#-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启动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
安装完毕后即可。