DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: pixelcraft
今日帖子: 53
在线用户: 24
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 ebizmis (ebizmis) ▲▲▲△△ -
普通会员
2017/9/18 10:12:56
标题:
在Linux上如何用Lazarus开发网站应用 浏览:1390
加入我的收藏
楼主: 一、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,我再拉到群里。

http://www.51pas.com/pasviewthread.php?tid=1000251
----------------------------------------------
欢迎加入PAS社区www.51pas.com,从开源获得力量!
作者:
男 lufangyu (伟人录) ★☆☆☆☆ -
盒子活跃会员
2017/9/19 10:06:58
1楼: 楼主牛啊,强烈支持!
----------------------------------------------
-
作者:
男 luwakin (luwakin) ★☆☆☆☆ -
普通会员
2017/9/19 12:34:56
2楼: 既然都用php了,还有delphi什么事?直接用php web框架不就搞定了
----------------------------------------------
-
作者:
男 ebizmis (ebizmis) ▲▲▲△△ -
普通会员
2017/9/19 15:30:02
3楼: 也不知道为什么,用了pascal后,觉得pascal是最好用的,最顺手的语言,大家有没有这个感觉?
----------------------------------------------
欢迎加入PAS社区www.51pas.com,从开源获得力量!
作者:
男 iamdream (银河恒久远,梦想无止境!) ★☆☆☆☆ -
大贡献会员
2017/9/19 16:09:13
4楼: Lazarus IDE 堪用了,但不够稳定啊,我这几天在win7中使用时多次崩溃,这还是在仅仅测试的情况,不知用在工程开发上会怎样?
----------------------------------------------
-广袤璀璨的银河,永无止境的梦想(梦无止境游银河) 博客挂了……
作者:
男 ebizmis (ebizmis) ▲▲▲△△ -
普通会员
2017/9/19 18:11:09
5楼: 我在centos下给客户开发了好几个项目,从来没有出现崩溃现象,可能还是windows不稳定吧
----------------------------------------------
欢迎加入PAS社区www.51pas.com,从开源获得力量!
作者:
男 ccxpts (渔夫) ★☆☆☆☆ -
普通会员
2017/9/19 20:04:23
6楼: 支持楼主,太赞
----------------------------------------------
-
作者:
男 hujiacheng ( 旺财) ★☆☆☆☆ -
普通会员
2017/9/21 10:43:15
7楼: delphi 
https://github.com/paolo-rossi/linux-daemon
https://github.com/delphi-blocks/WiRL
----------------------------------------------
免费的FTPhttps://download-installer.cdn.mozilla.net/pub/firefox/releases/43.0/win64/zh-CN/https://cc.embarcadero.com/Author/575019>http://delphi-z.ruhttps://download-installer.cdn.mozilla.net/pub/firefox/releases/43.0/win64/zh-CN/https://cc.embarcadero.com/Author/575019>http://delphi.icm.edu.pl/ftp/https://download-installer.cdn.mozilla.net/pub/firefox/releases/43.0/win64/zh-CN/https://cc.embarcadero.com/Author/575019>http://delphi-z.ruhttps://download-installer.cdn.mozilla.net/pub/firefox/releases/43.0/win64/zh-CN/https://cc.embarcadero.com/Author/575019
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行66.40625毫秒 RSS