一、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" 拷贝文件。
打开 所有应用程序-->互联网-->火狐浏览器
输入用户名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,我再拉到群里。
|