wordpress搬迁到新浪sae

今天花了几个小时终于搞定了,把网站从主机屋搬迁到了新浪sae。写这些东西确实有点小菜,老鸟莫笑。首先分析一下难点在哪里。主机屋是普通的虚拟主机,搭建的时候只要把数据库导入数据库,然后把网站上传到服务器上就可以了。但是sae的架构不一样,但是理解起来也简单。sae采用的是分布式的架构,你的资源和你的数据库是保存在别的服务器上的,比如其附件是单独存在saestorage中,不能存放在代码目录中的,这些问题我想还好理解。同时也理解了大型应用是如何处理这些压力的。

废话少说,首先通过ftp把主机屋上的网站下载到本地。数据库通过主机屋提供的 PHPMyAdmin进行全部备份到本地。如果不确定有没有没问题的话可以先在本地搭建环境跑一边。

然后创建一个php应用 具体教程在这里

http://sae.sina.com.cn/?m=devcenter&catId=20

但是。。。。。 sae如果直接装我们自己搭建的wordpress会有很多问题的,因为它是分布式的架构,一种简便的方法是我们之间创建一个WordPress for SAE 地址在:http://sae.sina.com.cn/?m=apps&a=detail&aid=1

安装完成后我们找到创建的应用〉服务管理〉管理Mysql 进入phpMyAdmin管理界面 里面的表全删掉,然后导入我们 之前从主机屋上备份的sql文件。

然后在本地创建一个空文件夹,用TortoiseSVN迁出版本库中的文件到空白文件夹中。svn具体教程在

http://sae.sina.com.cn/?m=devcenter&a=index&catId=212

下一步我把我们之前本地的网站中的 wp-contentuploads文件夹单独剪切出来,其它文件拷贝到版本库中,(就是你迁出的那个默认目录是 1) 注意同名不要覆盖掉版本库中的文件,然后commit 到服务器上。

然后利用另外一个工具cyberduck 把文件提交到saeStorage中,

也可以在

下载地址:

http://src.sae.sinacdn.com/clients/Cyberduck-Installer-4.2.1.exe

使用方法

http://sae.sina.com.cn/?m=devcenter&catId=204&content_id=375

同时可以在服务管理〉storage中查看更多内容。。

 

最后 如果少的话慢慢修改你文章中 相册中的附件地址吧(要改成storage中的地址,比如

http://应用名-wordpress.stor.sinaapp.com/uploads/xxx.jpg)。如果多的用sql要快很多(这个你就自己去写吧).

 

Apache与Tomcat整合时中文参数乱码的解决

把Apache2.2与Tomcat6进行整合之后,当提交带有中文参数的请求时,经常出现奇怪的现象。在直接访问Tomcat时,可以正常返回结果的请求,一旦经过Apache的代理,就出现问题。

通过Debug发现,Tomcat在经过和不经过Apache代理的两种情况下,得到的中文参数是不同的,而后者是乱码。

从网上查了一下资料,发现Apache在使用AJP13模式代理到Tomcat时,也应该为Tomcat的AJP13设定一些参数。

具体说来,应该在Tomcat的server.xml中设置为:

<Connector port=”8085″ protocol=”HTTP/1.1″ connectionTimeout=”20000″ redirectPort=”8443″
<!– 防止中文乱码 –>
useBodyEncodingForURI=”true” URIEncoding=”UTF8″ />

<Connector port=”8009″ protocol=”AJP/1.3″ redirectPort=”8443″
<!– 防止中文乱码 –>
useBodyEncodingForURI=”true” URIEncoding=”UTF8″ />

android UI布局常见问题

1.Android fill_parent、wrap_content和match_parent的区别

三个属性都用来适应视图的水平或垂直大小,一个以视图的内容或尺寸为基础的布局比精确地指定视图范围更加方便。

1)fill_parent

设置一个构件的布局为fill_parent将强制性地使构件扩展,以填充布局单元内尽可能多的空间。这跟Windows控件的dockstyle属性大体一致。设置一个顶部布局或控件为fill_parent将强制性让它布满整个屏幕。

2) wrap_content

设置一个视图的尺寸为wrap_content将强制性地使视图扩展以显示全部内容。以TextView和ImageView控件为例,设置为wrap_content将完整显示其内部的文本和图像。布局元素将根据内容更改大小。设置一个视图的尺寸为wrap_content大体等同于设置Windows控件的Autosize属性为True。

3)match_parent
Android2.2中match_parent和fill_parent是一个意思 .两个参数意思一样,match_parent更贴切,于是从2.2开始两个词都可以用。那么如果考虑低版本的使用情况你就需要用fill_parent了

2 五种布局及其重要标签

  •  框架布局FrameLayout重要标签:

android:layout_gravity

参考    http://wenku.baidu.com/view/12ca5929b4daa58da0114aea.html

android:background

android:layout_marginTop

android:layout_marginBottom

  •  线性布局LinearLayout

  android:orientation

它确定了LinearLayout的方向,其值可以为

*vertical, 表示垂直布局

*horizontal, 表示水平布局

android:layout_gravity

同上。

android:layout_weight

  •  框架布局 FrameLayout

关于设置android:layout_marginTop等属性失效

框架布局是直接覆盖在原图层上的。如果要定位我们需先设置     android:layout_gravity=”left”

然后再设置android:layout_marginTop等属性 否则无效

  • 相对布局RelativeLayout

相对布局 RelativeLayout 允许子元素指定它们相对于其父元素或兄弟元素的位置,这是实际布局中最常用的布局方式之一。它灵活性大很多,当然属性也多,操作难度也大,属性之间产生冲突的的可能性也大,使用相对布局时要多做些测试。

RelativeLayout相对布局

RelativeLayout相对布局

下面是常用的一些属性

RelativeLayout用到的一些重要的属性:

第一类:属性值为true或false
android:layout_centerHrizontal 水平居中
android:layout_centerVertical 垂直居中
android:layout_centerInparent 相对于父元素完全居中
android:layout_alignParentBottom 贴紧父元素的下边缘
android:layout_alignParentLeft 贴紧父元素的左边缘
android:layout_alignParentRight 贴紧父元素的右边缘
android:layout_alignParentTop 贴紧父元素的上边缘
android:layout_alignWithParentIfMissing 如果对应的兄弟元素找不到的话就以父元素做参照物

第二类:属性值必须为id的引用名“@id/id-name”
android:layout_below 在某元素的下方
android:layout_above 在某元素的的上方
android:layout_toLeftOf 在某元素的左边
android:layout_toRightOf 在某元素的右边

android:layout_alignTop 本元素的上边缘和某元素的的上边缘对齐
android:layout_alignLeft 本元素的左边缘和某元素的的左边缘对齐
android:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐
android:layout_alignRight 本元素的右边缘和某元素的的右边缘对齐

第三类:属性值为具体的像素值,如30dip,40px
android:layout_marginBottom 离某元素底边缘的距离
android:layout_marginLeft 离某元素左边缘的距离
android:layout_marginRight 离某元素右边缘的距离
android:layout_marginTop 离某元素上边缘的距离

EditTextandroid:hint

设置EditText为空时输入框内的提示信息。

android:gravity
android:gravity属性是对该view 内容的限定.比如一个button 上面的text. 你可以设置该text 在view的靠左,靠右等位置.以button为例,android:gravity=”right”则button上面的文字靠右

android:layout_gravity
android:layout_gravity是用来设置该view相对与起父view 的位置.比如一个button 在linearlayout里,你想把该button放在靠左、靠右等位置就可以通过该属性设置.以button为例,android:layout_gravity=”right”则button靠右

android:layout_alignParentRight
使当前控件的右端和父控件的右端对齐。这里属性值只能为true或false,默认false。

android:scaleType
android:scaleType是控制图片如何resized/moved来匹对ImageView的size。ImageView.ScaleType / android:scaleType值的意义区别:

CENTER /center 按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示

CENTER_CROP / centerCrop 按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长(宽)

CENTER_INSIDE / centerInside 将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽

FIT_CENTER / fitCenter 把图片按比例扩大/缩小到View的宽度,居中显示

FIT_END / fitEnd 把图片按比例扩大/缩小到View的宽度,显示在View的下部分位置

FIT_START / fitStart 把图片按比例扩大/缩小到View的宽度,显示在View的上部分位置

FIT_XY / fitXY 把图片不按比例扩大/缩小到View的大小显示

MATRIX / matrix 用矩阵来绘制,动态缩小放大图片来显示。

** 要注意一点,Drawable文件夹里面的图片命名是不能大写的。

 

 

 

 

其他

Android中的Layout_weight详解

布局文件是:

<?xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android
    android:orientation=”horizontal”
    android:layout_width=”fill_parent”
    android:layout_height=”fill_parent”
    >
<Button
android:layout_width=”fill_parent”
android:layout_height=”wrap_content”
android:layout_weight=”1″
android:text=”Button1″
/>
<Button
android:layout_width=”fill_parent”
android:layout_height=”wrap_content”
android:layout_weight=”2″
android:text=”Button2″
/>
</LinearLayout>
出现的布局是:button1占了2/3,button2占了1/3。
57e34f80d09736ec6d811907.jpg.png
但是如果将布局文件中的button的属性android:layout_width=”fill_parent”改为android:layout_width=”wrap_content”那么出现的结果为:button1占了1/3,button2占了2/3。
3.png

 

tomcat中的一些配置

1 若get方式传送的数据编码错误可以尝试修改server.xml

<Connector port=”8080″ protocol=”HTTP/1.1″

connectionTimeout=”20000″

redirectPort=”8443″ URIEncoding=”utf-8″ />

端口号也可以在这修改