Category: OS

เกียวกับเทคนิคการใช้ OS ในกลุ่มต่างๆ

Nginx Let’s Encrypt on Ubunto 18.04

Step 1 Install Certbot

add the rpository
$ sudo add-apt-repository ppa:certbot/certbot
Install Cerbot’s Nginx package
$ sudo apt install python-certbot-nginx

Step 2 Confirming Nginx’s Configuration

$ sudo nano /etc/nginx/sites-available/example.com
...
server_name example.com ;
...
$ sudo nginx -t
$ sudo systemctl reload nginx

Step 3 Allow HTTPS Through the Firewall

$ sudo ufw allow 'Nginx Full'
$ sudo ufw delete allow 'Nginx HTTP'

Step 4  Obtaining an SSL Certificate

$ sudo certbot --nginx -d example.com


กรณี เว็บไซด์ดำเนินการเฉพาะ  https ให้เลือกการดำเนินการในลำดับ 2

Step 5 Verifying Certbot Auto-Renewal

$ sudo certbot renew --dry-runr

Renew scrip to cron.d

อ้างอิง https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-18-04

Install Linux ,Nginx, MySQL,PHP,phpmyadmin on Ubuntu 18.04

Step 1 – Install the Nginx Web Server

$ sudo update
$ sudo apt-get install nginx

Enable firewall

$ sudo ufw allow http
$ sudo ufw allow https

Check status

$ sudo ufw status

Step 2 Install PHP PHP-mysql and Config

$ sudo apt install php-fpm php-mysql

config nginx

$ sudo nano /etc/nginx/sites-available/example.com
server {
        listen 80;
        root /var/www/html;
        index index.php index.html index.htm index.nginx-debian.html;
        server_name example.com;

        location / {
                try_files $uri $uri/ =404;
        }

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
        }

        location ~ /\.ht {
                deny all;
        }
}
$ sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
$ sudo unlink /etc/nginx/sites-enabled/default
$ sudo nginx -t
$ sudo  systemctl reload nginx

step 3 Creating a PHP File to test Configuaration

$ sudo nano /var/www/html/info.php
<?php   phpinfo(); ?>

Step 4 Install MySQL

$ sudo apt install mysql-server
$ sudo mysql_secure_installation

กำหนดรหัสผ่านให้กับฐานข้อมูล  MySQL

$ sudo mysql
mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
mysql>FLUSH PRIVILEGES;
mysql> exit

Step 5 Install phpMyAdmin

$ sudo apt install phpmyadmin
$ sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin

php7 imagecreatefromjpeg call to undefined function

กรณีไม่สามารถรันคำสั่ง php ด้านล่าง สาเหตุเกิดจาก ระบบปฏิบัติการยังไม่ได้ทำการติดตั้งชุดคำสั่ง php-gd

<?php
....
$images_orig = ImageCreateFromJPEG($images);
...
?>

วิธีการแก้ปัญหา

On Debian Ubuntu
$ sudo apt-get install php7.0-gd

Connectiong to a MSSQL Server/Database With PHP

ขั้นตอนการติดตั้ง PHP5 ให้รองรับการเชื่อมต่อ MSSQL

debian$ sudo apt-get install freetds-common freetds-bin unixodbc php5-sybase

ตรวจสอบการเชื่อมต่อกับฐานข้อมูล

debian$ tsql -H <hostname/ip_address> -p <port> -U <username> -P <password> -D <chosen_database>

ตัวอย่าง โค๊ดในการติดต่อกับฐานข้อมูล

<?php
 $hostnamemssql = "x.x.x.x";
 $databasemssql = "db";
 $usernamemssql = "user";
 $passwordmssql = "password";
 $connmssql = mssql_connect($hostnamemssql, $usernamemssql,    $passwordmssql) or die('MSSQL Error: ' . mssql_get_last_message());
mssql_select_db($databasemssql,$connmssql);
?>

Automated mysql dump using Linux

  1. สร้างไฟล์ .sh โดยการเขียน script ดังนี้
#!/bin/sh 
mysqldump -h host -u root -p'password' databasename | gzip >db.$(date +%Y%m%d-%H:%M).sql.gz

2. กำหนดสิทธิ์

 $sudo chmod 700 backup.sh 

3.กรณีต้องการ run คำสั่ง

$ ./backup.sh

3. ติดตั้ง crontab

$ apt-get install cron

4. ตั้งค่า โดยการ พิมพ์คำสั่ง $ crontab -e

เพื่มบันทัดด้านล่างนี้ไว้ท้ายสุด ความหมายคือ จะทำการ run คำสั้ง /path/backup.shทุกๆ วัน เวลา 23:30

30 23 * * * /bin/sh /path/backup.sh

ความหมายการใช้คำสั่ง crontab