Skip to content

Instantly share code, notes, and snippets.

@bigbeno37
Last active November 20, 2021 11:14
Show Gist options
  • Star 11 You must be signed in to star a gist
  • Fork 11 You must be signed in to fork a gist
  • Save bigbeno37/7ce5019b49375be254ab3da88cf05be3 to your computer and use it in GitHub Desktop.
Save bigbeno37/7ce5019b49375be254ab3da88cf05be3 to your computer and use it in GitHub Desktop.
Install Laravel 5.4, MySQL 5.7, Apache2.4 and PHP7.1 on Ubuntu 16.04
# CREATED BY BEN O'SULLIVAN / BIGBENO37 (GITHUB.COM/BIGBENO37)
# LICENSED UNDER CREATIVE COMMONS 'Attribution 4.0 International' LICENSE
# https://creativecommons.org/licenses/by/4.0/
# FEEL FREE TO USE AND ADAPT THIS SCRIPT IN COMMERCIAL AND NON COMMERICAL PRODUCTS
# AS LONG AS PROPER ACCREDITATION IS GIVEN
# VARIABLES
echo -e "\x1B[01;95mWhat would you like to name your Laravel project?\x1B[0m"
read LARAVEL_PROJECT_NAME
echo -e "\x1B[01;95mWhere do you want to store your Laravel project? (Use a full path such as /home/ubuntu/projects/)\x1B[0m"
read LARAVEL_PARENT_DIR
echo -e "\x1B[01;92mGreat, we'll take it from here. Don't go away just yet, we'll need you in a little bit.\x1B[0m"
LARAVEL_DIR="$LARAVEL_PARENT_DIR$LARAVEL_PROJECT_NAME";
LARAVEL_PUBLIC_DIR="$LARAVEL_DIR/public"
# INSTALL REQUIRED SOFTWARE
sudo add-apt-repository ppa:ondrej/php -y
sudo apt-get update -y
sudo apt-get upgrade -y
sudo apt-get install php7.1 php7.1-mbstring php7.1-zip php7.1-mysql unzip phpunit mysql-server -y
# CONFIGURE MYSQL
sudo mysql_secure_installation
echo -e "\x1B[01;93mGive us a sec to get MySQL initialised...\x1B[0m"
sudo mysqld --initalize
echo -e "\x1B[01;95mWe'll need that MySQL root password you set up earlier to make MySQL work with Laravel.\x1B[0m"
echo -e "CREATE USER 'homestead'@'localhost' IDENTIFIED BY 'secret'; GRANT ALL PRIVILEGES ON * . * TO 'homestead'@'localhost'; FLUSH PRIVILEGES; CREATE DATABASE homestead; USE homestead;">> setup_laravel_db.sql
mysql -u root -p < setup_laravel_db.sql
echo -e "\x1B[01;92mThat's all we need you to do. Sit back, and let us get everything going for you.\x1B[0m"
# INSTALL COMPOSER + LARAVEL
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composer
composer global require "laravel/installer"
if [ ! -d $LARAVEL_DIR ]; then
cd $LARAVEL_PARENT_DIR
composer create-project --prefer-dist laravel/laravel $LARAVEL_PROJECT_NAME
cd $LARAVEL_PROJECT_NAME
php artisan key:generate
fi
# CONFIGURE APACHE2
cd ~
sudo rm /etc/apache2/sites-available/000-default.conf
echo -e "<VirtualHost *:80>\n ServerAdmin webmaster@localhost\n DocumentRoot /var/www/html/\n ErrorLog ${APACHE_LOG_DIR}/error.log\n CustomLog ${APACHE_LOG_DIR}/access.log combined\n <Directory /var/www/html/>\n Options Indexes FollowSymLinks\n AllowOverride All\n Require all granted\n </Directory>\n</VirtualHost>">> 000-default.conf
sudo cp 000-default.conf /etc/apache2/sites-available/000-default.conf
rm 000-default.conf
sudo a2enmod php7.1
sudo a2enmod rewrite
sudo rm -rf /var/www/html/
sudo ln -s $LARAVEL_PUBLIC_DIR /var/www/html
sudo chmod 755 -R $LARAVEL_DIR
sudo chmod -R o+w $LARAVEL_DIR/storage
sudo service apache2 restart
echo -e "\x1B[01;92mThank you for your patience. Laravel has successfully been installed!\x1B[0m"
@Iansuwa-KimiNoUso
Copy link

sorry im a newbie
i named the laravel project "laravel project"
how do i start apache 2 and laravel?

@krishnakanthpps
Copy link

I dont think you can rename the laravel project. It is quite complicated task. So just delete the laravel project folder and create a new one.

As for the apache2 start..it is "sudo service apache2 start".

Laravel doesnt need to be started. If php is running, Laravel should be fine.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment