Install Latest Git ( Git 2.x ) on CentOS 7

Start by checking installed version of git on your CentOS 7 server.

$ git --version
git version 1.8.3.1

Install Latest git on CentOS 7 from End Point repository

sudo yum -y remove git
sudo yum -y remove git-*

Add End Point CentOS 7 repo

sudo yum -y install https://packages.endpoint.com/rhel/7/os/x86_64/endpoint-repo-1.9-1.x86_64.rpm
sudo yum install git

Check git version after installing git2u-all package

$ git --version
git version 2.30.1

ติดตั้ง MySql บน CentOS 7

การดาว์นโหลดตัวติดตั้ง

ไปที่ MySQL Community Downloads แล้วเลือก MySQL Yum Repository

แล้วดาว์นโหลดไฟล์ mysql80-community-release-el7-3.noarch.rpm

ถ้าใช้ไฟล์ mysql80-community-release-el7-5.noarch.rpm ก็เป็น mysql57

การติดตั้ง

sudo rpm -ivh mysql80-community-release-el7-3.noarch.rpm

การเลือกเวอร์ชันที่จะติดตั้ง

sudo yum-config-manager --disable mysql80-community
sudo yum-config-manager --enable mysql56-community

หรือ เลือก enabled=1 ที่ไฟล์ /etc/yum.repos.d/mysql-community.repo

ตรวจสอบว่า enabled ถูกเวอร์ชันมั๊ย

yum repolist enabled | grep mysql 
sudo yum install mysql-server
-- OR --
sudo yum install mysql-community-server

Starting MySQL

sudo systemctl start mysqld
sudo systemctl status mysqld

uring the installation process, a temporary password is generated for the MySQL root user. Locate it in the mysqld.log with this command:

sudo grep 'temporary password' /var/log/mysqld.log

Configuring MySQL

sudo mysql_secure_installation

ติดตั้ง Visual Studio Code บน CentOS 7

อัพเดท repository

sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/vscode.repo'

ติดตั้ง code

yum check-update
sudo yum install code

เรียกใช้ code

code &

หรือกำหนดโฟลเดอร์

code . &

ติดตั้ง Python3 บน CentOS 7

เดิม CentOS7 จะติดตั้ง Python 2.7.5 มาให้

ติดตั้งจาก Package Manager

อัพเดท repo

sudo yum update

ติดตั้ง Python3

sudo yum install -y python3

ตรวจสอบเวอร์ชัน

python3 --version

จะได้ Python 3.6.8

ติดตั้งผ่าน Package Manager จะได้ Python3.6 ติดตั้งอยู่ที่ /usr/bin/python3.6

ติดตั้งเวอร์ขันที่ต้องการจาก Source Code

ติดตั้ง required packages and dependencies

sudo yum groupinstall "Development Tools" -y
sudo yum install gcc open-ssl-devel bzip2-devel libffi-devel -y
sudo yum install zlib-devel

ดาว์นโหลดเวอร์ชัน 3.7.12 (04-Sep-2021)

wget https://www.python.org/ftp/python/3.7.12/Python-3.7.12.tgz
tar xzf Python-3.7.12.tgz

ติดตั้ง

cd Python-3.7.12
./configure --with-openssl=/home/[username]/openssl
./configure --enable-optimizations
sudo make altinstall

Python3.7 จะติดตั้งอยู่ที่ /usr/local/bin

กำหนด default python ให้เป็น Python3.7

sudo ln -fs /usr/local/bin/python3.7   /usr/bin/python3
sudo ln -fs /usr/local/bin/pydoc3.7    /usr/bin/pydoc3
sudo ln -fs /usr/local/bin/pyvenv-3.7  /usr/bin/pyvenv3
sudo ln -fs /usr/local/bin/pip3.7      /usr/bin/pip3

สร้างไฟล์ทดสอบ helloworld.py

#!/usr/bin/python3

print("Hello World!")

เปลี่ยน permission

chmod 755 helloworld.py

รัน

./helloworld.py

เรื่องของ yum กับ Python3

ถ้าเซ็ตให้คำสั่ง python ชี้ไปที่ python3.7

sudo ln -fs /usr/local/bin/python3.7   /usr/bin/python   

จะใช้คำสั่ง yum ไม่ได้ โดยจะ error ประมาณนี้

$ sudo yum install tree
  File "/bin/yum", line 30
    except KeyboardInterrupt, e:
                            ^
SyntaxError: invalid syntax

Because yum does not support Python3.

ให้แก้ไขไฟล์ /bin/yum จาก !/usr/bin/python เป็น !/usr/bin/python2 ก็จะรัน yum ได้ (แต่อาจเจอปัญหาอื่นตามมาอีก – เปลี่ยน default python กลับไปที่ python2 ดีกว่า)

อัพเดท pip

ตรวจสอบเวอร์ชัน

$ pip3 --version
pip 20.1.1 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)

ไม่แน่ใจว่า require openssl openssl-devel กับ epel-release มั๊ย

sudo yum install openssl openssl-devel
sudo yum install epel-release

ตรวจสอบโมดูล ssl ถ้าปกติรัน python3 -m ssl แล้วจะไม่มีอะไรเกิดขึ้น

python3 -m ssl

อัพเดท pip

python3 -m pip install --upgrade pip

ตรวจสอบเวอร์ชันอีกที

$ pip3 --version
pip 21.2.4 from /home/jack/.local/lib/python3.7/site-packages/pip (python 3.7)

ติดตั้ง Chrome บน CentOS 7

1. Downloading the latest Google Chrome .rpm package

wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm

2. Install Google Chrome on your CentOS 7 system

sudo yum localinstall google-chrome-stable_current_x86_64.rpm

3. Starting Google Chrome

google-chrome &

Start Google Chrome by clicking on the Google Chrome icon (Applications → Internet → Google Chrome):

ติดตั้ง SQL Server 2017 บน CentOS 7

Install SQL Server 2017

1.Download the Microsoft SQL Server 2017 Red Hat repository configuration file:

sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo

2.Run the following commands to install SQL Server:

sudo yum install -y mssql-server

3.After the package installation finishes, run mssql-conf setup and follow the prompts to set the SA password and choose your edition.

sudo /opt/mssql/bin/mssql-conf setup

4.Once the configuration is done, verify that the service is running:

systemctl status mssql-server

5.To allow remote connections, open the SQL Server port on the firewall on RHEL. The default SQL Server port is TCP 1433. If you are using FirewallD for your firewall, you can use the following commands:

sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent
sudo firewall-cmd --reload

Install the SQL Server command-line tools

1.Download the Microsoft Red Hat repository configuration file.

sudo curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/7/prod.repo

2.If you had a previous version of mssql-tools installed, remove any older unixODBC packages.

sudo yum remove unixODBC-utf16 unixODBC-utf16-devel

3.Run the following commands to install mssql-tools with the unixODBC developer package. For more information, see Install the Microsoft ODBC driver for SQL Server (Linux).

sudo yum install -y mssql-tools unixODBC-devel

4.For convenience, add /opt/mssql-tools/bin/ to your PATH environment variable. This enables you to run the tools without specifying the full path. Run the following commands to modify the PATH for both login sessions and interactive/non-login sessions:

echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
echo $PATH

Connect locally

1.Run sqlcmd with parameters for your SQL Server name (-S), the user name (-U), and the password (-P).

sqlcmd -S localhost -U SA -P '<YourPassword>'

Create and query data

Create a new database

1.From the sqlcmd command prompt, paste the following Transact-SQL command to create a test database:

CREATE DATABASE TestDB

2.On the next line, write a query to return the name of all of the databases on your server:

SELECT Name from sys.Databases

3.The previous two commands were not executed immediately. You must type GO on a new line to execute the previous commands:

GO

Exit the sqlcmd command prompt

QUIT

ติดตั้ง vsftpd บน CentOS 7

Step 1: Install FTP Service with VSFTPD

1.Start by updating the package manager:

sudo yum update

2.Install VSFTPD software 

sudo yum install vsftpd

3. Start the service and set it to launch when the system boots with the following:

sudo systemctl start vsftpd
sudo systemctl enable vsftpd

4. Next, create a rule for your firewall to allow FTP traffic on Port 21

sudo firewall-cmd --zone=public --permanent --add-port=21/tcp
sudo firewall-cmd --zone=public --permanent --add-service=ftp
sudo firewall-cmd --reload

Step 2: Configuring VSFTPD

1. Before starting, create a copy of the default configuration file:

sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.default

2. Next, edit the configuration file 

sudo nano /etc/vsftpd/vsftpd.conf

3. Set your FTP server to disable anonymous users and allow local users

anonymous_enable=NO
local_enable=YES

4. Next, allow a logged-in user to upload files to your FTP server.

write_enable=YES

5. Limit FTP users to their own home directory. This is often called jail or chroot jail. Find and adjust the entry to match the following:

chroot_local_user=YES
allow_writeable_chroot=YES

ติดตั้ง Git

  1. ติดตั้ง Git
  2. Getting a Git Repository
  3. Recording Changes to the Repository
  4. Branch
  5. Fix

1. ติดตั้ง Git

Install Git with Yum

sudo yum install git

Install Git with apt

sudo apt install git

ตรวจสอบการติดตั้ง

git --version

Set Up Git

git config --global user.name "Your Name"
git config --global user.email "you@example.com"

Checking Your Settings

git config --list

You can view all of your settings and where they are coming from using:

git config --list --show-origin

Your default branch name

By default Git will create a branch called master when you create a new repository with git init. From Git version 2.28 onwards, you can set a different name for the initial branch.

git config --global init.defaultBranch main

2. Getting a Git Repository

Initializing a Repository in an Existing Directory

cd /home/user/my_project
git init
git add *.c
git add LICENSE
git commit -m 'Initial project version'

หรือ add ทุกไฟล์ใน directory ด้วย

git add .

แต่ถ้าจะลบไฟล์ก็ git rm (ลบไฟล์พร้อมกับ stage ให้ด้วย)

git rm <filename>

Cloning an Existing Repository

You clone a repository with git clone <url>. For example, if you want to clone the Git linkable library called libgit2, you can do so like this:

git clone https://github.com/libgit2/libgit2

If you want to clone the repository into a directory named something other than libgit2, you can specify the new directory name as an additional argument:

git clone https://github.com/libgit2/libgit2 mylibgit

3. Recording Changes to the Repository

Checking the Status of Your Files

git status

ถ้าจะให้แสดง diff (staged) ด้วยก็

git status -v

หรือถ้าจะดูสรุปสั้นๆก็

git status -s
$ echo 'My Project' > README
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Untracked files:
  (use "git add <file>..." to include in what will be committed)

    README

nothing added to commit but untracked files present (use "git add" to track)

Tracking New Files

git add README
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)

    new file:   README

Ignoring Files

$ cat .gitignore
*.[oa]
*~

Viewing Your Staged and Unstaged Changes

To see what you’ve changed but not yet staged, type git diff with no other arguments:

git diff

If you want to see what you’ve staged that will go into your next commit, you can use git diff --staged or git diff --cached.

git diff --staged

หรือ

git status -v

Committing Your Changes

git commit -m "Story 182: fix benchmarks for speed"

ดูประวัติการ commit

git log
git log --oneline
git log --oneline --graph

การ reset (ย้อนกลับ) โดย default จะเป็นแบบ mixed

git reset <เลข commit ที่ได้จาก git log>

ดูประวัติ commit (รวมที่ reset ไปแล้วด้วย)

git reflog

ถ้าอยากย้อนกลับไป commit ที่เคย reset หายไปแล้ว ก็ทำได้ด้วย

git reset <เลข commit ที่ได้จาก git reflog>

git push

git push origin main

git pull

git pull

4. Branch

Create Branch

git branch <branch_name>

Remove Branch (Local)

git branch -d <branch_name>

Switch Branch

git checkout <branch_name>

Create and Switch Branch

git checkout -b <branch_name> <commit_id (optional)>

List branch

git branch

Git Merge

git merge <branch_name>
git merge <branch_name> --no-ff # merge commit

5. Fix

ยังไม่ได้เชื่อมต่อด้วย SSH

ดูที่ Generate an SSH key pair

SSL certificate problem: unable to get local issuer certificate

Resolution #1 – Self Signed certificate

Tell git to not perform the validation of the certificate using the global option:

git config --global http.sslVerify false

You must use a personal access token with ‘read_repository’ or ‘write_repository’ scope for Git over HTTP.

วิธีแก้

สร้าง personal access token ที่มีสิทธิ read_repository or write_repository เป็นอย่างน้อย

สั่งรัน git clone ใหม่ แล้วจะมีไดอะล็อก ให้ใส่ username, password ก็ใส่ตามนี้

username: login
password: <credential ที่ได้จากตอนสร้าง personal access token>

แต่ถ้าไม่มีไดอะล็อก ให้ลองไปลบ ของเดิมที่ Credential Manager

ติดตั้ง Apache

sudo yum update
sudo yum install httpd

เปิด Firewall

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

start httpd

sudo systemctl start httpd


ตรวจสอบว่ารันมั๊ย

sudo systemctl status httpd

แสดง host’s network addresses (IP addresses separated by spaces)

hostname -I