|
# Created: April 20, 2017 |
|
# Updated: December 20, 2017 |
|
# Purpose: To install and configure a LAMP webserver. |
|
# Input: Program takes 1 input parameter to name the user |
|
|
|
#!/bin/bash |
|
set -x # echo on |
|
|
|
|
|
# ################# setting variables ########################### |
|
username=$1 |
|
|
|
# -z is variable |
|
if [ -z "$username" ] |
|
then |
|
echo "\$username is empty" |
|
$username="jake" |
|
else |
|
echo "\$username is NOT empty" |
|
fi |
|
|
|
webdir="/web/webroot/" |
|
webowner="www-data" |
|
webgroup="webdev" |
|
# ############################################################### |
|
|
|
### HAPPENING WITH INSTALL/RECOVERY DOC: sudo apt-get update |
|
### HAPPENING WITH INSTALL/RECOVERY DOC:sudo apt-get install git |
|
|
|
# Configure git global values |
|
git config --global user.name "Jake" |
|
git config --global user.email email@gmail.com |
|
git config --global core.editor nano |
|
git config --global color.ui true |
|
git config --list |
|
|
|
#### install LAMP and phpMyAdmin |
|
sudo apt-get install lamp-server^ |
|
|
|
#### get PHP and MySQL versions |
|
php -version |
|
mysql --version |
|
|
|
sudo apt-get install phpmyadmin |
|
sudo service apache2 restart |
|
# NEEDED!? |
|
#################################################################### |
|
############################ END ############################### |
|
|
|
|
|
#### Create Homes for web server webroot, backup, installs and log files: |
|
sudo mkdir web web/webroot web/backup web/installs web/logfiles |
|
|
|
#### Create the webdev group, add users and set permissions: |
|
sudo groupadd webdev |
|
sudo usermod -a -G webdev ${username} |
|
sudo chown -R www-data:webdev /web |
|
sudo chmod -R 775 /web |
|
|
|
|
|
#################################################################### |
|
#### NEED TO FINISH HASHING OUT: |
|
|
|
#### Setting /web/webroot/ as the root web folder: |
|
#### PARAMETERIZE: |
|
# x="/var/www/" |
|
# y="/web/webroot/" |
|
sudo sed -i -e "s/var/www|web/webroot|g" /etc/apache2/apache2.conf |
|
|
|
#### Change DocumentRoot from /var/www/ to /web/webroot/ folder: |
|
#### PARAMETERIZE: |
|
# x="/var/www/" |
|
# y="/web/webroot/" |
|
|
|
sudo cp /web/scripts/includes/111-tpl.conf /etc/apache2/sites-available/111-tpl.conf |
|
|
|
sudo sed -i -e "s/ServerName default|webroot|g" /etc/apache2/sites-available/000-default.conf |
|
sudo sed -i -e "s/ServerAlias default|webroot|g" /etc/apache2/sites-available/000-default.conf |
|
sudo sed -i -e "s/default-error|webroot-error|g" /etc/apache2/sites-available/000-default.conf |
|
sudo sed -i -e "s/default-access|webroot-access|g" /etc/apache2/sites-available/000-default.conf |
|
sudo sed -i -e "s/var/www/html|web/webroot|g" /etc/apache2/sites-available/000-default.conf |
|
|
|
|
|
#### Update Error Reporting, File Uploads and Timezone in php.ini: |
|
sudo sed -i -e "s/display_errors Off|display_errors On|g" /etc/php/7.0/apache2/php.ini |
|
sudo sed -i -e "s/display_startup_errors Off|display_startup_errors On|g" /etc/php/7.0/apache2/php.ini |
|
sudo sed -i -e "s/post_max_size = 8M|post_max_size = 40M|g" /etc/php/7.0/apache2/php.ini |
|
sudo sed -i -e "s/upload_max_filesize = 2M|upload_max_filesize = 40M|g" /etc/php/7.0/apache2/php.ini |
|
sudo sed -i -e "s/.timezone =|.timezone = America/Vancouver|g" /etc/php/7.0/apache2/php.ini |
|
#################################################################### |
|
############################ END ############################### |
|
|
|
# ############## REBOOT: ########################## |
|
sudo service apache2 restart |
|
#################################################################### |
|
|
|
|
|
|
|
#### Installing the FTP Daemon: |
|
sudo apt-get install vsftpd |
|
sudo nano /etc/vsftpd.conf |
|
sudo restart vsftpd |
|
|
|
#### Install mcrypt |
|
sudo apt-get install mcrypt |
|
sudo php5enmod mcrypt |
|
|
|
#### Install curl |
|
sudo apt-get install curl |
|
|
|
# Install Composer and Laravel |
|
sudo curl -sS https://getcomposer.org/installer | sudo php |
|
sudo mv /home/fumbler/composer.phar /usr/local/bin/composer |
|
sudo mv composer.phar /usr/local/bin/composer |
|
composer global require "laravel/installer=~1.1" |
|
sudo composer global require "laravel/installer=~1.1" |
|
|
|
sudo export PATH="PATH:~/.composer/vendor/bin" |
|
|
|
export PATH="PATH:~/.composer/vendor/bin" |
|
sudo chmod +x /usr/local/bin/composer |
|
sudo chmod +x /usr/local/bin/composer |
|
export PATH="/usr/bin:$PATH" |
|
|
|
sudo chmod +x /usr/local/bin/composer |
|
|
|
sudo nano /etc/environment |
|
apache2ctl -M |
|
sudo a2enmod rewrite |
|
|
|
#### Creating default index.php page for testing installation and configuration |
|
echo "<?php phpinfo(); ?>" > {$webdir}index.php |
|
|
|
# Get server IP Address: |
|
ifconfig eth0 | grep inet | awk '{print $2 }' |