Fresh installation of the Phabricator with phd_enable="YES" in the /etc/rc.conf file can't start the phd daemon because of the conf/local/local.json file missing. I was not able to found any information what is necessary to include in this file in the port, Phabricator docs site nor the Internet. However daemon happily starts when empty file is created. There should be better documented if anything is mandatory to include in this file. Alternatively, empty file may be installed during package installation or the user may be notified in the pkg-message to do so.
local.json stores essential configuration like database server credentials, timezone, base URI etc.. It's written by bin/config. Without those basic configuration settings, Iphabricator can't do anything useful, so not being able to run the daemons makes sense (well, AFAIK, please correct me if I'm wrong or if things have changed lately).
Looks like daemons are able to get config somehow, because with empty local.json file I see 3 daemons running in the /daemon console and grep -i err|warn in the phd logs returns only missing base-uri, which is outstanding setup task site-wide. It is of course possible, that my daemons instances are not able to do anything useful, some daemons are not running etc., but it is hard to say with no documentation what is necessary, what processes should be running and so on and that is main point of my bug report :) However it is probably upstream problem, because my not-so-basic Google-fu didn't reveal anything useful even at the Phabricator docs site.
(In reply to knezour from comment #2) Once you configured phabricator according to upstream documentation, local.json should be populated. Mind if I close this as "works as intended"?
No, after completing the "setup wizard" I ended without any local.json file. May you provide link to mentioned documentation? I wasn't able to find anything useful. I don't mind if the ticket get closed as it works for me now, however I still see little room for improvement regarding better describing necessary steps to get phd daemon running for those who will come in our steps.
(In reply to knezour from comment #4) Could you share some details about your setup? Is there a (populated) config.json or some other configuration file around?
I think nothing special. Fresh 10.2-RELEASE in VM, pkg install php5-phabricator, mysql56-server, nginx, couple of the PHP extensions. There is no config file under the conf directory, only some README, .keep and __init_conf__.php files. ./bin/config list lists 199 variables, none has any value set. Out of curiosity I also tried this right now: ./bin/config migrate Migrating file-based config to more modern config... Skipping config of source type PhabricatorConfigDatabaseSource... Skipping config of source type PhabricatorConfigLocalSource... Skipping config of source type PhabricatorConfigDefaultSource... Done. Migrated 0 keys.
And to be clear - there is also empty /conf/local/json.local file created by me to proceed with the phd startup.
How do you connect to your mysql server? In my setup local.json has mysql_host/password etc.
(In reply to Michael Gmelin from comment #8) I was not asked for DB login info during setup. MySQL listen only on unix socket - no networking and phabricator probably used root account without password. At least I don't see any other accounts in the DB defined (except two nameless). And while there, I see 58 phabricator_* databases, so there is definitely some communication between phabricator and DB.
Could you try to run /usr/local/lib/php/phabricator/bin/config set mysql.user root (or some other user) and see if that touches local.json?
(In reply to Michael Gmelin from comment #10) Yes, it does. # ./bin/config set mysql.user root Set 'mysql.user' in local configuration. # cat conf/local/local.json { "mysql.user": "root" }
A commit references this bug: Author: grembo Date: Tue Feb 2 22:53:23 UTC 2016 New revision: 407898 URL: https://svnweb.freebsd.org/changeset/ports/407898 Log: Add local.json.sample, so that phabricator daemons start ok in simple out-of-the-box configurations. PR: 206835 Approved by: mentors (implicit) Changes: head/devel/phabricator/Makefile head/devel/phabricator/files/local.json.sample head/devel/phabricator/pkg-plist
(In reply to knezour from comment #11) Ok, I created a sample file that is installed with the port, which is setting mysql.user to root and an empty password. Using @sample, this file is also duplicated to local.json and - if the contents of the file didn't changed - it's removed, otherwise it will stay there, even after removing the package. I didn't bump the revision, as this is a change existing installations won't benefit from.