Last active
April 12, 2022 12:51
-
-
Save thekavish/25f48eab941e41b67c9b69afa32467a6 to your computer and use it in GitHub Desktop.
LEMP installation on a new ubuntu based PC.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
sudo apt update | |
sudo apt upgrade | |
sudo apt install nginx -y | |
sudo systemctl enable nginx | |
sudo systemctl start nginx | |
sudo systemctl status nginx | |
nginx -v | |
sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT | |
sudo ufw allow http | |
ls /usr/share/nginx/html/ | |
cat /usr/share/nginx/html/index.html | |
sudo apt install mariadb-server mariadb-client | |
systemctl status mariadb | |
sudo systemctl start mariadb | |
sudo systemctl enable mariadb | |
sudo mysql_secure_installation | |
sudo mariadb -u root | |
mariadb --version | |
sudo add-apt-repository ppa:ondrej/php | |
sudo apt update | |
sudo apt install php7.4 php7.4-fpm php7.4-mysql php7.4-cli php7.4-common php7.4-json php7.4-opcache php7.4-readline php7.4-mbstring php7.4-xml php7.4-gd php7.4-curl | |
sudo apt install php7.4-bcmath php7.4-sqlite3 php7.4-zip php7.4-xdebug -y | |
sudo systemctl start php7.4-fpm | |
sudo systemctl enable php7.4-fpm | |
sudo systemctl status php7.4-fpm | |
sudo nano /etc/nginx/conf.d/default.conf | |
sudo nginx -t | |
sudo systemctl reload nginx | |
sudo mariadb -u root | |
mariadb -u kavish -p | |
sudo nano /etc/nginx/conf.d/default.conf | |
sudo nginx -t | |
sudo systemctl reload nginx | |
sudo systemctl restart nginx | |
sudo mkdir -p /etc/systemd/system/nginx.service.d/ | |
sudo nano /etc/systemd/system/nginx.service.d/restart.conf | |
sudo systemctl daemon-reload | |
sudo pkill nginx | |
sudo systemctl status nginx | |
sudo usermod -a -G www-data kavish | |
sudo chown kavish:www-data /var/www/html -R | |
sudo chmod g+s /var/www/html/ | |
sudo chmod 755 -R /var/www/html/ | |
sudo chmod g+s /var/www/html/ -R | |
sudo nano /var/www/html/info.php | |
sudo shutdown -r now | |
sudo add-apt-repository ppa:linrunner/tlp | |
sudo apt-get install tlp tlp-rdw | |
sudo shutdown -r now | |
wget -O - -q http://deb.tableplus.com/apt.tableplus.com.gpg.key | sudo apt-key add - | |
sudo add-apt-repository "deb [arch=amd64] https://deb.tableplus.com/debian tableplus main" | |
sudo apt update | |
sudo apt install tableplus | |
sudo nano /etc/php/7.4/fpm/conf.d/10-opcache.ini -m | |
sudo systemctl start php7.4-fpm | |
sudo systemctl reload nginx | |
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" | |
php -r "if (hash_file('sha384', 'composer-setup.php') === '795f976fe0ebd8b75f26a6dd68f78fd3453ce79f32ecb33e7fd087d39bfeb978342fb73ac986cd4f54edd0dc902601dc') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" | |
php composer-setup.php | |
php -r "unlink('composer-setup.php');" | |
sudo mv composer.phar /usr/local/bin/composer | |
composer | |
curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash | |
source ~/.profile | |
nvm ls-remote | |
nvm install v12.18.4 | |
nvm list | |
node --version | |
node | |
npm -v | |
sudo apt install git supervisor tcl -y | |
sudo service supervisor restart | |
snap install --classic gitkraken | |
wget http://download.redis.io/redis-stable.tar.gz | |
tar xvzf redis-stable.tar.gz | |
cd redis-stable/ | |
make test | |
make | |
sudo cp src/redis-server /usr/local/bin/ | |
sudo cp src/redis-cli /usr/local/bin/ | |
redis-server | |
redis-cli ping |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# ~/.bashrc: executed by bash(1) for non-login shells. | |
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) | |
# for examples | |
# If not running interactively, don't do anything | |
case $- in | |
*i*) ;; | |
*) return;; | |
esac | |
# don't put duplicate lines or lines starting with space in the history. | |
# See bash(1) for more options | |
HISTCONTROL=ignoreboth | |
# append to the history file, don't overwrite it | |
shopt -s histappend | |
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1) | |
HISTSIZE=1000 | |
HISTFILESIZE=2000 | |
# check the window size after each command and, if necessary, | |
# update the values of LINES and COLUMNS. | |
shopt -s checkwinsize | |
# If set, the pattern "**" used in a pathname expansion context will | |
# match all files and zero or more directories and subdirectories. | |
#shopt -s globstar | |
# make less more friendly for non-text input files, see lesspipe(1) | |
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" | |
# set variable identifying the chroot you work in (used in the prompt below) | |
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then | |
debian_chroot=$(cat /etc/debian_chroot) | |
fi | |
# set a fancy prompt (non-color, unless we know we "want" color) | |
case "$TERM" in | |
xterm-color|*-256color) color_prompt=yes;; | |
esac | |
# uncomment for a colored prompt, if the terminal has the capability; turned | |
# off by default to not distract the user: the focus in a terminal window | |
# should be on the output of commands, not on the prompt | |
#force_color_prompt=yes | |
if [ -n "$force_color_prompt" ]; then | |
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then | |
# We have color support; assume it's compliant with Ecma-48 | |
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such | |
# a case would tend to support setf rather than setaf.) | |
color_prompt=yes | |
else | |
color_prompt= | |
fi | |
fi | |
if [ "$color_prompt" = yes ]; then | |
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' | |
else | |
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' | |
fi | |
unset color_prompt force_color_prompt | |
# If this is an xterm set the title to user@host:dir | |
case "$TERM" in | |
xterm*|rxvt*) | |
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1" | |
;; | |
*) | |
;; | |
esac | |
# enable color support of ls and also add handy aliases | |
if [ -x /usr/bin/dircolors ]; then | |
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" | |
alias ls='ls --color=auto' | |
#alias dir='dir --color=auto' | |
#alias vdir='vdir --color=auto' | |
alias grep='grep --color=auto' | |
alias fgrep='fgrep --color=auto' | |
alias egrep='egrep --color=auto' | |
fi | |
# colored GCC warnings and errors | |
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01' | |
# some more ls aliases | |
alias ll='ls -alF' | |
alias la='ls -A' | |
alias l='ls -CF' | |
alias cdvwh='cd /var/www/html' | |
alias art='php artisan' | |
alias artink='art tinker' | |
alias artsrv='art serve' | |
# Add an "alert" alias for long running commands. Use like so: | |
# sleep 10; alert | |
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"' | |
# Alias definitions. | |
# You may want to put all your additions into a separate file like | |
# ~/.bash_aliases, instead of adding them here directly. | |
# See /usr/share/doc/bash-doc/examples in the bash-doc package. | |
if [ -f ~/.bash_aliases ]; then | |
. ~/.bash_aliases | |
fi | |
# enable programmable completion features (you don't need to enable | |
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile | |
# sources /etc/bash.bashrc). | |
if ! shopt -oq posix; then | |
if [ -f /usr/share/bash-completion/bash_completion ]; then | |
. /usr/share/bash-completion/bash_completion | |
elif [ -f /etc/bash_completion ]; then | |
. /etc/bash_completion | |
fi | |
fi | |
export NVM_DIR="$HOME/.nvm" | |
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm | |
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion |
Configure PHP opCache
Add following content to 10-opcache.ini:
opcache.memory_consumption=512
opcache.interned_strings_buffer=64
opcache.max_accelerated_files=32531
opcache.validate_timestamps=0
opcache.enable_cli=1
Refer : PHP opcache
Add following content to default.conf:
server {
listen 80;
listen [::]:80;
server_name _;
root /var/www/html/;
index index.php index.html index.htm index.nginx-debian.html;
location / {
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
include snippets/fastcgi-php.conf;
}
# A long browser cache lifetime can speed up repeat visits to your page
location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {
access_log off;
log_not_found off;
expires 360d;
}
# disable access to hidden files
location ~ /\.ht {
access_log off;
log_not_found off;
deny all;
}
}
Install other required programs
- Install Composer
- Install Node JS
- Install git, supervisor and tcl
- Install Redis
For best programming fonts
Set file/folder permisson for laravel projects : https://stackoverflow.com/questions/30639174/how-to-set-up-file-permissions-for-laravel#answer-37266353
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Use above commands to install LEMP (Linux, Nginx, MariaDB, PHP) stack on a new Ubuntu PC
References