解決圖層被Flash擋住的終極方法

如果網頁上有 Flash 的話,往往 Flash 會把彈出的圖層或是使用jQuery dialog彈出的視窗給擋住,(FF除外,IE6,7,8均出現被擋情況)

解決辦法就是給Flash設置透明的參數:wmode=”transparent”。

並在 embed 標籤中設置 wmode=”transparent”

如果還是有問題,可以嘗試給 Flash 外面增加一個 DIV 標籤,並給他設置 z-index:0; 的樣式即可。

針對flowplayer,需要修改代碼爲

$f(“fms”, {src:”/public/javascripts/flow/flowplayer-3.2.7.swf”,wmode: ‘transparent’}, {

…其他代碼

j j j

nginx无法正常显示图片和css的一个原因

前几天在服务器上面配置nginx,发现加入的一个网站无法正常显示图片和css样式表,百思不得其解。后来查看日志,发现

2011/07/19 18:33:06 [crit] 13321#0: *115 open() “/usr/local/nginx/proxy_temp/9/00/0000000009” failed (13: Permission denied) while reading upstream, client: 221.223.78.59,

这么一段,到网上一搜,才知道,原来是proxy_temp这个目录权限不够,因为nginx是用apache用户运行的,而这个目录是www权限,这就是修改了ngxin默认运行用户的后遗症。目录改完权限之后,问题解决。又学了一招。

j j j

Play framework+nginx反向代理无法获得remoteAddress解决办法

今天碰到一个问题,要在play里面判断客户端ip,从而判断用户来源,用nginx做反向代理,结果无论如何得到的都是127.0.0.1的地址

后来查了一些资料,记录如下:

1、play的application.conf的配置文件要加入一行:XForwardedSupport=127.0.0.1,10.0.0.25

When using an HTTP frontal server, request addresses are seen as coming from the HTTP server. In a usual set-up, where you both have the Play app and the proxy running on the same machine, the Play app will see the requests coming from 127.0.0.1.

Proxy servers can add a specific header to the request to tell the proxied application where the request came from. Most web servers will add an X-Forwarded-For header with the remote client IP address as first argument. If you enable the forward support in your Play app configuration:

XForwardedSupport=127.0.0.1,10.0.0.25
官方说法就是前端服务器会加入X-Forwarded-For这个参数,play就可以从前端服务器获取客户端ip地址了

不过光这些还不行

2、nginx配置文件还要在location里面加入

location / {
index  index.html index.htm index.jsp index.jspx index.do;
proxy_set_header        Host            $host;
proxy_set_header        X-Real-IP       $remote_addr;
proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass       http://127.0.0.1:9000;
client_max_body_size    1000m;  //上传文件设置最大可以上传1g档案
}

ok,问题解决,收工~~~

j j j

linux scp

假设本地主机linux100,远程主机linux200
一,在linux100主机里的用户
运行
#ssh-keygen -t rsa
结果如下
QUOTE:
Generating public/private rsa key pair.
Enter file in which to save the key (/home/.username/ssh/id_rsa):#回车
Enter passphrase (empty for no passphrase):#回车
Enter same passphrase again:#回车
Your identification has been saved in /home/.username /.ssh/id_rsa.
Your public key has been saved in /home/.username /.ssh/id_rsa.pub.
The key fingerprint is:
38:25:c1:4d:5d:d3:8946:67:bf:52:af:c3:17:0c username@localhost
Generating RSA keys:
Key generation complete.

会在用户目录~/.ssh/产生两个文件,id_rsa,id_rsa.pub
二,把linux100主机上的id_rsa.pub文件拷贝到linux200主机的root用户主目录下的.ssh目录下,并且改名为 authorized_keys
即:
/root/.ssh/authorized_keys
这样在linux100主机上使用scp命令复制文件到linux200上将不提示输入密码了,直接复制了。

反之亦然!

多主机认证,需要将id_rsa.pub先改名,在使用cat authorized_keys1.pub >> authorized_keys 追加即可

j j j

升级Mac os X Lion 下 Ruby经历

1、在lion下安装rails会提示你的ruby版本为1.8.7,而新版本的rails3.x需要1.9.x的ruby支持。

2、所以,必须对ruby进行升级,经过各种凌乱和不成功终于摸索出经验。现在记录一下。

3、通过app store安装xcode

4、xcode安装好后,打开xcode

5、选择preferences

6、选择downloads选项卡

7、安装command line tools(因为终端里没有gcc的编译环境)

8、打开终端输入下面两条命令(安装rvm,ruby多版本控制器,通过rvm安装最新版本的ruby)

9、curl -L get.rvm.io | bash -s stable

10、rvm install ruby 1.9.3

j j j

删除 OS X 文件打开方式中的重复项

很多果迷在使用 Mac 段时间之后,会发现很多类型的文件(如图片、纯文本文件等)点击右键后有很多种打开方式,最让人受不了的是其中有很多方式都是重复的,让人看着非常不爽,如上图。

其实,解决这个问题非常简单,你只需要在 OS X 的「终端」里运行下面这条命令就可以删除所有重复的打开方式。

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain system -domain user  && killall Finder

转自果迷网:http://www.guomii.com/posts/35919

j j j

jstack分析cpu占用100%

背景:

运行测试程序后,top命令发现某个进程(pid)占用cpu达到100%。

查看哪个线程占用最多资源:

ps mp pid -o THREAD,tid,命令查看这个进程下面的所有线程占用情况。

发现线程324占用最多。

使用jstack进行跟踪:

jstack pid 进行查看输出到临时文件

jstack 323 > test

将刚刚发现占用cpu最多的线程id(324)换算成16进制,324==》144

查看jstack 生成的文件:

下面可以看出是哪行代码导致,查看那行代码发现有死循环。跟踪解决完毕。

上面是查看cpu占用情况,举一反三,其他的相关资源分析方法应该是类似的。

这种查起问题来很有成就感,跟我们牛牛的开发学的一招以后大家也可以用起来~~~
http://testing.etao.com/node/615

j j j

Mac OS X下MySQL乱码

乱码问题表现:

  • 在“终端”中使用命令行对MySQL数据库中的数据进行操作时,可能无法插入非英文字符(例如,中文)
  • 使用应用程序(例如,php或java程序)对MySQL数据库中的数据进行操作时,插入的非英文字符,查询出来后,可能是乱码

使用“终端”程序连接到MySQL后,使用 show variables like ‘%character%’; 查看字符集的设置情况。
出现下面内容,其中,character_set_server的值为latin1,需要将其设置为utf8。

在/usr/local/mysql/目录下,有一个my.cnf文件,该文件是从模板文件得来的,这里的模板文件,就是/usr/local/mysql/support-files目录下的my-default.cnf文件。更多信息,可以参考http://dev.mysql.com/doc/refman/5.6/en/server-default-configuration-file.html。关于相关变量的信息,可以参考http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html

所做的修改,就是在my.cnf文件中进行的。

1、关闭mysql服务,可以在“系统偏好设置”->“MySQL”面板中进行,也可以使用以下命令进行开启、关闭、重启

Shell

1
2
3
sudo /usr/local/mysql/support-files/mysql.server start
sudo /usr/local/mysql/support-files/mysql.server stop
sudo /usr/local/mysql/support-files/mysql.server restart

2、修改my.cnf文件的读写权限,可以设置为777,只要当前用户可以对其进行写入就行。
在[mysqld]下面添加character-set-server = utf8
然后,保存,并将读写权限恢复到原来的状态(也就是755),这里之所以要恢复读写权限,是因为会出现警告:Warning: World-writable config file ‘/usr/local/mysql/my.cnf’ is ignored,该警告会导致所做的修改不会有效。

3、重新开启mysql服务

4、删除已经是乱码的数据,将数据重新插入。此时,再进行查询,出来的就不是乱码了。

j j j

macOS Sierra下mysql無法啟動

今天測試一個程式的時候突然發現mysql無法啟動。點了幾次都沒有反映,畫面提示:

第一時間打開google尋找答案,發現有人與我碰到同樣問題,特此紀錄一下。

首先排查目錄權限的問題,先查看一下mysql建立了哪些用戶和組。

# cat /etc/passwd | grep mysql
_mysql:*:74:74:MySQL Server:/var/empty:/usr/bin/false
# cat /etc/group | grep mysql
_mysql:*:74:

看來是用戶和組名字發生了變化,按照如下指令修改:

# sudo chown -R _mysql /usr/local/mysql/data

之後一切正常,mysql又可以順利啟動了。

j j j