Tag: FreeBSD
在 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 的 …
当网站从 http 转换到 https 后,想自动将前往 http 的访客自动导向到 https 页面,以下是 Nginx 设定 http 自动转址到 https 连线的设定方法。 以下假设网站域名是 mydomain.com, 会将所有 http 的连线自动导向到 https 的页面, 另外会将没有 www 的连线自动导向到 www 的网页: 加入以下三个 block, …
当 .tar 或 .tar.gz 压缩档容量十分大, 在解压前想先检视压缩档内的内容, 可以在 tar 指令加上 -tf 参数实现, 例如: $ tar -tf myfile 以上指令会将 myfile 内所有档案列出, 想要进行档案搜寻, 可以用 pipe 配合 grep 使用, 例如想列出所有 .php 档案, 可以这样: …
今天编译安装 Apache, Apache 的默认安装目录是 /usr/local/apache2, 但我将它安装到 /usr/local/apache, 但在编译时出现以下错误: 原因可能是之前编译 Apache 时, 有一些纪录是安装到 /usr/local/apache2 所致, 解决方法是有两个: 1. 执行 make clean 指令, 再重新编译。 2. 将原始码的目录删除, 再重新解压 Apache 的源始码, 再进行编译安装即可。
Linux 下找档案很多时会用上 find 指令,当用 find 指令找到档案或目录后,可以在后面加上 -exec 参数,来对每一个找到的档案或目录执行特定指令。 find 指令加上 -exec 参数的具体语法是这样: $ find /path/to -name “filename” -exec command {} \; 在 -exec 前面是 find 指令找出想要的档案,在 -exec 后面的 command …
不管系统管理还是写程式,在档案内对字串进行搜寻并取代十分常用,在 Unix Like 环境下常会用 sed 或 perl 做 search & replace. 如果在开启档案后需要取代字串,其实在 vi 及 vim 内同样可以做搜查及取代字串,做法跟 sed 差不多,以下是 vi 做搜寻及取代的语法: :%s/search_from/replace_to/g 以上 vi 的语法会将档案内,所有 “search_from” 的字串替换成 “replace_to”。 将上面指令最后加上一个 “c” …
当需要在两台主机间执行指令,可以用 SSH 直接传送要执行的指令,该远端主机直接执行,而无需登入另一台主机。 以下是具体指令的语法: 上面的 “user” 是登入帐号的使用者名称,remote.server 是远端主机,而 “ls -l” 是要执行的指令。当执行以上指令后,如果系统没有设定自动免密码登入,会询问远端主机的密码,输入密码后会在远端执行指令,并输出执行结果。 如果要同时执行多个指令,可以用 “;” 或 “&&” 分隔,例如: 或 如果需要用 Shell Script 执行远端指令,当需要在指令加入变量,需要将上面的单引号,改成双引号,例如: 最后是执行类似 top 这类互动模式的指令,只要加入 -t 选项即可: 除了 top 后,也可以用在 …
很多时在写程式时, 需要将一些数值补零, 例如 1 显示为 001, 以下是 Shell Script 的实现方法: Shell Script 的 printf 函式已经可以做到自动补零, 例如想将 8 显示为 “008”, 可以这样写: 除了在数值的前面补零外, 也有一种情况是在小数点补零, 例如数值 “8” 是整数, 但也要强制显示小数点后一个位, 可以这样写: 如果想将上面的结果放到变量, 可以这样写: …
Shell Script 里面的指令, 如果没有用条件控制 (例如 if), 不管之前的指令执行结果如何, 每个指令也会逐一执行, 例如: 上面的程式码很简单, 只是用 cd 指令转换到 /path/dir 目录, 然后执行 rm 指令, 将所有 .txt 结尾的档案删除。 但如果执行 cd 指令的时出错, 例如 /path/dir 目录不存在, 或者没有权限进入, 那便会在当前目录删除所有 …
如果透 SSH 连接到 Linux Server, 用 vi 或 vim 开启档案后, 要将里面的文章复制并贴上, 很多时会用 SSH Client 的复制贴上功能。 例如以 Putty 为例, 用鼠标 Highlight 文字会复制, 按鼠标右键会贴上。 但这种方法要在键盘跟鼠标间操作很麻烦, 其实如果要将整行复制, 可以用 vi 内建的复制贴上功能, 全部在键盘完成, 方法如下: …