PRECONSTRUCTION

BUILDING STAFFS

Lorem ipsum dolor sit amet, consectetur adipisicing elit Consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna

SPECIAL PROJECTS

Architecture Design

Lorem ipsum dolor sit amet, consectetur adipisicing elit Consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna

MANAGEMENT

PROJECT ON TIME

Lorem ipsum dolor sit amet, consectetur adipisicing elit Consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna

Architecture Design

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Proin nibh augue conseqaut nibbhi ellit ipsum consectetur.

Building Construction

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Proin nibh augue conseqaut nibbhi ellit ipsum consectetur.

House Renovation

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Proin nibh augue conseqaut nibbhi ellit ipsum consectetur.

Welcome Sibling

Consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi cillum dolore eu fugiat.

Consectetur adipiscing elit

Consectetur adipiscing elit

Consectetur adipiscing elit

Consectetur adipiscing elit

Consectetur adipiscing elit

Consectetur adipiscing elit

FEATURED WORKS

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor. incididunt ut labore et dolore. Lorem ipsum dolor sit amet, consectetur adipisicie.

polio

Building Staffs

We need sure generate the internet repeat predefine tend true chunks as necessary tend true chunks as necessary the internet to repeat predefine tend true chunks.

Project on time

We need sure generate the internet repeat predefine tend true chunks as necessary tend true chunks as necessary the internet to repeat predefine tend true chunks.

Latest Tech

We need sure generate the internet repeat predefine tend true chunks as necessary tend true chunks as necessary the internet to repeat predefine tend true chunks.

Construction

We need sure generate the internet repeat predefine tend true chunks as necessary tend true chunks as necessary the internet to repeat predefine tend true chunks.

Our History's

Consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam

  • 2020 – Open Branch Office Rubric save the world strategize, black lives matter impact gender rights. Accessibility granular, youth natural resources improve the world changemaker greenwashing
  • 2019 – Open Branch Office Rubric save the world strategize, black lives matter impact gender rights. Accessibility granular, youth natural resources improve the world changemaker greenwashing
  • 2018 – Open Branch Office Rubric save the world strategize, black lives matter impact gender rights. Accessibility granular, youth natural resources improve the world changemaker greenwashing
  • 2017 – Open Branch Office Rubric save the world strategize, black lives matter impact gender rights. Accessibility granular, youth natural resources improve the world changemaker greenwashing
  • 2016 – Open Branch Office Rubric save the world strategize, black lives matter impact gender rights. Accessibility granular, youth natural resources improve the world changemaker greenwashing
How can I upgrade my current plan ?
Lorem ipsum dolor sit amet consectetur adipisicing elit. Dignissimos sequi placeat distinctio dolor, amet magnam voluptatibus eos ex vero, sunt veritatis esse. Nostrum voluptatum et repudiandae vel sed, explicabo in?
Sub Panel 1
Lorem ipsum dolor sit amet consectetur adipisicing elit. Dignissimos sequi placeat distinctio dolor, amet magnam voluptatibus eos ex vero, sunt veritatis esse. Nostrum voluptatum et repudiandae vel sed, explicabo in?
Sub Panel 2
Lorem ipsum dolor sit amet consectetur adipisicing elit. Dignissimos sequi placeat distinctio dolor, amet magnam voluptatibus eos ex vero, sunt veritatis esse. Nostrum voluptatum et repudiandae vel sed, explicabo in?
How can I active the app's features ?
Lorem ipsum dolor sit amet consectetur adipisicing elit. Dignissimos sequi placeat distinctio dolor, amet magnam voluptatibus eos ex vero, sunt veritatis esse. Nostrum voluptatum et repudiandae vel sed, explicabo in?
Sub Panel 1
Lorem ipsum dolor sit amet consectetur adipisicing elit. Dignissimos sequi placeat distinctio dolor, amet magnam voluptatibus eos ex vero, sunt veritatis esse. Nostrum voluptatum et repudiandae vel sed, explicabo in?
Sub Panel 2
Lorem ipsum dolor sit amet consectetur adipisicing elit. Dignissimos sequi placeat distinctio dolor, amet magnam voluptatibus eos ex vero, sunt veritatis esse. Nostrum voluptatum et repudiandae vel sed, explicabo in?
How can I active all the features ?
Lorem ipsum dolor sit amet consectetur adipisicing elit. Dignissimos sequi placeat distinctio dolor, amet magnam voluptatibus eos ex vero, sunt veritatis esse. Nostrum voluptatum et repudiandae vel sed, explicabo in?
Sub Panel 1
Lorem ipsum dolor sit amet consectetur adipisicing elit. Dignissimos sequi placeat distinctio dolor, amet magnam voluptatibus eos ex vero, sunt veritatis esse. Nostrum voluptatum et repudiandae vel sed, explicabo in?
Sub Panel 2
Lorem ipsum dolor sit amet consectetur adipisicing elit. Dignissimos sequi placeat distinctio dolor, amet magnam voluptatibus eos ex vero, sunt veritatis esse. Nostrum voluptatum et repudiandae vel sed, explicabo in?
How can I download the app ?
Lorem ipsum dolor sit amet consectetur adipisicing elit. Dignissimos sequi placeat distinctio dolor, amet magnam voluptatibus eos ex vero, sunt veritatis esse. Nostrum voluptatum et repudiandae vel sed, explicabo in?
Sub Panel 1
Lorem ipsum dolor sit amet consectetur adipisicing elit. Dignissimos sequi placeat distinctio dolor, amet magnam voluptatibus eos ex vero, sunt veritatis esse. Nostrum voluptatum et repudiandae vel sed, explicabo in?
Sub Panel 2
Lorem ipsum dolor sit amet consectetur adipisicing elit. Dignissimos sequi placeat distinctio dolor, amet magnam voluptatibus eos ex vero, sunt veritatis esse. Nostrum voluptatum et repudiandae vel sed, explicabo in?
How can I upgrade my current plan ?
Lorem ipsum dolor sit amet consectetur adipisicing elit. Dignissimos sequi placeat distinctio dolor, amet magnam voluptatibus eos ex vero, sunt veritatis esse. Nostrum voluptatum et repudiandae vel sed, explicabo in?
Sub Panel 1
Lorem ipsum dolor sit amet consectetur adipisicing elit. Dignissimos sequi placeat distinctio dolor, amet magnam voluptatibus eos ex vero, sunt veritatis esse. Nostrum voluptatum et repudiandae vel sed, explicabo in?
Sub Panel 2
Lorem ipsum dolor sit amet consectetur adipisicing elit. Dignissimos sequi placeat distinctio dolor, amet magnam voluptatibus eos ex vero, sunt veritatis esse. Nostrum voluptatum et repudiandae vel sed, explicabo in?

Our Services

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor. incididunt ut labore et dolore. Lorem ipsum dolor sit amet, consectetur adipisicie.

Serives

Progress History

Progressively maintain extensive infomediaries via extensible niches. Dramatically disseminate standardized metrics after resource-leveling processes

General Contracting
90%
Construction Management
75%
Preconstruction & Planning
85%
Special Projects
55%

WHAT PEOPLE Says

Lorem ipsum dolor sit amet, consectetur adipiscing elit. In ultrices, elit sed faucibus pharetra, diam mauris bibendum orci, sit amet ullamcorper purus dui sit amet augue. Donec aliquet diam ut neque mattis, eu tristique sem rutrum.

Jack Montes

Lorem ipsum dolor sit amet, consectetur adipiscing elit. In ultrices, elit sed faucibus pharetra, diam mauris bibendum orci, sit amet ullamcorper purus dui sit amet augue. Donec aliquet diam ut neque mattis, eu tristique sem rutrum.

Renata Martis

Lorem ipsum dolor sit amet, consectetur adipiscing elit. In ultrices, elit sed faucibus pharetra, diam mauris bibendum orci, sit amet ullamcorper purus dui sit amet augue. Donec aliquet diam ut neque mattis, eu tristique sem rutrum.

Jhon Kwick

Happy Clients

Expert Workers

Projects Done

Years Of Experience

LATEST NEWS

Incididunt ut labore et dolore. Lorem ipsum dolor sit amet, consectetur adipisicie.

Sabtu, 08 Januari 2022

Install Different PHP Modules

Install Different PHP Modules

 NOTE: We are in the process of modifying the file structure and configuration for many Bitnami stacks. On account of these changes, the file paths stated in this guide may change depending on whether your Bitnami stack uses native Linux system packages (Approach A), or if it is a self-contained installation (Approach B). To identify your Bitnami installation type and what approach to follow, run the command below:

test ! -f "/opt/bitnami/common/bin/openssl" && echo "Approach A: Using system packages." || echo "Approach B: Self-contained installation."

The output of the command indicates which approach (A or B) is used by the installation, and will allow you to identify the paths, configuration and commands to use in this guide. Refer to the FAQ for more information on these changes.

To install a PHP module, the typical process is to install the module (either via the package manager or through a manual build/install process) and then activate it in the above configuration file. Find instructions for installing specific PHP modules.

NOTE: Bitnami stacks already include a number of PHP modules, which are installed but not active. Before installing a new module, check that it is not already included. If it exists, simply enable it in the PHP configuration file.

After modifying the PHP configuration file, restart both Apache and PHP-FPM for the changes to take effect:

sudo /opt/bitnami/ctlscript.sh restart apache
sudo /opt/bitnami/ctlscript.sh restart php-fpm

APCu

APCu is the APC User Cache module. It is already included in recent Bitnami Stacks by default. If that is not the case, install it manually following the steps below:

  • Install the following packages:

    • Debian:

      sudo apt-get update
      sudo apt-get install build-essential libtool autoconf unzip wget
      
    • CentOS:

      sudo yum groups mark install "Development Tools"
      
  • Download the latest source package from the web page, uncompress it and compile the module.

    wget https://pecl.php.net/get/apcu-X.Y.Z.tgz
    tar xzf apcu-X.Y.Z.tgz
    cd apcu-X.Y.Z
    phpize
    ./configure --with-php-config=/opt/bitnami/php/bin/php-config
    make
    sudo make install
    

To enable the module, add the following line to the php.ini file:

...
extension = apcu.so
...

MSSQL

Microsoft SQL Server is a relational database management system developed by Microsoft. The steps to install the module differ for PHP5 and PHP7, and Ubuntu and Debian. Choose the appropriate section below depending on the PHP version bundled with your stack and the platform. To obtain the PHP version, use the command php -v at your console prompt.

Installation

You need to install the PHP Linux Drivers for SQL Server. The process is different for Debian and Ubuntu.

Debian
  • Add the microsoft packages to apt-get:

    sudo su
    curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
    curl https://packages.microsoft.com/config/debian/9/prod.list > /etc/apt/sources.list.d/mssql-release.list
    curl https://packages.microsoft.com/config/debian/9/prod.list > /etc/apt/sources.list.d/mssql-release.list
    exit
    
  • Install the tool with apt-get and pecl:

    sudo apt-get update
    sudo ACCEPT_EULA=Y apt-get install -y msodbcsql17 mssql-tools unixodbc-dev
    sudo pecl install sqlsrv
    sudo pecl install pdo_sqlsrv
    
  • Edit the /opt/bitnami/php/etc/php.ini file and add the lines below to it:

    extension=sqlsrv.so
    extension=pdo_sqlsrv.so
    
Ubuntu:
  • Add the microsoft packages to apt-get:

    sudo su
    curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
    curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
    curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
    exit
    
  • Install the tool with apt-get and pecl:

    sudo apt-get update
    sudo ACCEPT_EULA=Y apt-get install -y msodbcsql mssql-tools unixodbc-dev
    sudo pecl install sqlsrv
    sudo pecl install pdo_sqlsrv
    
  • Edit the /opt/bitnami/php/etc/php.ini file and add the lines below to it:

    extension=sqlsrv.so
    extension=pdo_sqlsrv.so
    

Testing

  • Create a file called “connect.php”:

    nano connect.php
    
  • Add the following PHP script, replacing the IP_ADDRESS, PORT and PASSWORD placeholders with their respective values:

    <?php
    $server = 'http://IP_ADDRESS:PORT';
    $dbName = 'master';
    $uid = 'admin';
    $pwd = 'PASSWORD';
    $conn = new PDO("sqlsrv:server=$server; database = $dbName", $uid, $pwd);
    $conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
    try {
      $result = $conn->query('SELECT TOP 10 * FROM [master].[INFORMATION_SCHEMA].[TABLES]');
      foreach ($result as $row)
        {
          print_r( $row );
        }
      } catch (Exception $e) {
      echo $e->getMessage();
      }
    ?>
    
  • Run the test script with the following command:

    php connect.php
    

GeoIP2

Apache

The mod_geoip2 module embeds GeoIP database lookups into the Apache web server. It is only capable of looking up the IP address of a client that connects to the web server, as opposed to looking up arbitrary addresses.

If this module is not in your stack, you can install it manually following the steps below.

  • Install the following packages if necessary:

    • Debian:

      sudo apt-get update
      sudo apt-get install build-essential libtool autoconf unzip wget
      
    • CentOS:

      sudo yum groups mark install "Development Tools"
      
  • Install the development files for libgeoip:

    • Debian:

      sudo apt-get install libgeoip-dev
      
    • CentOS:

      sudo yum install GeoIP
      
  • Download the latest source code from the web page, uncompress it and compile the module.

    wget http://www.maxmind.com/download/geoip/api/mod_geoip2/mod_geoip2-latest.tar.gz
    
  • Uncompress it and build the libraries

    tar xzf mod_geoip2-latest.tar.gz
    cd mod_geoip2_*
    sudo apxs -i -a -lGeoIP -c mod_geoip.c
    

    The module should now be available at /opt/bitnami/apache2/modules/mod_geoip.so. It is also automatically included in your Apache configuration.

  • Enable GeoIP in the Apache configuration by adding the line GeoIPEnable On in the /opt/bitnami/apache2/conf/httpd.conf file. Find other specific configuration settings at http://dev.maxmind.com/geoip/mod_geoip2#Configuration-2.

NGINX

To compile and install the GeoIP2 module for NGINX, it is necessary to first download and compile NGINX from source with the GeoIP2 module included and then copy over the compiled module to the Bitnami stack’s existing NGINX installation. Follow these steps:

  • Install the libmaxminddb-dev library:

    sudo apt-get install libmaxminddb-dev
    
  • Download and uncompress the GeoIP2 module source code using the example commands below. Note that the download URL and file name will differ depending on the version you’re downloading.

    wget https://github.com/leev/ngx_http_geoip2_module/archive/3.2.tar.gz
    tar xzf 3.2.tar.gz
    
  • Download and uncompress the NGINX source code using the example commands below. Note that the download URL and file name will differ depending on the version you’re downloading.

    NOTE: Download the source code corresponding to the NGINX version used in your Bitnami stack.

    wget http://nginx.org/download/nginx-1.18.0.tar.gz
    tar xzf nginx-1.18.0.tar.gz
    
  • Compile the module as a dynamic module. Replace the PATH-TO-MODULE-DIRECTORY placeholder with the path to the directory containing the GeoIP2 module source code:

    cd nginx-1.18.0
    ./configure --add-dynamic-module=PATH-TO-MODULE-DIRECTORY
    make
    

    This should create a compiled module file named objs/ngx_http_geoip2_module.so. Copy this file to the temporary directory.

    cp objs/ngx_http_geoip2_module.so /tmp/
    
  • Change to the existing NGINX installation directory and copy the above module file to it:

    cd /opt/bitnami/nginx
    mkdir modules
    cp /tmp/ngx_http_geoip2_module.so /opt/bitnami/nginx/modules/
    
  • Edit the /opt/bitnami/nginx/nginx.conf file and add the line below to it in order to load the module:

      load_module modules/ngx_http_geoip2_module.so;
    

Imagick

The Imagick module is installed in Bitnami stacks, but is not enabled by default. To enable it, follow these steps:

  • Uncomment or add the following line to the /opt/bitnami/php/etc/php.ini file:

      ...
      extension=imagick.so
      ...
    

IonCube

Follow these steps:

  • Download the pre-compiled version and copy the .so file to the PHP extensions directory. It is very important to install the right version of ionCube taking into account the PHP version included in your solution. For example, if you want to install ionCube on WordPress and it uses PHP 7.0.27, you need to install the version 7.0 of ionCube.

    NOTE: Y and Z are placeholders. Remember to replace them with the ionCube version number that matches your PHP version.

    wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
    tar xvzf ioncube_loaders_lin_x86-64.tar.gz
    sudo cp ioncube/ioncube_loader_lin_Y.Z.so /opt/bitnami/php/lib/php/extensions/
    
  • Add the following line to the php.ini file:

      zend_extension = /opt/bitnami/php/lib/php/extensions/ioncube_loader_lin_Y.Z.so
    

MongoDB

The Mongo PHP module is a MongoDB driver. It is already included in recent Bitnami Stacks, but not enabled by default. If it is not included in your installation, execute the command below to install the module:

sudo pecl install mongodb
...
Build process completed successfully
Installing '/opt/bitnami/php/lib/php/extensions/mongodb.so'
install ok: channel://pecl.php.net/mongodb-1.5.3
configuration option "php_ini" is not set to php.ini location
You should add "extension=mongodb.so" to php.ini

To enable the MongoDB module, follow these steps:

  • Enable the module in the php.ini file:

      ...
      extension=mongodb.so
      ...
    
  • Check if the extension is loaded by executing the following command:

    php -i | grep -i mongodb
    

OAuth

OAuth is an authorization protocol built on top of HTTP which allows applications to securely access data without having to store usernames and passwords.

Follow these steps:

  • Install the following packages:

    • Debian:

      sudo apt-get update
      sudo apt-get install build-essential libtool autoconf unzip wget libpcre++-dev libcurl4-gnutls-dev
      
    • CentOS:

      sudo yum groups mark install "Development Tools"
      
  • Download the latest source code from the web page, uncompress it and compile the module.

    wget http://pecl.php.net/get/oauth-2.0.5.tgz
    tar xzf oauth*
    cd oauth-*
    phpize
    ./configure
    make
    sudo make install
    
  • Enable the module by adding the following line in the php.ini file:

      ...
      extension = '/opt/bitnami/php/lib/php/extensions/oauth.so'
      ...
    
  • Check if the extension is loaded by executing the following command:

    php -i | grep -i oauth
    

OCI8

Some Bitnami stacks already ship the oci8 module compiled for each platform. This module requires users to download and install both the InstantClient Basic and InstantClient SDK packages for your platform from the Oracle website.

To enable this module, check if the php.ini file includes the line extension=oci8.so. If so, uncomment it by removing the ; character:

extension=oci8.so

If it is not included, it means the oci8 module is not included in your Bitnami stack. To compile and enable it, follow these steps:

  • Compile and install the OCI8 module:

    NOTE: These commands assume that the InstantClient Basic and SDK packages have been extracted and placed in the /home/bitnami/instantclient_19_6 directory. If the packages are in a different location on your system, update the paths shown in the commands below accordingly.

    cd /tmp
    wget https://pecl.php.net/get/oci8-2.2.0.tgz
    tar xzf oci8-2.2.0.tgz
    cd oci8-2.2.0
    phpize
    ./configure --with-oci8=instantclient,/home/bitnami/instantclient_19_6
    make
    sudo make install
    
  • Add the following environment variable to the PHP runtime:

    NOTE: Depending on your installation type, you must add the environment variable to the following locations:

    • Approach A (Bitnami installations using system packages): /opt/bitnami/scripts/php-env.sh

    • Approach B (Self-contained Bitnami installations): /opt/bitnami/scripts/setenv.sh

      export LD_LIBRARY_PATH=/home/bitnami/instantclient_19_6${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
    
  • Enable oci8 by adding the following line to the php.ini file:

      extension=oci8.so
    
  • Check if the module is active:

    /opt/bitnami/php/bin/php -m
    

OpenSSL

The OpenSSL module for PHP is already enabled and no additional configuration is required.

Pdo_ibm

To install and enable the PDO_IBM module, follow the steps below:

  • Download and install the IBM Data Server Driver Package for your platform from the IBM website.

  • Extract the package contents to your home folder and install it by running the following commands:

    cd /home/bitnami/dsdriver
    bash installDSDriver
    
  • Compile the PDO_IBM module:

    wget https://pecl.php.net/get/PDO_IBM-1.3.6.tgz
    tar xzf PDO_IBM-1.3.6.tgz
    cd PDO_IBM-1.3.6
    phpize
    ./configure
    make
    sudo make install
    
  • Add the following environment variable to the PHP runtime:

    NOTE: Depending on your installation type, you must add the environment variable to the following locations:

    • Approach A (Bitnami installations using system packages): /opt/bitnami/scripts/php-env.sh

    • Approach B (Self-contained Bitnami installations): /opt/bitnami/scripts/setenv.sh

      export LD_LIBRARY_PATH=/home/bitnami/dsdriver/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
    
  • Enable the PDO_IBM module in the php.ini file by adding the following line:

      extension=pdo_ibm.so
    
  • Check if the module is enabled with the following command:

    /opt/bitnami/php/bin/php -m
    
  • Restart the server:

    sudo /opt/bitnami/ctlscript.sh restart apache
    
  • Check again if the module is active. If it is, no warning will be displayed.

    /opt/bitnami/php/bin/php -m | grep ibm
    

Pdo_pgsql

This module is already included in Bitnami Stacks, but not enabled by default. To enable the pdo_pgsql module, edit the php.ini file and add the following line:

extension=pdo_pgsql.so

Redis

The phpredis extension provides an API for communicating with the Redis key-value store. Follow these steps to install it:

  • Install the following package:

    • Debian:

      sudo apt-get update
      sudo apt-get install -y autoconf
      
    • CentOS:

      sudo yum groups mark install "Development Tools"
      
  • Download the source code from the web page, uncompress it and compile the module:

    NOTE: Replace the VERSION placeholder with your Redis version.

    wget https://pecl.php.net/get/redis-VERSION.tgz
    tar xzf redis-VERSION.tgz
    cd redis-VERSION
    phpize
    ./configure
    make
    sudo make install
    
  • Enable the module in the /opt/bitnami/php/etc/php.ini file by adding this line to the end:

      extension=redis.so
    
  • Check that the module was correctly installed with the following command:

    php -m | grep redis
    

More information can be found in the official documentation at https://github.com/phpredis/phpredis.

Solr

The Apache Solr PHP extension is an extremely fast, light-weight, feature-rich library that allows PHP applications to communicate easily and efficiently with Apache Solr server instances using an object-oriented API.

If this module is not in your stack, install it manually following these steps:

  • Install and setup required system packages:

    • Debian:

      sudo apt-get update
      sudo apt-get install build-essential libtool autoconf unzip wget libcurl4-openssl-dev libxml2-dev
      sudo ln -s /usr/include/x86_64-linux-gnu/curl /usr/include/curl
      
    • CentOS:

      sudo yum groups mark install "Development Tools"
      sudo yum install openssl-devel curl-devel libxml2-devel
      
  • Download the latest source code from the web page and uncompress it:

    wget http://pecl.php.net/get/solr-VERSION.tgz
    tar xzf solr-VERSION.tgz
    cd solr-VERSION
    
  • Compile the module: Depending on your installation type, run the following commands:

    • Approach A (Bitnami installations using system packages):

      phpize
      ./configure --enable-solr
      make
      sudo make install
      
    • Approach B (Self-contained Bitnami installations):

      phpize
      ./configure --enable-solr --with-curl=https://docs.bitnami.com/opt/bitnami/common --with-libxml-dir=/opt/bitnami/common
      make
      sudo make install
      
  • Enable the module in the php.ini file:

      ...
      extension=solr.so
      ...
    

SSH2

Install and enable the SSH2 module for PHP by following these steps:

  • Install the libssl-dev package:

    • Debian:

      sudo apt-get update
      sudo apt-get install libssl-dev
      
    • CentOS: the libssl-dev package is installed by default. You can check it by executing yum info openssl.

  • Download and compile libssh2 and ssh2:

    cd /tmp
    wget http://www.libssh2.org/download/libssh2-1.9.0.tar.gz
    tar vxzf libssh2-1.9.0.tar.gz
    cd libssh2-1.9.0
    ./configure
    make
    sudo make install
    cd /tmp
    wget http://pecl.php.net/get/ssh2-1.2.tgz
    tar xzf ssh2-1.2.tgz
    cd ssh2-1.2
    phpize
    ./configure --with-ssh2
    make
    sudo make install
    
  • Modify the php.ini file to add the following line:

      ...
      extension=ssh2
      ...
    

Tidy

Tidy is a binding for the Tidy HTML clean and repair utility. This binding allows you to clean and manipulate HTML documents and traverse the document tree. This module is enabled by default. Confirm that the module is enabled with the following command:

sudo /opt/bitnami/php/bin/php -m | grep tidy
tidy

ZipArchive

ZipArchive is a class of the zip PHP module. This module is enabled by default. Check it with the following command:

sudo /opt/bitnami/php/bin/php -m | grep zip
zip

Here is a script named sample.php that lists the content of a zip file named sample.zip:

<?php
$za = new ZipArchive();
$za->open('sample.zip');
for( $i = 0; $i < $za->numFiles; $i++ ){
    $stat = $za->statIndex( $i );
    print_r( basename( $stat['name'] ) . PHP_EOL );
}
?>

To use this script, create a sample.zip file and run this script at the server console, as below:

/opt/bitnami/php/bin/php sample.php
Generate And Install A Let's Encrypt SSL Certificate For A Bitnami Application

Generate And Install A Let's Encrypt SSL Certificate For A Bitnami Application

 Introduction

Let’s Encrypt is a free Certificate Authority (CA) that issues SSL certificates. You can use these SSL certificates to secure traffic to and from your Bitnami application host.

This guide walks you through the process of generating a Let’s Encrypt SSL certificate for your domain and installing and configuring it to work with your Bitnami application stack.

IMPORTANT: The steps described in this guide are applicable to all Bitnami applications, with the following exceptions:

Assumptions And Prerequisites

This guide assumes that:

  • You have deployed a Bitnami application and the application is available at a public IP address so that the Let’s Encrypt process can verify your domain.
  • You have the necessary credentials to log in to the Bitnami application instance.
  • You own one or more domain names.
  • You have configured the domain name’s DNS record to point to the public IP address of your Bitnami application instance.

Use The Bitnami HTTPS Configuration Tool

IMPORTANT: The Bitnami HTTPS Configuration Tool does not support IPv6 addresses, load balancers/CDNs or NGINX web servers yet. If you use IPv6 addresses, please disable them before proceeding. If you use NGINX or a load balancer or CDN, please refer to the alternative approach section.

The Bitnami HTTPS Configuration Tool is a command line tool for configuring mainly HTTPS certificates on Bitnami stacks, but also common features such as automatic renewals, redirections (e.g. HTTP to HTTPS), etc. This tool is located in the installation directory of the stack at /opt/bitnami.

NOTE: Before using the Bitnami HTTPS configuration tool, ensure that your domain’s DNS configuration correctly reflects the host’s IP address and that you are not using IPv6 addresses. You can update your domain’s DNS configuration through your DNS provider.

To launch the Bitnami HTTPS Configuration Tool, execute the following command and follow the prompts:

sudo /opt/bitnami/bncert-tool

Refer to our guide for more information on this, or if you can’t find the tool in your Bitnami stack.

NOTE: The Bitnami HTTPS Configuration Tool will automatically create a cron job to renew your certificate(s). By default, if the bitnami user account exists on the system, the cron jobs will be added under that user account. To view and modify the cron job, use the command sudo crontab -u bitnami -l.

If you prefer to manually generate and install Let’s Encrypt certificates, follow this alternative approach.

Troubleshooting

In case the certificate generation process fails and/or you wish to reset the certificates for any reson, follow the steps below:

  • Remove the cron jobs in the root and bitnami user’s cron table. Run the following commands and remove any lines/commands related to certificate renewal:

    sudo crontab -e
    sudo crontab -e -u bitnami
    
  • Modify the Web server configuration file to use the original server.crt and server.key certificates (these are not renamed or moved by the Bitnami HTTPS Configuration Tool). Alternatively, restore the original Web server configuration file, which is backed up by the tool as bitnami.conf.back.DATE in the same directory.

  • Restart all Bitnami services:

    sudo /opt/bitnami/ctlscript.sh start
    

IMPORTANT: Users will see SSL certificate warnings when accessing the website while the dummy certificates are in use. These warnings will disappear after valid SSL certificates are installed for the website.

Alternative Approach

NOTE: We are in the process of modifying the file structure and configuration for many Bitnami stacks. On account of these changes, the file paths stated in this guide may change depending on whether your Bitnami stack uses native Linux system packages (Approach A), or if it is a self-contained installation (Approach B). To identify your Bitnami installation type and what approach to follow, run the command below:

test ! -f "/opt/bitnami/common/bin/openssl" && echo "Approach A: Using system packages." || echo "Approach B: Self-contained installation."

The output of the command indicates which approach (A or B) is used by the installation, and will allow you to identify the paths, configuration and commands to use in this guide. Refer to the FAQ for more information on these changes.

If your Bitnami image does not include the auto-configuration script or the /opt/bitnami/letsencrypt/ directory, you can manually install the Lego client and generate and install the Let’s Encrypt certificates. Follow the steps below.

Step 1: Install The Lego Client

The Lego client simplifies the process of Let’s Encrypt certificate generation. To use it, follow these steps:

  • Log in to the server console as the bitnami user.

  • Run the following commands to install the Lego client. Note that you will need to replace the X.Y.Z placeholder with the actual version number of the downloaded archive:

    cd /tmp
    curl -Ls https://api.github.com/repos/xenolf/lego/releases/latest | grep browser_download_url | grep linux_amd64 | cut -d '"' -f 4 | wget -i -
    tar xf lego_vX.Y.Z_linux_amd64.tar.gz
    sudo mkdir -p /opt/bitnami/letsencrypt
    sudo mv lego /opt/bitnami/letsencrypt/lego
    

These steps will download, extract and copy the Lego client to a directory in your path.

Step 2: Generate A Let’s Encrypt Certificate For Your Domain

NOTE: Before proceeding with this step, ensure that your domain name points to the public IP address of the Bitnami application host. If the Bitnami application host is behind a load balancer or CDN, the commands below require additional parameters, which can be provided by the Bitnami support team on request.

The next step is to generate a Let’s Encrypt certificate for your domain.

  • Turn off all Bitnami services:

    sudo /opt/bitnami/ctlscript.sh stop
    
  • Request a new certificate for your domain as below, both with and without the www prefix.

    IMPORTANT: Replace the DOMAIN placeholder with your actual domain name, and the EMAIL-ADDRESS placeholder with your email address.

    sudo /opt/bitnami/letsencrypt/lego --tls --email="EMAIL-ADDRESS" --domains="DOMAIN" --domains="www.DOMAIN" --path="/opt/bitnami/letsencrypt" run
    

    NOTE: You can use more than one domain (for example, DOMAIN and www.DOMAIN) by specifying the --domains option as many times as the number of domains you want to specify. When supplying multiple domains, Lego creates a SAN (Subject Alternate Names) certificate which results in only one certificate valid for all domains you entered. The first domain in your list will be added as the “CommonName” of the certificate and the rest, will be added as “DNSNames” to the SAN extension within the certificate.

  • Agree to the terms of service.

A set of certificates will now be generated in the /opt/bitnami/letsencrypt/certificates directory. This set includes the server certificate file DOMAIN.crt and the server certificate key file DOMAIN.key.

IMPORTANT: For security reasons, never post or disclose your server’s SSL private key file in a public forum.

An output message will provide some information, including the expiry date of the certificate. Note this expiry date carefully as you will need to renew your certificate before that date in order for it to remain valid.

An example certificate is shown below:

Let’s Encrypt CA certificate

NOTE: The steps described above will generate certificates for one or more explicitly-named domains. To generate a certificate for a wildcard domain, you will need to use DNS-01 validation when running the lego tool, as explained in the official Let’s Encrypt documentation.

NOTE: Many browsers perform SSL verification of HTTPS endpoints before executing any redirection. This means that if you plan to redirect HTTPS requests to a non-HTTPS endpoint, you must ensure that your SSL certificate includes an entry for the HTTPS endpoint requested in the first instance.

Step 3: Configure The Web Server To Use The Let’s Encrypt Certificate

Next, tell the Web server about the new certificate, as follows:

  • Link the new SSL certificate and certificate key file to the correct locations, depending on which Web server you’re using. Update the file permissions to make them readable by the root user only.

    IMPORTANT: Remember to replace the DOMAIN placeholder with your actual domain name.

    For Apache under Approach A (Bitnami installations using system packages):

    sudo mv /opt/bitnami/apache2/conf/bitnami/certs/server.crt /opt/bitnami/apache2/conf/bitnami/certs/server.crt.old
    sudo mv /opt/bitnami/apache2/conf/bitnami/certs/server.key /opt/bitnami/apache2/conf/bitnami/certs/server.key.old
    sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.key /opt/bitnami/apache2/conf/bitnami/certs/server.key
    sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.crt /opt/bitnami/apache2/conf/bitnami/certs/server.crt
    sudo chown root:root /opt/bitnami/apache2/conf/bitnami/certs/server*
    sudo chmod 600 /opt/bitnami/apache2/conf/bitnami/certs/server*
    

    For Apache under Approach B (Self-contained Bitnami installations):

    sudo mv /opt/bitnami/apache2/conf/server.crt /opt/bitnami/apache2/conf/server.crt.old
    sudo mv /opt/bitnami/apache2/conf/server.key /opt/bitnami/apache2/conf/server.key.old
    sudo mv /opt/bitnami/apache2/conf/server.csr /opt/bitnami/apache2/conf/server.csr.old
    sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.key /opt/bitnami/apache2/conf/server.key
    sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.crt /opt/bitnami/apache2/conf/server.crt
    sudo chown root:root /opt/bitnami/apache2/conf/server*
    sudo chmod 600 /opt/bitnami/apache2/conf/server*
    

    For NGINX under Approach A (Bitnami installations using system packages):

    sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.crt /opt/bitnami/nginx/conf/bitnami/certs/server.crt.old
    sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.key /opt/bitnami/nginx/conf/bitnami/certs/server.key.old
    sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.csr /opt/bitnami/nginx/conf/bitnami/certs/server.csr.old
    sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.key /opt/bitnami/nginx/conf/bitnami/certs/server.key
    sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.crt /opt/bitnami/nginx/conf/bitnami/certs/server.crt
    sudo chown root:root /opt/bitnami/nginx/conf/bitnami/certs/server*
    sudo chmod 600 /opt/bitnami/nginx/conf/bitnami/certs/server*
    

    For NGINX under Approach B (Self-contained Bitnami installations):

    sudo mv /opt/bitnami/nginx/conf/server.crt /opt/bitnami/nginx/conf/server.crt.old
    sudo mv /opt/bitnami/nginx/conf/server.key /opt/bitnami/nginx/conf/server.key.old
    sudo mv /opt/bitnami/nginx/conf/server.csr /opt/bitnami/nginx/conf/server.csr.old
    sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.key /opt/bitnami/nginx/conf/server.key
    sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.crt /opt/bitnami/nginx/conf/server.crt
    sudo chown root:root /opt/bitnami/nginx/conf/server*
    sudo chmod 600 /opt/bitnami/nginx/conf/server*
    

    TIP: To find out if your Bitnami stack uses Apache or NGINX, check the output of the command sudo /opt/bitnami/ctlscript.sh status.

  • Restart all Bitnami services:

    sudo /opt/bitnami/ctlscript.sh start
    

To add one or more domains to an existing certificate, simply repeat Steps 2 and 3 again, ensuring the same order of domain names is maintained in the lego command and adding the new domain name(s) to the end with additional –domains arguments.

Step 4: Test The Configuration

After reconfirming that your domain name points to the public IP address of the Bitnami application instance, you can test it by browsing to https://DOMAIN (replace the DOMAIN placeholder with the correct domain name).

This should display the secure welcome page of the Bitnami application. Clicking the padlock icon in the browser address bar should display the details of the domain and SSL certificate.

Let’s Encrypt certificate in action

Step 5: Renew The Let’s Encrypt Certificate

Let’s Encrypt certificates are only valid for 90 days. To renew the certificate before it expires, run the following commands from the server console as the bitnami user. Remember to replace the DOMAIN placeholder with your actual domain name, and the EMAIL-ADDRESS placeholder with your email address.

sudo /opt/bitnami/ctlscript.sh stop
sudo /opt/bitnami/letsencrypt/lego --tls --email="EMAIL-ADDRESS" --domains="DOMAIN" --path="/opt/bitnami/letsencrypt" renew --days 90
sudo /opt/bitnami/ctlscript.sh start

To automatically renew your certificates before they expire, write a script to perform the above tasks and schedule a cron job to run the script periodically. To do this:

  • Create a script at /opt/bitnami/letsencrypt/scripts/renew-certificate.sh

    sudo mkdir -p /opt/bitnami/letsencrypt/scripts
    sudo nano /opt/bitnami/letsencrypt/scripts/renew-certificate.sh
    
  • Enter the following content into the script and save it. Remember to replace the DOMAIN placeholder with your actual domain name, and the EMAIL-ADDRESS placeholder with your email address.

    For Apache:

      #!/bin/bash
    
      sudo /opt/bitnami/ctlscript.sh stop apache
      sudo /opt/bitnami/letsencrypt/lego --tls --email="EMAIL-ADDRESS" --domains="DOMAIN" --path="/opt/bitnami/letsencrypt" renew --days 90
      sudo /opt/bitnami/ctlscript.sh start apache
    

    For NGINX:

      #!/bin/bash
    
      sudo /opt/bitnami/ctlscript.sh stop nginx
      sudo /opt/bitnami/letsencrypt/lego --tls --email="EMAIL-ADDRESS" --domains="DOMAIN" --path="/opt/bitnami/letsencrypt" renew --days 90
      sudo /opt/bitnami/ctlscript.sh start nginx
    
  • Make the script executable:

    sudo chmod +x /opt/bitnami/letsencrypt/scripts/renew-certificate.sh
    
  • Execute the following command to open the crontab editor:

    sudo crontab -e
    
  • Add the following lines to the crontab file and save it:

      0 0 1 * * /opt/bitnami/letsencrypt/scripts/renew-certificate.sh 2> /dev/null
    

NOTE: If renewing multiple domains, remember to update the /opt/bitnami/letsencrypt/renew-certificate.sh script to include the additional domain name(s) in the lego command.

Troubleshooting

In case the certificate generation process fails or you wish to start again for any reason, run the commands below to delete the generated output, replace the previous certificates and restart services. You can then go back to Step 1. It is important to note that doing this will delete any previously-generated certificates and keys.

rm -rf /opt/bitnami/letsencrypt

For Apache:

sudo mv /opt/bitnami/apache2/conf/server.crt.old /opt/bitnami/apache2/conf/server.crt
sudo mv /opt/bitnami/apache2/conf/server.key.old /opt/bitnami/apache2/conf/server.key
sudo mv /opt/bitnami/apache2/conf/server.csr.old /opt/bitnami/apache2/conf/server.csr
sudo /opt/bitnami/ctlscript.sh restart

For NGINX:

sudo mv  /opt/bitnami/nginx/conf/server.crt.old /opt/bitnami/nginx/conf/server.crt
sudo mv /opt/bitnami/nginx/conf/server.key.old /opt/bitnami/nginx/conf/server.key
sudo mv /opt/bitnami/nginx/conf/server.csr.old /opt/bitnami/nginx/conf/server.csr
sudo /opt/bitnami/ctlscript.sh restart

If you created a cron job for certificate renewal, remove it by opening the crontab editor using the command below and removing the line added for the certificate renewal script:

sudo crontab -e

To learn more about the topics discussed in this guide, consider visiting the following links:

Dedicated Team

Katrine

Seo

Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius

Buker Man

Senior Construct

Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius

Mia One

Senior Construct Chief

Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius

Hendrick jack

Junior Construct

Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius

David

Manager

Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius

Maps And Contact

Incididunt ut labore et dolore. Lorem ipsum dolor sit amet, consectetur adipisicie.

Formulir Kontak

Nama

Email *

Pesan *