Wednesday, November 22, 2023

The file GeoLite2-Country.mmdb does not exist or is not readable laravel

 Composer

From the command line run:

$ composer require torann/geoip

Laravel

Once installed you need to register the service provider with the application. Open up config/app.php and find the providers key.

'providers' => [

    \Torann\GeoIP\GeoIPServiceProvider::class,

]

This package also comes with an optional facade, which provides an easy way to call the the class. Open up config/app.php and find the aliases key.

'aliases' => [

    'GeoIP' => \Torann\GeoIP\Facades\GeoIP::class,

];

Publish the configurations

Run this on the command line from the root of your project:

php artisan vendor:publish --provider="Torann\GeoIP\GeoIPServiceProvider" --tag=config

A configuration file will be publish to config/geoip.php.

Configuration

Quick breakdown of the two main options in the configuration file. To find out more simple open the config/geoip.php file.

Service Configuration

To simplify and keep things clean, all third party composer packages, that are needed for a service, are installed separately.

For further configuration options checkout the services page.

Caching Configuration

GeoIP uses Laravel's default caching to store queried IP locations. This is done to reduce the number of calls made to the selected service, as some of them are rate limited.

Options:

  • all all location are cached
  • some cache only the requesting user
  • none caching is completely disable

Saturday, October 14, 2023

Common linux commands

  1. whoami
  2. man 
  3. clear 
  4. pwd
  5. ls
  6. cd 
  7. mkdir 
  8. touch 
  9. rmdir 
  10. rm 
  11. open 
  12. mv 
  13. cp 
  14. head
  15. tail 
  16. date
  17. cat
  18. less 
  19. echo 
  20. wc 
  21. piping 
  22. sort
  23. uniq 
  24. expansions 
  25. diff 
  26. find 
  27. grep
  28. du
  29. df 
  30. history
  31. ps
  32. top 
  33. kill
  34. killall
  35. gzip
  36. gunzip
  37. tar
  38. nano
  39. alias 
  40. xargs
  41. ln
  42. who
  43. su 
  44. sudo 
  45. passwd
  46. chown
  47. chmod

Sunday, October 8, 2023

Thursday, October 5, 2023

Export multiple records one by one from Excel

 

Sub Print1()

    For a = 1 To 10

        Sheet3.Range("L2").Value = a

ActiveWindow.SelectedSheets.PrintOut copies:=1, collate:=True, IgnorePrintAreas:=False

Next

End Sub

Export multiple records to PDF one by one from Excel

 Sub ExportRangeToPDF()

    For a = 3 To 10

        Sheet1.Range("D4").Value = Sheet2.Cells(a, "A")

        Sheet1.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\Users\Naeem\OneDrive\Desktop\PrintingPDF\" & Sheet1.Range("D4").Value & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

    Next

End Sub

Sunday, September 17, 2023

Find WHM/cPanel or linux failed email login log



Webmail Login attempt:


/usr/local/cpanel/logs/login_log

cp /usr/local/cpanel/logs/login_log /home/cpanel_unsername

chmod 644  /home/cpanel_unsername/ogin_log


POP3 login attempts:


/var/log/maillog

cp /usr/local/cpanel/logs/maillog /home/cpanel_unsername

chmod 644  /home/cpanel_unsername/maillog

Wednesday, September 6, 2023

MariaDB Socket from Path XAMPP for VSCODE on MAC OS


Run the following command in terminal:

ps -ax|grep mysql

FInd the output like this:

--socket=/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock --port=3306

Then use this path without quote in Socket path

"Applications/XAMPP/xamppfiles/var/mysql/mysql.sock"


Then click Save and connect. It will show the success message.



How to Configure Xdebug in Mac with XAMPP

 To install with single command:

pecl install xdebug

Or Follow the instructions below:

https://xdebug.org/wizard

Installation Wizard

Summary

  • Xdebug installed: no
  • Server API: Apache 2.0 Handler
  • Windows: no
  • Zend Server: no
  • PHP Version: 8.2.4
  • Zend API nr: 420220829
  • PHP API nr: 20220829
  • Debug Build: no
  • Thread Safe Build: no
  • OPcache Loaded: no
  • Configuration File Path: /Applications/XAMPP/xamppfiles/etc
  • Configuration File: /Applications/XAMPP/xamppfiles/etc/php.ini
  • Extensions directory: /Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20220829

Instructions

 





  1. Download xdebug-3.2.2.tgz
  2. Install the pre-requisites for compiling PHP extensions.
    On your Mac, we only support installations with 'homebrew', and brew install php && brew install autoconf should pull in the right packages.
  3. Unpack the downloaded file with tar -xvzf xdebug-3.2.2.tgz
  4. Run: cd xdebug-3.2.2
  5. Run: phpize (See the FAQ if you don't have phpize).

    As part of its output it should show:

    Configuring for:
    ...
    Zend Module Api No:      20220829
    Zend Extension Api No:   420220829

    If it does not, you are using the wrong phpize. Please follow this FAQ entry and skip the next step.

  6. Run: ./configure
  7. Run: make
  8. Run: cp modules/xdebug.so /Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20220829
  9. Update /Applications/XAMPP/xamppfiles/etc/php.ini and add the line:
    zend_extension = xdebug
  10. Restart the Apache Webserver

Enabling Features

Now Xdebug is installed, you can enable its features. Please refer to the dedicated sections in the documentation about information on how to enable and configure these Xdebug features. Where these sections refer to php.ini or similar, please remember to use /Applications/XAMPP/xamppfiles/etc/php.ini:

  • Development Helpers — help you get better error messages and obtain better information from PHP's built-in functions.
  • Step Debugging — allows you to interactively walk through your code to debug control flow and examine data structures.
  • Profiling — allows you to find bottlenecks in your script and visualize those with an external tool.

Tuesday, September 5, 2023

Mac OS PHP and XAMPP path setup

Open file dependency profile of Mac:

sudo vi ~/.zshrc or ~/.bash_profile

Now enter the following linese and save the file from your editor vi or nano:

export XAMPP_HOME=/Applications/XAMPP
export PATH=${XAMPP_HOME}/bin:${PATH}
export PATH

Now refresh the terminal and check path using the following command staying in the same terminal without closing:

exec $SHELL -l;
which php

Saturday, September 2, 2023

Set HTTP to HTTPS redirect in CWP


RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Friday, August 25, 2023

How to clear cache from Mailwizz

 /usr/bin/php -q /home/cm/public_html/apps/console/console.php clear-cache --verbose=1

Sunday, August 13, 2023

How to add Service to Autostart (CentOS 6/7)

systemctl enable httpd.service

systemctl disable httpd.service

systemctl status httpd.service

Sunday, August 6, 2023

Repeat Rows At Excel Bottom using VBA

 Sub repeatBotRows()


Dim botRows As Range, botCount As Long

Dim firstPgBk As Long, LasRow As Long

Dim totPages As Long, n As Long, m As Long


Application.ScreenUpdating = False

Application.DisplayAlerts = False

Application.Calculation = xlCalculationManual


Set botRows = Range("2:7")

Sheets("Sheet1").Copy after:=Sheets("Sheets1")

ActiveSheet.Name = "printOrig"

With ActiveSheet.PageSetup

.PrintTitleRows = "$1:$1"

End With

firstPgBk = ActiveSheet.HPageBreaks(1).Location.Row - 1

botCount = botRows.Rows.Count

LasRow = Cells.Find("*", [a1], , , xlByRows, xlPrevious).Row

totPages = Application.Ceiling(LasRow / (firstPgBk - botCount - 1), 1)

Range(Rows(firstPgBk - botCount + 1), Rows(firstPgBk)).Select

Selection.EntireRow.Insert Shift:=xlDown

botRows.Copy Range("A" & firstPgBk - botCount + 1)


n = 2

m = 0

Do

Range(Rows(firstPgBk * n - botCount - m), Rows(firstPgBk * n - m - 1)).Select

Selection.EntireRow.Insert Shift:=xlDown

botRows.Copy Range("A" & firstPgBk * n - botCount - m)

n = n + 1

m = m + 1

Loop Until n > totPages

Application.Calculation = xlCalculationAutomatic

' ActiveSheet.PrintOut

' ActiveSheet.Delete

ActiveSheet.Buttons.Delete

Application.DisplayAlerts = True

End Sub


Repeat excel rows at bottom

 Sub MyFooter()

Dim xTxt As String

Dim xAddress As String

Dim xRg As Range

Dim xCell As Range

On Error Resume Next

xAddress = ActiveWindow.RangeSelection.Address

Set xRg  = Application.InputBox("Select the row you will insert repeatedly at the bottom:", "Kutools for Excel", xAddress, , , , , 8)

If xRg Is Nothing Then Exit Sub

For Each xCell In xRg

xTxt = xTxt & xCell.Value & " "

Next

ActiveSheet.PageSetup.LeftFooter = xTxt

End Sub

Friday, July 28, 2023

Repeating Rows at the bottom of each printed excel sheet using VBA

 Sub MyFooter()

Dim StrFtr As String, Rng As Range, Sh As Worksheet, c As Range

Set Sh = Worksheets("Sheet5")

Set Rng = Sh.Range("A55:G55")


For Each c In Rng

StrFtr = StrFtr & c & " "

Next c


ActiveSheet.PageSetup.LeftFooter = StrFtr

End Sub

Hide rows in excel based on cell value using VBA

Sub HideRow()
LineStart = 2
LineEnd = 16
ColumnNumber = 2
For i = LineStart To LineEnd
If Cells(i, ColumnNumber).Value <> "YourCellValue" Then
Cells(i, ColumnNumber).EntireRow.Hidden = True
Else
Cells(i, ColumnNumber).EntireRow.Hidden = False
End If
Next i
End Sub

Tuesday, June 20, 2023

How to Setup Web Hosting platform with CWP

hostnamectl set-hostname my.new-hostname.server

sudo vim /etc/hosts

Installer for CentOS 7:


cd /usr/local/src
wget http://centos-webpanel.com/cwp-el7-latest 
sh cwp-el7-latest

Installer for CentOS 8, Alma Linux and Rocky Linux:

cd /usr/local/src 
wget http://centos-webpanel.com/cwp-el8-latest 
sh cwp-el8-latest


Optional Installer Arguments

Available long name arguments
–restart yes (for automatic restart after successfull install)
–phpfpm [5.3|5.4|5.5|5.6|7.0|7.1|7.2|7.3|7.4] (you can use only one)
–softaculous yes (install softaculous – script installer)

Available short name arguments
-r yes (for automatic restart after successfull install)
-p [5.3|5.4|5.5|5.6|7.0|7.1|7.2|7.3|7.4] (you can use only one)
-s yes (install softaculous – script installer)

Example for centos 7 (you can combine short and long name arguments)
sh cwp-el7-latest -r yes --phpfpm 7.3 --softaculous yes

Any of this additionals can be also installed later from cwp gui.

Reboot Server:

Reboot your server so that all updates can take effect and CWP gets started.
reboot

Cloud Linux Installer:

You need to have CloudLinux License.
wget //repo.cloudlinux.com/cloudlinux/sources/cln/cldeploy
sh cldeploy -k YOUR-KEY
cd /usr/local/src/
wget //dl1.centos-webpanel.com/files/c_scripts/cloudlinux.sh
sh cloudlinux.sh


After CloudLinux installer is done it will automatically reboot the server!!
After reboot, you need to build CageFS and enable it:

/usr/sbin/cagefsctl --init
cagefsctl --enable-all




Log in to your CWP server using the link provided by the installer on your server.

Control WebPanel Admin GUI at http://SERVER-IP:2030/
Username: root
Password: YOUR_ROOT_PASSWORDSetup root email
Setup at least one hosting package

Or edit default package.
Setup shared IP

Must be your public IP address.
Setup nameservers


And now you are ready to host domains.

For additional configuration instruction, please check our wiki/documentation site:

Tuesday, June 6, 2023

Install argon2 on centos

yum install -y  libargon2 libargon2-devel

 

Upgrde PHP 7.4/8.0/8.1/8.2 on CWP CentOS 7

You should put PHP version as you need:

Comands are as follows for shell:

--

dnf install oniguruma oniguruma-devel gcc make gcc-c++ cpp kernel-headers.x86_64 libxml2-devel openssl-devel bzip2-devel libjpeg-devel libpng-devel freetype-devel openldap-devel postgresql-devel aspell-devel net-snmp-devel libxslt-devel libc-client-devel libicu-devel gmp-devel curl-devel libmcrypt-devel pcre-devel sqlite-devel libdb-devel enchant-devel libXpm-devel mysql-devel readline-devel libedit-devel recode-devel libtidy-devel libtool-ltdl-devel libwebp libwebp-devel expat expat-devel libmemcached libmemcached-devel


--


dnf install libzip libzip-devel

dnf install cmake zlib-devel


--


cd /usr/local/src

rm -rf libzip*

wget https://libzip.org/download/libzip-1.9.2.tar.gz

tar zxvf libzip*

cd libzip*/

mkdir build

cd build

/usr/bin/cmake3 ..

make && make install


--


cd /usr/local/src

rm -rf pcre2*

wget https://github.com/PhilipHazel/pcre2/releases/download/pcre2-10.41/pcre2-10.41.zip -O pcre2.zip

unzip pcre2.zip

cd pcre2-*/

./configure

make && make install


--


cd /usr/local/src

rm -rf master* libavif-master*

wget https://github.com/AOMediaCodec/libavif/archive/refs/heads/master.zip

unzip master.zip

cd libavif-main

mkdir build-dir

cd build-dir

cmake ..

make

make install


--


export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig


--


mkdir -p /usr/local/php-82

cd /usr/local/php-82

wget http://php.net/distributions/php-8.2.0.tar.gz

tar zxvf php-8.2.0.tar.gz

cd php-8.2.0

./configure --with-config-file-path=/usr/local/php --enable-cgi --with-config-file-scan-dir=/usr/local/php/php.d --with-zlib=/usr --enable-mbstring --with-zip --enable-bcmath --enable-pcntl --enable-ftp --enable-exif --enable-calendar --enable-sysvmsg --enable-sysvsem --enable-sysvshm --with-tidy --with-curl --with-iconv --with-gmp --with-pspell --enable-gd --with-avif --with-jpeg --with-freetype --enable-gd-jis-conv --with-webp --with-zlib-dir=/usr --with-xpm --with-openssl --with-pdo-mysql=mysqlnd --with-gettext=/usr --with-bz2=/usr --with-mysqli --enable-soap --enable-phar --with-xsl --with-kerberos --enable-posix --enable-sockets --with-external-pcre --with-libdir=lib64 --with-mysql-sock=/var/lib/mysql/mysql.sock --enable-intl --with-password-argon2 --enable-litespeed --with-ldap=/usr --with-ldap-sasl=/usr 

make

make install


--


php -v


You should see (if all went well):


PHP 8.2.0 (cli) (built: Dec 12 2022 17:57:50) (NTS)

Copyright (c) The PHP Group

Zend Engine v4.2.0, Copyright (c) Zend Technologies

Install CMAKE on centos 7

 yum remove cmake

wget https://github.com/Kitware/CMake/releases/download/v3.13.4/cmake-3.13.4.tar.gz
tar zxvf cmake-3.13.4.tar.gz
cd cmake-3.13.4
sudo ./bootstrap --prefix=/usr/local
sudo make
sudo make install
vi ~/.bash_profile

    ...
    # PATH=$PATH:$HOME/bin
    PATH=/usr/local/bin:$PATH:$HOME/bin
    export PATH

source ~/.bash_profile
cmake --version

Saturday, June 3, 2023

How To Install PHP (8.2, 8.1, 7.4,7.3) on Ubuntu 22.04

sudo apt update && sudo apt upgrade

sudo apt install software-properties-common ca-certificates lsb-release apt-transport-https


LC_ALL=C.UTF-8 sudo add-apt-repository ppa:ondrej/php

sudo apt update

sudo apt install php8.2

sudo apt install php8.1

sudo apt install php8.0

sudo apt install php7.4

sudo apt install php7.3

sudo apt install php5.6

apt-get install php*-{cgi,cli,fpm,pdo,gd,mbstring,mysqlnd,opcache,xml,zip}

[If you use virtualmin then check PHP option to select your desired version]

Tuesday, May 9, 2023

Steps to configure after PowerMTA Installation

 Steps:

1. Setup PMTA

2. Install Open SSL & Make Certchain with key & cert

3. Create Selector,Generate DKIM public & Private keys 

4. Create CNAME with selector and point to TXT record having public key values

5. Create .pem file in specified directory and add corresponding DKIM private key(s)

6. Setup Master and Subordinate SPF

7. Set PTR & corresponding hostname for IPs

8. Set DMARC, BIMI , MTA STS record

9. Create & setup Domain config file

10. Create & setup PMTA config file 

11. Start PMTA, Test Deliverability

Sunday, May 7, 2023

Fix the Windows and Outlook “Indexing Is Paused” Error

Method-1: Registry Tweak
1. 
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\

or

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Search

2. Press “Windows Search” on the left, then double-click “PreventIndexingOutlook” on the right.

3. If you don’t have “Windows Search,” you can create it by right-clicking “Windows -> Edit -> New -> Key.” Name it accordingly, then create the “PreventIndexingOutlook” value by right-clicking an empty space on the menu on the right and selecting “New -> DWORD Value (32- bit).”

4. Once created, double-click it to adjust the “Base” to “Hexadecimal” and change “Value data” to “1,” then click “OK.”

5. Reboot Computer

Saturday, May 6, 2023

Dovecot: Disconnected, connection closed, auth failed

 From webmin dashboard>Servers>Postfix Mail Server> Virtual Domains> Find specific user maping 

Popular Web hosting control panel

1 Plesk
2 Control Web Panel (CWP)
3 ISPConfig
4 Virtualmin
5 ispmanager
6 Vesta Control Panel
7 DirectAdmin
8 Ajenti
9 Sentora
10 BlueOnyx
11 cPanel
12 Froxlor
13 Easy Hosting Control Panel
14 Webmin
15 ApisCP
16 aaPanel
17 Zesle Control Panel
18 CyberPanel

Saturday, April 29, 2023

Fix: Wget HTTP request sent, awaiting response... 403 Forbidden

 wget --user-agent="Mozilla" https://www.domain.com/file.extension

or

 wget --user-agent="Mozilla" https://domain.com/file.extension

or

 wget --user-agent="Mozilla" www.domain.com/file.extension

Wednesday, April 19, 2023

How to add an additional IP address in Centos 7

Method -1:

Create file /etc/sysconfig/network-scripts/ifcfg-eth0:0 with the following content:

DEVICE=eth0:0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.11
NETMASK=255.255.255.255

service network restart

Method-2:

Run the following command
ipadd your_ip

Example: ipadd 192.168.0.1

Thursday, April 6, 2023

Sovled ! Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist

 # sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*

# sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*


or


# sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-Linux-*

# sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.epel.cloud|g' /etc/yum.repos.d/CentOS-Linux-*

Thursday, March 30, 2023

How to set up VSFTPD Server and FTP Account in AlmaLinux

sudo dnf install vsftpd

sudo mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_original

sudo vi /etc/vsftpd/vsftpd.conf

Add the following code to vsftpd.conf:

-------------------------------

anonymous_enable=NO

connect_from_port_20=YES

dirmessage_enable=YES

local_enable=YES

local_umask=022

listen=NO

listen_ipv6=YES

pam_service_name=vsftpd

userlist_enable=YES

write_enable=YES

xferlog_enable=YES

xferlog_std_format=YES

-------------------------------

cat /etc/vsftpd/vsftpd.conf 

sudo firewall-cmd --zone=public --add-service=ftp --permanent

sudo firewall-cmd --reload

sudo systemctl restart vsftpd

sudo useradd -m testftpuser

sudo passwd testftpuser

sudo bash -c "echo TO CHECK WORKING OF FTP > /home/baycombd/FTP_CHECK"

chown -R testftpuser /home/testftpuser

Note: Up to this user can access FTP files via ftp client application like FileZilla

Sunday, March 5, 2023

Remove header and footer text when click print button in Codeigniter

Add the following CSS for print area html tag:

@media print { @page { margin-top: 0; margin-bottom: 0; } body { padding-top: 5px; padding-bottom: 5px ; } }

Wednesday, March 1, 2023

Generate specific range of numbers having specific digit in excel

 The following function is for generating 8 digit unique number in excel and masked with 123:

=RANDBETWEEN(12300000,12399999)

Wednesday, February 22, 2023

Solved : Unable to guess the MIME type as no guessers are available (have you enabled the php_fileinfo extension?).

Issues: 
1. Image doesn't load correctly or shows broken
2. File (i.e: csv, xlsx etc.) will not be downloaded or cannot be exported

Solution:
in WHM:
  1. Navigate to Software -> EasyApache4
  2. Click the button that says Customize next to Currently Installed Packages
  3. Click PHP Extensions
  4. Search for Fileinfo in the search bar and select the extensions you would like to install
  5. Click Review
  6. After looking over the proposed changes, scroll to the bottom of the screen and click provision.




In cPanel using PHP Selector (if not works even installed in WHM):




In cPanel using ini file (if not works even installed in WHM):




Other:
  1. Install PHP FIleInfo Extension (if not installed)
  2. Enable php_fileinfo in php.ini 
extension=php_fileinfo.dll (Windows)
extension=php_fileinfo.so (Linux)

Monday, February 20, 2023

How to Install Nginx, MariaDB, PHP and Create Virtual Server Block with Nginx on AlmaLinux 8

yum install nginx -y
systemctl start nginx
systemctl enable nginx
systemctl status nginx
nginx -v


firewall-cmd --permanent --zone=public --add-service=http 
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload
chown nginx:nginx /usr/share/nginx/html -R

################ MariaDB ##############################

yum install mariadb-server mariadb -y
systemctl start mariadb
systemctl enable mariadb
systemctl status mariadb
mysql_secure_installation
mysql -e "SHOW DATABASES;" -p

################ PHP installation ##########################

yum install php php-mysqlnd php-fpm php-opcache php-gd php-xml php-mbstring php-json -y

################### For Specific PHP Version #################
sudo dnf config-manager --set-enabled crb
sudo dnf install epel-release -y
sudo dnf install http://rpms.remirepo.net/enterprise/remi-release-9.rpm
sudo dnf update -y
sudo dnf module list php
sudo dnf -y install yum-utils
sudo dnf module enable php:remi-8.2 -y
########################################################
systemctl start php-fpm

systemctl enable php-fpm

systemctl status php-fpm

vi /etc/php-fpm.d/www.conf

user = nginx
group = nginx

systemctl reload php-fpm

echo "<?php phpinfo() ?>" > /usr/share/nginx/html/info.php

systemctl restart nginx php-fpm
########################################################
            Host File
=====================================================
sudo vi /etc/hosts
IP_ADDRESS mt.baycombd.com
chown nginx:nginx /var/www/example.com/public_html -R
echo "<?php phpinfo() ?>" > /var/www/example.com/public_html/info.php
======================================================
         Custom  Public_html Directory
=====================================================
sudo mkdir -p /var/www/example.com/public_html
sudo chown -R nginx:nginx /var/www/example.com/public_html
sudo chmod -R +x /var/www
sudo chcon -t httpd_sys_content_t /var/www/example.com -R
sudo chcon -t httpd_sys_rw_content_t /var/www/example.com -R
=====================================================
             Create Custom Server Block 
=====================================================
touch /etc/nginx/conf.d/example.com.conf
# Web root location & port listining
server 
{
        listen 80;
        root /var/www/example.com/public_html;
        index index.php index.html index.htm;
        server_name example.com www.example.com;
        access_log /var/www/example.com/access.log;
        error_log /var/www/example.com/error.log;

# Redirect server error pages to the static page
        location / 
{
try_files $uri $uri/ /index.php;
        }
        error_page 404 /404.html;
        error_page 500 502 503 504 /50x.html;
        location = /50x.html 
{
        root /var/www/example.com/public_html;
        }
# Pass the PHP scripts to FastCGI server
location ~ \.php$ 
{
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        try_files $uri =404;
       # fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/var/run/php-fpm/www.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_index index.php;
        include fastcgi_params;
        }
}      
======================================================
systemctl restart nginx php-fpm
nginx -t

Sunday, February 19, 2023

503 Service Unavailable : PHP-FPM issue

Error: 503 Service Unavailable The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.

Solution: 

systemctl start php80-php-fpm (if face the error follow the next command )

systemctl status php80-php-fpm.service

ERROR: unable to bind listening socket for address '127.0.0.1:9000': Address already in use (98)

netstat -tulpn | grep -w 9000 

tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      884/php-fpm: master 

kill 884

systemctl start php80-php-fpm


Note: Use your PHP version, PID and Port in the command. if netstat not works install net-tools first: yum install net-tools

How to Install PHP 8.0/8.1on Linux Centos 7

Method-1 for PHP 8.0

Remi Repository
# yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm

PHP 8.0 install
# yum install -y --enablerepo=remi-php80 php php-cli

Exntesions:
#yum install -y --enablerepo=remi-php80 php-mysqlnd

Method-1 for PHP 8.1

yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum -y install yum-utils
yum-config-manager --disable 'remi-php*'
yum-config-manager --enable remi-php81
yum repolist
yum -y install php php-{cli,fpm,mysqlnd,zip,devel,gd,mbstring,curl,xml,pear,bcmath,json,opcache,redis,memcache}

Thursday, February 16, 2023

How to test PowerMTA SMTP using telnet

telnet localhost 25

ehlo localhost

mail from: username@from-domain.tld

rcpt to: username@to-domain.tld

data

Subject: PMTA SMTP Check

This is just an SMTP conf Check. You may disregard.

.

quit


tail -f /var/log/pmta/pmta.log

pmta show queues

How to Send an email using Telnet in CentOS

sudo apt install telnet

sudo yum install telnet


telnet targetserver.tld 25


HELO sourceserver.tld 

MAIL FROM: username@sourcedomain.tld

RCPT TO: username@example.com

DATA 
Subject: Sending an email using  SMTP through telnet 
Hi, 
This is just a Test Email ? You may disregard this? 

regards;
Mr. Y

.

Note: We can start writing some subject and body. To do that we need to use the DATA command. First type DATA followed by Subject: and the body. Once done, enter " . "  (without quote)to send the email to be queued.

Wednesday, February 15, 2023

Stop and Disable Firewalld on CentOS 7

sudo firewall-cmd --state

sudo systemctl stop firewalld

sudo systemctl disable firewalld

sudo systemctl mask --now firewalld

Monday, February 13, 2023

Create and Install Self-Signed SSL Certificate on CentOS

yum install openssl

mkdir /etc/[webserver]/ssl

openssl genrsa -out “/etc/[webserver]/ssl/example.key” 2048

openssl req -new -key “/etc/[webserver]/ssl/example.key” \ -out “/etc/[webserver]/ssl/example.csr”


Country Name (2 letter code) [AU]:xx

State or Province Name (full name) [Some-State]:xx xx

Locality Name (eg, city) []:xx

Organization Name (eg, company) [Internet Widgits Pty Ltd]:xx

Organizational Unit Name (eg, section) []:xx

Common Name (e.g. server FQDN or YOUR name) []:example.com

Email Address []:xxx@gmail.com

openssl x509 -req -days 365 -in “/etc/[webserver]/ssl/example.csr” \ -signkey “/etc/[webserver]/ssl/example.key” \ -out “/etc/[webserver]/ssl/example.crt”


Saturday, February 11, 2023

Add Domain specific DKIM in PMTA config

#MTAs

<virtual-mta ip1>

    smtp-source-host 192.198.0.1 host.domain.tld

    <domain *>

        max-msg-rate 400/h

    </domain>

</virtual-mta>

#DKIM Keys

domain-key key1,domain1.tld,/etc/pmta/keys/key1.domain.tld

domain-key key2,domain2.tld,/etc/pmta/keys/key2.domain.tld

domain-key key3,domain3.tld,/etc/pmta/keys/key3.domain.tld

#Specify the DKIM for specific Domain using Directive

<domain domain1.tld>

    dkim-sign yes

    smtp-hosts [127.0.0.1]:587

    dkim-identity @domain1.tld

</domain>

<domain domain2.tld>

    dkim-sign yes

    smtp-hosts [127.0.0.1]:587

    dkim-identity @domain2.tld

</domain>

<domain domain3.tld>

    dkim-sign yes

    smtp-hosts [127.0.0.1]:587

    dkim-identity @domain3.tld

</domain>

#CALL PMTA POOL for Rotation

<virtual-mta-pool pmta-pool>

    virtual-mta ip1

</virtual-mta-pool>


Extract the First Word Using Text Formulas

 =IFERROR(LEFT(A2,FIND(" ",A2)-1),A2)



Sunday, January 29, 2023

Remove both duplicate and original value from Excel or Google sheet

=if(countif(A:A,A1)=1,0,1)


There is a zero or a one in Columns C for each value in Columns A. A zero means that a value from Columns A is not repeating in the data range and should be kept. A one means that there are duplicate values and that row should be deleted. Then filter the rows having One in column C, Select and Delete.

Saturday, January 21, 2023

How to Extend Swap Space using Swap file in Linux

dd if=/dev/zero of=/swap_file bs=1G count=1

sudo fallocate -l 1G /swap_file

chmod 600 /swap_file

mkswap /swap_file

echo "swap_file swap swap defaults 0 0" >> /etc/fstab 
or 
vi /etc/fstab/swap_file swap swap defaults 0 0

swapon /swap_file

Error binding socket to :::25, status = EADDRINUSE (Solved)

Centos 
$ yum install net-tools 

Fedora: 
$ sudo dnf install net-tools 

Debian, Ubuntu: 
$ sudo apt install net-tools

netstat -tulpn

netstat -tulpn | grep -w 2500

Result: tcp     0         0 0.0.0.0:2500             0.0.0.0:*

kill 942

Friday, January 20, 2023

Install PMTA Management Console

yum install ntp (if not installed)
=======================
Install PMTAMC
=======================

Upload pmconsole1.5r19 to path /root/PMTA/ and run below commands

cd /root/PMTA/pmconsole1.5r19

rpm -ivh PowerMTA-MC-infrastructure-1.5r19-201906071449.x86_64.rpm

rpm -ivh PowerMTA-MC-1.5r19-201906071449.x86_64.rpm

service pmtamc stop

rm -rf /opt/pmtamc/glassfish/glassfish/domains/domain1/applications/pmtamc/WEB-INF/classes/com/port25/webui/security/Lak.class

cd /root/PMTA/pmconsole1.5r19/opt/pmtamc/glassfish/domains/domain1/applications/j2ee-modules/pmtamc/WEB-INF/classes/com/port25/webui/security

cp Lak.class /opt/pmtamc/glassfish/glassfish/domains/domain1/applications/pmtamc/WEB-INF/classes/com/port25/webui/security

rm -rf /opt/pmtamc/glassfish/glassfish/wars/pmtamc.war

cd /root/PMTA/pmconsole1.5r19/opt/pmtamc/glassfish/wars

cp pmtamc.war /opt/pmtamc/glassfish/glassfish/wars

cd /root/PMTA/pmconsole1.5r19

cp license /etc/pmtamc

service pmtamc start

open ports  (8181 8282 4848 3700 7676 8686)

++++++++++++++++++++++++++++

Register PMTA in PMTAMC

++++++++++++++++++++++++++++

http://examplepmtamc.com:{PORT}/pmtamc/nodemanagement/

PowerMTA Node Registration: Accept new PowerMTAs

pmta register --label={Name} --pmtamc-port={PORT} {HOST}

example

pmta register --label=softo --webmon-port=19000 --pmtamc-port=8181 157.245.221.117

----------------------------------------------------------------------------------------


 

Join Multiple table with subquery

SELECT DISTINCT

    e.card_id,

    e.photo_link,

    c.full_name,

    c.mobile_no,

    c.email,

    c.image_path,

    s.institute_name,

    p.profession_name,

    p.institute_name AS company, 

    i.village_road_present,

    i.post_office_present,

    i.thana_upazila_present,

    i.district_present,

    i.blood_group

FROM EVENT

    e

JOIN(

    SELECT DISTINCT

        id,

        full_name,

        mobile_no,

        email,

        image_path

    FROM

        cualumni

    WHERE

        softdeleted = 'No'

) AS c

ON

    c.id = e.user_id

JOIN(

    SELECT DISTINCT

        user_id,

        institute_name

    FROM

        education

    WHERE

        user_id IS NOT NULL

) AS s

ON

    s.user_id = e.user_id

JOIN(

    SELECT DISTINCT

        user_id,

        profession_name,

        institute_name

    FROM

        profession

    WHERE

        user_id IS NOT NULL

) AS P

ON

    P.user_id = e.user_id

JOIN(

    SELECT DISTINCT

        *

    FROM

        personal_info

    WHERE

        user_id IS NOT NULL

) AS i

ON

    i.user_id = e.user_id

Tuesday, January 3, 2023

Get file path and set hyperlink funtion in Excel

 =CONCATENATE("file://",LEFT(CELL("filename",F2),FIND("[",CELL("filename",F2))-1),F2)

=HYPERLINK($G$2,F2)

Upload file to server using Power Shell Command

 scp file_name.zip username@server_ip/server_address:/directory_path