Changeset View
Changeset View
Standalone View
Standalone View
scripts/install/install_ubuntu.sh
| #!/bin/bash | #!/bin/bash | ||||
| confirm() { | confirm() { | ||||
| echo "Press RETURN to continue, or ^C to cancel."; | echo "Press RETURN to continue, or ^C to cancel."; | ||||
| read -e ignored | read -e ignored | ||||
| } | } | ||||
| GIT='git' | INSTALL_URI=" https://phurl.io/u/install" | ||||
| failed() { | |||||
| echo | |||||
| echo | |||||
| echo "Installation has failed." | |||||
| echo "Text above this message might be useful to understanding what exactly failed." | |||||
| echo | |||||
| echo "Please follow this guide to manually complete installation:" | |||||
| echo | |||||
| echo $INSTALL_URI | |||||
| echo | |||||
| echo "We apologize for the inconvenience." | |||||
| exit 3 | |||||
| } | |||||
epriestley: Maybe better as `https://phurl.io/u/install`. | |||||
| LTS="Ubuntu 10.04" | |||||
| ISSUE=`cat /etc/issue` | ISSUE=`cat /etc/issue` | ||||
| if [[ $ISSUE != Ubuntu* ]] | if [[ $ISSUE != Ubuntu* ]] | ||||
| then | then | ||||
| echo "This script is intended for use on Ubuntu, but this system appears"; | echo "This script is intended for use on Ubuntu, but this system appears"; | ||||
| echo "to be something else. Your results may vary."; | echo "to be something else. Your results may vary."; | ||||
| echo | echo | ||||
| confirm | confirm | ||||
| elif [[ `expr match "$ISSUE" "$LTS"` -eq ${#LTS} ]] | |||||
| then | |||||
| GIT='git-core' | |||||
| fi | fi | ||||
| echo "PHABRICATOR UBUNTU INSTALL SCRIPT"; | echo "PHABRICATOR UBUNTU INSTALL SCRIPT"; | ||||
| echo "This script will install Phabricator and all of its core dependencies."; | echo "This script will install Apache, Phabricator and its core dependencies."; | ||||
| echo "Run it from the directory you want to install into."; | echo "Run it from the directory you want to install into."; | ||||
| echo | echo | ||||
| ROOT=`pwd` | |||||
| echo "Phabricator will be installed to: ${ROOT}."; | |||||
| confirm | |||||
| echo "Testing sudo..." | echo "Testing sudo..." | ||||
| sudo true | sudo true | ||||
| if [ $? -ne 0 ] | if [ $? -ne 0 ] | ||||
| then | then | ||||
| echo "ERROR: You must be able to sudo to run this script."; | echo "ERROR: You must be able to sudo to run this script."; | ||||
| exit 1; | exit 1; | ||||
| fi; | fi; | ||||
| echo "Installing dependencies: git, apache, mysql, php..."; | echo 'Testing Ubuntu version...' | ||||
| VERSION=`lsb_release -rs` | |||||
| MAJOR=`expr match "$VERSION" '\([0-9]*\)'` | |||||
| if [ "$MAJOR" -lt 16 ] | |||||
| then | |||||
| echo 'This script is intented to install on modern operating systems; Your ' | |||||
| echo 'operating system is too old for this script.' | |||||
| echo 'You can still install Phabricator manually - please consult the installation' | |||||
| echo 'guide to see how:' | |||||
| echo | |||||
| echo $INSTALL_URI | |||||
| echo | echo | ||||
| exit 2 | |||||
| fi | |||||
| # Ubuntu 16.04 LTS only has php 7.0 in their repos, so they need this extra ppa. | |||||
| # Ubuntu 17.4 and up have official 7.2 builds. | |||||
| if [ "$MAJOR" -eq 16 ] | |||||
| then | |||||
| echo 'This version of Ubuntu requires additional resources in order to install' | |||||
| echo 'and run Phabricator.' | |||||
| echo 'We will now add a the following package repository to your system:' | |||||
| echo ' https://launchpad.net/~ondrej/+archive/ubuntu/php' | |||||
| echo | |||||
| echo 'This repository is generally considered safe to use.' | |||||
| confirm | |||||
| set +x | sudo add-apt-repository -y ppa:ondrej/php || failed | ||||
| fi | |||||
| ROOT=`pwd` | |||||
| echo "Phabricator will be installed to: ${ROOT}."; | |||||
| confirm | |||||
| echo "Installing dependencies: git, apache, mysql, php..."; | |||||
| echo | |||||
| sudo apt-get -qq update | sudo apt-get -qq update | ||||
| sudo apt-get install \ | sudo apt-get install \ | ||||
| $GIT mysql-server apache2 dpkg-dev \ | git mysql-server apache2 libapache2-mod-php \ | ||||
| php5 php5-mysqlnd php5-gd php5-dev php5-curl php-apc php5-cli php5-json | php php-mysql php-gd php-curl php-apcu php-cli php-json php-mbstring \ | ||||
| || failed | |||||
| # Enable mod_rewrite | |||||
| sudo a2enmod rewrite | |||||
| HAVEPCNTL=`php -r "echo extension_loaded('pcntl');"` | echo "Enabling mod_rewrite in Apache..." | ||||
| if [ $HAVEPCNTL != "1" ] | |||||
| then | |||||
| echo "Installing pcntl..."; | |||||
| echo | echo | ||||
| apt-get source php5 | sudo a2enmod rewrite || failed | ||||
| PHP5=`ls -1F | grep '^php5-.*/$'` | |||||
| (cd $PHP5/ext/pcntl && phpize && ./configure && make && sudo make install) | |||||
| else | |||||
| echo "pcntl already installed"; | |||||
| fi | |||||
| echo "Downloading Phabricator and dependencies..." | |||||
| echo | |||||
| if [ ! -e libphutil ] | if [ ! -e libphutil ] | ||||
| then | then | ||||
| git clone https://github.com/phacility/libphutil.git | git clone https://github.com/phacility/libphutil.git | ||||
| else | else | ||||
| (cd libphutil && git pull --rebase) | (cd libphutil && git pull --rebase) | ||||
| fi | fi | ||||
| if [ ! -e arcanist ] | if [ ! -e arcanist ] | ||||
| Show All 11 Lines | |||||
| fi | fi | ||||
| echo | echo | ||||
| echo | echo | ||||
| echo "Install probably worked mostly correctly. Continue with the 'Configuration Guide':"; | echo "Install probably worked mostly correctly. Continue with the 'Configuration Guide':"; | ||||
| echo | echo | ||||
| echo " https://secure.phabricator.com/book/phabricator/article/configuration_guide/"; | echo " https://secure.phabricator.com/book/phabricator/article/configuration_guide/"; | ||||
| echo | echo | ||||
| echo "You can delete any php5-* stuff that's left over in this directory if you want."; | echo 'Next step is "Configuring Apache webserver".' | ||||
Not Done Inline Actions“Configuring” amckinley: “Configuring” | |||||
Maybe better as https://phurl.io/u/install.