小编Jam*_*mes的帖子

在Jenkins for Git中管理SSH密钥

我正在尝试让Jenkins运行并使用Gi​​tHub托管存储库(使用Jenkins Git插件).存储库有多个git子模块,所以我不确定我是否想尝试管理多个部署密钥.

我个人的GitHub用户帐户是我希望用Jenkins引入的每个项目的合作者,因此我在其中生成了一个SSH密钥/var/lib/jenkins/.ssh并将其添加到我的个人GitHub帐户中.

但是,当我尝试将存储库URL添加到我的Jenkins项目配置时,我得到:

Failed to connect to repository : Command "git ls-remote -h git@github.com:***/***.git HEAD" returned status code 128:
stdout: 
stderr: Host key verification failed. 
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)

同样,当我安排构建时,我得到:

stderr: Host key verification failed.
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)

我也尝试过设置这里概述的SSH配置文件,但无济于事.

谁能摆脱任何光明?谢谢

编辑

我应该补充一点,我正在运行CentOS 5.8

git ssh continuous-integration jenkins

53
推荐指数
2
解决办法
14万
查看次数

在mongoose中保存嵌套对象

来自PHP/MySQL背景,我在构建和保存数据方面遇到了最佳实践.

我正在尝试创建一个小应用程序,我可以添加多种成分的食谱.我有一堆预先填充的成分作为种子数据,其架构如下所示:

var IngredientSchema = new Schema({
    name: {
        type: String,
        trim: true,
        required: true,
        index: {
            unique: true
        }
    },
    created: {
        type: Date,
        default: Date.now
    }
});

var Ingredient = mongoose.model('Ingredient', IngredientSchema);
Run Code Online (Sandbox Code Playgroud)

配方目前看起来像这样:

var RecipeSchema = new Schema({
    name: {
      type: String,
      trim: true
    },
    ingredients: [
      {
        type: Schema.Types.ObjectId,
        ref: 'RecipeIngredient'
      }
    ],
    created: {
      type: Date,
      default: Date.now
    }
});

var Recipe = mongoose.model('Recipe', RecipeSchema);
Run Code Online (Sandbox Code Playgroud)

最后,我有一个RecipeIngredientSchema.现在,这是我的MySQL背景可能正在蔓延的地方; 我这样做的原因是因为我想要食谱和配料之间的一对多关系,但我也希望能够指定一个单位:

var RecipeIngredientSchema = new Schema({
    recipe: {
      type: Schema.Types.ObjectId, …
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb node.js express

14
推荐指数
1
解决办法
2万
查看次数

私有作曲家包 - 没有找到有效的composer.json

我正在尝试使用作曲家加载我在BitBucket上托管的库,如官方文档此处所述,但仍然收到以下错误:

[Composer\Repository\InvalidRepositoryException]
No valid composer.json was found in any branch or tag of [repository URL], could not load a package from it.
Run Code Online (Sandbox Code Playgroud)

这是我的项目 composer.json:

{
    "name": "Project name",
    "require": {
        "my-vendor/my-package": "dev-master"
    },
    "repositories": [
        {
            "type": "vcs",
            "url": [repository URL]
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

这是我的远程存储库中的composer.json(显然无法找到):

{
    "name": "my-vendor/my-package",
    "version": "0.3",
    "autoload": {
        "psr-0": {
            "NS_": "src"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我应该提一下,两个composer.json文件都应该在根目录中.

其他一些注意事项:

我还尝试了"非作曲家包"方法,我在项目composer.json中指定了包信息,并省略了远程存储库中的composer.json,如文档中所述.这成功克隆了主分支,但随后导致以下错误:

[RuntimeException]
Failed to execute git checkout "master" && git reset --hard …
Run Code Online (Sandbox Code Playgroud)

php package-managers composer-php

12
推荐指数
4
解决办法
1万
查看次数

在VPS上设置DNS

我是服务器管理的新手,所以我正在寻找一些正确设置DNS的帮助,并且通常会扩展我对该区域的了解.我有一段时间在Godaddy注册的域名.我最近设立了一个独立公司的VPS,我希望将我的Godaddy注册域名指向我的新服务器.

根据我的阅读,我可以将我的Zone文件的A记录指向我的新服务器IP,或者我可以将我当前的Godaddy Nameservers指向我的新服务器(这会使用我的新服务器的DNS? - 我假设这个需要在我的VPS上做更多的工作).任何人都可以为我确认这一点,并可能解释为什么一个优先于另一个和/或明确的差异是什么?

我正在运行CentOs 5.8.

感谢您提供正确方向的任何提示,建议和推动.

dns centos

9
推荐指数
1
解决办法
9129
查看次数

Zend_Framework - 在区域"zh"中找不到区域

我已经浏览了互联网,似乎无法找到解决我遇到的问题的方法.我正在尝试使用Zend_Currency来获取中国的货币,如下所示:

$currency = new Zend_Currency('CN');
Run Code Online (Sandbox Code Playgroud)

但是,我一直收到以下错误:

Fatal error: Uncaught exception 'Zend_Currency_Exception' with message 'No region found within the locale 'zh'' in /Library/WebServer/Documents/vendor/zendframework/zendframework1/library/Zend/Currency.php on line 561
Run Code Online (Sandbox Code Playgroud)

这是在Zend Framework 1.12.3的全新安装上,据我所知,我在这里没有做任何不正确的事情.从错误中我可以看出Zend已将国家/地区代码与区域设置相匹配.

这是一个问题,因为我的应用程序依赖于从国家/地区代码获取货币信息.我对GB,US等没有任何问题.

我已经查看Zend/Locale/Data并且可以确认zh.xml,zh_CN.xmllocale文件在那里,但我承认我不是100%我在寻找每个!

任何人对这个问题是什么以及如何解决这个问题都有任何想法?

谢谢

编辑:

这是一个反映评论讨论的编辑.

似乎Zend_Locale zh在给定国家代码时返回CN,而不是预期的字符串zh_CN.这意味着我无法找到任何可以传递给Zend_Currency以避免错误的一致性.

php zend-framework

6
推荐指数
1
解决办法
1386
查看次数

限制直接访问端口,但允许在Nginx中进行端口转发

我试图限制端口9200上对elasticsearch的直接访问,但允许Nginx代理传递给它.

这是我目前的配置:

server {
        listen 80;
        return 301;
}

server {

        listen *:5001;

        location / {
                auth_basic "Restricted";
                auth_basic_user_file /var/data/nginx-elastic/.htpasswd;

                proxy_pass http://127.0.0.1:9200;
                proxy_read_timeout 90;
        }
}
Run Code Online (Sandbox Code Playgroud)

这几乎与我想要的一样.我可以在端口5001上访问我的服务器以访问elasticsearch,并且必须按预期输入凭据.

但是,我仍然可以点击:9200并避免HTTP身份验证,这会失败.如何在不限制nginx的情况下阻止访问此端口?我试过这个:

server {
        listen *:9200;
        return 404;
}
Run Code Online (Sandbox Code Playgroud)

但我得到:

nginx: [emerg] bind() to 0.0.0.0:9200 failed (98: Address already in use)
Run Code Online (Sandbox Code Playgroud)

因为它与elasticsearch冲突.

必须有办法做到这一点!但我想不出来.

编辑:

我根据评论编辑并总结了问题:

我想锁定<serverip>:9200,基本上只允许通过端口5001(在HTTP Auth后面)进行访问.5001应代理到127.0.0.1:9200,以便只能通过5001访问elasticsearch.所有其他访问应该是404(或301等).

reverse-proxy nginx http-authentication elasticsearch

5
推荐指数
1
解决办法
4139
查看次数

Sphinx未知的关键名称'WHERE'

我正在尝试索引Sphinx中非软删除的记录:

source users : base
{
    sql_query       = \
        SELECT Id, Name, Transport, Deleted \
        FROM profiles \
        WHERE Deleted IS NULL

    sql_attr_uint = Transport
}
Run Code Online (Sandbox Code Playgroud)

我的索引这个源代码完全可以返回所有需要的记录,直到我添加WHERE语句:

ERROR: unknown key name 'WHERE' in path/to/sphinx.conf line 22 col 8
Run Code Online (Sandbox Code Playgroud)

我在其他来源中有WHERE语句按预期工作,但是当我尝试时似乎没有用Deleted IS NULL.

有没有人对这个问题有什么想法?从我的源代码中过滤删除是否更好?

我应该注意到我正在开发Windows,因此它作为Windows服务运行.

谢谢

php sphinx

2
推荐指数
1
解决办法
2109
查看次数

在postLoad中加载Doctrine实体

我有一个实现postLoad生命周期事件方法的实体.此方法有条件地更新实体并尝试保存它.有点像:

    /** 
     * @PostLoad 
     */
    public function checkExpiryDate()
    {
        $currentDate = new App_Date();

        // Check the expiry date here
        if($currentDate->getTimestamp() > $this->getDateExpired()->getTimestamp()) {
            $this->Status = "expired";
            $this->ServiceLayer->saveEntity($this);
        }
    }
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误:

Call to a member function fetch() on a non-object in Doctrine/ORM/Internal/Hydration/ObjectHydrator.php on line 149
Run Code Online (Sandbox Code Playgroud)

看来我在postLoad期间无法保存实体.

我偶然发现了这张票,建议在新密钥下注册ObjectHydrator并在任何新查询期间指定保温器.

但是,我想知道是否有一种很好的方法可以在更抽象的层面上实现它; 每当在postLoad调度期间构建查询时,我想自动注册一个新的ObjectHydrator.

此外,任何人都可以首先简要解释为什么这是一个问题?从我可以看到,一旦使用保湿器就会删除查询,但是我不明白为什么这会在构建新查询时出现问题,即使重新使用保湿器也是如此.

感谢您的任何指示!

doctrine-orm

2
推荐指数
1
解决办法
2651
查看次数

基于主机名的动态apache日志目录

我有一个PHP应用程序,由多个域使用.为了避免维护多个vhost,我只设置了一个"默认"Apache vhost来将任何传入请求引导到服务器到应用程序目录.

我想要做的是根据命中服务器的主机名动态设置Apache访问和错误日​​志路径.

例如,我想将日志路径设置为:

/var/log/application_name/example.com/error.log
/var/log/application_name/example.com/access.log
Run Code Online (Sandbox Code Playgroud)

当提出请求时example.com.

有可行的方法吗?我已经看过使用任何Apache环境变量,但是因为这些是在捕获请求时设置的,所以我认为这些变量不能用于ErrorLog或CustomLog指令.是否只需要在应用程序级别(即在PHP中)手动设置日志目录?

谢谢

apache hostname vhosts

1
推荐指数
1
解决办法
2653
查看次数

Linux上意外的T_STRING

我刚刚将Zend项目上传到我的CentOS服务器.我正在使用Doctrine ORM,所以这要求我说明我正在使用的命名空间.

我的项目在我的Windows机器上运行正常,但是当我尝试在服务器上运行它时,我得到了

Parse error: syntax error, unexpected T_STRING, expecting T_CONSTANT_ENCAPSED_STRING or '(' in ************/Bootstrap.php on line 2
Run Code Online (Sandbox Code Playgroud)

错误.第2行是

use Doctrine\ORM\EntityManager,
Doctrine\ORM\Configuration;
Run Code Online (Sandbox Code Playgroud)

我对Linux很新,也许我认为它的Linux有问题我错了,所以如何解决这个错误呢?

谢谢

php linux doctrine zend-framework

0
推荐指数
1
解决办法
915
查看次数