Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Ubuntu 18.04 - PHP development (php 7.3, MySQL 5.7, apache 2.4)
#!/bin/bash
set -euo pipefail
IFS=$'\n\t'
# Ubuntu 18.04 dev Server
# Run like - bash install_lamp.sh
# Script should auto terminate on errors
echo -e "\e[96m Adding PPA \e[39m"
sudo add-apt-repository -y ppa:ondrej/apache2
sudo add-apt-repository -y ppa:ondrej/php
sudo apt-get update
echo -e "\e[96m Installing apache \e[39m"
sudo apt-get -y install apache2
echo -e "\e[96m Installing php \e[39m"
sudo apt-get -y install php7.3 libapache2-mod-php7.3
# Install some php exts
sudo apt-get -y install curl zip unzip php7.3-mysql php7.3-curl php7.3-json php7.3-mbstring php7.3-gd php7.3-intl php7.3-xml php7.3-zip php-gettext php7.3-pgsql php7.3-bcmath php7.3-redis
#sudo apt-get -y install php-xdebug
sudo phpenmod curl
# Enable some apache modules
sudo a2enmod rewrite
sudo a2enmod ssl
sudo a2enmod headers
echo -e "\e[96m Restart apache server to reflect changes \e[39m"
sudo service apache2 restart
echo -e "\e[96m Installing mysql server \e[39m"
echo -e "\e[93m User: root, Password: root \e[39m"
# Install MySQL Server in a Non-Interactive mode. Default root password will be "root"
echo "mysql-server-5.7 mysql-server/root_password password root" | sudo debconf-set-selections
echo "mysql-server-5.7 mysql-server/root_password_again password root" | sudo debconf-set-selections
sudo apt-get -y install mysql-server-5.7
### Run next command on production server
#sudo mysql_secure_installation
# Download and install composer
echo -e "\e[96m Installing composer \e[39m"
# Notice: Still using the good old way
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
# Add this line to your .bash_profile
# export PATH=~/.composer/vendor/bin:$PATH
# Check php version
php -v
# Check apache version
apachectl -v
# Check mysql version
mysql --version
# Check if php is working or not
php -r 'echo "\nYour PHP installation is working fine.\n";'
# Fix composer folder permissions
sudo chown -R $USER $HOME/.composer
# Check composer version
composer --version
echo -e "\e[92m Open http://localhost/ to check if apache is working or not. \e[39m"
# Clean up cache
sudo apt-get clean
#!/bin/bash
# Script will auto terminate on errors
set -euo pipefail
IFS=$'\n\t'
# Ubuntu 18.04+, apache2.4, php 7.x
# Run like - bash install_phpmyadmin.sh
# You should have MySQL pre-installed
echo -e "\e[96m Begin silent install phpMyAdmin \e[39m"
echo -e "\e[93m User: root, Password: root \e[39m"
# Set non-interactive mode
sudo debconf-set-selections <<< 'phpmyadmin phpmyadmin/dbconfig-install boolean true'
sudo debconf-set-selections <<< 'phpmyadmin phpmyadmin/app-password-confirm password root'
sudo debconf-set-selections <<< 'phpmyadmin phpmyadmin/mysql/admin-pass password root'
sudo debconf-set-selections <<< 'phpmyadmin phpmyadmin/mysql/app-pass password root'
sudo debconf-set-selections <<< 'phpmyadmin phpmyadmin/reconfigure-webserver multiselect apache2'
sudo apt-get -y install phpmyadmin
# Restart apache server
sudo service apache2 restart
# Clean up
sudo apt-get clean
echo -e "\e[92m phpMyAdmin installed successfully \e[39m"
echo -e "\e[92m Remember: password for root user is root \e[39m"
#!/bin/bash
set -euo pipefail
IFS=$'\n\t'
# Ubuntu 18.04 +
# Script will auto terminate on errors
# run like - bash script_name.sh
# Install latest git
sudo add-apt-repository -y ppa:git-core/ppa
sudo apt-get update
sudo apt-get -y install git
# My Git Configs
git config --global --add merge.ff false
git config --global push.followTags true
git config --global core.autocrlf false
git config --global push.default simple
git config --global color.ui auto
git config --global branch.autosetuprebase always
git config --global core.compression 9
git config --global credential.helper 'cache --timeout 28800'
git config --global core.filemode false
git config --global core.editor "nano"
git config --global core.excludesfile '~/.gitignore'
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.logout 'credential-cache exit'
# Clean up
sudo apt-get clean
# Check for git version
git --version
#!/bin/sh
# https://askubuntu.com/questions/947805/how-to-upgrade-phpmyadmin-revisited
# Make sure you already have phpmyadmin installed via
# sudo apt install phpmyadmin
PMA_VERSION=4.9.0.1
cd ~
echo -e "\e[96m phpmyadmin update script \e[39m"
echo -e "\e[96m Downloading phpmyadmin version $PMA_VERSION \e[39m"
wget -c https://files.phpmyadmin.net/phpMyAdmin/$PMA_VERSION/phpMyAdmin-$PMA_VERSION-english.zip -O phpMyAdmin-$PMA_VERSION-english.zip
echo -e "\e[96m Extracting zip \e[39m"
unzip -q -o phpMyAdmin-$PMA_VERSION-english.zip
echo -e "\e[96m Fix configs \e[39m"
# https://stackoverflow.com/questions/34539132/updating-phpmyadmin-blowfish-secret-via-bash-shell-script-in-linux
randomBlowfishSecret=`openssl rand -base64 32`;
sed -e "s|cfg\['blowfish_secret'\] = ''|cfg['blowfish_secret'] = '$randomBlowfishSecret'|" phpMyAdmin-$PMA_VERSION-english/config.sample.inc.php > phpMyAdmin-$PMA_VERSION-english/config.inc.php
echo -e "\e[96m Backup old installation \e[39m"
sudo mv /usr/share/phpmyadmin /usr/share/phpmyadmin.bak
echo -e "\e[96m Move new installation \e[39m"
sudo mv phpMyAdmin-$PMA_VERSION-english /usr/share/phpmyadmin
echo -e "\e[96m Fix tmp folder \e[39m"
sudo mkdir -p /usr/share/phpmyadmin/tmp
sudo chown -R www-data:www-data /usr/share/phpmyadmin/tmp
echo -e "\e[96m Cleanup \e[39m"
sudo rm -rf /usr/share/phpmyadmin.bak
sudo rm -r phpMyAdmin-$PMA_VERSION-english.zip
echo -e "\e[92m phpmyadmin updated to $PMA_VERSION \e[39m"
@alanaasmaa

This comment has been minimized.

Copy link

commented Aug 12, 2017

Thanks :)

@bahuma20

This comment has been minimized.

Copy link

commented Feb 11, 2018

Thank you 👍

@ankurk91

This comment has been minimized.

Copy link
Owner Author

commented Feb 24, 2018

You can run them in terminal like this ->

curl -o- https://gist.githubusercontent.com/ankurk91/16a3d36b1afa3f9c91f02828adfedf6f/raw/install_lamp_18.sh | bash
@deepsh4h

This comment has been minimized.

Copy link

commented Apr 9, 2018

Thanks man!

@anilgautamm

This comment has been minimized.

Copy link

commented Apr 28, 2018

'ascii' codec can't decode byte 0xc5 in position 92: ordinal not in range(128)

@ankurk91

This comment has been minimized.

Copy link
Owner Author

commented May 9, 2018

Enable php-fpm

sudo apt remove libapache2-mod-php7.1
sudo apt install php7.1-fpm
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php7.1-fpm
sudo systemctl restart apache2 
@mohammad-ali-akmal

This comment has been minimized.

Copy link

commented May 30, 2018

Best gist out there

@wagura-maurice

This comment has been minimized.

Copy link

commented Jul 1, 2018

can this work on Ubuntu 18.04?

@ankurk91

This comment has been minimized.

Copy link
Owner Author

commented Jul 6, 2018

@dapseen

This comment has been minimized.

Copy link

commented Apr 9, 2019

You can try this method to run it in the terminal

$wget https://gist.github.com/ankurk91/16a3d36b1afa3f9c91f02828adfedf6f/raw/94a6946aaeafa07a9eb63badd5590d4bb9e9e2a4/install_lamp_18.sh

$ chmod +x /path/to/file/install_lamp_18
 
$ ./install_lamp_18

Enjoy

@jhonatasgaragnani

This comment has been minimized.

Copy link

commented Jun 6, 2019

Thank's!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Work if me very good!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.