├── README.md ├── screenshot.png └── script.sh /README.md: -------------------------------------------------------------------------------- 1 | # About 2 | 3 | ### install Important softwares on fresh Ubuntu instance 4 | 5 | - ✅ PREPAIRE Installing 6 | - ✅ REMOVING APACHE 7 | - ✅ Installing PHP 8.2 8 | - ✅ Installing NGINX 9 | - ✅ OPEN NGINX PORTS 10 | - ✅ Installing PHP EXTENSIONS 11 | - ✅ INCREASING FPM UPLOAD VALUES 12 | - ✅ Installing NPM 13 | - ✅ Installing CERTBOT (SSL GENERATOR) 14 | - ✅ CREATING NGINX FILE FOR [example.com](http://example.com/) 15 | - ✅ GENERATING SSL CERTIFICATE FOR [example.com](http://example.com/) 16 | - ✅ Finalize Installing 17 | - ✅ Installing MySQL 18 | - ✅ Pushing Cronjobs 19 | 20 | ### How to Use 21 | 22 | ```php 23 | 24 | wget -q https://raw.githubusercontent.com/peter-tharwat/new-ubuntu-laravel/master/script.sh -O script.sh ; sudo chmod +x script.sh ; ./script.sh -d example.com 25 | # Replace example.com with your domain 26 | ``` 27 |  28 | 29 | ### How To Debug LIVE 30 | 31 | ```php 32 | tail -f script_log.log 33 | ``` 34 | 35 | ### 36 | Made With Love By [PeterAyoub](https://PeterAyoub.me/) 37 | 38 | -------------------------------------------------------------------------------- /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter-tharwat/new-ubuntu-laravel/dac719d6a4deef23700aa50688252558e82bcca9/screenshot.png -------------------------------------------------------------------------------- /script.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | script_log_file="script_log.log" 4 | green_color="\033[1;32m" 5 | no_color="\033[0m" 6 | MYSQL_ROOT_PASSWORD=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 16 | head -n 1) 7 | 8 | 9 | while getopts d: flag 10 | do 11 | case "${flag}" in 12 | d) domain=${OPTARG};; 13 | esac 14 | done 15 | 16 | 17 | 18 | 19 | echo $no_color"PREPAIRE INSTALLING"; 20 | rm -rf /var/lib/dpkg/lock >> $script_log_file 2>/dev/null 21 | rm -rf /var/lib/dpkg/lock-frontend >> $script_log_file 2>/dev/null 22 | rm -rf /var/cache/apt/archives/lock >> $script_log_file 2>/dev/null 23 | sudo apt-get update >> $script_log_file 2>/dev/null 24 | echo $green_color"[SUCCESS]"; 25 | echo $green_color"[######################################]"; 26 | 27 | 28 | echo $no_color"REMOVING APACHE"; 29 | sudo apt-get purge apache -y >> $script_log_file 2>/dev/null 30 | sudo apt-get purge apache* -y >> $script_log_file 2>/dev/null 31 | sudo kill -9 $(sudo lsof -t -i:80) >> $script_log_file 2>/dev/null 32 | sudo kill -9 $(sudo lsof -t -i:443) >> $script_log_file 2>/dev/null 33 | echo $green_color"[SUCCESS]"; 34 | echo $green_color"[######################################]"; 35 | 36 | echo $no_color"INSTALLING NGINX"; 37 | sudo apt-get update >> $script_log_file 2>/dev/null 38 | sudo apt install nginx -y >> $script_log_file 2>/dev/null 39 | echo $green_color"[SUCCESS]"; 40 | echo $green_color"[######################################]"; 41 | 42 | 43 | echo $no_color"OPEN NGINX PORTS"; 44 | echo "y" | sudo ufw enable >> $script_log_file 2>/dev/null 45 | sudo ufw allow 'Nginx HTTP' >> $script_log_file 2>/dev/null 46 | sudo ufw allow 'Nginx HTTPS' >> $script_log_file 2>/dev/null 47 | sudo ufw allow '8443' >> $script_log_file 2>/dev/null 48 | sudo ufw allow OpenSSH >> $script_log_file 2>/dev/null 49 | sudo add-apt-repository universe -y >> $script_log_file 2>/dev/null 50 | echo $green_color"[SUCCESS]"; 51 | echo $green_color"[######################################]"; 52 | 53 | echo $no_color"RESTARTING NGINX"; 54 | sudo pkill -f nginx & wait $! >> $script_log_file 2>/dev/null 55 | sudo systemctl start nginx >> $script_log_file 2>/dev/null 56 | sudo service nginx restart >> $script_log_file 2>/dev/null 57 | echo $green_color"[SUCCESS]"; 58 | echo $green_color"[######################################]"; 59 | 60 | echo $no_color"INSTALLING PHP 8.2"; 61 | sudo apt-get update >> $script_log_file 2>/dev/null 62 | sudo apt install lsb-release ca-certificates apt-transport-https software-properties-common -y >> $script_log_file 2>/dev/null 63 | sudo add-apt-repository ppa:ondrej/php -y >> $script_log_file 2>/dev/null 64 | sudo apt-get update >> $script_log_file 2>/dev/null 65 | sudo apt install php8.2 -y >> $script_log_file 2>/dev/null 66 | echo $green_color"[SUCCESS]"; 67 | echo $green_color"[######################################]"; 68 | 69 | # install php 8.2 fpm 70 | echo $no_color"INSTALLING PHP 8.2 FPM"; 71 | sudo apt install php8.2-fpm -y >> $script_log_file 2>/dev/null 72 | echo $green_color"[SUCCESS]"; 73 | echo $green_color"[######################################]"; 74 | echo $no_color"INSTALLING PHP 8.2 COMMON"; 75 | sudo apt install php8.2-common -y >> $script_log_file 2>/dev/null 76 | echo $green_color"[SUCCESS]"; 77 | echo $green_color"[######################################]"; 78 | 79 | #install php 8.3 80 | echo $no_color"INSTALLING PHP 8.3"; 81 | sudo apt install php8.3 -y >> $script_log_file 2>/dev/null 82 | echo $green_color"[SUCCESS]"; 83 | echo $green_color"[######################################]"; 84 | 85 | # install php 8.3 fpm 86 | echo $no_color"INSTALLING PHP 8.3 FPM"; 87 | sudo apt install php8.3-fpm php8.3-redis -y >> $script_log_file 2>/dev/null 88 | echo $green_color"[SUCCESS]"; 89 | echo $green_color"[######################################]"; 90 | 91 | echo $no_color"INSTALLING PHP EXTENSIONS"; 92 | # install php 8.2 extensions 93 | sudo apt install redis-server php8.2-redis php8.2 openssl php8.2-fpm php8.2-common php8.2-curl php8.2-mbstring php8.2-mysql php8.2-xml php8.2-zip php8.2-gd php8.2-cli php8.2-xml php8.2-imagick php8.2-xml php8.2-intl php-mysql -y >> $script_log_file 2>/dev/null 94 | # install php 8.3 extensions 95 | sudo apt install php8.3 openssl php8.3-fpm php8.3-common php8.3-curl php8.3-mbstring php8.3-mysql php8.3-xml php8.3-zip php8.3-gd php8.3-cli php8.3-xml php8.3-imagick php8.3-xml php8.3-intl php-mysql -y >> $script_log_file 2>/dev/null 96 | sudo apt-get purge apache -y >> $script_log_file 2>/dev/null 97 | sudo apt-get purge apache* -y >> $script_log_file 2>/dev/null 98 | echo $green_color"[SUCCESS]"; 99 | echo $green_color"[######################################]"; 100 | 101 | echo $no_color"INSTALLING NPM"; 102 | sudo apt install npm -y >> $script_log_file 2>/dev/null 103 | echo $green_color"[SUCCESS]"; 104 | echo $green_color"[######################################]"; 105 | 106 | echo $no_color"INSTALLING CERTBOT (SSL GENERATOR)"; 107 | sudo apt-get install snap -y >> $script_log_file 2>/dev/null 108 | sudo apt-get install snapd -y >> $script_log_file 2>/dev/null 109 | sudo snap install core >> $script_log_file 2>/dev/null 110 | sudo snap refresh core >> $script_log_file 2>/dev/null 111 | sudo snap install --classic certbot >> $script_log_file 2>/dev/null 112 | sudo ln -s /snap/bin/certbot /usr/bin/certbot >> $script_log_file 2>/dev/null 113 | echo $green_color"[SUCCESS]"; 114 | echo $green_color"[######################################]"; 115 | 116 | echo $green_color"[######################################]"; 117 | echo $no_color"INSTALLING COMPOSER"; 118 | sudo apt-get update >> $script_log_file 2>/dev/null 119 | sudo apt-get purge composer -y >> $script_log_file 2>/dev/null 120 | php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" >> $script_log_file 2>/dev/null 121 | php composer-setup.php >> $script_log_file 2>/dev/null 122 | sudo mv composer.phar /usr/local/bin/composer >> $script_log_file 2>/dev/null 123 | echo $green_color"[SUCCESS]"; 124 | echo $green_color"[######################################]"; 125 | 126 | echo $no_color"RESTARTING NGINX"; 127 | sudo pkill -f nginx & wait $! >> $script_log_file 2>/dev/null 128 | sudo systemctl start nginx >> $script_log_file 2>/dev/null 129 | sudo service nginx restart >> $script_log_file 2>/dev/null 130 | echo $green_color"[SUCCESS]"; 131 | echo $green_color"[######################################]"; 132 | 133 | echo $no_color"CREATING NGINX FILE FOR $domain"; 134 | sudo rm -rf /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default >> $script_log_file 2>/dev/null 135 | sudo touch /etc/nginx/sites-available/$domain >> $script_log_file 2>/dev/null 136 | sudo bash -c "echo 'server { 137 | listen 80; 138 | listen [::]:80; 139 | root /var/www/html/'$domain'/public; 140 | index index.php index.html index.htm index.nginx-debian.html; 141 | server_name '$domain' www.'$domain'; 142 | location / { 143 | try_files \$uri \$uri/ /index.php?\$query_string; 144 | } 145 | location ~ \.php$ { 146 | include snippets/fastcgi-php.conf; 147 | fastcgi_pass unix:/var/run/php/php8.2-fpm.sock; 148 | } 149 | location ~ /\.ht { 150 | deny all; 151 | } 152 | }' > /etc/nginx/sites-available/$domain" >> $script_log_file 2>/dev/null 153 | ln -s /etc/nginx/sites-available/$domain /etc/nginx/sites-enabled/ >> $script_log_file 2>/dev/null 154 | sudo mkdir /var/www/html/$domain >> $script_log_file 2>/dev/null 155 | sudo mkdir /var/www/html/$domain/public >> $script_log_file 2>/dev/null 156 | sudo bash -c "echo '