BTLET.com: DHT磁力 / Go爬虫 / PHP前端 / Mysql+Sphinx Coreseek搜索

全文转自老季博客

背景

  • 我们重新立了一个btlet的项目,大家有兴趣的话可以来看看。
  • Github地址:https://github.com/qsbaq/btlet.com
  • 爬虫是Go写的,PHP部分基于Onethink PHP。

环境需求

  • 64位的系统版本( x64)
  • PHP>5.3.0
  • Mysql

安装步骤

导入数据库

  • 新建数据库 btlet ,导入 init.sql

运行爬虫

  • 运行爬虫(爬虫可以分布在多台机器上同时运行,使用参数连接到指定数据库即可) , 参数详情:
-u=”btlet”                数据库用户名
-p=”laoji.org”         数据库密码
-h=”v.laoji.org”      数据库地址,默认是localhost
-d=”btlet”                数据库名
-P=”3306″               数据库端口,默认3306
  • Windows ( spider.exe-forwin 重命名为:spider.exe,可以先运行文件夹中的 cmd.bat ,然后运行一下命令):
spider.exe -u="数据库用户名" -p="数据库密码" -d="数据库名"
  • Linux ( spider-forlinux 重命名为:spider):
chmod +x spider    //第一次运行时需要添加可执行权限
./spider -u="数据库用户名" -p="数据库密码" -d="数据库名"
  • 爬虫可以分散在N台机器上运行,只需指定数据库IP
-u="数据库用户名" -p="数据库密码" -d="数据库名" -h="数据库域名地址或IP"

注:爬虫必须在公网IP上运行,内网爬不到数据
Linux下同理,可以将爬虫挂在screen命令中运行。

  • Screen运行实例:
screen -S laoji
./spider -u="数据库用户名" -p="数据库密码" -d="数据库名"
  • 等到开始跳出文字,刚开始的时候有些慢。直到出现下面内容: 2017/02/21 07:11:54 ed2bea744442aafd21102d6e2f5d52eb7d2973d4 2017/02/21 07:12:07 c26ede340f0f620dab01835f48177bbbfbf27dc0

  • 切出Screen返回刚才的终端:

CTRL+A,d

上传文件到空间

  • 上传文件到php空间中(空间必须支持 php-mysqli 扩展),并确保文件权限:Runtime (Linux中确定权限为777:chmod 777 Runtime -R)

配置数据库信息

  • 配置php中的数据库文件:
    /Application/Common/Conf/config.sample.php重命名为: Application/Common/Conf/config.php,修改 第40行开始:
PHP

    /* 数据库配置 */
    'DB_TYPE'   => 'mysqli', // 数据库类型
    'DB_HOST'   => 'localhost', // 服务器地址
    'DB_NAME'   => 'btlet', // 数据库名
    'DB_USER'   => 'btlet', // 用户名
    'DB_PWD'    => 'laoji.org',  // 密码
    'DB_PORT'   => '3306', // 端口
    'DB_CHARSET' => 'utf8mb4',
    'DB_PREFIX' => 'laoji_', // 数据库表前缀
  • /Application/User/Conf/config.sample.php重命名为:/Application/User/Conf/config.php。修改 第18行:
define('UC_DB_DSN', 'mysqli://数据库用户名:数据库密码@数据库地址:3306/数据库名'); // 数据库连接,使用Model方式调用API必须配置此项

Rewrite 配置

  • nginx下配置Rewrite规则:
if (!-e $request_filename)        {
        rewrite ^/(.*)$ /index.php/$1;
}
  • Apache 环境下只需支持.htaccess即可。
<IfModule mod_rewrite.c>
  Options +FollowSymlinks
  RewriteEngine On

  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>

剩余内容参考老季博客