Showing posts with label PHP. Show all posts
Showing posts with label PHP. Show all posts

Monday, January 22, 2024

How to Install and Use PHP Composer on CentOS 7

 sudo yum install php-cli php-zip wget unzip

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

HASH="$(wget -q -O - https://composer.github.io/installer.sig)"

php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer


composer



Wednesday, September 6, 2023

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, 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

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]

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}

Wednesday, December 14, 2022

Composer dependencies issues

 Error 1: Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 7.4.0"

Solution: composer install --ignore-platform-reqs

Saturday, December 3, 2022

PHP Laravel Artisan commands


 php artisan config:clear

 php artisan config:cache

 php artisan route:clear

 php artisan view:clear

 php artisan view:cache

 php artisan event:clear

 php artisan event:cache

 php artisan cache:clear

 php artisan optimize:clear

Saturday, November 26, 2022

How to change the default filename when using mPDF

$payStub=new mPDF();

$payStub->SetTitle('My title');
$payStub->WriteHTML($pcTableRows);
$payStub->Output('yourFileName.pdf', 'I');

  1. 'D': download the PDF file
  2. 'I': serves in-line to the browser
  3. 'S': returns the PDF document as a string
  4. 'F': save as file $file_out

Friday, October 21, 2022

Installing PHP 8.1 to Add PHP support to Nginx on Ubuntu

 Install PHP for Nginx with PHP-FPM:

sudo apt update

sudo apt install --no-install-recommends php8.1 [Apache HTTP server and its httpd process]

sudo apt-get install php8.1-fpm -y [For PHP-FPM works with nginx]

php -v

sudo apt-get install -y php8.1-cli php8.1-common php8.1-mysql php8.1-zip php8.1-gd php8.1-mbstring php8.1-curl php8.1-xml php8.1-bcmath php8.1-imap

php -m


Check if PHP-FPM is running:

sudo systemctl status php8.1-fpm

Add PHP support to Nginx:

sudo nano /etc/nginx/sites-available/default

Enable PHP in Nginx’s config file:

server {

  # Example PHP Nginx FPM config file

  listen 80 default_server;

  listen [::]:80 default_server;

  root /var/www/html;

  # Add index.php to setup Nginx, PHP & PHP-FPM config

  index index.php index.html index.htm index.nginx-debian.html;

  server_name _;

  location / {

    try_files $uri $uri/ =404;

  }

  # pass PHP scripts on Nginx to FastCGI (PHP-FPM) server

  location ~ \.php$ {

    include snippets/fastcgi-php.conf;


    # Nginx php-fpm sock config:

    fastcgi_pass unix:/run/php/php8.1-fpm.sock;

    # Nginx php-cgi config :

    # Nginx PHP fastcgi_pass 127.0.0.1:9000;

  }

  # deny access to Apache .htaccess on Nginx with PHP, 

  # if Apache and Nginx document roots concur

  location ~ /\.ht {

    deny all;

  }

} # End of PHP FPM Nginx config example

sudo nginx -t

sudo systemctl restart nginx

Tuesday, August 30, 2022

Install multiple PHP version on Ubuntu for Virtualmin

 Enable ondrej/php repository

LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php && apt-get update
Install additional PHP packages
apt-get install php*-{cgi,cli,fpm,pdo,gd,mbstring,mysqlnd,opcache,xml,zip} 

Note: php* should be replaced with a specific PHP version, i.e. php7.4, unless you really need to install all available additional PHP versions.

Configuring the second PHP Version in Virtualmin

Once you have completed the installation of a second PHP version on your server, you can verify that Virtualmin sees it by logging into Virtualmin, and clicking System Settings → Re-Check Config. You should see something like this:
The following PHP execution modes are available : fpm
The following PHP-FPM versions are available : 8.0.13 (php-fpm) 7.4.30 (php74-php-fpm) 8.2.0 (php82-php-fpm) 

You can configure which one is the default PHP version used on new Virtual Servers. The default is to use the newest available. You can change that default in System Settings → Server Templates → Default → PHP Options page.

Configuring Individual Virtual Servers

You can configure the PHP version being used for a specific Virtual Server by selecting Server Configuration → PHP Options.


Source: https://www.virtualmin.com/documentation/web/multiplephp/


Tuesday, August 23, 2022

Fix laravel SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock


Cause:

his happens when two processes or more are trying to write to the same database table at the exact same time. Solutions can be complicated. Deadlocks are usually an application problem most of the time can either be solved by:
1. changing the logic of your code (e.g. use transactions) or
2. retrying the operation

      php artisan route:list
      php artisan view:clear
      php artisan cache:clear

Tuesday, December 28, 2021

Track from where method is being called in codeigniter


For example, suppose your function name is test, use below code
Code:

function test( )
{
$backtrace = debug_backtrace();

print_r( $backtrace );
}
It will print the details from where the test method is being called.

Wednesday, November 17, 2021

Install PhpStorm on Mac OSX

About the App
Install the App
  1. Press Command+Space and type Terminal and press enter/return key.
  2. Run in Terminal app:
    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 2> /dev/null
    and press enter/return key. If you are prompted to enter your Mac's user password, enter it (when you type it, you wont see it on your screen/terminal.app but it would accept the input; this is to ensure no one can see your password on your screen while you type it. So just type password and press enter, even if you dont see it on your screen). Then wait for the command to finish.
  3. Run:
    brew install phpstorm

    Done!

    You can now use PhpStorm.

Wednesday, June 2, 2021

Install imap extension on PHP 7.x or Higher in CentOS 8

yum update -y 

yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm 

yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm 

yum install -y php80-php-imap 

cp /opt/remi/php80/root/usr/lib64/php/modules/imap.so /usr/lib64/php/modules/ /bin/echo 'extension="imap.so"' > /etc/php.d/40-imap.ini 

systemctl restart php-fpm

Tuesday, June 1, 2021

Set Default PHP version in CentOS 8



sudo yum update

sudo reboot

sudo yum search php-

sudo yum module list php

sudo yum install yum-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm

sudo yum module list php
sudo yum module reset php
sudo yum module enable php:remi-7.4
## verify it php set to 7.4 ##
sudo yum module list php




sudo yum install php php-fpm




sudo yum install php-fpm php-common php-cli




php -v
php --version




sudo systemctl enable php-fpm.service




sudo systemctl start php-fpm.service
sudo systemctl status php-fpm.service

sudo systemctl stop php-fpm.service
sudo systemctl restart php-fpm.service

cat /etc/nginx/conf.d/php-fpm.conf

ls -l /run/php-fpm/www.sock

cat /etc/nginx/default.d/php.conf

sudo systemctl restart nginx.service

php --version

sudo vi /usr/share/nginx/html/hello.php

curl -I http://localhost/hello.php
curl http://localhost/hello.php

Extract Domain from email in Excel or Google sheet

  =TEXTAFTER( A2 , "@") or, =MID(A1, FIND("@", A1) + 1, LEN(A1) - FIND("@", A1))