说明:1-5步为安装web聊天服务,如不需要可跳过1-5步。
1. 安装nginx
sudo apt-get install nginx
2. 安装php5-fpm
sudo apt-get install php5-fpm
3. 安装jappix的文件
下载jappix。
下载地址:http://jappix.org
将jappix的php源码拷贝到/usr/share/nginx/html下,完成文件安装。
4. 为jappix 配置nginx
nginx配置文件路径/etc/nginx/sites-enabled/default
配置文件添加修改:
server中:
inex index.php
locaation - /(app|i18n|log|test|tmp|tools)/ {
deny all;
}
location / {
try_files $uri $uri/ =404;
index index.php;
}
location - \.php$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
重启nginx.
sudo service nginx restart
5. 安装jappix
a.安装前设置:
sudo kate /etc/php5/fpm/php.ini
修改:
post_max_size=100M
upload_max_size=100M
memory_limit=160M
b.在浏览器输入http://localhost.进入初次使用安装。
照提示一步一步安成设置,完成安装。
6. 安装 jabberd2
下载jabber2 源码备用。
下载地址:http://jabberd2.org
非编译安装:sudo apt-get install jabberd2
非编译安装就完成了。
编译安装如下:
sudo apt-get install libpq-dev openssl libssl-dev libexpat-dev libidn11-dev libudns-dev libgsasl7-dev
./configure --enable-pgsql --enable-ssl --with-extra-include-path=./c2s/:usr/include/postgresql/
make
make install
jabber用户
安装好后应是自动创建好了jabber用户与jabber用户组。
如没有添加:groupad jabber
userad -g jabber jabber
为jabber的 PID's和Logs新建目录
mkdir -p /usr/local/var/jabberd/pid/
chown R jabber:jabber /usr/local/var/jabberd/pid/
mkdir -p /usr/local/var/jabberd/log/
chown -R jabber:jabber /usr/local/var/jabberd/log/
jabberd 2 安装的缺少位置
/usr/local/etc/jabberd
设置配置文件的所有权
chown -R root:jabber /usr/local/etc/jabberd/*
chmod -R 640 /usr/local/etc/jabberd/*
7.配置domain更改/etc/hostname:
更改为localhost
更改/etc/hosts:(注:localhost这个名字要与/etc/hostname中的名字一样,就是要改成电脑名。)
添加127.0.0.1 localhost.localdomain localhost
完成后执行:
sudo service network-manager restart
sudo service networking restart
8. jabberd2 的一些设置
主机名设置
在sm.xml
<sm>
<local>
<id>computer_name(或localhost).localdomain</id>
在c2s.xml
<c2s>
<local>
<id> computer_name(或localhost).localdomain</id>
9. 安装 postgresql
sudo apt-get install postgresql
10.给jabberd2 配置postgresql
注:如产生错误:
a. PostgreSql:createdb -U postgres mydb 错误:createdb: could not connect to database postgres: FATAL: P
b. psql -U myusername mydb 错误:psql: FATAL: Ident authentication failed for user "mypguser"
则:
sudo editor /etc/postgresql/9.3/main/pg_hba.conf
将其中的peer改成trust,完成上述错误的解决。 然后重启:sudo service postgresql restart
PostgreSQL 和MySQL一样,提供一个非常易于管理的后端用于存储和验证. 和MySQL不同的是, PostgreSQL提供了更好的 unicode支持.
如果你使用PostgreSQL存储 和/或 验证请完成本节. 为了给Jabberd配置PostgreSQL, 你必须新建一个数据库,新建一个PostgreSQL用户并运行Jabberd 2分发包里带的PostgreSQL脚本.
为Jabberd新建数据库. (PostgreSQL服务器应该已经在运行):
createdb -U postgres jabberd2
以上命令讲新建一个数据库,你可以在那个数据库运行接哦本来安装Jabberd PostgreSQL数据库.
N 注意: Unicode支持
createdb -U postgres -E UNICODE jabberd2
P 参数: PostgreSQL用户名和密码
createuser -P -U postgres jabberd2
这个命令将初始化一个交互用户创建脚本. 当看到提示, 输入将来用于连接到你的PostgreSQL数据库的Jabberd的密码:
Enter password for user "jabberd2": Enter it again: Shall the new user be allowed to create databases? (y/n) n Shall the new user be allowed to create more new users? (y/n) n CREATE USER
CREATE USER 信息表示命令执行成功.
在你的jabberd用户创建之后, 你已经准备好运行PostgreSQL安装脚本了. 这个脚本位于 '\[Jabberd Source Files\]\/tools'. 切换到 tools 目录并以jabberd2用户身份启动PostgreSQL控制台:
psql -U jabberd2 jabberd2
然后, 从PostgreSQL控制台运行 db-setup.pgsql 脚本:
jabberd2=>\i db-setup.pgsql
PostgreSQL现在准备好用于Jabberd了.
等下一步后可重启一下postgresql。
然后可用下面语句测试查入一个用户,但我查入后发现不能使用这个用户:
insert into authreg(username,realm,password) values('testuser1','localhost.localdomain','passowrd');
如果你使用PostgreSQL存储,请完成本节. 大多数使用PostgreSQL存储的安装只需要设置驱动, 用户和密码.
在 sm.xml 里标为 Storage database configuration 的段落下, 确保 driver 是用 pgsql (PostgreSQL):
<sm>
<!-- Storage database configuration -->
<storage>
<!-- By default, we use the MySQL driver for all storage -->
<driver>pgsql</driver>
P 参数: PostgreSQL用户名和密码
<!-- PostgreSQL driver configuration --> <pgsql> <!-- PostgreSQL connection info. For the rest of the options see http://www.postgresql.org/docs/8.0/interactive/libpq.html --> <conninfo>dbname=jabberd2 user=jabberd2 password=secret</conninfo> <!-- Database server host and port --> <host>localhost</host> <port>5432</port> <!-- Database name --> <dbname>jabberd2</dbname> <!-- Database username and password --> <user>jabberd2</user> <pass>secret</pass> <!-- Transaction support. If this is commented out, transactions will be disabled. This might make database accesses faster, but data may be lost if jabberd crashes. --> <transactions/> </pgsql>
注意只有你的PostgreSQL服务器运行在另一个主机上你才应该修改host设置. 只有你的PostgreSQL服务器运行在一个非标准端口(5432是PostgreSQL安装后的缺省端口)你才应该修改port设置. transaction support 段落则是不言自明的了.
现在Jabberd 2已经配置成使用PostgreSQL来存储了.
如果你希望使用一个不同于PostgreSQL的验证包, 跳到你选择的验证包:
否则, 继续到 4.5.3. 直接往下完成你的Jabberd 2配置.
如果你使用PostgreSQL来验证,请完成本节. Jabberd 2对于PostgreSQL验证配置的要求同上,除了包含在 c2s.xml 的信息.
在 c2s.xml 的 Authentication/registration database configuration (验证/注册 数据库配置)段落, 确保 driver 使用pgsql (PostgreSQL):
<c2s>
<!-- Authentication/registration database configuration -->
<authreg>
<!-- Backend module to use -->
<module>pgsql</module>
P 参数: PostgreSQL用户名和密码
<c2s> <pgsql> <!-- PostgreSQL connection info. For the rest of the options see http://www.postgresql.org/docs/8.0/interactive/libpq.html --> <conninfo>dbname=jabberd2 user=jabberd2 password=secret</conninfo> <!-- Alternatively you may set connection settings separately. These are used only in absence of 'conninfo' --> <!-- Database server host and port --> <host>localhost</host> <port>5432</port> <!-- Database name --> <dbname>jabberd2</dbname> <!-- Database username and password --> <user>jabberd2</user> <pass>secret</pass> </pgsql>
注意只有你的PostgreSQL服务器运行在另一个主机上你才应该修改host设置. 只有你的PostgreSQL服务器运行在一个非标准端口(5432是PostgreSQL安装后的缺省端口)你才应该修改port设置.
你的Jabberd 2的存储和验证配置现在完成了. 在转移到其他配置任务(例如 第五章 的配置SSL)之前,跳到 测试服务器 去开始测试你的服务器.
jabberd2 的postgresql的配置完成。
再重启服务:
sudo service postgresql restart
sudo service jabberd2 restart
11. 用gajim 创建测试用户
a. 安装GAJIM: sudo apt-get install GAJIM
b. 在GAJIM中的用户管理中,选择添加用户,选择创建一个新用户为添加用户。
c. 在弹出的对话框中输入服务器:localhost.localdomain(localhost 是本地主机名在/etc/hostname中修改),在自定主机名端口中输入127.0.0.1(或服务器IP) 与端口5222,点击forward.
d.输入username 与 password ,点击forward.
e.完成新用户注册
可照上面方法再添加一个用户,这样就可以完成消息发送测试。
jabberd2设置iptables防火墙:
sudo iptables -P INPUT DROP
sudo iptables -P OUTPUT ACCEPT
sudo iptables -P FORWARD DROP
sudo iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 443 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 21 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 20 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 20 -j ACCEPT
sudo iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A OUTPUT -p icmp -j ACCEPT
sudo iptables -A INPUT -p icmp -j ACCEPT
sudo iptables -A INPUT -i lo -p all -j ACCEPT
sudo iptables -A OUTPUT -o lo -p all -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 5432 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 5432 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 5222 -j ACCEPT
sudo iptables -A INPUT -p udp -m udp --dport 5222 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 5223 -j ACCEPT
sudo iptables -A INPUT -p udp -m udp --dport 5223 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 5269 -j ACCEPT
sudo iptables -A INPUT -p udp -m udp --dport 5269 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 5280 -j ACCEPT
sudo iptables -A INPUT -p udp -m udp --dport 5280 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 4369 -j ACCEPT
sudo iptables -A INPUT -p udp -m udp --dport 4369 -j ACCET
sudo iptables -A INPUT -p udp -m udp --dport 4369 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 53873 -j ACCEPT