小编Ben*_*old的帖子

我的npm模块应该在Mac OS X上安装在哪里?

我试图升级phonegap通过npm当我开始运行陷入困境.长话短说,node_modules我的电脑上有两个目录.

/usr/local/lib/node_modules
/usr/local/share/npm/lib/node_modules
Run Code Online (Sandbox Code Playgroud)

当我运行时npm upgrade -g phonegap,似乎npm更新了驻留的包的副本/usr/local/lib/node_modules.但是,如果我which phonegap发现符号链接指向较旧的安装位置/usr/local/share/npm/lib/node_modules.

此外,当我尝试安装一个独立的软件包,例如express,文件安装在/usr/local/lib/node_modules目录中,但在我的任何地方都没有创建可执行文件的符号链接$PATH.

两个问题:

  • 哪个是Mac OS X上节点模块的正确目录?
  • 如何npm$PATH安装软件时配置链接可执行文件?

加分:安装方法是否node会影响配置?有很多选择.


编辑:我发现我的符号链接正在创建/usr/local/bin,但我的.bash_profile设置/usr/local/share/npm/bin/usr/local/bin在我的$PATH.我依稀记得在某些时候将这条路径添加到我的个人资料中,但我不确定为什么.

所以问题现在变成了:我如何node_modules在我的计算机上找到两个不同的目录,为什么我要将我node_modulesshare/npm/lib子目录放在子目录中/usr/local/lib

macos node.js npm

70
推荐指数
5
解决办法
10万
查看次数

如何将S3存储桶挂载到EC2实例并使用PHP写入?

我正在开发一个托管在Amazon Web Services上的项目.服务器设置包含两个EC2实例,一个Elastic Load Balancer和一个Web应用程序所在的额外Elastic Block Store.该项目应该使用S3来存储用户上传的文件.为了这个问题,我将调用S3存储桶static.example.com

我已经尝试使用s3fs(https://code.google.com/p/s3fs/wiki/FuseOverAmazon), RioFS(https://github.com/skoobe/riofs)和s3ql(https://code.google.com/p/s3ql /).s3fs将挂载文件系统,但不会让我写入存储桶(我在SO上问了这个问题:如何使用FUSE安装具有适当权限的S3卷).RioFS将挂载文件系统并让我从shell写入存储桶,但使用PHP保存的文件不会出现在存储桶中(我在GitHub上打开了项目问题).s3ql将挂载存储桶,但存储桶中已有的文件都不会出现在文件系统中.

这些是我使用的mount命令:

s3fs static.example.com -ouse_cache=/tmp,allow_other /mnt/static.example.com
riofs -o allow_other http://s3.amazonaws.com static.example.com /mnt/static.example.com
s3ql mount.s3ql s3://static.example.com /mnt/static.example.com
Run Code Online (Sandbox Code Playgroud)

我也试过使用这个S3类:https://github.com/tpyo/amazon-s3-php-class/和这个FuelPHP特定的S3包:https://github.com/tomschlick/fuel-s3.我能够获得FuelPHP包以列出可用的存储桶和文件,但是将文件保存到存储桶失败(但没有错误).

你有没有在本地linux文件系统上安装S3存储桶并使用PHP成功地将文件写入存储桶?你使用了什么工具?如果您使用上述工具之一,您使用的是哪个版本?

编辑 我被告知我RioFS在GitHub上打开的问题已经解决.虽然我决定使用S3 REST API而不是尝试将存储桶作为卷安装,但RioFS这些天似乎可能是一个可行的选择.

php fuse amazon-s3 s3fs

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

如何在现有macOS项目中使用Swift Package Manager?

我一直在使用Cocoapods来管理我的Swift项目的依赖项.我遇到了这个没有在Cocoapods上市的包裹.相反,它建议使用Swift Package Manager.但是,每当我尝试使用Swift Package Manager基本上做任何事情时,它最终会完全破坏我的整个项目.

因此,为了弄清楚如何实际使用Swift Package Manager,我正在测试项目中使用它.

这是我尝试过的:

  1. 从Xcode创建一个新项目

文件 - >新建 - >项目 - > Cocoa App

产品名称:basic-ssh-test

这会创建一个基本应用程序,当我点击"运行"时加载一个空白窗口.为了好玩,我添加print("test")到了applicationDidFinishLaunching我的函数中,AppDelegate因此当我运行程序时,调试窗口会显示"test".

现在我想将Shout包添加为依赖项.

  1. swift package init --type executable

这将创建以下文件:

Creating executable package: basic-ssh-test
Creating Package.swift
Creating README.md
Creating .gitignore
Creating Sources/
Creating Sources/basic-ssh-test/main.swift
Creating Tests/
Run Code Online (Sandbox Code Playgroud)

现在我要将"Shout"依赖项添加到我的新Package.swift文件中:

// swift-tools-version:4.0
import PackageDescription

let package = Package(
    name: "basic-ssh-test",
    dependencies: [
        .package(url: "https://github.com/jakeheis/Shout", from: "0.2.0")
    ],
    targets: [
        .target(
            name: "basic-ssh-test",
            dependencies: …
Run Code Online (Sandbox Code Playgroud)

macos xcode swift

29
推荐指数
2
解决办法
4571
查看次数

我在CSS文件中添加了一行文本,垃圾来自浏览器

我正在使用Vagrant来管理PHP 5.5和nginx 1.4.4的Debian Wheezy的VirtualBox实例.我的本地环境是Mac OS X 10.9,PHP 5.5和Apache 2.2.24.我有一个同步目录,指向我的特定项目的文档根目录.

我的本地计算机具有VirtualHost设置,该设置也指向此项目的文档根目录.因此,我实际上有两个不同的URL,我可以指向我的浏览器,并将执行相同的代码.一个URL命中虚拟机,而另一个URL命中我的本地Apache安装.

我已经能够编辑几个PHP文件没有问题.我在本地进行更改,它们会立即显示在虚拟机和本地Web服务器上.但是,每当我尝试编辑CSS时,事情都会变得奇怪.我正在尝试将一行CSS添加到静态CSS文件中.有点像:

.body {margin-top:50px}
Run Code Online (Sandbox Code Playgroud)

当我做这个改变时,虚拟机就疯了.我不确定它是否正在发送一个损坏的文件,或者它只是在CSS文件的末尾添加了一堆奇怪的字符,但我甚至无法在这里粘贴它们.我做了一个查询转储请求CSS文件,响应如下:

在此输入图像描述

我通过虚拟机查看了vim中的文件.我使用多个文本编辑器查看了该文件.对于我的生活,我发现它没有任何问题.当我通过本地Apache安装加载完全相同的文件时,它可以正常工作:

在此输入图像描述

请注意,body声明出现在button和之间footer,并且文档末尾没有奇怪的字符.

我注意到的另一件事是我的空白在某些时候也被操纵了.有问题的CSS文件使用四个空格进行缩进,但在虚拟机的响应中,这些行只有两个缩进空格.你无法从图片中看到它,因为它们是由Charles格式化的,但我查看了原始数据.这真的很奇怪.

当你通过Vagrant/nginx组合与我的本地/ Apache组合服务时,你知道是什么导致我的CSS文件操作?

编辑

我将一些字符粘贴到十六进制转换器中,并将所有字符转换为问号.我尝试了二进制到十进制转换,它们都变成了�,我可以找到"用于替换其值在unicode中未知或无法代表的字符".我跑file --mime了文件然后又回来了rental-application.js: text/plain; charset=us-ascii.那么... nginx设置可能吗?

我对JavaScript文件有完全相同的问题.如果我vagrant destroyvagrant up是唯一的办法,我发现到目前为止解决该问题.当我必须在文件保存之间重新启动VM时,它无法快速排除故障.

我用来查看文件的每个方法都有效.唯一的问题是当它通过nginx提供时,这让我觉得我有一些类型的编码设置错误.这主要是库存设置.

更离奇

如果我mv rental-application.js rental-application.html在我的浏览器中加载页面,它会很完美.如果我将名称更改为,则同样适用rental-application.php.但是,只要我将名称更改为rental-application.jsrental-application.css,我的更改就会消失,并且�字符会重新出现在文档的末尾.

甚至更奇怪

我可以在VM上创建一个js文件,它将通过VM nginx服务器正常加载.如果我随后修改了刚刚创建的文件并重新加载,则不会显示更改,只会显示垃圾字符.

如果我mv以不同的名称归档.js,则垃圾字符问题仍然存在.但是,如果我cat将重命名的文件的内容添加到具有原始名称的新文件中,则所有内容都在Universe中.

nginx character-encoding vagrant

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

如何为./configure指定LDFLAGS和CPPFLAGS?

我正在使用运行OS X 10.8.3的Mac.我正在尝试编译cgminer 3.0.0.在我的第一次运行中,./configure我收到了消息:

checking for LIBCURL... no
checking for LIBCURL... no
configure: error: Missing required libcurl dev >= 7.18.2
Run Code Online (Sandbox Code Playgroud)

所以我使用自制软件安装了最新版本的libcurl:

brew install curl
Run Code Online (Sandbox Code Playgroud)

似乎成功了.我收到了这条消息:

downloaded: /Library/Caches/Homebrew/curl-7.30.0.tar.gz
==> ./configure --prefix=/usr/local/Cellar/curl/7.30.0
==> make install
==> Caveats
This formula is keg-only: so it was not symlinked into /usr/local.

Mac OS X already provides this software and installing another version in
parallel can cause all kinds of trouble.

The libcurl provided by Leopard is too old for CouchDB to …
Run Code Online (Sandbox Code Playgroud)

configure libcurl

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

如何在libcurl中启用https支持?

当我试图$ brew update收到错误时:

error: Protocol https not supported or disabled in libcurl while accessing https://github.com/mxcl/homebrew/info/refs?service=git-upload-pack
Run Code Online (Sandbox Code Playgroud)

但是,当我$ curl --version,我看到:

curl 7.21.4 (x86_64-apple-darwin12.2.0) libcurl/7.21.4 OpenSSL/0.9.8y zlib/1.2.5 libidn/1.20
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smtp smtps telnet tftp 
Features: IDN IPv6 Largefile NTLM SSL libz 
Run Code Online (Sandbox Code Playgroud)

除非我遗漏了什么,否则这对我来说很好.请注意https协议列表中列出的内容.

$ which curl 产生可疑的回应:

/usr/local/php5/bin/curl
Run Code Online (Sandbox Code Playgroud)

嗯...也许brew是在使用不同的curl(就像那个/usr/bin/curl).让我们来看看:

$ /usr/bin/curl --version

curl 7.24.0 (x86_64-apple-darwin12.0) libcurl/7.24.0 OpenSSL/0.9.8y zlib/1.2.5
Protocols: …
Run Code Online (Sandbox Code Playgroud)

git homebrew libcurl

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

拉取请求被拒绝时如何更新GitHub forked repo?

我在GitHub上分了一个回购并提交了拉取请求.该项目的维护者拒绝了拉取请求,但我们在论坛中找到了更好的解决方案.他们指示我使用替代更改创建另一个拉取请求.但是,我在GitHub上的存储库的分支现在已经过时了,因为自从我分叉以来,更新已经被推送到主仓库.此外,GitHub上的存储库还有一个额外的提交(我的拉取请求提交),它不应该存在,因为它不被接受作为项目的一部分.

我发现了这个问题:如何更新GitHub分叉存储库?

我按照说明操作,具体来说,我这样做了:

git remote add upstream git://github.com/fuel/core
git fetch upstream
Run Code Online (Sandbox Code Playgroud)

结果导致:

remote: Counting objects: 93, done.
remote: Compressing objects: 100% (47/47), done.
remote: Total 69 (delta 49), reused 40 (delta 20)
Unpacking objects: 100% (69/69), done.
From git://github.com/fuel/core
 * [new branch]      1.0/master -> upstream/1.0/master
 * [new branch]      1.1/master -> upstream/1.1/master
 * [new branch]      1.2/develop -> upstream/1.2/develop
 * [new branch]      1.2/master -> upstream/1.2/master
 * [new branch]      1.3/develop -> upstream/1.3/develop
 * [new branch]      1.3/master -> upstream/1.3/master
 * [new branch]      1.4/develop …
Run Code Online (Sandbox Code Playgroud)

github git-rebase git-checkout

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

如何通过第三方服务授权后使用OAuth 2.0保持会话?

我正在为我正在开发的应用程序实现基于OAuth 2的授权模型.我正在为最终用户提供使用Facebook登录或使用我的API设置电子邮件/密码帐户的功能.使用密码授权,电子邮件/密码验证很简单.我正在寻找Facebook登录流程的帮助.

我的应用程序是一个单页面应用程序,它使用JSON API(我的"资源服务器").我正在使用Facebook JavaScript SDK来授权Web应用访问最终用户的电子邮件地址.

当用户尝试使用Facebook登录时,整个过程发生在Facebook和Web应用程序之间.因此,在使用Facebook的OAuth服务器验证令牌之前,我的API无法信任Facebook授权令牌.

截至目前,我正在将Facebook传递accessToken给我的API,然后通过服务器到服务器调用"我"图API来验证用户对Facebook的授权.以下是我当前设置的说明:

我目前的OAuth流程

所以,在这一点上,我有一个Facebook访问令牌和一个电子邮件地址.我需要在我的API服务器和Web应用程序之间保持会话.此时持久化会话的标准方法是什么?

从阅读OAuth文档来看,这似乎是我的API服务器和Web应用程序之间需要"隐式授权"的情况类型,但该授权类型在我正在使用OAuth包中不可.该软件包的作者还说,隐性拨款"非常不安全".

我的另一个想法是,我可以创建随机客户端ID和客户端密钥,然后将它们传递回Web应用程序,以便它可以通过凭据授权请求访问令牌.这对我来说似乎不合逻辑.为什么我不创建一个访问令牌并将其发送回客户端直接使用?

我应该在Facebook的初始授权后直接在我的网络应用程序和API服务器之间维护身份验证,这是正确的吗?

我意识到我可以生成随机密码并向用户发送HTTP Basic令牌,但除非没有任何好处,否则我更愿意使用OAuth.

api oauth-2.0 single-page-application

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

为什么要调用$ HTTP_RAW_POST_DATA?

我最近将我的生产服务器升级到Ubuntu 14.04和PHP 5.6,现在我在错误日志中收到警告:

2014/10/31 10:42:45 [error] 17128#0: *46238 FastCGI sent in stderr: "PHP message: PHP Deprecated: Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version. To avoid this warning set 'always_populate_raw_post_data' to '-1' in php.ini and use the php://input stream instead. in Unknown on line 0" while reading response header from upstream, client: 24.123.216.42, server: example.com, request: "POST /api/notes HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "example.com", referrer: "https://example.com/admin/"

阅读了文档以及这个有点相关的问题:未定义的变量:HTTP_RAW_POST_DATA.但是,我无法弄清楚为什么要记录此通知.据我所知,我没有$HTTP_RAW_POST_DATA在我的代码库中的任何地方使用.我试过了:

find . -exec …
Run Code Online (Sandbox Code Playgroud)

php

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

如何配置Chef Solo以在新的Vagrant盒子上安装Nginx?

我是Chef的新手,文档(甚至是他们网站的主页)让我头晕目眩.我甚至不确定我是否将它用于正确的目的.

我的目的是设置一个Vagrantfile告诉Chef Solo在我启动一个新盒子时自动安装一些软件.这是Chef Solo的预期用途之一,我是否正确?

我不确定这是否是"地球上最严峻的基础设施挑战"之一,但无论如何.

我的第一个目标是让Solo主厨nginx为我安装.在我的项目中,我克隆了食谱nginx:

$ git clone https://github.com/opscode-cookbooks/nginx.git cookbooks/nginx
Run Code Online (Sandbox Code Playgroud)

我编辑我Vagrantfile看起来像这样:

Vagrant.configure("2") do |config|
  config.vm.box = "opscode-ubuntu-1204"
  config.vm.provision :chef_solo do |chef|
    chef.add_recipe "nginx"
  end
end
Run Code Online (Sandbox Code Playgroud)

当我跑了vagrant up,我得到了一些食谱,未发现(一些错误build-essential,apt等等),所以我克隆他们从适当的回购协议.现在,当我vagrant up,我得到这个输出:

[2013-10-01T20:31:03+00:00] INFO: Processing package[nginx] action install (nginx::package line 38)    

Error executing action `install` on resource 'package[nginx]'
Chef::Exceptions::Exec
----------------------

apt-get -q -y install nginx=1.1.19-1ubuntu0.1 returned 100, expected 0

Resource Declaration:
---------------------
# In …
Run Code Online (Sandbox Code Playgroud)

nginx chef-infra vagrant ubuntu-12.04

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