Apache 编译错误 – cannot install ‘libaprutil-1.la’ to a directory

今天编译安装 Apache, Apache 的默认安装目录是 /usr/local/apache2, 但我将它安装到 /usr/local/apache, 但在编译时出现以下错误: 原因可能是之前编译 Apache 时, 有一些纪录是安装到 /usr/local/apache2 所致, 解决方法是有两个: 1. 执行 make clean 指令, 再重新编译。 2. 将原始码的目录删除, 再重新解压 Apache 的源始码, 再进行编译安装即可。

Linux find 指令的 exec 参数

Linux 下找档案很多时会用上 find 指令,当用 find 指令找到档案或目录后,可以在后面加上 -exec 参数,来对每一个找到的档案或目录执行特定指令。 find 指令加上 -exec 参数的具体语法是这样: $ find /path/to -name “filename” -exec command {} \; 在 -exec 前面是 find 指令找出想要的档案,在 -exec 后面的 command …

MySQL 删除字段内所有 \n 及 \r 字符

今天在一个系统上除错, 发现用以下 SQL 指令找不到资料: 要用以下 SQL 指令才可以找到: 用 phpMyAdmin 检查那些资料好像没问题, 再细心找才发现有些资料的字段结尾有 “\n” 或 “\r”, 出现这个问题的原因大栏是在插入资料时没有删除掉 “\n” 这类字符, 插入的部份很容易解决, 再来要将原有的资料内的 “\n” 及 “\r” 删除。 在处理前先将资料表备份, 然后可以用以下 SQL 指令将所有 “\n” 及 …

解决 mysqldump Access denied …… ‘information_schema’ when using LOCK TABLES

原本用 mysqldump 备份 MySQL 一直没有问题, 但近日在一台新主机上用 mysqldump 备份所有资库时, 出现以下错误: mysqldump: Got error: 1044: Access denied for user ‘root’@’localhost’ to database ‘information_schema’ when using LOCK TABLES 我也肯定输入的 MySQL 密码没有问题, 因为已经将登入资储存, …

vi / vim 搜寻并取代字串

不管系统管理还是写程式,在档案内对字串进行搜寻并取代十分常用,在 Unix Like 环境下常会用 sed 或 perl 做 search & replace. 如果在开启档案后需要取代字串,其实在 vi 及 vim 内同样可以做搜查及取代字串,做法跟 sed 差不多,以下是 vi 做搜寻及取代的语法: :%s/search_from/replace_to/g 以上 vi 的语法会将档案内,所有 “search_from” 的字串替换成 “replace_to”。 将上面指令最后加上一个 “c” …

用 SSH 在远端主机执行指令

当需要在两台主机间执行指令,可以用 SSH 直接传送要执行的指令,该远端主机直接执行,而无需登入另一台主机。 以下是具体指令的语法: 上面的 “user” 是登入帐号的使用者名称,remote.server 是远端主机,而 “ls -l” 是要执行的指令。当执行以上指令后,如果系统没有设定自动免密码登入,会询问远端主机的密码,输入密码后会在远端执行指令,并输出执行结果。 如果要同时执行多个指令,可以用 “;” 或 “&&” 分隔,例如: 或 如果需要用 Shell Script 执行远端指令,当需要在指令加入变量,需要将上面的单引号,改成双引号,例如: 最后是执行类似 top 这类互动模式的指令,只要加入 -t 选项即可: 除了 top 后,也可以用在 …

Linux 删除 100GB 以上大容量档案

在 Linux 下要删除档案,可以用 rm 指令很简单地完成,但 rm 指定遇上容量很大的档案时,例如 100GB 以上,删除时会占用很多系统资源,如果系统的资源很紧张,也有可能在执行时当掉。 以下会介绍在 Linux 下要删除大容量档案, 而不会占用过多系统资源 (I/O) 的方法。 这个方法的原理是先清空档案内容,然后再用 rm 删除。Linux 下清空档案的方法有很多,以下列出其中两种,并假设要删除的档案是 big-file.log: $ echo “” > big-file.log $ cat /dev/null > …

Ubuntu 开放 root 登入 ssh

基于保安理由, Ubuntu 默认不能用 root 登入 ssh, 但如果是用作内部测试的主机, 为了方便使用, 可以用以下方法解除限制: 首先要重新设定 Ubuntu 的 root 密码, 输入以下指令: $ sudo passwd root 修改了 root 密码后, 开启 sshd 的设定档: $ sudo vi /etc/ssh/sshd_config …

CentOS 编译安装升级 OpenSSL

CentOS 默认安装的 OpenSSL 版本很低, 如果需要在 CentOS 安装较新版本的 OpenSSL, 需要透过编译原始码的方法安装, 以下是 CentOS 7 透过编译原始码的方法安装 OpenSSL 的方法。 如果系统内已经安装了默认的 OpenSSL 版本, 需要先将默认的版本移除, 执行以下指令用 yum 移除: # yum remove openssl openssl-devel -y openssl-1.0.1e-60.el7_3.1.x86_64 …