mirror of
https://we.phorge.it/source/phorge.git
synced 2025-02-25 13:09:08 +01:00
Summary: Add installation check for a dot in the domain, which is necessary for some browsers to set cookies. Test Plan: Restart web server to force the setup procedures to run again. Reviewers: epriestley Reviewed By: epriestley CC: aran, Korvin Differential Revision: https://secure.phabricator.com/D4710
194 lines
6.6 KiB
Text
194 lines
6.6 KiB
Text
@title Configuration Guide
|
|
@group config
|
|
|
|
This document contains basic configuration instructions for Phabricator.
|
|
|
|
= Prerequisites =
|
|
|
|
This document assumes you've already installed all the components you need.
|
|
If you haven't, see @{article:Installation Guide}.
|
|
|
|
The next steps are:
|
|
|
|
- Configure your webserver (Apache, nginx, or lighttpd).
|
|
- Access Phabricator with your browser.
|
|
- Follow the instructions to complete setup.
|
|
|
|
= Webserver: Configuring Apache =
|
|
|
|
NOTE: Follow these instructions to use Apache. To use nginx or lighttpd, scroll
|
|
down to their sections.
|
|
|
|
Get Apache running and verify it's serving a test page. Consult the Apache
|
|
documentation for help. Make sure ##mod_php## and ##mod_rewrite## are enabled,
|
|
and ##mod_ssl## if you intend to set up SSL.
|
|
|
|
If you haven't already, set up a domain name to point to the host you're
|
|
installing on. You can either install Phabricator on a subdomain (like
|
|
phabricator.example.com) or an entire domain, but you can not install it in
|
|
some subdirectory of an existing website. Navigate to whatever domain you're
|
|
going to use and make sure Apache serves you something to verify that DNS
|
|
is correctly configured.
|
|
|
|
NOTE: The domain must contain a dot ('.'), i.e. not be just a bare name like
|
|
'http://example/'. Some web browsers will not set cookies otherwise.
|
|
|
|
Now, either create a VirtualHost entry (to put Phabricator on a subdomain)
|
|
or edit the Directory entry for the DocumentRoot. It should look something like
|
|
this:
|
|
|
|
name=httpd.conf
|
|
<VirtualHost *>
|
|
# Change this to the domain which points to your host.
|
|
ServerName phabricator.example.com
|
|
|
|
# Change this to the path where you put 'phabricator' when you checked it
|
|
# out from GitHub when following the Installation Guide.
|
|
#
|
|
# Make sure you include "/webroot" at the end!
|
|
DocumentRoot /path/to/phabricator/webroot
|
|
|
|
RewriteEngine on
|
|
RewriteRule ^/rsrc/(.*) - [L,QSA]
|
|
RewriteRule ^/favicon.ico - [L,QSA]
|
|
RewriteRule ^(.*)$ /index.php?__path__=$1 [B,L,QSA]
|
|
</VirtualHost>
|
|
|
|
If Apache isn't currently configured to serve documents out of the directory
|
|
where you put Phabricator, you may also need to add a section like this:
|
|
|
|
<Directory "/path/to/phabricator/webroot">
|
|
Order allow,deny
|
|
Allow from all
|
|
</Directory>
|
|
|
|
After making your edits, restart Apache, then continue to "Setup" below.
|
|
|
|
= Webserver: Configuring nginx =
|
|
|
|
NOTE: Follow these instructions to use nginx. To use Apache or lighttpd, scroll
|
|
to their sections.
|
|
|
|
For nginx, use a configuration like this:
|
|
|
|
name=nginx.conf
|
|
server {
|
|
server_name phabricator.example.com;
|
|
|
|
root /path/to/phabricator/webroot;
|
|
try_files $uri $uri/ /index.php;
|
|
|
|
location / {
|
|
index index.php;
|
|
|
|
if ( !-f $request_filename )
|
|
{
|
|
rewrite ^/(.*)$ /index.php?__path__=/$1 last;
|
|
break;
|
|
}
|
|
}
|
|
|
|
location /index.php {
|
|
fastcgi_pass localhost:9000;
|
|
fastcgi_index index.php;
|
|
|
|
#required if PHP was built with --enable-force-cgi-redirect
|
|
fastcgi_param REDIRECT_STATUS 200;
|
|
|
|
#variables to make the $_SERVER populate in PHP
|
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
|
fastcgi_param QUERY_STRING $query_string;
|
|
fastcgi_param REQUEST_METHOD $request_method;
|
|
fastcgi_param CONTENT_TYPE $content_type;
|
|
fastcgi_param CONTENT_LENGTH $content_length;
|
|
|
|
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
|
|
|
|
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
|
|
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
|
|
|
|
fastcgi_param REMOTE_ADDR $remote_addr;
|
|
}
|
|
}
|
|
|
|
Restart nginx after making your edits, then continue to "Setup" below.
|
|
|
|
= Webserver: Configuring lighttpd =
|
|
|
|
NOTE: Follow these instructions to use lighttpd. To use Apache or niginx, scroll
|
|
up to their sections.
|
|
|
|
For lighttpd, add a section like this to your lighttpd.conf:
|
|
|
|
$HTTP["host"] =~ "phabricator(\.example\.com)?" {
|
|
server.document-root = "/path/to/phabricator/webroot"
|
|
url.rewrite-once = (
|
|
"^(/rsrc/.*)$" => "$1",
|
|
"^(/favicon.ico)$" => "$1",
|
|
# This simulates QSA ("query string append") mode in apache
|
|
"^(/[^?]*)\?(.*)" => "/index.php?__path__=$1&$2",
|
|
"^(/.*)$" => "/index.php?__path__=$1",
|
|
)
|
|
}
|
|
|
|
You should also ensure the following modules are listed in your
|
|
server.modules list:
|
|
|
|
mod_fastcgi
|
|
mod_rewrite
|
|
|
|
Finally, you should run the following commands to enable php support:
|
|
|
|
$ sudo apt-get install php5-cgi # for ubuntu; other distros should be similar
|
|
$ sudo lighty-enable-mod fastcgi-php
|
|
|
|
Restart lighttpd after making your edits, then continue below.
|
|
|
|
= Setup =
|
|
|
|
Now, navigate to whichever subdomain you set up. You should see instructions to
|
|
continue setup. The rest of this document contains additional instructions for
|
|
specific setup steps.
|
|
|
|
When you see the login screen, continue with @{article:Configuring Accounts and
|
|
Registration}.
|
|
|
|
= Storage: Configuring MySQL =
|
|
|
|
During setup, you'll need to configure MySQL. To do this, get MySQL running and
|
|
verify you can connect to it. Consult the MySQL documentation for help. When
|
|
MySQL works, you need to load the Phabricator schemata into it. To do this, run:
|
|
|
|
phabricator/ $ ./bin/storage upgrade
|
|
|
|
If your configuration uses an unprivileged user to connect to the database, you
|
|
may have to override the default user so the schema changes can be applied with
|
|
root or some other admin user:
|
|
|
|
phabricator/ $ ./bin/storage upgrade --user <user> --password <password>
|
|
|
|
You can avoid the prompt the script issues by passing the ##--force## flag (for
|
|
example, if you are scripting the upgrade process).
|
|
|
|
phabricator/ $ ./bin/storage upgrade --force
|
|
|
|
NOTE: When you update Phabricator, run `storage upgrade` again to apply any
|
|
new updates.
|
|
|
|
= Next Steps =
|
|
|
|
Continue by:
|
|
|
|
- setting up your admin account and login/registration with
|
|
@{article:Configuring Accounts and Registration}; or
|
|
- understanding advanced configuration topics with
|
|
@{article:Configuration User Guide: Advanced Configuration}; or
|
|
- configuring where uploaded files and attachments will be stored with
|
|
@{article:Configuring File Storage}; or
|
|
- configuring Phabricator so it can send mail with
|
|
@{article:Configuring Outbound Email}; or
|
|
- configuring inbound mail with @{article:Configuring Inbound Email}; or
|
|
- importing repositories with @{article:Diffusion User Guide}; or
|
|
- learning about daemons with @{article:Managing Daemons with phd}; or
|
|
- configuring backups with @{article:Configuring Backups}; or
|
|
- contributing to Phabricator with @{article:Contributor Introduction}.
|