Mac XMPP Openfire 服务器配置
前言
- Openfire 是免费的、开源的、基于可拓展通讯和表示协议(XMPP)、采用 Java 编程语言开发的实时协作服务器。Openfire 安装和使用都非常简单,并利用 Web 进行管理。单台服务器可支持上万并发用户。可以使用它轻易的构建高效率的即时通信服务器。由于是采用开放的XMPP协议,您可以使用各种支持XMPP协议的IM客户端软件登陆服务.
1、配置准备工作
1)配置服务器准备工作
下载相关软件
jdk-8u91-macosx-x64.dmg
openfire_4_1_1.dmg
spark_2_8_3.dmg
Openfire 服务器配置软件下载地址
- Openfire v4.1.2 for Mac,密码:p5gv。
- Spark v2.8.3 for Mac,密码: fvw6。
2)配置服务器注意事项
提前下载好相关软件,且安装目录最好安装在全英文路径下。如果路径有中文名,那么可能会出现一些莫名其妙的问题。
在安装配置 Openfire 或其他 xmpp 服务器前,需要先安装 MySQL 数据库。
- MySQL 安装具体讲解见 MySQL 数据库配置。
3)示例配置环境
- macOS 10.11.6
- macOS 10.13.3
2、下载安装 Openfire
在 Openfire 官网下载最新的 Mac 版本 Openfire 安装包。
下载完后双击安装包,点击 pkg 文件,在安装引导下进行傻瓜式安装。安装完成后,进入系统偏好设置,点击 Openfire 图标。
进入 Openfire 偏好设置界面。点击 Start Openfire,让 OpenFire 服务开始启动(默认是启动的),启动完毕后,我们就可以点击 Administration 下的按钮 Open Admin Console,进入服务器后台,然后会要求输入管理员账号密码。
Openfire 服务启动不了问题解决
安装好之后,第一次是可以启动 openfire 服务器的,但是电脑重启后,就再也不能启动服务器了,每次一点击 “Start Openfire”,然后加载一下,状态还是 “Start Openfire” 没变化,有时甚至还会跳出错误提示框,提示 “Could not start the Openfire server”。
解决方案如下:
1)首先需要确认是否已经安装了 Java 的运行环境,以及 JAVA jdk 是否与当前 macOS 系统版本,Openfire 版本成对应,如果不是,就请先安装相匹配对应的软件。
- 在终端中输入
java -version
,就可以查看电脑有没有安装 JAVA 运行环境。
- 在终端中输入
2)如果软件,环境对应的,最终的解决办法是
1> 打开终端,输入以下命令:
# 获取 Openfire 目录的访问权限
$ sudo chmod -R 777 /usr/local/openfire/bin # 以超级管理员的权限运行脚本
$ sudo su # 打开 openfire 路径
cd /usr/local/openfire/bin # 设置 Java 的环境变量
export JAVA_HOME=`/usr/libexec/java_home` # 输出检验环境变量的值
echo $JAVA_HOME
输入上面的命令后回车,就会出现后面的这些语句
/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home
2> 接着在终端,输入以下命令:
cd /usr/local/openfire/bin # 运行 Openfire shell 脚本
./openfire.sh
输入上面的命令后回车,就会出现后面的这些语句
Openfire 4.1.2 [2016-2-21 2:47:51]
管理平台开始监听:
http://qianchia-macbookair.local:9090
https://qianchia-macbookair.local:9091
Successfully loaded plugin 'admin'.
3> 执行完这些命令之后,服务器就可以启动了,每次开机后,都启动不了的话,都试下这个方法。
3、配置 Openfire 服务器
- 在 Openfire 偏好设置界面中,点击 Open Admin Console,进入 web 配置页面,开始配置 Openfire 服务器。
3.1 选择语言
简体中文
3.2 服务器设置
域:如果只是本地机器上登录,可以设置为本地的域 127.0.0.1。需要远端登录的话,设置为相应的 IP 地址或域名即可。此处设置为 Mac 的机器名。
Server Host Name (FQDN):服务器名,不能为 IP 地址。
3.3 数据库设置
1)选择数据库
前期 MySQL 数据库准备工作
MySQL 安装具体讲解见 MySQL 数据库配置。
1> 设置 /usr/local/openfire 文件夹的访问权限为可读写
方法 1:在 finder 中前往文件夹 /usr/local/,右键 openfire 文件夹,显示简介,点击如图右下角中的锁图标解锁,并设置权限为可以读写。
方法 2:打开终端,输入如下命令,其中 777 表示授权可读写权限,000 表示无访问权限。
$ sudo chmod 777 /usr/local/openfire
2> 在终端中登陆 MySQL,输入以下命令,然后输入数据库的 root 密码登录
# 登录 mysql
$ mysql -u root -p
输入原 root 账户密码,登录成功后终端会输出:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 946
Server version: 5.7.17 MySQL Community Server (GPL) Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
如果终端输出以下提示,需将 mysql 添加到系统环境变量。
-bash: mysql: command not found
3> 在终端输入以下命令,创建数据库 openfire
create database openfire;
回车后,终端输出
Query OK, 1 row affected (0.03 sec)
4> 在终端输入以下命令,导入 openfire 资源文件夹 resources/database 下的数据表
use openfire; source /usr/local/openfire/resources/database/openfire_mysql.sql
在终端出现一排导入过程
Query OK, 1 row affected (0.00 sec) Query OK, 1 row affected (0.00 sec) Query OK, 1 row affected (0.00 sec) mysql>
* 5> 在终端输入以下命令,刷新权限 ```objc
flush privileges;
回车后,终端输出
Query OK, 0 rows affected (0.07 sec)
6> 在终端输入以下命令,退出 MySQL
exit
如果要设置外部数据库(推荐,比如:MySQL),选择标准数据库连接。
2)设置数据库连接
设置标准数据库连接
1> 数据库驱动选项
- 选择 MySQL,前提是已安装 MySQL。
2> JDBC 驱动程序类
默认不变,默认为:
com.mysql.jdbc.Driver
3> 数据库 URL
形式如下:
jdbc:mysql://你的主机名:端口号/数据库名称 jdbc:mysql://[host-name]:3306/[database-name]?rewriteBatchedStatements=true
- [host-name] :主机名
- [database-name]:数据库名称
这里设置为:
jdbc:mysql://localhost:3306/openfire
- 其中主机名 [host-name] 改为 localhost。
- 其中数据库名称 [database-name] 改为 openfire。
解决数据库字符编码问题,可以在后面加
?useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8
最终的 url 形式是
jdbc:mysql://localhost:3306/openfire?useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8
注意:前提是已存在一个名为 openfire 的数据库,否则会报如下错误,连接配置不成功。openfire 数据库的创建具体见前面所讲的 “前期 MySQL 数据库准备工作”。
- The Openfire database schema does not appear to be installed. Follow the installation guide to fix this error.
4> 用户名和密码
这里的用户名密码,是访问 MySQL 数据库时使用的帐号和密码。
- 用户名:root
- 密码:root 账户密码
3.4 配置文件设置
如果不打算使用 LDAP,则保持默认设置即可。
特性设置时出错问题解决
解决方法
- 在 OpenFire 偏好设置中重启 OpenFire,然后重新进入 OpenFire web 配置页面,重新开始配置 Openfire 服务器即可。
3.5 管理员账户设置
可以随便填写一个管理员邮箱,输入要设置的密码即可。管理员账号默认为 "admin",如果不设置密码,则默认密码为 "admin"。
自定义管理员账户名方法
在终端输入以下命令,输入数据库的 root 密码,登陆具体的数据库(openfire)
$ mysql -u root -p openfire
删除表 “ofUser” 中的 admin 帐户
delete from ofUser where username = 'admin';
创建自定义管理员(用户名:qianchia,密码:123456)
insert into ofUser (username, plainPassword, encryptedPassword, name, email, creationDate, modificationDate) values('qianchia','123456','123456','Administrator','qianchia@icloud.com','0','0');
查看用户
select * from ofUser;
如果可以往数据库里插入用户但是在用户摘要却没有数据,这是因为 openfire 的数据库驱动包太旧了,而安装的数据库太新了,把 openfire 里的驱动包换成新的就行了,路径:/usr/local/openfire/lib。
3.6 登陆管理控制台
完成安装后可以输入用户名和密码登陆管理控制台
默认的管理员帐号是 “admin”,默认管理员密码 “admin”,如果上面设置了新密码,则管理员密码是新密码。如果重设了用户名,必须重启 openfire 服务器。
无法登录管理控制平台问题解决
安装 Openfire 后 admin 无法登录管理控制平台。登录时提示:Login failed:make sure your username and password are correct and that you’re an admin or moderator。
解决方案如下:
1)使用 MySQL 管理工具(如 MySQL Workbench)进入数据库,进入表 “ofuser”,将该表清空
然后执行该 SQL
INSERT INTO ofUser (username, plainPassword, name, email, creationDate, modificationDate) VALUES ('admin', 'admin', 'Administrator', 'admin@example.com', '0', '0');
2)关闭 Openfire 服务,就是从其控制台 stop 然后再 start,再用用户名:admin,密码:admin 登录即可。
4、测试 Openfire 服务器
4.1 添加测试账户
服务器配置完成之后,我们可以创建几个用户,然后客户端可以使用这些用户信息登录,互相传输消息。
4.2 XMPP 客户端设置与使用
有许多通信聊天客户端可以支持 XMPP 协议,比如,Mac 电脑就自带了一个 “信息” app,“信息” app 就支持 jabber 通信协议(XMPP 的别名)。
打开 Mac 的 “信息” app,点击菜单 信息 -> 添加账户,选择其他 “信息” 账户...
选择 jabber 账户类型,填写相关信息
- 账户类型:Jabber
- 用户名:上边添加的测试账户名,格式必须为:
名称@openfire服务器名称
- 密码:用户名对应的密码
- 服务器:openfire 服务器地址,可以使用自动查找服务器和端口
- 端口:openfire 服务器客户端端口
然后,提示验证证书,选择继续。
登录成功。
登录成功后在 openfire 服务器端可以看到用户的登录状态。
5、卸载 Openfire 服务器
1)卸载之前首先要停止 Openfire 服务。
系统偏好中点击 Openfire 图标,如下图
在 Openfire 偏好设置界面中,点击 Stop Openfire。
2)删除 Openfire 文件。
在终端里,输入以下三条命令执行即可。
$ sudo rm -rf /Library/PreferencePanes/Openfire.prefPane
以上执行后需要输入管理员密码。
$ sudo rm -rf /usr/local/openfire $ sudo rm /Library/LaunchDaemons/org.jivesoftware.openfire.plist
6、常见问题
1)每次重启 Mac 电脑都需要重新配置 Openfire 问题
解决方法:
- 打开 /usr/local/openfire/conf/ 文件夹。
- 将 openfire.xml 和 security.xml 两个文件的权限设置为读与写。
- 重新完成 Openfire 配置。
Mac XMPP Openfire 服务器配置的更多相关文章
- iOS - XMPP Openfire 服务器的搭建
前言 提前下载好相关软件,且安装目录最好安装在全英文路径下.如果路径有中文名,那么可能会出现一些莫名其妙的问题. 提前准备好的软件: jdk-8u91-macosx-x64.dmg mysql-5.7 ...
- 基于xmpp openfire smack开发之Android客户端开发[3]
在上两篇文章中,我们依次介绍openfire部署以及smack常用API的使用,这一节中我们着力介绍如何基于asmack开发一个Android的客户端,本篇的重点在实践,讲解和原理环节,大家可以参考前 ...
- xmpp openfire smack 介绍和openfire安装及使用
前言 Java领域的即时通信的解决方案可以考虑openfire+spark+smack.当然也有其他的选择. Openfire是基于Jabber协议(XMPP)实现的即时通信服务器端版本,目前建议使用 ...
- MAC下 Apache服务器配置
今天做了一个注册登录提交的页面,后续操作需要用到后端的知识 php+Mysql,之前只是有些了解,现在开始具体操作了,首先从配置环境开始.查了好几篇文档与博客,了解了挺多知识. Mac下Apache服 ...
- XMPP openfire Smack 即时通讯
重新整理下这篇文章. 这篇文章的主要任务是使用AndroidStudio,通过Openfire,利用XMPP协议完成一个可以即时通讯.拥有好友系统的聊天软件. 一.服务器配置与相关库 理论不多说,只谈 ...
- 基于xmpp openfire smack开发之openfire介绍和部署[1]
前言 http://blog.csdn.net/shimiso/article/details/8816558 Java领域的即时通信的解决方案可以考虑openfire+spark+smack.当然也 ...
- Mac Apache WebDav 服务器配置
1.WebDav 服务器 基于 http 协议的 "文件" 服务器. 实现文件的上传/下载/修改/删除. WebDav 权限 授权信息的格式 BASIC (用户名:口令)base6 ...
- iOS xmpp Openfire+spark环境搭建
配置这个遇到太多问题了,写下来分享 首先到官网下载openfire+spark 下载地址:http://www.igniterealtime.org/downloads/index.jsp
- MAC 卸载 openfire
顺序执行以下命令: sudo rm -rf /Library/PreferencePanes/Openfire.prefPane sudo rm -rf /usr/local/openfire
随机推荐
- Struts2的Action继承ActionSupport时,利用AOP来拦截Action出现NoSuchMethodException
参考:http://zhanghua.1199.blog.163.com/blog/static/46449807201111139501298/ 做项目的时候,由于要用到在Struts2的Actio ...
- [Algorithm] Count occurrences of a number in a sorted array with duplicates using Binary Search
Let's say we are going to find out number of occurrences of a number in a sorted array using binary ...
- ASP入门(六)-Response对象
Response对象可以从服务器向用户发送输出的结果. Response几种常用方法 方法 描述 BinaryWrite 向浏览器输出二进制的内容 Clear 清除已经缓冲的HTML输出 End 停止 ...
- Asp.NET websocket,Asp.NET MVC 使用 SignalR 实现推送功能一(Hubs 在线聊天室)
ASP .NET SignalR 是一个ASP .NET 下的类库,可以在ASP .NET 的Web项目中实现实时通信.什么是实时通信的Web呢?就是让客户端(Web页面)和服务器端可以互相通知消息及 ...
- [Canvas]奔跑的马
下载地址:https://files.cnblogs.com/files/xiandedanteng/52-WalkingHorse.rar,请用Chrome浏览器打开观看动态效果. 图例: 源码: ...
- 使用FractionSlider生成的视差幻灯效果原型
在线演示 本地下载 非常棒的jQuery插件,帮助你创建超酷的视差效果幻灯!
- Centos7中安装Docker
1.配置docker镜像安装源 tee /etc/yum.repos.d/docker.repo <<-'EOF' [dockerrepo] name=Docker Repository ...
- SSM实战——秒杀系统之创建项目、管理依赖、设计数据库
注:本项目使用Myeclipse开发. 一:项目创建 1:使用Myeclipse创建一个web project,命名为MySeckill,并转换为Maven项目. 2:创建项目文件目录如下: 上面四个 ...
- Spring解决Hibernate中的懒加载问题
OpenSessionInViewFilter 过滤器将 Hibernate Session 绑定到请求线程中,它将自动被 Spring 的事务管理器探测到. <filter> ...
- Java之创建对象>4.Enforce noninstantiability with a private constructor
如果你定义的类仅仅是包含了一些静态的方法和静态的字段,这些类一般是一些工具类,这些一般是设计为不能被实例化的. 1. Attempting to enforce noninstantiability ...