如何使用 fastcgi 和 perlbrew 为在 nginx 上运行的 Perl Catalyst 应用程序创建初始化脚本

2023-12-03

我正在寻找一个 initscript,以便在运行 nginx 作为 Perl Catalyst 应用程序代理的网络服务器上使用 perlbrew。我目前正在尝试通过以下方式启动应用程序

  source $PERLBREW
  execute "perlbrew use perl-5.14.4@devel"
  execute "mkdir -p $PID_PATH && $START_ICOS_APP > /dev/null  2>&1 &"
  echo "$DESC started"

但它似乎找不到本地 perl 安装。 $PERLBREW 设置为我的 perlbrew 文件夹。


这是一个很好的分步指南,但它是法语(但仍然可以理解)。

http://www.catapulse.org/articles/view/124

我复制在这里:

设置将运行催化剂应用程序的用户(本例中为 www-data)

su - www-data
curl -kL http://install.perlbrew.pl | bash
echo 'source ~/perl5/perlbrew/etc/bashrc' >> .profile
. .profile

perlbrew install perl-5.16.3 -Dusethreads --as perl-5.16.3_WITH_THREADS
perlbrew switch perl-5.16.3_WITH_THREADS
#perlbrew install-cpanm
#cpanm Catalyst Catalyst::Devel
#catalyst.pl myapp

(我假设您的应用程序名称是 myapp,请将其替换为您的应用程序名称。)

创建/etc/nginx/sites-enabled/myapp

server {
    listen 80;
    server_name exemple.com *.exemple.com;
    client_max_body_size 50m;

    location / {
      include /etc/nginx/fastcgi_params;
      fastcgi_param SCRIPT_NAME '';
      fastcgi_param PATH_INFO $fastcgi_script_name;
      fastcgi_pass unix:/var/www/myapp/myapp.socket;
    }

    location /static {
      root /var/www/myapp/root;
      expires 30d;
    }
}

创建 /var/www/myapp/myapp.fastcgi.initd

#!/usr/bin/env perl
use warnings;
use strict;
use Daemon::Control;

# 1) create initd file
# ./myapp.fastcgi.initd get_init_file >  /etc/init.d/cat-myapp
#
# 3) install to runlevels
# update-rc.d cat-myapp defaults


my $app_home = '/var/www/myapp';
my $perl     = 'perl';
my $program  = $app_home . '/script/myapp_fastcgi.pl';
my $name     = 'myapp';
my $workers  = 1;
my $pid_file = $app_home . '/myapp.pid';
my $socket   = $app_home . '/myapp.socket';

Daemon::Control->new({
    name        => $name,
    lsb_start   => '$nginx',
    lsb_stop    => '$nginx',
    lsb_sdesc   => $name,
    lsb_desc    => $name,
    path        => $app_home . '/myapp.fastcgi.initd',

    user        => 'www-data',
    group       => 'www-data',
    directory   => $app_home,
    program     => "$perl $program --nproc $workers --listen $socket",

    pid_file    => $pid_file,
    stderr_file => $app_home . '/myapp.out',
    stdout_file => $app_home . '/myapp.out',

    fork        => 2,
})->run;

设置文件权限并创建正确的初始化文件:

$ chmod +x myapp.fastcgi.initd
$ ./myapp.fastcgi.initd get_init_file >  /etc/init.d/cat-myapp

启动您的应用程序并启动您的网络服务器:

$ /etc/init.d/cat-myapp start
$ /etc/init.d/nginx restart 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 fastcgi 和 perlbrew 为在 nginx 上运行的 Perl Catalyst 应用程序创建初始化脚本 的相关文章

  • nginx/uwsgi 服务器的持久内存中 Python 对象

    我怀疑这是否可能 但这是问题和提出的解决方案 提出的解决方案的可行性是这个问题的对象 我有一些需要可用于所有请求的 全局数据 我将这些数据保存到 Riak 并使用 Redis 作为缓存层以提高访问速度 目前 数据被分为约 30 个逻辑块 每
  • 设置 nginx 具有多个 IP

    我的 nginx 配置文件位于 etc nginx sites available 下 有两个上游说 upstream test1 server 1 1 1 1 50 server 1 1 1 2 50 upstream test2 ser
  • 有没有对数字(千)进行分组的函数?

    小 模块中是否隐藏着一个函数 它为我执行此操作 my var 23654325432 var reverse var var s d 3 K d g var reverse var I like 数字 格式 http search cpan
  • 匹配有限自然数列

    我怎样才能匹配有限自然数 http en wikipedia org wiki Natural number正则表达式系列 所以 要求是 字符串包含数字和空格 作为分隔符 第一个数字是1 每个数字 第一个数字除外 等于前一个数字 1 应该是
  • 生产中的静态文件出现 Django 301 和 403 禁止错误

    我正在尝试使用 nginx 和 Gunicorn 在 ubuntu 14 04 vps 上部署 django 网站 但是我的 css 文件和 js 文件没有加载 我在默认的 django 开发服务器上开发了它 它运行得很好 但是当我部署我的
  • Dokku:从应用程序监听多个端口

    我正在使用 dokku 部署一个节点应用程序 带有express js 我的应用程序由 2 个 Express js 应用程序组成 它们监听两个不同的端口 一个是主应用程序 另一个是网络界面kue 一个简单的 Node js 作业队列 当我
  • Nginx:在同一服务器上为多个 React 应用程序提供服务

    我正在尝试在同一服务器上设置多个 React 应用程序 问题是在我构建项目之后 index html from build 已找到 但辅助文件来自build static不是 最初 我只用一个应用程序location static 有别名
  • Perl 中如何释放内存?

    我的代码如下所示 my var my var new while 1 while my k v each var a sub v var A map var var new keys var new var new B sub a sub
  • Perl 中的布尔函数应该返回什么值?

    简短的问题 在 Perl 代码库中一致表示真假的最佳方法是什么 1 0 1 Perl 原生布尔运算符的特殊空字符串 return undef 即空列表 问题背景 我们都知道 Perl 在布尔值方面非常灵活 就像大多数事情一样 例如 Perl
  • Mono 3.0、Ubuntu 12.10、Nginx 和 ServiceStack

    根据 ServiceStack 网站的说法 使用 Mono 在 Linux 上启动和运行 ServiceStack 应该很容易 我已经在系统 Ubuntu 12 10 上安装了 nginx mono 3 0 和 fastcgi 我用过thi
  • 当 ssl 和 http2 打开时,Nginx 似乎忽略 server_name

    我有这个 nginx 配置 server listen 80 default server listen 80 default server server name www example com return 301 https www
  • 在压缩存档内的文本文件上运行“head”,而不解压存档

    问候 我接手了之前的团队并编写了处理 csv 文件的 ETL 作业 我在 ubuntu 上结合使用 shell 脚本和 perl csv 文件很大 它们以压缩档案形式到达 解压后 很多都超过 30Gb 是的 那是 G 旧进程是在 cron
  • 使用 nginx 在云上部署 django 和 React

    我有一个 digitalocean 服务器 并且已经使用 Gunicorn 和 nginx 部署了 Django 后端服务器 如何在同一台服务器上部署 React 应用程序 您可以构建 React 应用程序并使用 Nginx 提供其静态文件
  • Perl 中可以使用哪种语法糖来减少左/右值运算符与 if 语句的代码?

    那里有很多语句 因为 Perl 是一种非常甜蜜的语言 但任何语言中最常用的语句都是 if 语句和设置值的组合 我想我已经找到了很多 但仍然存在一些空白 最终 目标是不必多次编写变量名 这是我到目前为止所拥有的 r s r s unless
  • Perl 和 Unix 如何以相同的顺序对 Unicode 字符串进行排序?

    我正在尝试获取 Perl 和 GNU Linuxsort 1 程序就如何对 Unicode 字符串进行排序达成一致 我在跑sort with LANG en US UTF 8 在Perl程序中我尝试了以下方法 use Unicode Col
  • 在使用 Let's Encrypt 和 Nginx 进行的 SSL Labs 测试中,如何在所有类别中获得 A+ 100 分?

    在 www ssllabs com 测试我的 SSL 证书时 我试图在所有类别上获得 100 分 然而 我正在努力争取所有分数都达到 A 和 100 关于我应该使用什么 NGINX 配置有什么建议吗 或者我应该如何生成 Let s Encr
  • 使用 SIGINT 默认处理程序时从 system() 返回值

    我遇到了一些奇怪的返回值system 当子进程从终端接收到 SIGINT 时 解释一下 从 Perl 脚本parent pl I used system 运行另一个 Perl 脚本作为子进程 但我还需要通过 shell 运行子进程 所以我使
  • Perl 非贪婪

    我遇到非贪婪正则表达式 regex 的问题 我已经看到有关于非贪婪正则表达式的问题 但它们没有回答我的问题 Problem 我正在尝试匹配 lol 锚点的 href Note 我知道这可以通过 Perl HTML 解析模块来完成 我的问题是
  • Bugzilla 中分离客户端的基本权限

    我正在尝试配置一个 Bugzilla 实例 这将允许我的客户登录并为其正在开发 维护的网站提交错误 例如 我创建了 2 个名为 TestProject TestProject2 的产品和一个名为 TestClient 的用户 我想要实现的是
  • 使用 Perl 获取 值

    因此 我有一个报告工具 可以在 HTML 文件中输出作业调度统计信息 并且我希望使用 Perl 来使用这些数据 但我不知道如何单步浏览 HTML 表 我知道如何使用 jQuery 来做到这一点 find tr each function v

随机推荐

  • 在java中检查对象相等性而不覆盖 equals [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 java中是否有任何实用程序可以检查对象的相等性而无需equals压倒一切 由于某些原因 我不想为我的类提供 equals 方法 我需要类似的东西S
  • Electron 中具有本地资源的 iframe

    我需要渲染iframe在我的电子应用程序中 哪里的frm html链接本地文件脚本foo js这是我的电子应用程序的一部分 p Inside iframe p 当我
  • Android Https错误不受信任的服务器证书

    在我的情况下 当我在模拟器上运行程序时 它工作正常 但是当我将 apk 安装到手机时 出现错误 不受信任的服务器证书 问题是什么 我的 AsyncTask 的代码用于向服务器发送响应 public abstract class BaseAs
  • Google 电子表格从自己的 URL 读取参数

    我想打开一个带有一些参数的 Google 电子表格 我可以在 URL 中添加这几个参数来打开电子表格 然后在电子表格中将它们加载到某些单元格中吗 相关电子表格是私下共享的 使用 URL 的用户被授予编辑权限 Sandy Good 提供了一个
  • 谷歌云音译 API

    Google 确实提供翻译 API 文本转语音 API 但是是否有音译 API 可以显示罗马尼亚语文本中的发音 就像他们在谷歌翻译 例如 你好的发音是he l h l 对于不同的语言可能会有所不同 看来您正在寻找音译API但不幸的是它早已被
  • 如何计算 numpy 数组的行对之间的欧氏距离

    我有一个numpy数组如 import numpy as np a np array 1 0 1 0 1 1 0 0 1 0 1 0 0 0 1 1 我想计算一下euclidian distance每对行之间 from scipy spat
  • 对特定受众隐藏 Azure 表中的数据

    我在 Azure 中有一个资源组 其中包含云服务和存储帐户 我想向我的开发人员授予对资源组的访问权限 以便他们可以访问资源并进行更改 但是 存储帐户中有一个特定的表 其中包含敏感的用户详细信息 该表正在通过我们的客户端应用程序使用 SAS
  • 从 'int' 字符串获取 int 类型

    在Python中 给定字符串 int 我怎样才能得到type int Using getattr current module int 不起作用 int不是当前模块的命名空间的一部分 它是的一部分 builtins 命名空间 所以你会跑ge
  • Android 中的 WindowManager$BadTokenException

    首先 我很清楚发生此错误是因为我试图通过调用窗口 对话框Context那不是一个Activity 但就没有什么解决办法吗 我的要求是 我有一个Dialog在普通 JAVA 类的方法中使用自定义样式表 我想从任何地方调用该方法Activity
  • HTML5 视频标签上不需要的背景颜色/伪像

    我在我们即将推出的网站的登陆页面上使用了视频标签Levoma 我还使用 SublimeVideo 对我的视频进行一些额外的控制 ISSUE 自从我升级到最新版本 10 0 648 204 后 我在 Chrome 上看到了某种伪影 视频背景不
  • XQuery 返回错误..?

    下面是 XML 文件
  • C++:字符串运算符重载

    我可以重载现有类中的现有函数 运算符吗 我试图这样做 include
  • 单击导航抽屉即可关闭

    我已经实现了导航抽屉 但在使其正常运行时遇到一些问题 当我单击位置 1 或 2 时 它不会启动新片段 MainActivity java public class MainActivity extends Activity private
  • Java - 如何对非拉丁字符的 URL 路径进行编码

    目前有final URL url new URL urlString 但我遇到服务器不支持路径中的非 ASCII 的情况 使用 Java Android 我需要对 URL 进行编码 http acmeserver com download
  • 使用全局设置作为属性参数

    我想在属性中指定一个参数 如下所示 OutputCache Duration GlobalSettings GlobalVar 其中 GlobalVar 是我只定义一次的变量 不关心在哪里 使用配置设置无论如何都不起作用 而且我也无法让它与
  • 将行与数据帧 pandas 中的下一行合并

    我在 pandas 中有一个包含多列的数据框 我想将每一行与下一行合并 例子 输入数据框 A B C a1 a2 a3 b1 b2 b3 c1 c1 c3 d1 d2 d3 输出数据帧 A1 B1 C1 A2 B2 C2 a1 a2 a3
  • 如何使用 Dart HttpClient 发出 DELETE 请求?

    如果您使用的是 DartHttpClient 它提供了一个HttpClientRequest 从一台服务器向另一台服务器发出请求 据我所知 唯一可用的 HTTP 方法是GET and POST 分别对应于post postUrl and g
  • 为什么 rspec 不运行? Rspec 在启动后就挂起

    今天我跑不动了rspec在过去的一年里我每天都会测试很多次的项目 它打印前几行启动行 弃用警告等 然后挂起 几分钟过去了 没有任何额外的输出 Ctrl C 成功地用正常方式杀死了它 RSpec is shutting down and wi
  • RegisterPowerSettingsNotification C# pinvoke

    我正在尝试检测笔记本电脑盖子何时打开和关闭 应该非常简单 我似乎可以正确注册该事件 但是当我关闭笔记本电脑窗口时 我没有收到通知 这是 DLL 导入 DLL代码 http www pinvoke net default aspx user3
  • 如何使用 fastcgi 和 perlbrew 为在 nginx 上运行的 Perl Catalyst 应用程序创建初始化脚本

    我正在寻找一个 initscript 以便在运行 nginx 作为 Perl Catalyst 应用程序代理的网络服务器上使用 perlbrew 我目前正在尝试通过以下方式启动应用程序 source PERLBREW execute per