前言
Nginad是一个基于php的开源项目,它既可以作为静态配置的Ad Server,也可以作为动态的RTB Exchange使用。代码结构比较直接明了,挺适合用作学习的。本文如果有理解错误的地方,希望各位不吝指正。
概要
我在14年10月份接触RTB领域的时候,开始搭建RTBKit + Nginad的实时竞价环境,搭建过程中就觉得Nginad的文档非常凌乱,东一块西一块,当时就写下这些内容供以后参考。最近看官网貌似也提供了比较完整的安装文档。有兴趣的人可以直接阅读官网文档。
环境配置
配置好你的nginx + php + mysql环境,这个我就不赘述了,请自行搜索。
下载nginad
从git上下载nginad, 将upload文件夹下面的东西复制到nginx的web目录里。
git clone https://github.com/nginadfoundation/nginad.git
然后将里面的upload目录放到nginx web目录下。
安装项目
在upload目录下调用php的包管理安装依赖库
composer.phar self-update
composer.phar install
配置文件
在config/autoload下有很多配置文件*.php.dist,请将后面的.dist后缀去掉。
cd config/autoload
cp database.local.php.dist database.local.php
cp delivery.local.php.dist delivery.local.php
cp email.local.php.dist email.local.php
cp rtb.config.local.php.dist rtb.config.local.php
配置数据库
配置数据库请参见链接。主要就是新建nginad所需要的各种表。官网页面有很多操作,我是在ubuntu系统上安装的,如果前述mysql+php+nginx环境已经配好了,只需要执行:
mysql -u root -p //登陆mysql
create database nginad;
grant usage on *.* to nginad@`%` identified by 'password';
grant all privileges on nginad.* to nginad@`%` ;
flush privileges;
quit; //创建数据库,给予权限
然后下载sql脚本(这个脚本可能会过期,还是从配置数据库的官网页面上下载比较好),接着执行:
mysql -u nginad -p nginad < [刚刚下载的sql脚本]
最后,修改nginad upload所在目录下/config/autoload/database.local.php文件
$dbParams = array(
'dbname' => 'nginad',
'user' => 'root',
'pass' => '',
'host' => 'localhost',
);
请填入正确的数据库连接参数。
修改public/ad/nginad.js
修改该js文件中的第一行代码
var adserver_domain = ""
改成你部署nginad server所在的domain,这段脚本会向这个地址请求广告物料。
启动
这里还有一点奇怪的,我不知道nginad server启动的管理员默认账号密码是什么。。。好像也没看到哪里有说,(真坑爹)。
我的解决方案是,反正数据库在手,我自己在table里硬编码写进去了一个管理员账号密码。。。(密码是加密的,不知道怎么填?请先注册一个publisher之类的账号,密码写个test,然后去DB里看test被加密成了什么字符串,把相同的字符串写到管理员账号的密码里,管理员的密码也就是test了,nginad的加密没有用salt,不算很安全啊..)
更新:现在知道了。。是:
默认管理员
username: admin@localhost
password: password
默认publisher
username: sergey.page@blowmedianow.com
password: password