Equipment

Oracle Server Installation

This document describe the installation process of Oracle Server 19c in a Linux Red Hat Advance Server 7.8 or CentOS 7.8 host.

This release of Oracle can be installed via RPM and so it’s much different – some how simpler – that it used to be.

Consider that, in this case, we choose as SID the code “EVE” and the server name is “dev.myisretail.eu”.

Steps to install

To performe Oracle Server installation the following steps must be performed:

  • wget https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
  • yum -y localinstall oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
  • download oracle-database-ee-19c-1.0-1.x86_64.rpm from oracle site
  • yum -y localinstall oracle-database-ee-19c-1.0-1.x86_64.rpm

Create a database

A database can be created manually or via Oracle Database Assistant; since this tool is graphic we need to install the XWindows system.

To install the XWindows: yum groupinstall “X Window System” -y

To run Oracle Database Assistant it’s important to connect via ssh with the option “-X” or in putty with the flag “Enable X11 forwarding”: /opt/oracle/product/19c/dbhome_1/bin/dbca

Next
For specific parameters “Advance configuration” is the way to go. Since the specific part that we need is about datafile and are too many to be defined here: we choose typical. Password like “isretail” or too simples may rise a warning.
Complete.

Insert into .bash_profile of root and oracle user:

  • export TMP=/tmp
  • export TMPDIR=$TMP
  • export ORACLE_HOSTNAME=dev.myisretail.eu
  • export ORACLE_UNQNAME=EVE
  • export ORACLE_BASE=/opt/oracle
  • export ORACLE_HOME=$ORACLE_BASE/product/19c/dbhome_1
  • export ORACLE_SID=EVE
  • export PATH=/usr/sbin:$PATH
  • export PATH=$ORACLE_HOME/bin:$PATH
  • export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
  • export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
  • export NLS_LANG=american_america.utf8
  • export NLS_COMP=LINGUISTIC
  • export NLS_SORT=GENERIC_M_AI

Arrange configuration files:

listener.ora

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = EVE)
(ORACLE_HOME =/opt/oracle/product/19c/dbhome_1 )
(PROGRAM = extproc)
)
(SID_DESC=
(GLOBAL_DBNAME=EVE)
(ORACLE_HOME=/opt/oracle/product/19c/dbhome_1 )
(SID_NAME=EVE)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.45.223)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)

sqlnet.ora

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

tnsnames.ora

EVE=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = dev.myisretail.eu)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = EVE)
)
)

Create tablespaces

In EVE it’s possible, via definition in action IG014 or “Parameters for tables creation”, choose specific settings for tables and indexed per table.

So if DBA decides, for example, that tables for entities should go in a specific tablespace:

To create the tablespaces that we need run the following statements:

CREATE TABLESPACE ADINDX DATAFILE ‘/opt/oracle/oradata/EVE/datafile/rad_indx01.dbf’ SIZE 32000M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED, ‘/opt/oracle/oradata/EVE/datafile/rad_indx02.dbf’ SIZE 32000M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED, ‘/opt/oracle/oradata/EVE/datafile/rad_indx03.dbf’ SIZE 32000M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED, ‘/opt/oracle/oradata/EVE/datafile/rad_indx04.dbf’ SIZE 32000M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED LOGGING ONLINE EXTENT MANAGEMENT LOCAL UNIFORM SIZE 64M BLOCKSIZE 8K SEGMENT SPACE MANAGEMENT AUTO FLASHBACK ON;

CREATE TABLESPACE ADTABLE DATAFILE ‘/opt/oracle/oradata/EVE/datafile/rad_table01.dbf’ SIZE 32000M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED, ‘/opt/oracle/oradata/EVE/datafile/rad_table02.dbf’ SIZE 32000M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED, ‘/opt/oracle/oradata/EVE/datafile/rad_table03.dbf’ SIZE 32000M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED, ‘/opt/oracle/oradata/EVE/datafile/rad_table04.dbf’ SIZE 32000M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED, ‘/opt/oracle/oradata/EVE/datafile/rad_table05.dbf’ SIZE 32000M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED, ‘/opt/oracle/oradata/EVE/datafile/rad_table06.dbf’ SIZE 32000M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED, ‘/opt/oracle/oradata/EVE/datafile/rad_table07.dbf’ SIZE 32000M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED LOGGING ONLINE EXTENT MANAGEMENT LOCAL UNIFORM SIZE 640M BLOCKSIZE 8K SEGMENT SPACE MANAGEMENT AUTO FLASHBACK ON;

CREATE TABLESPACE MIINDX DATAFILE ‘/opt/oracle/oradata/EVE/datafile/rmi_indx01.dbf’ SIZE 21G AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED, ‘/opt/oracle/oradata/EVE/datafile/rmi_indx02.dbf’ SIZE 30G AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED LOGGING ONLINE EXTENT MANAGEMENT LOCAL UNIFORM SIZE 2M BLOCKSIZE 8K SEGMENT SPACE MANAGEMENT AUTO FLASHBACK ON;

CREATE TABLESPACE MITABLE DATAFILE ‘/opt/oracle/oradata/EVE/datafile/rmi_table01.dbf’ SIZE 13G AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED LOGGING ONLINE EXTENT MANAGEMENT LOCAL UNIFORM SIZE 4M BLOCKSIZE 8K SEGMENT SPACE MANAGEMENT AUTO FLASHBACK ON;

CREATE TABLESPACE TBS_I0011_LOB_16KB DATAFILE ‘/opt/oracle/oradata/EVE/datafile/tbs_i0011_16kb_lob_01.dbf’ SIZE 2048M AUTOEXTEND ON NEXT 128M MAXSIZE 32740M LOGGING ONLINE EXTENT MANAGEMENT LOCAL UNIFORM SIZE 64M BLOCKSIZE 8K SEGMENT SPACE MANAGEMENT AUTO FLASHBACK ON;

CREATE TABLESPACE TTINDX DATAFILE ‘/opt/oracle/oradata/EVE/datafile/rtt_indx01.dbf’ SIZE 32000M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED, ‘/opt/oracle/oradata/EVE/datafile/rtt_indx02.dbf’ SIZE 32000M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED LOGGING ONLINE EXTENT MANAGEMENT LOCAL UNIFORM SIZE 32M BLOCKSIZE 8K SEGMENT SPACE MANAGEMENT AUTO FLASHBACK ON;

CREATE TABLESPACE TTTABLE DATAFILE ‘/opt/oracle/oradata/EVE/datafile/rtt_table01.dbf’ SIZE 32000M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED, ‘/opt/oracle/oradata/EVE/datafile/rtt_table02.dbf’ SIZE 32000M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED, ‘/opt/oracle/oradata/EVE/datafile/rtt_table03.dbf’ SIZE 32000M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED, ‘/opt/oracle/oradata/EVE/datafile/rtt_table04.dbf’ SIZE 32000M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED LOGGING ONLINE EXTENT MANAGEMENT LOCAL UNIFORM SIZE 64M BLOCKSIZE 8K SEGMENT SPACE MANAGEMENT AUTO FLASHBACK ON;

Run Oracle configuration scripts

Important: the following scripts should never run in a database with running application and user logged in.

@$ORACLE_HOME/rdbms/admin/catalog.sql

@$ORACLE_HOME/rdbms/admin/catproc.sql

@$ORACLE_HOME/rdbms/admin/utlrp.sql

Create EVE user

We choose the password “eve2020” but you can obviously decide for anything.

CREATE USER eve IDENTIFIED BY eve2020;

GRANT IMP_FULL_DATABASE TO eve;

ALTER USER eve QUOTA UNLIMITED ON USERS;
ALTER USER eve QUOTA UNLIMITED ON MITABLE;
ALTER USER eve QUOTA UNLIMITED ON ADINDX;
ALTER USER eve QUOTA UNLIMITED ON ADTABLE;
ALTER USER eve QUOTA UNLIMITED ON MIINDX;
ALTER USER eve QUOTA UNLIMITED ON MITABLE;
ALTER USER eve QUOTA UNLIMITED ON TBS_I0011_LOB_16KB;
ALTER USER eve QUOTA UNLIMITED ON TTINDX;
ALTER USER eve QUOTA UNLIMITED ON TTTABLE;

EVE Installation Manual

This release of the manual describe the installation process in a Linux Red Hat Advance Server or CentOS versions 7.8 for:

  • Apache 2.4.43
  • PHP 7.0.33
  • Oracle 19.6
  • CouchBase 6.5.1

We assume that the media to install the OS was “minimal install” type.

Create OS user

To clearly identify our processes we are going to create a group and an user:

  • groupadd isretail
  • useradd -g isretail eve
  • passwd eve

Network

To avoid problems during installation or while running the system we suggest check the following configuration files:

  • /etc/hostname where you should be defined the server name
  • /etc/sysconfig/network-scripts/ifcfg-eth0/1/… where IP address is defined
  • /etc/hosts where can be defined the address for servers name when no complex DNS services are uses

These files are also to be remembered when a clone of a VM is the base of a new installation.

Firewall rules are also important if you prefer to mantain the firewall service active:

  • check in which zone we are (normally public) with firewall-cmd –get-active-zones
  • list the services with firewall-cmd –zone=public –list-services
  • add the services we need: firewall-cmd –zone=public –add-service=http
  • and make it permanent: firewall-cmd –zone=public –add-service=http –permanent

You may want to do the same for https service and other ports; for example if you need to open port 1235: firewall-cmd –zone=public –add-port=1235/tcp. Remeber to use “–permanent” for definition that must exist after reboot.

Update and Install packages

OS must be up to date and the following packages must be installed:

  • yum update
  • yum groupinstall “Development Tools” -y
  • yum install pcre-devel -y
  • yum install openssl-devel -y
  • yum install libxml2-devel -y
  • yum install libcurl-devel -y
  • yum install libjpeg-devel -y
  • yum install libpng-devel -y
  • yum install freetype-devel -y
  • yum install memcached -y
  • yum install pkgconfig -y
  • yum install openssl098e -y
  • yum install epel-release -y
  • yum install libmcrypt libmcrypt-devel -y
  • yum install mcrypt -y
  • yum install mhash -y
  • yum install wget -y

After this:

  • mkdir -p /root/install
  • cd /root/install

Apache installation

Please run the following commands from console:

  • wget https://mirrors.up.pt/pub/apache/httpd/httpd-2.4.43.tar.gz
  • wget https://mirrors.up.pt/pub/apache/apr/apr-1.7.0.tar.gz
  • wget https://mirrors.up.pt/pub/apache/apr/apr-util-1.6.1.tar.gz
  • wget https://github.com/libexpat/libexpat/releases/download/R_2_2_9/expat-2.2.9.tar.gz
  • tar -zxvf httpd-2.4.43.tar.gz
  • tar -zxvf apr-1.7.0.tar.gz
  • tar -zxvf apr-util-1.6.1.tar.gz
  • tar -zxvf expat-2.2.9.tar.gz
  • mv apr-1.7.0 httpd-2.4.43/srclib/apr
  • mv apr-util-1.6.1 httpd-2.4.43/srclib/apr-util
  • cd /root/install/expat-2.2.9
  • ./configure
  • make
  • make install
  • cd /root/install/httpd-2.4.43
  • ./configure –prefix=/www –with-mpm=prefork –enable-so –enable-rewrite –enable-vhosts-alias –enable-ssl –enable-modules=’unique-id’ –with-included-apr –with-expat=/usr/local
  • make
  • make install
  • vi /www/conf/httpd.conf to set some parameters:
    • Listen 192.168.45.223:80
    • Listen 192.168.45.223:1235 (if you need for voice)
    • LoadModule deflate_module modules/mod_deflate.so
    • LoadModule expires_module modules/mod_expires.so
    • LoadModule proxy_module modules/mod_proxy.so
    • LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
    • LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
    • LoadModule rewrite_module modules/mod_rewrite.so
    • User eve
    • Group isretail
    • ServerName [hostname]
    • before DocumentRoot “/www/htdocs”
      • <FilesMatch \.php$>
      • SetHandler “proxy:fcgi://127.0.0.1:9000”
      • </FilesMatch>
    • inside directory “/www/htdocs”
      • AllowOverride All
    • end of file:
        • ExpiresActive On
        • ExpiresByType image/x-icon “access plus 15 days”
        • ExpiresByType image/gif “access plus 15 days”
        • ExpiresByType image/png “access plus 15 days”
        • ExpiresByType image/jpg “access plus 15 days”
        • ExpiresByType image/jpeg “access plus 15 days”
        • ExpiresByType text/css “access plus 15 days”
        • ExpiresByType application/javascript “access plus 15 days”
      • </IfModule>
        • SetOutputFilter DEFLATE
        • DeflateCompressionLevel 9
        • BrowserMatch ^Mozilla/4 gzip-only-text/html
        • BrowserMatch ^Mozilla/4.0[678] no-gzip
        • BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
        • SetEnvIfNoCase Request_URI (?:gif|jpe?g|png|swf)$ no-gzip dont-vary
      • </IfModule>
        • ProxySet timeout=600000
        • ProxyPassMatch ^/(..php(/.)?)$ fcgi://127.0.0.1:9000/www/htdocs/$1
        • ProxyPassMatch ^/(status?)$ fcgi://127.0.0.1:9000/www/htdocs/$1
        • SetEnvIf Authorization “(.)” HTTP_AUTHORIZATION=$1
        • SetEnvIf Content-Type “(.)” HTTP_CONTENT_TYPE=$1
        • SetEnvIf Accept “(.*)” HTTP_ACCEPT=$1
      • </IfModule>
      • ExtendedStatus On
        • SetHandler server-status
        • Order Deny,Allow
        • Deny from all
        • Allow from all
      • </Location>
      • AddDefaultCharset Off

Database connections

Before install PHP engine we need to get a client for the database we are going to access.

Oracle client

This step is necessary if you want to access an Oracle Database Server installed in a different machine. If database and application servers are the same you don’t need to.

First obtain from Oracle site the client and the development libraries, then install.

  • wget https://download.oracle.com/otn_software/linux/instantclient/19600/oracle-instantclient19.6-basic-19.6.0.0.0-1.x86_64.rpm
  • wget https://download.oracle.com/otn_software/linux/instantclient/19600/oracle-instantclient19.6-devel-19.6.0.0.0-1.x86_64.rpm
  • rpm -ivh oracle-instantclient19.6*
  • create a tnsnames.ora file in /usr/lib/oracle/19.6/client64/network/admin

MySQL client

Since PHP 5.4 there is no need to install MySQL client libraries since the MySQL native driver is embedded in the PHP extension.

PHP and modules

The version we are going to install is 7.0.33

Some changes to the configure command suggested may be needed; for example:

  • –with-oci8=instantclient,/usr/lib/oracle/19.6/client64/lib if you are using the instant client from oracle
  • –with-mysqli instead of –with-oci8 if you are using MySQL instead of Oracle

In our case we have Oracle Server in the same machine; so:

PHP

  • wget https://www.php.net/distributions/php-7.0.33.tar.gz
  • tar -zxvf php-7.0.33.tar.gz
  • cd php-7.0.33
  • ./configure –prefix=/usr/local –with-libdir=/lib64 –enable-fpm –with-xmlrpc –with-iconv –enable-sockets –enable-mbstring –with-curl –with-gd –enable-soap –with-freetype-dir=/usr/local/lib –with-openssl –enable-pcntl –enable-posix –enable-shmop –enable-sysvsem –enable-sysvshm –enable-sysvmsg –enable-sigchild –enable-zip –enable-opcache –with-jpeg-dir=/usr/local/lib –with-png-dir=/usr/local/lib64 –with-zlib-dir=/usr/local/lib64 [–with-oci8=$ORACLE_HOME]
  • make && make install
  • cp php.ini-development /usr/local/lib/php.ini and adapt; about usefull settings:
    • max_execution_time = 300
    • max_input_vars = 10000
    • memory_limit = 256M
    • error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE
    • display_errors = Off
    • ignore_repeated_errors = On
    • error_log = /www/logs/php_errors.log
    • upload_max_filesize = 4M
    • session.gc_maxlifetime = 3600 (very important since it is used in EVE to decide after how much inactivity an user should re-login)
    • output_buffering = Off
  • cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
  • chmod +x /etc/init.d/php-fpm
  • cp ./sapi/fpm/status.html /www/htdocs/
  • chown eve.isretail -R /www/htdocs/
  • chkconfig php-fpm on
  • cd /usr/local/etc/
  • cp php-fpm.conf.default php-fpm.conf
  • vi php-fpm.conf and adapt; some settings that can be useful:
    • error_log = log/php-fpm.log
    • log_level = notice
    • process.max = 128
  • cd /usr/local/etc/php-fpm.d
  • cp www.conf.default www.conf
  • vi www.conf; some settings that can be useful:
    • user = eve
    • group = isretail
    • pm.max_children = 35
    • pm.start_servers = 5
    • pm.max_requests = 100
    • pm.status_path = /status
    • slowlog = /tmp/$pool.log.slow
    • request_slowlog_timeout = 3s
    • env[HOSTNAME] = $HOSTNAME
    • env[PATH] = /usr/local/bin:/usr/bin:/bin
    • env[TMP] = /tmp
    • env[TMPDIR] = /tmp
    • env[TEMP] = /tmp
    • env[ORACLE_HOME] = /opt/oracle/product/19c/dbhome_1
    • env[LD_LIBRARY_PATH] = /opt/oracle/product/19c/dbhome_1/lib:/lib:/usr/lib
    • env[NLS_LANG] = american_america.UTF8
    • env[NLS_COMP] = LINGUISTIC
    • env[NLS_SORT] = GENERIC_M_AI
    • env[DOCUMENT_ROOT] = /www/htdocs

At this point if we start php-fpm and we use a phpinfo.php page … it should works.

To start php-fpm: systemctl start php-fpm.service

To restart php-fpm: systemctl restart php-fpm.service

To stop php-fpm: systemctl stop php-fpm.service

opcache

In production environment remember to enable opcache from php.ini.

echo zend_extension=opcache.so >> /usr/local/lib/php.ini

After restart, to verify if ok, execute the command php -i | grep opcache and some output should appear:

opcache.blacklist_filename => no value => no value
opcache.consistency_checks => 0 => 0
opcache.dups_fix => Off => Off
opcache.enable => On => On
opcache.enable_cli => Off => Off
opcache.enable_file_override => Off => Off
opcache.error_log => no value => no value
opcache.fast_shutdown => 0 => 0
opcache.file_cache => no value => no value

igbinary

  • cd /root/install
  • wget https://pecl.php.net/get/igbinary-3.1.2.tgz
  • tar -zxvf igbinary-3.1.2.tgz
  • cd igbinary-3.1.2
  • phpize
  • ./configure CFLAGS=”-O2 -g” –enable-igbinary –with-php-config=/usr/local/bin/php-config
  • make && make install
  • echo extension=igbinary.so >> /usr/local/lib/php.ini

After restart, to verify if ok, execute the command php -i |grep igbinary and the output should be:

igbinary
igbinary support => enabled
igbinary version => 3.1.2
igbinary APCu serializer ABI => no
igbinary session support => yes
igbinary.compact_strings => On => On
Registered serializer handlers => php_serialize php php_binary igbinary

memcache

  • cd /root/install
  • wget https://pecl.php.net/get/memcache-4.0.5.2.tgz
  • tar -zxvf memcache-4.0.5.2.tgz
  • cd memcache-4.0.5.2
  • phpize
  • ./configure
  • make && make install
  • echo extension=memcache.so >> /usr/local/lib/php.ini

After restart, to verify if ok, execute the command php -i |grep memcache and the output should be:

memcache
memcache support => enabled
memcache.allow_failover => 1 => 1
memcache.chunk_size => 32768 => 32768
memcache.compress_threshold => 20000 => 20000
memcache.default_port => 11211 => 11211
memcache.hash_function => crc32 => crc32
memcache.hash_strategy => consistent => consistent
memcache.lock_timeout => 15 => 15
memcache.max_failover_attempts => 20 => 20
memcache.prefix_host_key => 0 => 0
memcache.prefix_host_key_remove_subdomain => 0 => 0
memcache.prefix_host_key_remove_www => 1 => 1
memcache.prefix_static_key => no value => no value
memcache.protocol => ascii => ascii
memcache.redundancy => 1 => 1
memcache.session_prefix_host_key => 0 => 0
memcache.session_prefix_host_key_remove_subdomain => 0 => 0
memcache.session_prefix_host_key_remove_www => 1 => 1
memcache.session_prefix_static_key => no value => no value
memcache.session_redundancy => 2 => 2
memcache.session_save_path => no value => no value

xdebug

Warning! This extension must always be declared after opcache when enabled.

  • cd /root/install
  • wget https://xdebug.org/files/xdebug-2.7.2.tgz
  • tar -zxvf xdebug-2.7.2.tgz
  • cd xdebug-2.7.2
  • phpize
  • ./configure –enable-xdebug
  • make && make install
  • echo zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20151012/xdebug.so >> /usr/local/lib/php.ini

After restart, to verify if ok, execute the command php -i |grep xdebug and the output should be:

xdebug
xdebug support => enabled
xdebug.auto_trace => Off => Off
xdebug.cli_color => 0 => 0
xdebug.collect_assignments => Off => Off
xdebug.collect_includes => On => On
xdebug.collect_params => 0 => 0
xdebug.collect_return => Off => Off
xdebug.collect_vars => Off => Off
xdebug.coverage_enable => On => On
xdebug.default_enable => On => On
xdebug.dump.COOKIE => no value => no value
xdebug.dump.ENV => no value => no value
xdebug.dump.FILES => no value => no value
xdebug.dump.GET => no value => no value
xdebug.dump.POST => no value => no value
xdebug.dump.REQUEST => no value => no value
xdebug.dump.SERVER => no value => no value
xdebug.dump.SESSION => no value => no value
xdebug.dump_globals => On => On
xdebug.dump_once => On => On
xdebug.dump_undefined => Off => Off
xdebug.extended_info => On => On
xdebug …

xls2csv – catdoc

To import xls files we need the catdoc package:

  • yum install catdoc -y

Couchbase

With EVE we are going to use more and more NoSQL databases: the immediate purpose is performance; but in the future we cannot exclude some advantages of this kind of approach: geographical distribution, smaller DB server and upgrade on running environments.

The community edition is enough to work with; since we are in a development environment and we can legally install the enterprise edition that give some tools about query analysis and monitoring we will use this one.

  • wget https://packages.couchbase.com/releases/6.5.1/couchbase-server-enterprise-6.5.1-centos7.x86_64.rpm
  • yum install couchbase-server-enterprise-6.5.1-centos7.x86_64.rpm -y
  • firewall-cmd –zone=public –add-port=8091-8092/tcp –permanent
  • firewall-cmd –zone=public –add-port=4396/tcp –permanent
  • firewall-cmd –zone=public –add-port=21100-21199/tcp –permanent
  • firewall-cmd –zone=public –add-port=11209-11211/tcp –permanent
  • firewall-cmd –reload
  • in the browser go to: http://192.168.45.223:8091/ui/index.html
Setup New Cluster
Choose a cluster name and a password: for example “EVE” and “isretail”
Accept terms and go to “Configure Disk…”
Example of configuration 1. Don’t use 127.0.0.1 but the host name or the ip address.
Example of configuration 2

After this step you can add the user “eve” from the dashboard and assign a password.

Now the php client:

  • vi /etc/yum.repos.d/couchbase-Base.repo

[couchbase-server]
name=Couchbase Server
baseurl=http://packages.couchbase.com/releases/couchbase-server/enterprise/rpm/$releasever/$basearch/
enabled=1
s3_enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/GPG-KEY-COUCHBASE-1.0

[couchbase-server-community]
name=Couchbase Server (Community Edition)
baseurl=http://packages.couchbase.com/releases/couchbase-server/community/rpm/$releasever/$basearch/
enabled=1
s3_enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/GPG-KEY-COUCHBASE-1.0

[couchbase-sdk]
name = Couchbase SDK package repository
baseurl = http://packages.couchbase.com/rpm/$releasever/$basearch
enabled = 1
gpgcheck = 1
gpgkey=file:///etc/pki/rpm-gpg/GPG-KEY-COUCHBASE-1.0

  • yum update
  • cd /root/install
  • yum install libcouchbase-devel libcouchbase2-libevent -y
  • wget https://pecl.php.net/get/couchbase-2.6.2.tgz
  • tar -zxvf couchbase-2.6.2.tgz
  • cd couchbase-2.6.2
  • phpize
  • ./configure
  • make && make install
  • echo extension=couchbase.so >> /usr/local/lib/php.ini

After restart, to verify if ok, execute the command php -i |grep couchbase and the output should be:

couchbase
couchbase support => enabled
libcouchbase runtime version => 2.10.6 (git: 61e274aae48b6edeecb081afec843dbe31d72790)
libcouchbase headers version => 2.10.6 (git: 61e274aae48b6edeecb081afec843dbe31d72790)
couchbase.decoder.json_arrays => 0 => 0
couchbase.encoder.compression => off => off
couchbase.encoder.compression_factor => 0.0 => 0.0
couchbase.encoder.compression_threshold => 0 => 0
couchbase.encoder.format => json => json
couchbase.log_level => WARN => WARN
couchbase.pool.max_idle_time_sec => 60 => 60

Automation tests

  • yum install java-1.8.0-openjdk
  • wget https://github.com/katalon-studio/katalon-studio/releases/tag/v6.3.2
  • tar -xf Katalon_Studio_Linux_64-6.3.2.tar.gz
  • wget wget http://www.isretail.eu/wp-content/uploads/download-manager-files/google-chrome-stable-76.0.3809.132-1.x86_64.rpm
  • yum install google-chrome-stable-76.0.3809.132-1.x86_64.rpm

Extras

Usefull staff.

syntax highlight in vi

  • yum -y install vim-enhanced
  • echo alias vi=vim >> /etc/profile.d/vi.sh