1

如何将 CouchDB 应用程序包二进制文件作为 LaunchDaemon 运行?我可以以本地用户身份运行二进制文件,但是当我以 couchdb 用户身份运行捆绑的二进制文件时,我收到此错误:

sh-3.2$ /Applications/CouchDB\ Server.app/Contents/MacOS/CouchDB\ Server 
iniparser: cannot open /usr/local/var/lib/couchdb/Library/Preferences/couchdb-server.ini
Segmentation fault: 11

好像我错过了一个步骤或存在权限问题。我认为 local.ini 文件需要修改,并且 couchdb-server.ini 是在运行时编写的,但我不确定。

我已经从自制软件成功安装,但这对我们来说不是一个好的解决方案,因为我们需要一个可以离线使用的打包安装程序。

一些调试数据:

sh-3.2$ cat /usr/local/var/lib/couchdb/Library/Preferences/couchdb-server.ini 

[couchdb]
database_dir = 
view_index_dir = 
uri_file = 

[query_servers]
javascript = bin/couchjs share/couchdb/server/main.js
coffeescript = bin/couchjs share/couchdb/server/main-coffee.js

[log]
file = 

[product]
title = 1.2.0

和...

sh-3.2$ cat /Applications/CouchDB\ Server.app/Contents/Resources/couchdbx-core/etc/couchdb/local.ini 
; CouchDB Configuration Settings

; Custom settings should be made in this file. They will override settings
; in default.ini, but unlike changes made to default.ini, this file won't be
; overwritten on server upgrade.

[couchdb]
;max_document_size = 4294967296 ; bytes
database_dir = /usr/local/var/lib/couchdb

[httpd]
;port = 5984
;bind_address = 127.0.0.1
; Options for the MochiWeb HTTP server.
;server_options = [{backlog, 128}, {acceptor_pool_size, 16}]
; For more socket options, consult Erlang's module 'inet' man page.
;socket_options = [{recbuf, 262144}, {sndbuf, 262144}, {nodelay, true}]

; Uncomment next line to trigger basic-auth popup on unauthorized requests.
;WWW-Authenticate = Basic realm="administrator"

; Uncomment next line to set the configuration modification whitelist. Only
; whitelisted values may be changed via the /_config URLs. To allow the admin
; to change this value over HTTP, remember to include {httpd,config_whitelist}
; itself. Excluding it from the list would require editing this file to update
; the whitelist.
;config_whitelist = [{httpd,config_whitelist}, {log,level}, {etc,etc}]

[httpd_global_handlers]
;_google = {couch_httpd_proxy, handle_proxy_req, <<"http://www.google.com">>}

[couch_httpd_auth]
; If you set this to true, you should also uncomment the WWW-Authenticate line
; above. If you don't configure a WWW-Authenticate header, CouchDB will send
; Basic realm="server" in order to prevent you getting logged out.
; require_valid_user = false
secret = af156a45780111c8ce7581a05cbe4628

[log]
;level = debug

[os_daemons]
; For any commands listed here, CouchDB will attempt to ensure that
; the process remains alive while CouchDB runs as well as shut them
; down when CouchDB exits.
;foo = /path/to/command -with args

[daemons]
; enable SSL support by uncommenting the following line and supply the PEM's below.
; the default ssl port CouchDB listens on is 6984
; httpsd = {couch_httpd, start_link, [https]}

[ssl]
;cert_file = /full/path/to/server_cert.pem
;key_file = /full/path/to/server_key.pem
;password = somepassword
; set to true to validate peer certificates
verify_ssl_certificates = false
; Path to file containing PEM encoded CA certificates (trusted
; certificates used for verifying a peer certificate). May be omitted if
; you do not want to verify the peer.
;cacert_file = /full/path/to/cacertf
; The verification fun (optionnal) if not specidied, the default
; verification fun will be used.
;verify_fun = {Module, VerifyFun}
ssl_certificate_max_depth = 1
; To enable Virtual Hosts in CouchDB, add a vhost = path directive. All requests to
; the Virual Host will be redirected to the path. In the example below all requests
; to http://example.com/ are redirected to /database.
; If you run CouchDB on a specific port, include the port number in the vhost:
; example.com:5984 = /database

[vhosts]
;example.com = /database/

[update_notification]
;unique notifier name=/full/path/to/exe -with "cmd line arg"

; To create an admin account uncomment the '[admins]' section below and add a
; line in the format 'username = password'. When you next start CouchDB, it
; will change the password to a hash (so that your passwords don't linger
; around in plain-text files). You can add more admin accounts with more
; 'username = password' lines. Don't forget to restart CouchDB after
; changing this.
[admins]
;admin = mysecretpassword
4

0 回答 0