Powering IT with Virtualization and Storage Technologies

(VMware vSphere, Microsoft Hyper-V, Proxmox Virtual Environment (Proxmox VE), Oracle VirtualBox, Docker, Kubernetes, FreeNAS, OpenMediaVault, VMware Workstation/Fusion, Microsoft Azure, Amazon EC2, Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP), DigitalOcean, Synology DiskStation, QNAP NAS, Western Digital My Cloud)

Virtualization and Storage Technologies for Website Hosting, Website Containerization, Dedicated Storage, and VM Deployments:

  1. Virtualization Platforms:
  • VMware vSphere: Enterprise-level virtualization for server consolidation, high availability, and resource management.
  • Microsoft Hyper-V: Virtualization platform for running multiple VMs on Windows servers.
  • Proxmox Virtual Environment (Proxmox VE): Open-source virtualization with KVM and LXC support for data centers and cloud environments.
  • Oracle VirtualBox: General-purpose virtualization software for testing and development on desktops.
  1. Website Containerization:
  • Docker: Containerization platform for packaging applications and their dependencies for easy deployment and scalability.
  • Kubernetes: Container orchestration system for automating, scaling, and managing containerized applications.
  1. Dedicated Storage Operating Systems:
  • FreeNAS: Open-source NAS OS with support for SMB/CIFS, NFS, and iSCSI, offering data redundancy through ZFS.
  • OpenMediaVault: NAS OS with a web-based interface, supporting various file sharing protocols and plugins.
  1. Virtual Machine Deployment:
  • VMware Workstation/Fusion: Desktop virtualization for testing and development of VMs on personal computers.
  • Oracle VirtualBox: General-purpose virtualization software also used for testing and running VMs on desktops.
  • Microsoft Azure: Cloud platform offering VM deployment and management in the cloud.
  • Amazon EC2: Cloud-based VMs on Amazon Web Services (AWS) for scalable computing.
  1. Cloud Hosting Services:
  • Amazon Web Services (AWS): Cloud computing platform with various services, including EC2 for VMs and S3 for storage.
  • Microsoft Azure: Cloud platform offering VMs, databases, and other services for website hosting and application deployment.
  • Google Cloud Platform (GCP): Cloud services with Compute Engine for VMs and Cloud Storage for scalable storage.
  • DigitalOcean: Cloud provider with Droplets (VMs) and Spaces for object storage.
  1. Network-Attached Storage (NAS) Solutions:
  • Synology DiskStation: NAS solution with a user-friendly interface, supporting various services like file sharing, backups, and media streaming.
  • QNAP NAS: Network storage solutions with comprehensive applications and RAID configurations for data protection.
  • Western Digital My Cloud: Personal cloud storage for home users with remote access to files.

These are some of the popular virtualization and storage technologies used in the IT industry, each catering to specific use cases for website hosting, containerization, storage, and VM deployments.

Laravel Import Template with Error Handling and Try Catch for failures

public function import_data(Request $request)
{
    $success = true;

    try {
        DB::beginTransaction();

        foreach ($request->array_or_object as $item) {
            $record_payload = [
                "name" => $item->name,
                "surname" => $item->surname,
            ];

            $record_id = $item->id ?? null;
            $inserted_record = RecordModel::updateOrCreate(['id' => $record_id], $record_payload);

            if (!$inserted_record) {
                $success = false;
                break; // Stop further processing if any insert fails
            }
        }

        if ($success) {
            DB::commit();
            return ['status' => true, 'message' => 'Success, Your import has completed with no issues.'];
        } else {
            DB::rollBack();
            return ['status' => false, 'message' => 'Unsuccessful Transaction. Not an exception.'];
        }
    } catch (\Exception $e) {
        DB::rollBack();
        $i = count($e->errorInfo) - 1;
        return ['status' => false, 'message' => $e->errorInfo[$i]];
    }
}

Laravel Migration Error – SQLSTATE[HY000] [2002] php_network_getaddresses

SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo for mysql 
failed: Temporary failure in name resolution (SQL: select * from 
information_schema.tables where table_schema = laravel and 
table_name = migrations and table_type = 'BASE TABLE')

The issue has to do with the env variable DB_HOST
You need to change it. To what your localhost is configured for.
It can most likely be one of the following.

mysql
127.0.0.1
localhost

or alternatively check your docker container name for your mysql DB:
mysql_container_name

Divi – Align Gallery images vertically center

Take note of the height restriction!

In this case we set the height for the default size of landscape images layout for the divi gallery element.

/* Gallery Image Alignment */
.et_pb_gallery_image.landscape {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 226px;
}

Create New Laravel Project & Generate Auth

Create Project

Just use one.
The are multiple as examples.

composer create-project --prefer-dist laravel/laravel blog "11.*"

composer create-project --prefer-dist laravel/laravel blog "10.*"

composer create-project --prefer-dist laravel/laravel blog "9.*"

Generate Auth

An alternative instead of running npm run build.
Run npm run dev OR npm run watch

// With Boothstrap
composer require laravel/ui --dev
php artisan ui bootstrap --auth
npm install 
npm run build

// With VUE
composer require laravel/ui --dev
php artisan ui vue --auth
npm install
npm run build 

Uploading your js build to the server

If you using git and working locally and using laravel vite.
Build your project and use the below gitignore. This will push your build to the server.

The below is that if you don't include certain directories then your build files will not get uploaded and some servers don't have suffucient resources to run builds online.
So you need to build locally and upload the build via GIT.

/vendor/
npm-debug.log
yarn-error.log
public/hot
public_html/storage
public_html/hot
public/robots.txt
storage/*.key
.env
.htaccess
Homestead.yaml
Homestead.json
/.vagrant
.phpunit.result.cache

Setup Node.js on Shared Hosting Apache Server (Cpanel)

First off you need access to the server terminal. Or SSH acces. If you have that then you can proceed. Else go get your Login permissions or SSH access.

Connect to your server using SSH or Cpanel terminal.

Run the following curl command to download the Node.js source code:bashCopy code


curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash 

This will download the nvm (Node Version Manager) installation script and pipe it to the bash shell to run the script.

Once the installation is complete, run the following command to load nvm:bashCopy code


source ~/.bashrc

This will activate the nvm environment so you can install Node.js and npm.

Run the following command to install the latest version of Node.js


nvm install node

This will install the latest stable version of Node.js and npm.

Verify that Node.js and npm are installed correctly by running the following commands

node -v 
npm -v

These commands should output the versions of Node.js and npm installed on your server

Keep in mind that the above steps may not work on all shared hosting providers, and some providers may not allow you to install additional software on their servers. It's always a good idea to check with your hosting provider before attempting to install software on a shared hosting server.

Manage Apache Server on Linux

Check Apache Status


sudo systemctl status apache2

Start, Stop or Restart Apache


sudo service apache2 start
sudo service apache2 restart
sudo service apache2 stop

For other operating systems such as CentOS/Fedora
Try httpd instead of apache2
Example : systemctl status httpd

Bootstrap Mobile Optimisation

The best CSS library I have ever used for mobile Optimisation!

https://getbootstrap.com/

After full time developing since 2016 I still used this one almost every project I complete. In terms of mobile optimisation. Bootstrap remains king!

It is simple and easy to learn. Allowing new developers to pick it up fast. And cutting down the work load for mobile optimisation greatly. I highly recommend BootStrap to any web developer.