xlang 博客部署
xlang web应用2019-09-04 02:03:45xlang 新版本(1.0.18.5730)发布了, 顺道发了这个博客,这个博客系统后端是用xlang开发的, 很轻量,但功能完整,包括文章发布管理、可视化编辑,代码高亮、权限管理、评论功能、分类管理等一应俱全,详情戳这里查看介绍,全部源码在github上可以找到。
部署很简单,用XStudio打开XBlog的项目后,在项目属性里面选择你的目标平台,按F7生成,然后拷贝过去就行了,有兴趣的朋友可以自行编译安装。
例:你打算运行在linux系统上,用XStudio载入XBlog项目以后,在菜单[项目]->[属性]中做以下变更:
然后,F7生成XBlog可执行程序。
如果是交叉生成的需要手动提取一下依赖包, 在XStudio目录下的packages目录中找到XCImg1.x.x.x(后面1.x.x.x是版本号,自行根据你的版本寻找)和Sql1.x.x.x 这两个文件, 然后用winrar或者7Zip打开,如下图:
(手动提取是有点点小麻烦, 目前还没有支持自动部署,下一版会支持)
然后将提取的文件和生成的文件全部拷贝到你的服务器上注册为服务,具体方法见下面
XBlog.xcs 约第30行:
class XBlog{
static const String SERVER_NAME = "xlang_blog";
static int main(String [] args){
if (args.length == 2) {
String cmdand = args[1];
//安装服务
if (cmdand.equals("install")) {
if (false == _system_.isServiceInstalled(SERVER_NAME)) {
_system_.installService(_system_.getAppPath(), SERVER_NAME, "Xlang Web Server", "xlang web 服务");
}
return 0;
}
//卸载服务
if (cmdand.equals("uninstall")) {
if (true == _system_.isServiceInstalled(SERVER_NAME)) {
_system_.uninstallService(SERVER_NAME);
}
return 0;
}
if (cmdand.equals("start")) {
String apppath = _system_.getAppPath();
String []_args = {apppath};
Process p = new Process(apppath, _args);
p.create(true,true,true,true);
}
String apppath = _system_.getAppPath();
String []_args = {apppath};
Process p = new Process(apppath, _args);
p.create(true,false,false,false);
return 0;
}
_system_.registryCrashHandler(new ICrashHandler() {
void onCrash(String message)override {
_system_.log(SERVER_NAME,_system_.LOG_LEV_ERR,message,true);
}
});
return http_server();
}
因此运行以下命令就可以完成安装服务。
./XBlog install
systemctl enable xlang_blog.service
service xlang_blog start
(如果是卸载则运行 ./XBlog uninstall)
然后就可以从浏览器访问 setup.html 进行安装了。(注意:服务器上需要安装mysql服务, 如果数据库在其他的服务器请自行将Conn.xcsm文件中Conn成员MYSQL_HOST 的值改为数据库服务器IP).
//xlang Source, Name:Conn.xcsm
//Date: Thu Aug 13:58:46 2019
class Conn{
static String MYSQL_HOST = "127.0.0.1"; // <---------------- 这里改成你自己的数据库服务器地址
static String MYSQL_UNAME = "user";
static String MYSQL_PASSWD = "pwd";
static String MYSQL_DBNAME = "xblog";
//连接池
static ConnectionPool pool = new ConnectionPool();
.....
在安装这个博客的时候发现个小问题记录一下, 由于我在编译sql和XCimg包的时候使用了版本较高的gcc, 而我的服务器版本较低,所以一开始不能访问数据,经过使用XStudio远程调试以后发现是无法加载组件报错:
GLIBC版本找不到, 后来我将这俩个组件的代码上传到服务器重新编译解决了, 如遇到同样的问题请前往 github下载这俩个库的代码 传到服务器上make一下然后用make生成的文件覆盖对应文件就可以了.
我本人是偏好做编译器开发,而xlang开发一年多了,一直想弄个什么记录些东西,一直都没找到好使的, 这下就可以经常在这个博客上记录一些xlang开发相关的资料和一些其他的技术资料, 感兴趣的话可以收藏一下或者做个友链,与君共勉,共同进步
。
感谢关注和阅览。
cadaqs - 2019-09
上一篇:没有上一篇下一篇:使用AStyle对xlang源码格式化

