Skip to content

Instantly share code, notes, and snippets.

@delebash
Forked from insane-dev/install.sh
Created November 16, 2016 18:55
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save delebash/a017dc259bcc82a8ccc77a460bc72425 to your computer and use it in GitHub Desktop.
Save delebash/a017dc259bcc82a8ccc77a460bc72425 to your computer and use it in GitHub Desktop.
Lemp stack for Ubuntu 16.04 (PHP7, Nginx, MySql, MongoDB, PhpMyAdmin, Git, Node.js, Bower, Gulp, Docker, Composer(with asset plugin), Dnsmasq)
#!/bin/bash
echo "Please, enter your username, it will be added to 'sudo' and 'docker' groups during the process."
read USERNAME
if [ -z "$USERNAME" ] ; then
echo "Exiting... Done."
exit
else
echo "Adding user to 'sudo' group..."
sudo usermod -aG sudo $USERNAME
echo "Adding needed repos"
sudo add-apt-repository ppa:ondrej/php
echo "Initializing script..."
sudo apt-get update
sudo apt-get -y upgrade
echo "Installing Nginx..."
sudo apt-get install -y nginx
echo "Adding rule to 'ufw' firewall"
sudo ufw allow 'Nginx HTTP'
echo "Installing MySQL..."
sudo apt-get install -y mysql-server
# sudo mysql_secure_installation
echo "Installing PHP 7 and its components: [cli,common,fpm,curl,gd, intl,zip,xsl,mbstring,mysql]..."
sudo apt-get install -y php7.0-cli
sudo apt-get install -y php7.0-common
sudo apt-get install -y php7.0
sudo apt-get install -y php7.0-fpm
sudo apt-get install -y php7.0-curl
sudo apt-get install -y php7.0-gd
sudo apt-get install -y php7.0-intl
sudo apt-get install -y php7.0-zip
sudo apt-get install -y php7.0-xsl
sudo apt-get install -y php7.0-mbstring
sudo apt-get install -y php7.0-mysql
# required by phpmyadmin
sudo apt-get install -y php-gettext
# required for installing xdebug
sudo apt-get install -y php7.0-dev
# PhpMyAdmin
echo "Installing PhpMyAdmin..."
sudo apt-get install phpmyadmin
mkdir -p /var/www/localhost
sudo ln -s /usr/share/phpmyadmin/ /var/www/localhost/pma
echo "Configuring PHP..."
sudo sed -i s/\;cgi\.fix_pathinfo\s*\=\s*1/cgi.fix_pathinfo\=0/ /etc/php/7.0/fpm/php.ini
# Composer
echo "Installing Composer..."
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
echo "Installing Composer Asset plugin..."
sudo composer global require "fxp/composer-asset-plugin:~1.1"
echo "Installing Dnsmasq..."
sudo apt-get install dnsmasq
echo "Pointing all *.dev domains to 127.0.0.1"
echo "address=/.dev/127.0.0.1" >> /etc/dnsmasq.conf
sudo /etc/init.d/dnsmasq restart
echo "Restarting PHP, Nginx and MySQL services..."
sudo /etc/init.d/php7.0-fpm restart
sudo /etc/init.d/nginx restart
sudo /etc/init.d/mysql restart
echo "Installing MongoDB..."
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
sudo echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
sudo apt-get update
sudo apt-get install -y --allow-unauthenticated mongodb-org
sudo echo '[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
[Service]
User=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf
[Install]
WantedBy=multi-user.target' > /etc/systemd/system/mongodb.service
sudo systemctl start mongodb
sudo systemctl status mongodb
sudo systemctl enable mongodb
echo "Installing GIT..."
sudo apt-get install -y git
echo "Installing Node.js"
sudo apt-get install -y nodejs
sudo ln -s /usr/bin/nodejs /usr/bin/node
sudo apt-get install -y build-essential
sudo apt-get install -y npm
sudo ln -s /usr/bin/nodejs /usr/bin/node
echo "Installing Bower..."
sudo npm install -g bower
echo "Installing Gulp..."
sudo npm install -g gulp
echo "Installing Grunt..."
sudo npm install -g grunt-cli
echo "Installing DOCKER..."
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates
sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
sudo echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" >> /etc/apt/sources.list.d/docker.list
sudo apt-get update
sudo apt-get purge -y lxc-docker
sudo apt-cache policy docker-engine
sudo apt-get update
sudo apt-get install -y linux-image-extra-$(uname -r)
sudo apt-get install -y docker-engine
echo "Adding user to 'docker' group..."
sudo usermod -aG docker $USERNAME
echo "Starting docker service..."
sudo /etc/init.d/docker start
echo "Testing docker..."
sudo docker run hello-world
echo "Removing unneeded dependencies"
sudo apt-get autoremove
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment