标签 命令 下的文章

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,这不科学。

- 阅读剩余部分 -

brew install ruby后替换版本

安装Rails推荐的版本是Ruby2.2.0,而Mac自带的是2.0.0,看来又是要折腾的部分啊。

找了半天找到一篇mac mini brew安装了php54,但是我的工作php还是5.3.15?

因为我遇到了相同的问题,所以就照着下面说的很简单的方法做了:

ls -al /usr/local/bin/php

把PHP改成ruby的路径,用which ruby找到路径

cat ~/.bash_profile 
export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

搞定了,接下来就可以安装rails了。

Mac OSX PHP安装mcrypt指南

在Laravel时我发现无法正常使用,于是开始折腾。
报错:

undefined constant MCRYPT_RIJNDAEL_128 - assumed 'MCRYPT_RIJNDAEL_128'
类似于这样。

于是要查了一下,要安装这个模块:brew install mcrypt,成功,接下来根据PHP,当时我的是5.4的,运行了一下:brew install php54-mcrypt,失败。

查了一下先执行安装:

brew tap homebrew/dupes
brew tap josegonzalez/homebrew-php

安装完毕后在此运行,然后重启apache,发现没用,phpinfo()里也没有显示,于是抱着试试看的心态运行了brew install php55-mcrypt,万万没想到!然后默默的就变成php5.5了……但是php -v仍然是5.4。运行brew link --overwrite php55,此时指向5.5了,但是仍然不行。

网上说,在php.ini里写入extension=mcrypt.so就行了。
但是关键是,php.ini和mcrypt.so的位置我都不知道。

再次抱着试试看的心态,我运行了:brew link php55-mcrypt,成功获得了mcrypt的地址。
然后:
sudo vim /etc/php.ini
写入:
extension=/usr/local/Cellar/php55-mcrypt/5.5.23/mcrypt.so

重启apache,搞定。

在OSX中,重启apache的命令是:sudo apachectl restart