Pastebin
关于如何安装私有 pastebin 服务的简易文档。
有很多 pastebin 服务 (https://web.archive.org/web/20111205120332/https://en.wikipedia.org/wiki/Comparison_of_pastebins)。我们将使用最古老的 pastebin 服务,它没有数据库支持,仅使用文件。
需求
- 一个正在运行的 Web 服务器(这里引用了 apache,但也可能添加 nginx 和 lighttpd 配置)以及模块
- PHP
- vhosts
- mod_rewrite (适用于 Apache 和 lighttpd,或 nginx 的 NginxHttpRewriteModule)
下载 Pastebin 安装文件
wget https://web.archive.org/web/20130602110905/http://pastebin.dixo.net/pastebin.tar.gz
Web 服务器配置以托管 pastebin
Apache 将下载的文件解压到 web 服务器 vhosts 目录中
tar -zxvf pastebin.tar.gz -C /var/www/vhosts
重命名 vhosts 目录
mv /var/www/vhosts/pastebin-0.60 /var/www/vhosts/pastebin
- 编辑 /etc/apache/httpd.conf 并添加以下内容
<VirtualHost *:80> ServerName pastebin.my.domain DocumentRoot /var/www/vhosts/pastebin/public_html ErrorLog /var/log/apache2/pastebin-error.log CustomLog /var/log/apache2/pastebin-access.log common php_value include_path .:/var/www/vhosts/pastebin/lib php_value register_globals off DirectoryIndex pastebin.php RewriteEngine on RewriteLog /var/log/apache2/pastebin-rewrite.log RewriteRule /([a-z0-9]+)$ /pastebin.php?show=$1 [L] </VirtualHost>
lighttpd
- 编辑 lighttpd.conf
$HTTP["host"] =~ "(^|\.)paste.bin\.com$" { server.document-root = "/var/www/vhosts/pastebin/public_html" accesslog.filename = "/var/log/lighttpd/pastebin/access.log" fastcgi.server = ( ".php" => ( "localhost" => ( "bin-path" => "/usr/bin/php-cgi", "socket" => "/tmp/php-pastebin.socket", "min-procs" => 1, "max-procs" => 2, "bin-copy-environment" => ( "PATH", "SHELL", "USER" ) ) ) ) compress.cache-dir = "/var/www/cache/pastebin/" url.rewrite-once = ( "^/(pastebin.css)" => "$0", "^/(pastebin.js)" => "$0", "^/diff/(.*)" => "/pastebin.php?diff=$1", "^/(.*)" => "/pastebin.php?show=$1" ) }
Nginx
- 编辑 nginx.conf(这是重要的部分)。
rewrite ^/([a-z0-9]+)$/pastebin.php?show=$1 last;

配置 pastebin
配置文件不在 “public_html” 目录之外,而是在 “/lib/config” 目录中。
将 default.conf.php 复制到与您的 fqdn 匹配的文件中,该 fqdn 是托管 pastebin 服务的位置(例如 pastebin.mydomain.com),并带有 .conf.php 扩展名。
在这种情况下,将是:pastebin.mydomain.com.conf.php
- 编辑 pastebin.mydomain.com.conf.php 并修改以下部分
$CONF['dbsystem']='file'; $CONF['base_domain_elements']=2;
其他指令不是强制性的,但应根据您的需要进行修改。
第一个指令表示后端必须是文件而不是 mysql(默认情况下是 mysql)。
第二个指定文件名 pastebin.mydomain.com.conf.php 的哪一部分是域名。
在这种情况下,数字是 2:mydomain 和 com。
现在,您必须创建将包含帖子文件的目录。
根据 db.file.class.php,目录必须是 $_SERVER['DOCUMENT_ROOT'].'/../posts/,并且必须可由运行 web 服务器守护程序的用户写入。
mkdir -p /var/www/vhosts/pastebin/posts chown apache:apache /var/www/vhosts/pastebin/posts
现在,重启 web 服务器。Pastebin 服务应该可以通过 pastebin.mydomain.com 访问