Lazarus中文社区

 找回密码
 立即注册(注册审核可向QQ群索取)

QQ登录

只需一步,快速开始

Lazarus IDE and 组件 下载地址版权申明
查看: 5111|回复: 3

在Linux上如何用Lazarus开发网站应用

[复制链接]

该用户从未签到

发表于 2017-9-18 10:10:44 | 显示全部楼层 |阅读模式

一、vmware开发测试环境

微信群里的朋友在vmware上安装最新的CentOS v7.4,压缩完只有不到1G,朋友推荐先minimal只安装控制台,然后安装xfce桌面会很省空间。我很惊讶,因为以前我装的GNOME桌面,把软件都安装完,压缩后还有差不多10G。我想如果能压缩这么小,那可以好好整理一个开发测试的虚拟vmware环境,能让网友们更容易上手。昨天安装完成后压缩,差不多3G大小,缩小了很多。下载百度盘:http://pan.baidu.com/s/1gfzS08N  密码:61w0,或者直接下载: http://211.149.147.158/centos7.4-mini.zip。vmware开机登录用户及密码:root/51pas和51pas/51pas。


安装的软件有:

1、centos v7.4

2、gcc v7.2

3、nginx v1.13.4 (/usr/local/nginx),网站文件目录/home/51pas/html

4、php v7.1.9 (/usr/local/php)

5、lazarus v1.9.0 + fpc v3.1.1 (/home/51pas/lazarus)

在虚拟机中已经安装ssh服务,可以直接通过"scp <需要拷贝的文件> root@<你的ip地址>:/home/51pas"  拷贝文件。


打开 所有应用程序-->互联网-->火狐浏览器


    访问 http://127.0.0.1

输入用户名admin,密码admin后:

二、开发框架说明

有朋友好奇地问我,pascal怎么可以编写网站的程序?其实任何语言都可以编写WEB的程序,因为从本质来说,只要能接收请求,然后回复html文本,就是WEB程序。本文用的lazarus在Linux上开发基于nginx+php的应用框架是我的首创。选择nginx+php是因为这个组合在因特网上已经非常成功,使用它们能直接从开源社区获得很好的支持。

下面先以一张图来说明框架的原理:

在Linux上与windows上开发很大不同的地方是:没有怎么使用线程。由于操作系统设计的不同,在Linux上fork一个进程开销是很小的,因此在Linux上基本上使用进程。当php启动运行的时候,可以在php.ini上指定worker process的数量,比如设置成5个进程。然后每次nginx会直接发送请求到php的5个进程之一进行处理。由于都是独立的进程,因此在libebizserver.so中不需要关注线程之间会否同时访问内存的问题。在每个进程只有个session全局变量,需要的时候可以不加锁直接使用。


每次nginx发送请求是通过函数调用的方式传给lazarus开发的.so库文件。函数进行编号,每个函数可以指定一个服务包序号和服务序号。函数定义格式:


所有的服务函数放在一个数组变量package_1中,所有的服务包也放在一个数组变量packages中。只要在php中指定调用的服务包序号和服务序号,就能自动发送请求到相应的函数。如:

<?php

    $appid = 1;

    include "inc/common_notlogin.php"

    $s = $bizsession->request(1,1,0,"")

    echo $s

?>


以上php源码调用服务包1中的第1个服务函数,就是调用上面在unit bizpackage_1中声明的loginpage_1函数。


三、源码说明

点击桌面lazarus快捷可以直接运行lazarus。进入lazarus之后打开项目 /home/51pas/ebizserver.lpr。有兴趣的朋友可以自己试试写个服务函数,然后执行菜单run-->build,就可以在php中调用。

源码文件说明:

1、main.pas:接收nginx请求;

2、bizpackage_1.pas:服务包1处理函数;

3、bizsession.pas:session类;

4、bizutils.pas:累积的utils函数;

5、indy10:/home/51pas/indy10。


上一个版本的源码中使用了unidac控件,以及固定后台数据库为postgresql。这个版本仅使用indy控件,开发者可以自由选择习惯的后台数据库以及访问数据库的控件。这样改进后的框架甚至可以扩展到微服务器上运行,比如树莓派中,是不是很酷!


四、微信互动群

有兴趣的的朋友可以扫码加入微信互动群一起讨论:


因为群人数限制无法加入的,请先加我微信好友christopherli,我再拉到群里。

回复

使用道具 举报

*滑块验证:

本版积分规则

QQ|手机版|小黑屋|Lazarus中国|Lazarus中文社区 ( 鄂ICP备16006501号-1 )

GMT+8, 2025-5-2 11:53 , Processed in 0.031398 second(s), 13 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表