Tag: FreeBSD

Nginx 设定密码保护目录

在 Apache 设定密码保护目录会使用 .htpasswd 这种档案,在 Nginx 有提供 auth_basic 模组,设定也很方便,以下是 Nginx 设定密码保护目录的方法。 首先建立储存使用者名称及加密密码的档案 .htpasswd,可以用 htpasswd 指令完成,以下会设定使用者名称是 username,密码档放在 /var/www/domain.com/member/ 目录下面: # htpasswd -c /var/www/domain.com/member/.htpasswd username 然后会出现提示,要求设定密码。 如果系统内没有安装 htpasswd,可以手动建立这个档案,每个使用者一行纪录。 在手动建立密码档前,需要先用 Perl 的 …

Nginx 设定 http 自动导向 https

当网站从 http 转换到 https 后,想自动将前往 http 的访客自动导向到 https 页面,以下是 Nginx 设定 http 自动转址到 https 连线的设定方法。 以下假设网站域名是 mydomain.com, 会将所有 http 的连线自动导向到 https 的页面, 另外会将没有 www 的连线自动导向到 www 的网页: 加入以下三个 block, …

检视,搜寻,解压 .tar / .tar.gz 内个别档案

当 .tar 或 .tar.gz 压缩档容量十分大, 在解压前想先检视压缩档内的内容, 可以在 tar 指令加上 -tf 参数实现, 例如: $ tar -tf myfile 以上指令会将 myfile 内所有档案列出, 想要进行档案搜寻, 可以用 pipe 配合 grep 使用, 例如想列出所有 .php 档案, 可以这样: …

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 …

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 后,也可以用在 …

Shell Script 将数值补零

很多时在写程式时, 需要将一些数值补零, 例如 1 显示为 001, 以下是 Shell Script 的实现方法: Shell Script 的 printf 函式已经可以做到自动补零, 例如想将 8 显示为 “008”, 可以这样写: 除了在数值的前面补零外, 也有一种情况是在小数点补零, 例如数值 “8” 是整数, 但也要强制显示小数点后一个位, 可以这样写: 如果想将上面的结果放到变量, 可以这样写: …

Shell Script 遇到错误时自动退出离开

Shell Script 里面的指令, 如果没有用条件控制 (例如 if), 不管之前的指令执行结果如何, 每个指令也会逐一执行, 例如: 上面的程式码很简单, 只是用 cd 指令转换到 /path/dir 目录, 然后执行 rm 指令, 将所有 .txt 结尾的档案删除。 但如果执行 cd 指令的时出错, 例如 /path/dir 目录不存在, 或者没有权限进入, 那便会在当前目录删除所有 …

vi / vim 整行复制/剪下/贴上

如果透 SSH 连接到 Linux Server, 用 vi 或 vim 开启档案后, 要将里面的文章复制并贴上, 很多时会用 SSH Client 的复制贴上功能。 例如以 Putty 为例, 用鼠标 Highlight 文字会复制, 按鼠标右键会贴上。 但这种方法要在键盘跟鼠标间操作很麻烦, 其实如果要将整行复制, 可以用 vi 内建的复制贴上功能, 全部在键盘完成, 方法如下: …