我正在使用macOS上的FastCGI,长话短说,我的应用程序应该在chroot(2)
/var/www
cc -c -o fastcgi-minimal.o main.c
cc -o fastcgi-minimal fastcgi-minimal.o -lkcgi -lz
内创建。
通常我们会使用静态链接来实现这一点,但在macOS上是file-system jail。然后我想,也许我们可以将所有文件复制到文件系统jail中,让我的应用程序就地加载它们。
以下是我构建应用程序的方式(动态链接版本):
sudo cp /usr/lib/libz.1.dylib .
sudo cp /usr/local/lib/libkcgi.a .
cc fastcgi-minimal.o -L. -lkcgi -lz -o fastcgi-minimal
sudo install -m 0555 fastcgi-minimal /var/www
sudo install -m 0555 libz.1.dylib /var/www
sudo install -m 0555 libkcgi.a /var/www
sudo kfcgi -d -U `whoami` -u `whoami` -- fastcgi-minimal
我尝试了以下
sudo kfcgi -d -p / -U `whoami` -u `whoami` -- /var/www/fastcgi-minimal
但这不起作用:
Jun 14 15:24:23 kfcgi [2411]:工人意外退出
另一方面,这很好用,表明错误是由文件系统监狱引起的,而不是其他问题:
/usr/lib
另外,将/usr/local/lib
和/var/www/usr/lib
中的所有内容分别复制到/var/www/usr/local/lib
和AnyAction
是不是一个好主意?他们似乎......太棒了!