First CentOS server installed in VMware as thape SSO server.
Install software in root account
Update system
Run as root:
| yum update
yum install -y git git-lfs zlib zlib-devel gcc-c++ patch readline readline-devel libyaml-devel libffi-devel openssl-devel make bzip2 autoconf automake libtool bison curl sqlite-devel
wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -ivh epel-release-latest-7.noarch.rpm
yum --enablerepo=epel install htop
reboot
|
As VMware admin required, not disable the PermitRootLogin
in /etc/ssh/sshd_config
Setup a user account
| adduser deployer
gpasswd -a deployer wheel
visudo # add deployer ALL=(ALL) NOPASSWD: ALL at end
sudo su - deployer
mkdir .ssh
chmod 700 .ssh
vi .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
|
Also disable root login and password via PermitRootLogin
in /etc/ssh/sshd_config
Before exis, make sure you can login via ssh deployer@ip_address
, other wise, check file permission.
Install rbenv and ruby-build
| cd # as a deployer
git clone https://github.com/sstephenson/rbenv.git .rbenv
cd ~/.rbenv && src/configure && make -C src
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
~/.rbenv/bin/rbenv init
# As an rbenv plugin
mkdir -p "$(rbenv root)"/plugins
git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build
git clone https://github.com/andorchen/rbenv-china-mirror.git "$(rbenv root)"/plugins/rbenv-china-mirror
|
Install Ruby 2.6.5
| rbenv install -l
rbenv install 2.6.5
rbenv global 2.6.5
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
echo "gem: --no-document" > ~/.gemrc
gem install bundler
gem install bundler -v 1.17.3
|
Install Javascript Runtime
Run as root:
| curl -sL https://rpm.nodesource.com/setup_10.x | bash -
sudo yum install nodejs
curl -sL https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
sudo yum install yarn
# if you behind GFW
# But notice sometime some packages not sync so restore back via
# npm config set registry https://registry.npmjs.com/ --global
# npm config delete disturl --global
npm config set registry https://registry.npmmirror.com/ --global
npm config set disturl https://npmmirror.com/dist --global
# Sometime taobao is out of sync, so still need official registry.
# yarn config delete registry --global
yarn config set registry https://registry.npmmirror.com/ --global
yarn config set disturl https://npmmirror.com/dist --global
|
Install nginx
| sudo yum install epel-release
sudo yum install nginx
chkconfig nginx on
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanent
sudo firewall-cmd --reload
|
Fix permission for CentOS
| sudo mkdir /var/www
cd /var/www
sudo mkdir cybros
sudo chown deployer:deployer cybros/
|
and disable selinux(https://linuxize.com/post/how-to-disable-selinux-on-centos-7/),
or further read nginx permission denied
Install Oracle Instant Client
Download Version 12.2.0.1.0 and following ruby-oci8 document
| sudo rpm -i ./oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm
sudo rpm -i ./oracle-instantclient12.2-devel-12.2.0.1.0-1.x86_64.rpm
sudo rpm -i ./oracle-instantclient12.2-sqlplus-12.2.0.1.0-1.x86_64.rpm
cd /usr/local/bin
sudo ln -s /usr/bin/sqlplus64 sqlplus
export LD_LIBRARY_PATH=/usr/lib/oracle/12.2/client64/lib
gem install ruby-oci8
|
Append to ~/.bashrc
| export LD_LIBRARY_PATH=/usr/lib/oracle/12.2/client64/lib
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
|
Install FreeTDS to connect to SQL Server
| sudo su -
wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-1.00.111.tar.gz
tar -xzf freetds-1.00.111.tar.gz
cd freetds-1.00.111
./configure --prefix=/usr/local --with-tdsver=7.3
make
sudo make install
logout # as deployer
gem install tiny_tds
|
Install MySQL
Install the percona server via yum.
After install, do the secure installation for root.
| mysql -u root -p
CREATE DATABASE pp_prod character set UTF8mb4 collate utf8mb4_0900_ai_ci;
CREATE USER 'pp_vendor'@'localhost' IDENTIFIED BY 'new_password';
GRANT ALL ON pp_prod.* TO 'pp_vendor'@'localhost';
FLUSH PRIVILEGES;
|