# Python3 installation
wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz
tar -xzvf Python-3.6.8.tgz
cd Python-3.6.8
mkdir /usr/local/python3
./configure --prefix=/usr/local/python3
make
make install
mv /usr/bin/python /usr/bin/python_old2
ln -s /usr/local/python3/bin/python3 /usr/bin/python
# MySQL installation
wget http://repo.mysql.com/mysql80-community-release-el7-1.noarch.rpm
yum localinstall mysql80-community-release-el7-1.noarch.rpm
yum repolist enabled | grep "mysql.*-community.*"
yum -y install mysql-community-server mysql-community-devel
## startup
systemctl enable mysqld
systemctl daemon-reload
service mysqld start
## password
grep 'temporary password' /var/log/mysqld.log
mysql -uroot -p
set password = 'Pass1234!';
# Trouble shooting
### zipimport.ZipImportError: can’t decompress data,
yum -y install zlib*
vim Module/Setup
zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz <- remove '#
make && make install
### yum error
vim /usr/bin/yum
vim /usr/libexec/urlgrabber-ext-down
#!/usr/bin/python -> #!/usr/bin/python2.7
## Project X Y & Z
X:8081 /var/www/html/X
Y:8082 /var/www/html/Y
Z:8083 /var/www/html/Z
# Django services
vim /usr/lib/systemd/system/X.service:
[Unit]
Description=gitlabcontroller
[Service]
PrivateTmp=true
Restart=always
Type=simple
### Path and Port
ExecStart=/usr/bin/python /var/www/html/#X#Y#Z#/manage.py runserver 0.0.0.0:#8081#8082#8083
ExecStop=/usr/bin/kill -15 $MAINPID
[Install]
WantedBy=multi-user.target
# Nginx installation
### Preparation
cd /etc/yum.repos.d/
vim nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
### Installation:
yum install -y nginx
### Version:
nginx -v
### Grammer check
nginx -t
# Nginx Configuration
Assume address is helloworld.com
vim /etc/nginx/nginx.conf
user nginx;
worker_processes 4; ### check number of CPU core
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024; ### max connnection
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
keepalive_timeout 65;
upstream X{
server 127.0.0.1:8081;
}
upstream Y{
server 127.0.0.1:8082;
}
upstream Z{
server 127.0.0.1:8083;
}
### Reverse Proxy to X.helloworld.com
server {
listen 443;
ssl on;
ssl_certificate /etc/pki/tls/CERTIFICATE.crt;
ssl_certificate_key /etc/pki/PRIVATEKEY.key;
server_name X.helloworld.com;
charset utf-8;
client_max_body_size 75M;
location / {
proxy_pass http://X;
index index.html index.htm;
}
}
### Reverse Proxy to Y.helloworld.com
server {
listen 443;
ssl on;
ssl_certificate /etc/pki/tls/CERTIFICATE.crt;
ssl_certificate_key /etc/pki/PRIVATEKEY.key;
server_name Y.helloworld.com;
charset utf-8;
client_max_body_size 75M;
location / {
proxy_pass http://X;
index index.html index.htm;
}
}
### Reverse Proxy to Z.helloworld.com
server {
listen 443;
ssl on;
ssl_certificate /etc/pki/tls/CERTIFICATE.crt;
ssl_certificate_key /etc/pki/PRIVATEKEY.key;
server_name Z.helloworld.com;
charset utf-8;
client_max_body_size 75M;
location / {
proxy_pass http://Z;
index index.html index.htm;
}
}
include /etc/nginx/conf.d/*.conf;
}
# Command when operation
systemctl status nginx
systemctl enable nginx
systemctl start nginx
systemctl stop nginx
systemctl restart nginx