Page MenuHomestyx hydra

No OneTemporary

diff --git a/src/docs/user/installation_guide.diviner b/src/docs/user/installation_guide.diviner
index 615ad63fda..4df177540e 100644
--- a/src/docs/user/installation_guide.diviner
+++ b/src/docs/user/installation_guide.diviner
@@ -1,189 +1,176 @@
@title Installation Guide
@group intro
This document contains basic install instructions to get Phabricator up and
running.
Overview
========
Phabricator is a LAMP (Linux, Apache, MySQL, PHP) application. To install
Phabricator, you will need:
- a normal computer to install it on (shared hosts and unusual environments
are not supported) running some flavor of Linux or a similar OS;
- a domain name (like `phabricator.mycompany.com`);
- basic sysadmin skills;
- Apache, nginx, or another webserver;
- PHP, MySQL, and Git.
The remainder of this document details these requirements.
Installation Requirements
=========================
You will need **a computer**. Options include:
- **A Normal Computer**: This is strongly recommended. Many installs use a VM
in EC2. Phabricator installs properly and works well on a normal computer.
- **A Shared Host**: This may work, but is not recommended. Many shared
hosting environments have restrictions which prevent some of Phabricator's
features from working. Consider using a normal computer instead. We do not
support shared hosts.
- **A SAN Appliance, Network Router, Gaming Console, Raspberry Pi, etc.**:
Although you may be able to install Phabricator on specialized hardware, it
is unlikely to work well and will be difficult for us to support. Strongly
consider using a normal computer instead. We do not support specialized
hardware.
- **A Toaster, Car, Firearm, Thermostat, etc.**: Yes, many modern devices now
have embedded computing capability. We live in interesting times. However,
you should not install Phabricator on these devices. Instead, install it on
a normal computer. We do not support installing on noncomputing devices.
To install the Phabricator server software, you will need an **operating
system** on your normal computer which is **not Windows**. Note that the
command line interface //does// work on Windows, and you can //use//
Phabricator from any operating system with a web browser. However, the server
software does not run on Windows. It does run on most other operating systems,
so choose one of these instead:
- **Linux**: Most installs use Linux.
- **Mac OS X**: Mac OS X is an acceptable flavor of Linux.
- **FreeBSD**: While FreeBSD is certainly not a flavor of Linux, it is a fine
operating system possessed of many desirable qualities, and Phabricator will
install and run properly on FreeBSD.
- **Solaris, etc.**: Other systems which look like Linux and quack like Linux
will generally work fine, although we may suffer a reduced ability to
support and resolve issues on unusual operating systems.
Beyond an operating system, you will need **a webserver**.
- **Apache**: Many installs use Apache + `mod_php`.
- **nginx**: Many installs use nginx + `php-fpm`.
- **lighttpd**: `lighttpd` is less popular than Apache or nginx, but it
works fine.
- **Other**: Other webservers which can run PHP are also likely to work fine,
although these installation instructions will not cover how to set them up.
- **PHP Builtin Server**: You can use the builtin PHP webserver for
development or testing, although it should not be used in production.
You will also need:
- **MySQL**: You need MySQL. We strongly recommend MySQL 5.5 or newer.
- **PHP**: You need PHP 5.2 or newer.
You'll probably also need a **domain name**. In particular, you should read this
note:
NOTE: Phabricator must be installed on an entire domain. You can not install it
to a path on an existing domain, like `example.com/phabricator/`. Instead,
install it to an entire domain or subdomain, like `phabricator.example.com`.
Level Requirements
==================
To install and administrate Phabricator, you'll need to be comfortable with
common system administration skills. For example, you should be familiar with
using the command line, installing software on your operating system of choice,
working with the filesystem, managing processes, dealing with permissions,
editing configuration files, and setting environment variables.
If you aren't comfortable with these skills, you can still try to perform an
install. The install documentation will attempt to guide you through what you
need to know. However, if you aren't very familiar or comfortable with using
this set of skills to troubleshoot and resolve problems, you may encounter
issues which you have substantial difficulty working through.
We assume users installing and administrating Phabricator are comfortable with
common system administration skills and concepts. If you aren't, proceed at
your own risk and expect that your skills may be tested.
Installing Required Components
==============================
If you are installing on Ubuntu or an RedHat derivative, there are install
scripts available which should handle most of the things discussed in this
document for you:
- **RedHat Derivatives**:
<http://www.phabricator.com/rsrc/install/install_rhel-derivs.sh>
- **Ubuntu**: <http://www.phabricator.com/rsrc/install/install_ubuntu.sh>
If those work for you, you can skip directly to the
@{article:Configuration Guide}. These scripts are also available in the
`scripts/install` directory in the project itself.
Otherwise, here's a general description of what you need to install:
- git (usually called "git" in package management systems)
- Apache (usually "httpd" or "apache2") (or nginx)
- MySQL Server (usually "mysqld" or "mysql-server")
- PHP (usually "php")
- Required PHP extensions: mbstring, iconv, mysql (or mysqli), curl, pcntl
(these might be something like "php-mysql" or "php5-mysql")
- Optional PHP extensions: gd, apc (special instructions for APC are available
below if you have difficulty installing it), xhprof (instructions below,
you only need this if you are developing Phabricator)
If you already have LAMP setup, you've probably already got everything you need.
It may also be helpful to refer to the install scripts above, even if they don't
work for your system.
Now that you have all that stuff installed, grab Phabricator and its
dependencies:
$ cd somewhere/ # pick some install directory
somewhere/ $ git clone https://github.com/phacility/libphutil.git
somewhere/ $ git clone https://github.com/phacility/arcanist.git
somewhere/ $ git clone https://github.com/phacility/phabricator.git
= Installing APC (Optional) =
Like everything else written in PHP, Phabricator will run much faster with APC
installed. You likely need to install "pcre-devel" first:
sudo yum install pcre-devel
Then you have two options. Either install via PECL (try this first):
sudo yum install php-pear
sudo pecl install apc
**If that doesn't work**, grab the package from PECL directly and follow the
build instructions there:
http://pecl.php.net/package/APC
Installing APC is optional but **strongly recommended**, especially on
production hosts.
Once APC is installed, test that it is available by running:
php -i | grep apc
If it doesn't show up, add:
extension=apc.so
..to "/etc/php.d/apc.ini" or the "php.ini" file indicated by "php -i".
-= Updating Phabricator =
-
-Since Phabricator is under active development, you should update frequently. To
-update Phabricator:
-
- - Stop the webserver (including `php-fpm`, if you use it).
- - Run `git pull` in `libphutil/`, `arcanist/` and `phabricator/`.
- - Run `phabricator/bin/storage upgrade`.
- - Restart the webserver (and `php-fpm`, if you stopped it earlier).
-
-For more details, see @{article:Configuration Guide}. You can use a script
-similar to this one to automate the process:
-
-http://www.phabricator.com/rsrc/install/update_phabricator.sh
-
= Next Steps =
Continue by:
- - configuring Phabricator with the @{article:Configuration Guide}.
+ - configuring Phabricator with the @{article:Configuration Guide}; or
+ - learning how to keep Phabricator up to date with
+ @{article:Upgrading Phabricator}.
diff --git a/src/docs/user/upgrading.diviner b/src/docs/user/upgrading.diviner
new file mode 100644
index 0000000000..e8b7228ade
--- /dev/null
+++ b/src/docs/user/upgrading.diviner
@@ -0,0 +1,130 @@
+@title Upgrading Phabricator
+@group intro
+
+This document contains instructions for keeping Phabricator up to date.
+
+Overview
+========
+
+Phabricator is under active development, and new features are released
+continuously. Staying up to date will keep your install secure.
+
+We recommend installs upgrade regularly (every 1-2 weeks). Upgrades usually go
+smoothly and complete in a few minutes. If you put off upgrades for a long
+time, it may take a lot more work to bring things up to date if you want access
+to a useful new feature or an important security change.
+
+
+Staying On Top of Changes
+=========================
+
+We release a weekly [[https://secure.phabricator.com/w/changelog | Changelog]],
+which describes changes in the previous week. You can look at the changelogs
+for an idea of what new features are available, upcoming changes, security
+information, and warnings about compatibility issues or migrations.
+
+
+Stable Branch
+=============
+
+You can either run the `master` or `stable` branch of Phabricator. The `stable`
+branch is run in the [[ https://phacility.com | Phacility Cluster ]], and lags
+about a week behind `master`.
+
+The `stable` branch is a little more stable than `master`, and may be helpful
+if you administrate a larger install.
+
+We promote `master` to `stable` about once a week, then publish the changelog
+and deploy the cluster. During the week, major bugfixes are cherry-picked to
+the `stable` branch. The changelog lists the `stable` hashes for that week,
+as well as any fixes which were cherry-picked.
+
+To switch to `stable`, check the branch out in each working copy:
+
+ phabricator/ $ git checkout stable
+ arcanist/ $ git checkout stable
+ libphutil/ $ git checkout stable
+
+You can now follow the upgrade process normally.
+
+
+Upgrade Process
+===============
+
+IMPORTANT: You **MUST** restart Apache or PHP-FPM after upgrading.
+
+Phabricator runs on many different systems, with many different webservers.
+Given this diversity, we don't currently maintain a comprehensive upgrade
+script which can work on any system. However, the general steps are the same
+on every system:
+
+ - Stop the webserver (including `php-fpm`, if you use it).
+ - Stop the daemons, with `phabricator/bin/phd stop`.
+ - Run `git pull` in `libphutil/`, `arcanist/` and `phabricator/`.
+ - Run `phabricator/bin/storage upgrade`.
+ - Start the daemons, with `phabricator/bin/phd start`.
+ - Restart the webserver (and `php-fpm`, if you stopped it earlier).
+
+For some more discussion details, see @{article:Configuration Guide}.
+
+This template script roughly outlines the steps required to upgrade Phabricator.
+You'll need to adjust paths and commands a bit for your particular system:
+
+```lang=sh
+#!/bin/sh
+
+set -e
+set -x
+
+# This is an example script for updating Phabricator, similar to the one used to
+# update <https://secure.phabricator.com/>. It might not work perfectly on your
+# system, but hopefully it should be easy to adapt. This script is not intended
+# to work without modifications.
+
+# NOTE: This script assumes you are running it from a directory which contains
+# arcanist/, libphutil/, and phabricator/.
+
+ROOT=`pwd` # You can hard-code the path here instead.
+
+### UPDATE WORKING COPIES ######################################################
+
+cd $ROOT/libphutil
+git pull
+
+cd $ROOT/arcanist
+git pull
+
+cd $ROOT/phabricator
+git pull
+
+
+### CYCLE WEB SERVER AND DAEMONS ###############################################
+
+# Stop daemons.
+$ROOT/phabricator/bin/phd stop
+
+# If running the notification server, stop it.
+# $ROOT/phabricator/bin/aphlict stop
+
+# Stop the webserver (apache, nginx, lighttpd, etc). This command will differ
+# depending on which system and webserver you are running: replace it with an
+# appropriate command for your system.
+# NOTE: If you're running php-fpm, you should stop it here too.
+
+sudo /etc/init.d/httpd stop
+
+
+# Upgrade the database schema. You may want to add the "--force" flag to allow
+# this script to run noninteractively.
+$ROOT/phabricator/bin/storage upgrade
+
+# Restart the webserver. As above, this depends on your system and webserver.
+# NOTE: If you're running php-fpm, restart it here too.
+sudo /etc/init.d/httpd start
+
+# Restart daemons.
+$ROOT/phabricator/bin/phd start
+
+# If running the notification server, start it.
+# $ROOT/phabricator/bin/aphlict start
+```

File Metadata

Mime Type
text/x-diff
Expires
Tue, Jun 10, 10:01 PM (1 d, 3 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
141154
Default Alt Text
(12 KB)

Event Timeline