SQLite 提供触发器、日志记录和序列。SQLite 还是无类型的,除非您指定类型。例如,这里声明的 issues 表没有类型,但是仍然可以正常工作:
$ sqlite3 comics.db "create table issues (issue primary key, title)" $ sqlite3 comics.db "INSERT INTO issues (issue, title) \ VALUES (1, 'Amazing Adventures')" $ sqlite3 comics.db "SELECT * FROM issues"1|Amazing Adventures |
没有类型是一个特性,而不是 bug,它有许多应用。
XAMPP,一个现成的 Web 软件组合
如果要使用 UNIX 计算机作为 Web 服务器,就需要选择 Web 软件组合。当然,最常用的软件组合是 Apache HTTP Server、MySQL、Perl、PHP、Python 和 Ruby on Rails。本文推荐您以前可能没有听说过的一些组件,包括 SQLite 和 lighttpd。
但是,从头构建软件组合并不适合所有人。配置 Apache 和其他软件包有时候很让人头疼,而且您可能不愿意自己维护源代码并在每次发布新补丁时重新编译。由于这些原因,可以选择现成的软件组合。只需安装即可直接使用!
XAMPP 是在网上可以找到的众多预打包 Web 软件组合之一。它包含 Apache 以及 MySQL、PHP 和 Perl 的兼容构建。有适用于 Linux、Sun Solaris、Windows 和 Mac OS X 的 XAMPP 版本。下载 XAMPP、解压它并启动:
# The latest version for Linux was 1.7 $ wget http://www.apachefriends.org/download.php?xampp-linux-1.7.tar.gz $ sudo tar xzf xampp-linux-1.7.tar.gz -C /opt $ sudo /opt/lampp/lampp start Starting XAMPP 1.7... LAMPP: Starting Apache... LAMPP: Starting MySQL... LAMPP started. |
第二个命令解压 XAMPP 发行版并把它直接放在 /opt 中(因此需要在命令前面加上 sudo)。如果希望把 XAMPP 放在其他地方,那么应该修改 -C 的参数。最后一个命令启动 Apache 和 MySQL,这是支持 Web 站点所需的两个守护进程。为了测试安装,只需在浏览器中访问 http://localhost。应该会看到与 图 1 相似的页面。
图 1. XAMPP 启动页面
单击 Status 查看运行状态。XAMPP 提供 phpMyAdmin 和 webalizer,它们分别用来在服务器上创建和管理 MySQL 数据库以及测量 Web 流量。
顺便说一句,XAMPP 还提供软件组合的完整源代码,所以如果需要的话,可以对它应用定制或添加新组件。XAMPP 源代码展示了如何构建软件组合,您可以据此调整或定制构建过程。
使用 lighttpd 服务器实现更小的站点
XAMPP 和许多软件组合都包含 Apache HTTP Server。Apache 确实是出色的 Web 服务器,根据统计,世界上的大多数站点都使用它。它还有许多扩展,可以添加各种子系统并与编程语言紧密地集成。
但是,Apache 并非惟一的 Web 服务器,而且在某些情况下它并不是最合适的。复杂的 Apache 实例需要占用相当多的内存,这限制了吞吐量。另外,即使是小的 Apache 实例也可能得不偿失。
lighttpd(读音是 “lighty”)是一种小型的、非常高效的 Apache 替代品,它具有安全性、速度、兼容性和灵活性。更好的是,lighttpd 配置文件比 Apache 的配置文件简单得多。
从头构建 lighttpd 有点儿复杂,因为它依赖于其他一些库。至少需要 Perl Compatible Regular Expression (PCRE) 库和 Zlib 压缩库的开发版本(这个版本包含头文件)。在安装(或从头构建)这些库之后,编译 lighttpd 就很简单了:
$ # Lighttpd requires libpcre3-dev and zlib1g-dev $ wget http://www.lighttpd.net/download/lighttpd-1.4.22.tar.gz $ tar xzf lighttpd-1.4.22.tar.gz $ cd lighttpd-1.4.22 $ ./configure && make && sudo make install |
接下来,必须创建一个配置。最简单的配置只需设置文档根、服务器端口、几个 Multipurpose Internet Mail Extension (MIME) 类型以及守护进程的默认用户和组:
server.document-root = "/var/www/lighttpd/host1" server.groupname = "www" server.port = 3000 server.username = "www" mimetype.assign = ( ".html" => "text/html", ".txt" => "text/plain", ".jpg" => "image/jpeg", ".png" => "image/png" ) static-file.exclude-extensions = ( ".fcgi", ".php", ".rb", "~", ".inc" ) index-file.names = ( "index.html" ) |
假设把这段文本保存到 /opt/etc/lighttpd.conf 文件中。用 lighttpd -D -f /opt/etc/lighttpd.conf 启动 lighttpd。
与 Apache 相似,lighttpd 可以支持虚拟主机。通过使用一个条件,只需三行即可建立一个虚拟主机:
$HTTP["host"] == "www2.example.org" { server.document-root = "/var/www/lighttpd/host2 } |
在这里,如果主机名为 www2.example.org,就使用替代的文档根。
lighttpd 尤其适合管理大量并行请求。可以把 lighttpd 与 Rails、PHP 等结合起来。
结束语
这期的 “对话 UNIX” 结束了。准备好键盘,打开网络连接,开始下载吧!(责任编辑:A6)
FILES['upload']['tmp_name']; $fp = fopen($localfile, 'r'); curl_setopt($ch, CURLOPT_URL, 'ftp://ftp_login:password@ftp.domain.com/'.UNIX® 工具一直在变化。本文介绍 10 个有用的工具,其中一些是您以前可能不太关注的工具,一些是新工具。
与日常用语一样,UNIX 工具一直在变化。经常会出现新工具,同时老工具常常会改进以适应新的最佳实践。一些工具非常常用,其他工具不太常用。一些工具经久不衰,有些工具完全过时了。为了顺畅地操作 UNIX,您必须了解最新的 “行话”。
表 1 列出了 对话 UNIX 系列中以前讨论过的 11 个重要的软件包。
表 1. 重要的 UNIX 工具
名称 | 用途 |
---|---|
Cygwin | 一种适用于 Windows® 操作系统的与 UNIX 相似的 shell 和构建环境 |
fish | 一种交互性很强的 shell,具有针对命令名、选项和文件名的自动展开和语法彩色标记功能 |
locate | 构建并搜索所有文件的数据库 |
rename | 对大型文件集合进行批量重命名 |
rsync | 高效地本地或远程同步文件和目录 |
Screen | 创建和管理虚拟的持久的控制台 |
Squirrel | 一种跨平台的脚本编程 shell |
tac | 以相反的次序输出输入,首先输出最后一行(tac 的作用与 cat 相反) |
type | 判断一个命令是别名、可执行程序、内置的 shell 还是脚本 |
wget | 使用命令行下载文件 |
zsh | 一种高级的 shell,提供自动补全、高级的操作数重定向和高级替换 |
在这一期中,我们讨论另外 10 个实用程序和应用程序,它们可以扩展或改进现有的更著名的 UNIX 包。它们涉及从通用存档转换器到高速 Web 浏览器的多个领域。