Prelude
This article is mainly to help experienced user install and setup CentOS 7 Server.
Prerequisites#
- You are familiar with CentOS, at least you have some experience working on Linux system.
- You are familiar with basic bash/shell command
Things to do after installing CentOS server#
- How to setup your server
Firewall setup#
sudo firewall-cmd --permanent --add-port=22/tcp
sudo firewall-cmd --permanent --add-port=21/tcp
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reloadSSH server setup#
!!! For production environment, SSH should be secured by the CA
- Install SSH if it is not done yet
## yum install openssh openssh-server openssh-clients openssl-libs- Configure SSH
## backup default config
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.ori
sudo chmod a-w /etc/ssh/sshd_config.ori
## use any editor to update sshd_config
sudo vi /etc/ssh/sshd_config
## uncomment PasswordAuthentication yes to allow remote password login
## Password authentication is only for test environment
## setup ssh auto-start onboot
sudo systemctl restart sshd Update Time Zone if it is incorrect#
ls -l /etc/localtime ## check the time zone
sudo timedatectl list | grep New_York ## find the time zone by the city
sudo timedatectl set-timezone America/New_YorkInstall Git#
- Option 1: You can use
yumto install git, but it is quite out-of-date. The version of git is 1.8.x
sudo yum install git
git --version- Option 2: Download the latest stable release of Git and compile the software from source. (Recommended)
Install build tools#
sudo yum groupinstall "Development Tools"
sudo yum install gettext-devel openssl-devel perl-CPAN perl-devel \
zlib-devel libcurl-devel expat-devel
sudo yum install yum-utilsDownload the latest release#
wget https://github.com/git/git/archive/v2.x.x.tar.gz -O git.tar.gz
tar -zxf git.tar.gz
cd git-*
make configure
./configure --prefix=/usr/local
sudo make install
git --versionSetup a better Vim#
sudo yum isntall vim-enhancedInstall Tmux#
sudo yum install tmux- Most useful tmux commands
Ctrl+b " — split pane horizontally.
Ctrl+b % — split pane vertically.
Ctrl+b arrow key — switch pane.
Hold Ctrl+b, don’t release it and hold one of the arrow keys — resize pane.
Ctrl+b c — (c)reate a new window.
Ctrl+b , — rename reate a new window.
Ctrl+b n — move to the (n)ext window.
Ctrl+b p — move to the (p)revious window.
Install python 3#
You will only find Python 2 on CentOS by default. In order to install the latest python3, we need to install IUS to which stands for Inline with Upstream Stable.
sudo yum -y install https://centos7.iuscommunity.org/ius-release.rpm
sudo yum -y install python36u
### Install development package
sudo yum -y insall python-devel python36u-develInstall nodejs#
- Nodejs 6.x
sudo yum -y install nodejs- Nodejs 8.x
curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -- Upgrade NPM
sudo npm install -g npm
sudo npm install -g typescript
sudo mpm install -g yarninstall docker CE (CentOS 7)#
## add repo
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
## check docker.list
yum list docker-ce --showduplicates | sort -r
## install docker engine
sudo yum install docker-ce
docker -v Install JDK 8#
- Downlaod the JDK from Oracle website.
## At the confirmation prompt, enter y
## then RETURN to continue with the installation.
sudo yum install java-1.8.0-openjdk-devel
java -version- Test JDK with a simple HelloWorld program
import java.util.Calendar;
class HelloWorld {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH) + 1;
int day = cal.get(Calendar.DATE);
int hour = cal.get(Calendar.HOUR_OF_DAY);
int minute = cal.get(Calendar.MINUTE);
String username = System.getProperty("user.name");
System.out.println(username+ ": Hello World! ");
System.out.println(year + "/" + month + "/" + day + " " + hour + ":" + minute);
}
}- Compile and run the program
javac HelloWorld.java
java HelloWorld.javaInstall Go#
- Install Go
cd /tmp
curl -LO https://redirector.gvt1.com/edgedl/go/go1.9.2.linux-amd64.tar.gz
## check hash
shasum -a 256 go*linux-amd64.tar.gz
## install tar ball
sudo tar -C /usr/local -xvzf go1.9.2.linux-amd64.tar.gz- Setup GOROOT
cd /etc/profile.d
## Create a path.sh script
sudo vi path.sh- Copy following code into
path.sh
export PATH=$PATH:/usr/local/go/bin- Setup local GOBIN, GOPATH
export GOBIN="$HOME/projects/go/bin"
export GOPATH="$HOME/projects/go/src"
export PATH- Create a simple
hello.gofile to test
package main
import (
"fmt"
"log"
"os/user"
)
func main(){
user, err := user.Current()
if err != nil {
log.Fatal(err)
}
fmt.Printf(user.Name + " said : Hello World! \n" )
} - Run the program
go run $GOPATH/hello.go
go install $GOPATH/hello.go
$GOBIN/helloInstall Cmake#
sudo yum install epel-release
sudo yum install cmake3
sudo ln -s /usr/bin/cmake3 /usr/bin/cmakeInstall Rust#
curl -f -L https://static.rust-lang.org/rustup.sh -O
sh rustup.sh
rustc --versionInstall PHP 7#
- install and enable EPEL and Remi repository
sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm- install
yum-utils
sudo yum install yum-utils- Enable PHP 7 repo
sudo yum-config-manager --enable remi-php72 - Install PHP
sudo yum install php php-mcrypt php-cli php-gd php-curl php-mysql \
php-ldap php-zip php-fileinfo Install clang#
sudo yum install llvm
sudo yum install clang