2015年5月

OS X 解决Java在Terminal乱码问题

在网上常用的教程设置之后,总是会提示:

Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8

让人非常郁闷,虽然发现很多人确实都这样,但似乎没什么好的解决方案。

搜索了半天,最后差不多都想要放弃了,却发现了一个不太一样的教程。

~/.bash_profile中设置:

alias javac='javac -J-Dfile.encoding=UTF-8 -encoding UTF-8 '

alias java='java -Dfile.encoding=UTF-8 '

加入这两句话,世界又清静了。

当然还需要这么重启一下:. ~/.bash_profile

CentOS MySQL重命名数据库

心累的发现数据库名填写似乎是正确的,但是提示找不到该数据库,什么鬼,然后看了一下phpmyadmin,明明有。

后来发现是多了一个空格……当然也可以选择导入数据库,但是这里我想直接重命名了。使用RENAME DATABASE name1 TO name2失败了,似乎是从某一版本之后出于安全考虑取消了这个功能。于是只能选择修改文件夹名。

mysql -u username -p

链接到数据库。

接着输入:show variables like '%dir%';

找到

datadir                                 | /usr/local/mysql/data/   

mv folder newfoldername修改文件名。

CentOS PHP开启和关闭错误提示

为了避免各个不同的Linux/Unix系统的文件路径不一样,还是加了CentOS的前缀。

文件位置在\etc\php.ini打开之后找到display_errors = On改成Off关闭,On开启。

如果只是某一个文件需要关闭,那么只需要用error_reporting函数就可以了。


<?php

// 关闭所有PHP错误报告
error_reporting(0);

// Report simple running errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);

// 报告 E_NOTICE也挺好 (报告未初始化的变量
// 或者捕获变量名的错误拼写)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

// 除了 E_NOTICE,报告其他所有错误
// 这是在 php.ini 里的默认设置
error_reporting(E_ALL ^ E_NOTICE);

// 报告所有 PHP 错误 (参见 changelog)
error_reporting(E_ALL);

// 报告所有 PHP 错误
error_reporting(-1);

// 和 error_reporting(E_ALL); 一样
ini_set('error_reporting', E_ALL);

?>

具体见官方文档

需要注意的是,如果全局没有打开display_errors,那么error_reporting函数就算设置了也是没有用的。

CentOS 曲折的绑定域名以及绑定SSL的经历

这次由于APP需要搬家以及需要https的缘故,学校的服务器不能自由申请于是乎我们选择了绑定自己的域名,不过没想到还有这么多事情……略麻烦。

首先找到httpd.conf,我的在/etc/httpd/conf/httpd.conf
shift+G到最后

<VirtualHost *:80>
    ServerAdmin csvwolf@qq.com
    DocumentRoot /var/www/html/skyposter
    ServerName www.csvwolf.com
    ErrorLog logs/higpa.csvwolf.com-errorlog
    CustomLog logs/higpa.csvwolf.com-access_log common
</VirtualHost>

- 阅读剩余部分 -

CentOS 添加用户并分配权限

为了便于管理,需要多开一个用户,然后管理好权限,这里搜索了一下:

useradd -d /var/www/html/skyposter/ poster

这个添加用户权限,默认位置就再这里 并且只能操作这个目录下,当然在新建文件夹时还要做出权限控制。

passwd poster

定义好密码。

接着我是用root创建的文件夹,显然不行,需要把权限分配给指定用户,chmod自不必说,如果对于用户处理还能使用:

chown -R poster /var/www/html/skyposter

CentOS Beanstalkd安装使用

Beanstalkd是一个消息队列系统,大致就是为了实现推送服务,让前端快速响应所以需要这个服务。

在CentOS下安装很容易,本来以为需要编译,结果并不要:yum install beanstalkd

似乎需要PHP 5.2以上。不虚。

接着启动:

./beanstalkd -l 10.0.1.5 -p 11300

首页有教程,当然,查看了一下help似乎没有后台启动服务, 在命令之后加了个&人工后台。

./beanstalkd -l 10.0.1.5 -p 11300 &

添加到自启动,据说酱紫:

# 添加到自启动
echo "beanstalkd -l 127.0.0.1 -p 11300 -u nobody" >> /etc/rc.local 

然后也是因为那个while true的问题,在测试的时候不小心断不掉,对于这个问题,结束进程重新启动就好了。killall beanstalkd结束进程。

CentOS 抢救磁盘 /dev/mapper/VolGroup-lv_root 100%

今天发生了一件很可怕的事情,FTP上传上去的文件都变成了0kb,然后查了一下,基本上都说是因为磁盘不够用——怎么可能,没放多少东西呀。

然后去找错误日志,不得不说这个错误日志也找的心累,关于系统的Logs,基本上都在/var/log/,关于FTP的部分,在messages里,打开一看:

May  2 11:17:13 localhost auditd[1178]: Audit daemon is low on disk space for logging
May  2 11:17:13 localhost auditd[1178]: Audit daemon is suspending logging due to low disk space.

WTF,这不科学。

- 阅读剩余部分 -