Skip to content

Instantly share code, notes, and snippets.

@ahmeti
Last active July 28, 2018 23:19
Show Gist options
  • Save ahmeti/ca0e9548e3ab81a9732d8bb90f70c966 to your computer and use it in GitHub Desktop.
Save ahmeti/ca0e9548e3ab81a9732d8bb90f70c966 to your computer and use it in GitHub Desktop.
SSH

SSH

CREATE ID_RSA KEY
cd /root/.ssh
ssh-keygen -t rsa
cat id_rsa.pub

If added old key manually then:

chmod 700 id_rsa
AUTO GIT PULL (PHP)
1. sudo -u www-data ssh-keygen -t rsa
2. Upload key to Github or Bitbucket
3. Generate known_hosts for www-data by $ ssh-keyscan -H bitbucket.org >> /var/www/.ssh/known_hosts
4. sudo chmod -R o+rw /var/www
5. sudo chown -R www-data:www-data /var/www

UBUNTU LEMP FIRST RUN & PHP 7.2

echo "export LC_ALL=en_US.UTF-8" >> ~/.bashrc
echo "export LANG=en_US.UTF-8" >> ~/.bashrc
echo "export LANGUAGE=en_US.UTF-8" >> ~/.bashrc
reboot

sudo add-apt-repository ppa:ondrej/php
sudo apt-get install php7.2-cli php7.2-fpm php7.2-curl php7.2-gd php7.2-mysql php7.2-mbstring zip unzip
sudo apt-get purge php7.0-common

nano /etc/php/7.0/cli/php.ini
nano /etc/php/7.0/fpm/php.ini

CHANGE -> max_execution_time = 300

nano /etc/php/7.0/fpm/pool.d/www.conf
CHANGE -> request_terminate_timeout = 300

nano /etc/nginx/nginx.conf
Add -> 
http {
    #
    fastcgi_read_timeout 300;
    #
}

LARAVEL

LEMP & LARAVEL INSTALL
apt-get install zip php-zip php-mbstring php-xml php-gd composer
LARAVEL CRON CONFIG
crontab -e
* * * * * php /path-to-your-project/artisan schedule:run >> /dev/null 2>&1
// path-to-your-project/app/Console/Kernel.php

protected function schedule(Schedule $schedule)
{
    $schedule->call(function () {
        // Your codes
    })->everyFifteenMinutes();
    
    $schedule->call(function () {
        // Your codes
    })->everyMinute();
}
SET NGNIX USER PREMISSINONS
find . -type d -print0 | xargs -0 chmod 0755
find . -type f -print0 | xargs -0 chmod 0644
sudo chown -R www-data:www-data /var/www
CHANGE UPLOAD PARAMETERS
nano /etc/php/7.0/fpm/php.ini

post_max_size = 20M
upload_max_filesize = 20M


nano /etc/nginx/nginx.conf
http {
  ##
  # Basic Settings
  ##
  client_max_body_size 20M; # -> add this line
}


NODE

NODE JS AUTO START SERVER
echo "export PM2_HOME=/var/www/.pm2" >> ~/.bashrc

npm install -g pm2
pm2 start yourapp.js
pm2 startup
pm2 save
NODE & NPM VERSION UPDATE
sudo npm cache clean -f
sudo npm install -g npm
sudo npm install -g n
sudo n stable
sudo ln -sf /usr/local/n/versions/node/<NEW_VERSION>/bin/node /usr/bin/node

MYSQL

MYSQL ALLOW REMOTE ACCESS
sudo ufw allow 3306
sudo service ufw restart
nano /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 0.0.0.0
CREATE USER 'root'@'%' IDENTIFIED BY 'WRITE_ROOT_PASSWORD';

GRANT ALL ON *.* TO 'root'@'%';
FLUSH PRIVILEGES;
MYSQL EXPORT LOST CONNECTION FIX
innodb_buffer_pool_size = 64M

UBUNTU START UPGRADE
sudo apt-get update && time sudo apt-get dist-upgrade

TRADER

PHP TRADER INSTALL & CONFIG
pecl install trader
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment