·
Added a post
·

Install Magento 2.4.6 on Ubuntu to improve the performance and scalability of your Magento ecommerce site. This release incorporates numerous quality fixes and improvements. The latest versions of core Composer dependencies and third-party libraries ensure compatibility with PHP 8.2.

This tutorial will guide you through the process of installing the Open Source version of Magento 2.4.6, specifically on the Ubuntu 22.04 operating system.

Key Takeaways

  • Discover how to install Magento 2.4.6 on Ubuntu 22.04 for enhanced ecommerce performance and scalability.
  • Explore the system requirements crucial for a seamless Magento 2.4.6 installation.
  • Learn how to customize PHP configuration for Magento 2.4.6 for efficient operation.
  • Discover the significance of Elasticsearch (7.9 or later) for advanced catalog search capabilities in Magento 2.4.6.

Magento 2.4.6 System Requirements

To ensure smooth installation and optimal performance of Magento 2.4.6, it's crucial to meet the following system requirements. The Magento Open Source Community has outlined these requirements for a seamless ecommerce experience:

1. Operating System

  1. Linux x86-64 (e.g., Red Hat Enterprise Linux, CentOS, Ubuntu, Debian, etc.)
  2. macOS (for local development environments)

2. Web Server

Magento 2.4.6 is compatible with the following web servers:

  1. Apache 2.4 or later
  2. NGINX 1.18 or later

3. Database

Choose from these supported databases:

  1. MySQL 8.0 or later
  2. MariaDB 10.4 or later

4. PHP Version

Ensure your server runs PHP 8.1 or a later version. Additionally, Magento 2.4.6 requires the following PHP extensions:

  • ext-bcmath
  • ext-ctype
  • ext-curl
  • ext-dom
  • ext-gd
  • ext-hash
  • ext-iconv
  • ext-intl
  • ext-mbstring
  • ext-openssl
  • ext-pdo_mysql
  • ext-simplexml
  • ext-soap
  • ext-xsl
  • ext-zip
  • ext-sockets
  • ext-xml
  • ext-xmlreader
  • ext-xmlwriter
  • lib-libxml (DOMDocument)

5. SSL

Ensure your setup includes a valid security certificate for secure transactions, as HTTPS is mandatory.

6. Additional Requirements

To facilitate the installation and functionality of Magento 2.4.6, the following tools are required:

  1. Composer 2.2 or later: A dependency management tool for PHP.
  2. Elasticsearch 7.9 or later: Required for efficient search capabilities.

Magento 2.4.6 Prerequisites

To get started with Magento 2.4.6, ensure two key prerequisites:

  1. System Requirements: Meet all Magento 2.4.6 system requirements as specified in the official documentation.
  2. Managed Hosting: Invest in a managed Magento hosting plan for a reliable foundation for your online store.

Steps for Magento 2.4.6 Installation on Ubuntu

Step 1: Update Operating System

Perform updates to keep your Ubuntu 22.04 OS current. It ensures your system is equipped with the latest package versions.

# apt update && sudo apt upgrade -y

Step 2: Install Nginx web server

Follow these steps to install and set up the Nginx web server:

  1. Install Nginx by running the following command:
# apt install nginx
  1. Once the installation is complete, start Nginx with this command:
# systemctl start nginx
  1. Ensure Nginx starts automatically on boot with the following command:
# systemctl enable nginx

Nginx is now installed, running, and configured to start on boot.

Step 3: Install PHP and PHP extensions

Ensure you have the right PHP version and extensions for Magento 2.4.6:

  1. Install PHP 8.1 with necessary extensions using the following command:
# apt-get install php php-dev php-fpm php-bcmath php-intl php-soap php-zip php-curl php-mbstring php-mysql php-gd php-xml
  1. Verify if PHP is installed.
php -v
  1. You should see output similar to:
PHP 8.1.2-1ubuntu2.11 (cli) (built: Feb 22 2023 22:56:18) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.2-1ubuntu2.11, Copyright (c), by Zend Technologies
    

Step 4: Update php.ini file

Customize your PHP configuration for Magento 2.4.6 by following these steps:

  1. Find the PHP configuration file by running:
php --ini | grep "Loaded Configuration File"
  1. You'll get an output like:
Loaded Configuration File:         /etc/php/8.1/cli/php.ini
  1. Open the php.ini file for editing:
# nano /etc/php/8.1/cli/php.ini
  1. Modify the following settings in the php.ini file:
  • Set file_uploads to On
  • Set allow_url_fopen to On
  • Set short_open_tag to On
  • Increase memory_limit to 512M
  • Set upload_max_filesize to 128M
  • Increase max_execution_time to 3600
  1. Save the changes to the php.ini file.
  2. To apply the configuration changes, restart Nginx:
# systemctl restart nginx

Now, your PHP configuration is optimized to meet the requirements of Magento 2.4.6.

Step 5: Install MySQL 8 and create database

Set up MySQL 8 and create a database for Magento 2.4.6 by following these steps:

  1. Install MySQL with this command:
# apt install mysql-server
  1. Start the MySQL database server and enable it to start automatically on boot:
# systemctl start mysql
# systemctl enable mysql
  1. After installing and starting MySQL, access the MySQL prompt:
#  mysql -u root -p
  1. Within the MySQL prompt, execute the following commands to create a database, database user, and grant all privileges to the user.

Note: Customize 'magentodb,' 'magentouser,' and 'MyPassword' as needed:

mysql> CREATE DATABASE magentodb;
mysql> CREATE USER 'magentouser'@'localhost' IDENTIFIED BY 'MyPassword';
mysql> GRANT ALL ON magentodb.* TO 'magentouser'@'localhost';
mysql> FLUSH PRIVILEGES;
mysql> EXIT

Step 6: Installing Elasticsearch

Configure Magento 2 Elasticsearch as the catalog search engine for Magento 2.4.6 with these steps:

  1. Import the Elasticsearch GPG key:
# wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
  1. Add the Elasticsearch repository:
# echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
  1. Update the apt package manager and install Elasticsearch:
# apt update && apt install elasticsearch
  1. Start and enable the Elasticsearch service:
# systemctl start elasticsearch
# systemctl enable elasticsearch
  1. Open the elasticsearch.yml file for editing:
sudo nano  /etc/elasticsearch/elasticsearch.yml
  1. Replace the following setting with 'false' to disable Magento security features:
# Enable security features
xpack.security.enabled: false
  1. Save the changes to the elasticsearch.yml file.
  2. Restart the Elasticsearch service to apply the configuration:
# systemctl restart elasticsearch.service
  1. Verify that Elasticsearch runs correctly using the curl command:
# curl -X GET "localhost:9200/"
  1. If Elasticsearch is working correctly, you'll receive an output like this:
{
  "name" : "ubuntu",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "KPbFKCVLT9uu-RFxzxH_Bw",
  "version" : {
    "number" : "8.6.2",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "2d58d0f136141f03239816a4e360a8d17b6d8f29",
    "build_date" : "2023-02-13T09:35:20.314882762Z",
    "build_snapshot" : false,
    "lucene_version" : "9.4.2",
    "minimum_wire_compatibility_version" : "7.17.0",
    "minimum_index_compatibility_version" : "7.0.0"
  },
  "tagline" : "You Know, for Search"
}

Step 7: Install Composer

  1. Download Composer using this command:
# curl -sS https://getcomposer.org/installer | php
  1. Move the Composer file to the /usr/local/bin path:
# mv composer.phar  /usr/local/bin/composer
  1. Grant execute permission to Composer:
# chmod +x   /usr/local/bin/composer
  1. Verify the Composer version to confirm the installation:
# composer --version
  1. You should see output similar to:
Composer version 2.5.4 2023-02-15 13:10:06

Step 8: Install Magento 2.4.6

  1. Installing Magento using the Marketplace by creating an access key is recommended.
  2. Generate Access keys by navigating to: My profile > Marketplace > My products > Access Keys.
  3. **Download Magento **2.4.6 data with the following command:
# composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition=2.4.6 /var/www/magento2
  1. When prompted, provide your Public Key as the username and Private Key as the password.
  2. Navigate to the Magento directory:
# cd /var/www/magento2
  1. Set appropriate permissions for cache and static content folders:
find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +
  1. Change the ownership of the Magento directory to the webserver user and adjust permissions:
# chown -R www-data:www-data /var/www/magento2
# chmod -R 755 /var/www/magento2
  1. Install Magento using the composer command. Customize the parameters according to your environment:
# bin/magento setup:install \
--base-url=http://your-domain.com \
--db-host=localhost \
--db-name=magentodb \
--db-user=magentouser \
--db-password=MyPassword \
--admin-firstname=Admin \
--admin-lastname=User \
--admin-email=admin@your-domain.com \
--admin-user=admin \
--admin-password=admin123 \
--language=en_US \
--currency=USD \
--timezone=America/Chicago \
--use-rewrites=1
  1. You will receive the admin link for your Magento site after successful installation.
[SUCCESS]: Magento installation complete.
[SUCCESS]: Magento Admin URI: /admin_o07lew
Nothing to import.

Step 9: Configure Nginx Web Server for Magento 2.4.6

  1. Navigate to the Nginx configuration directory:
cd /etc/nginx/conf.d
  1. Create a configuration file for your Magento installation:
# nano /etc/nginx/conf.d/magento2.conf
  1. Add the following content to the file, customizing it as needed (replace your-domain.com with your actual domain):
upstream fastcgi_backend {
  server  unix:/run/php/php8.1-fpm.sock;
}

server {

  listen 80;
  server_name your-domain.com www.your-domain.com;
  set $MAGE_ROOT /var/www/magento2;
  include /var/www/magento2/nginx.conf.sample;
}
  1. Save the file and exit the text editor.
  2. Restart the Nginx web server to apply the configuration changes:
# systemctl restart nginx

Step 10: Access your Magento 2.4.6 Application

Now that your Magento 2 installation is set up, access it through your web browser:

  1. Open your preferred web browser.
  2. In the address bar, type your domain, e.g., http://your-domain.com

Recently, Fahad Mustafa ridiculed a girl named Farheen who showed him a sketch that she drew of him.

Fahad Mustafa held the sketch and showed it to the audience, asking if he really looks this bad. He also indirectly hinted to her ke dobara nahi banana. The girl seemed pretty excited when she held the sketch up. But after listening to what Fahad Mustafa had to say about it, she lost that thrill on her face.

If we take a moment to look at the sketch, it’s actually pretty cute. If you ask me, that sketch DOES look like Fahad Mustafa. The important question here is, why do celebrities think that it’s okay to shame people in any way? We’re aware of mental illnesses such as depression, but can we talk about the events that can lead to self-loathing? Itna mushkil kaam hai kya, to keep a child’s spirits high?

Pakistanis saw this and raised their voices. MangoBaaz, too, had the chance to have a conversation with Farheen and her mother.

Farheen’s mother has told us that Farheen is a 13-year-old girl who is known as the brilliant child in her family. She scores really well in her exams and is highly enthusiastic about her future. She loves making cards on special occasions for her friends and family. She’s a shy girl, but whenever she talks, she cracks jokes because she likes making people smile.

She has even been awarded time and again for her brilliance.

We asked Farheen how she felt when Fahad Mustafa made fun of her drawing. Here’s what she said:

“Thori si shameful feeling ayi thi. Laiken jab ghar gayi aur mujhe meri friends ne bola, tou mujhe zyada bura laga tha.”

Farheen didn’t really feel anything at the time. But when she came home and reflected back on what had happened, she felt humiliated. Her friends said things to her which made her feel insulted on national television.

However, Farheen’s mother claims that her daughter is a positive girl and will continue to draw.

“He is in power. He doesn’t consider the guests in his show as human beings. This is what happens when people get too much power,” said Farheen’s mother.

She also narrated an incident of when a man came up on the stage and Fahad said, “Tum apne aap ko larka samajhte ho? Naam kya hai tumhara? on being told the name “Shadmaan”, Fahad said, “Yeh kaisa naam hai?”

Farheen’s mother talked about the blatant fat-shaming, name calling and general demoralization carried out on the show.

She told us about when she went on Jeeto Pakistan before Ramazan. The mother left her youngest child to roam around on the stage but the management came up to her and asked her to pick her child up otherwise they will change her family’s seats. We were asked if it was fair that Fahad Mustafa’s kids are allowed to roam around freely on the stage, but our kids are not.

Farheen has been offered a scholarship from Ilma University, for which they have also filled in the forms. She has also been offered a fully-funded scholarship from IBA for a summer course of her choice and the same has been offered by LUMS as well.

“Mujhe acha lag raha hai kay mera talent recognize ho raha hai. Main LUMS jaungi most probably. Baba bhi yehi chahtay hain,” says Farheen.

Farheen has apparently also been asked by a company to draw a sketch for them and that they will pay her for it. Farheen’s mother was not able to recall the company’s name, unfortunately.

Farheen is excited about these amazing opportunities that she has been given. She is now thinking about which one to pursue.

When asked about whether she had a message for Fahad Mustafa, here’s what she said:

“Meri Fahad bhai se koi request toh nahi hai. Laiken woh agar meri drawing ko aisay bolein gay, toh main Doctor kese banoongi? Doctor banne k liye aapko thori history chahie hoti hai nah.”

Additionally, her mother says that even though people raised their voice against her daughter’s humiliation, Fahad Mustafa still doesn’t realize the damage he has caused.

He has not thought about the fact that people will make fun of her and recognize her as the “girl who made the drawing.”

“Fahad Mustafa should realize his mistakes and change his habits of ridiculing people that come to his show,” she says. “Him apologizing on national television is not a big deal, but Farheen will have to suffer the consequences of his words.”

Do you think Fahad Mustafa should apologize on national television? Let us know in the comments!

Fahad Mustafa Is Being Dragged By Pakistanis For Ridiculing A Little Girl On His Show

There is definitely no love sincerer than the love of food, when everyone else may leave you just know that food never will. While some people eat to live, most Pakistanis live to eat. Only in Pakistan would you find everyone saying how their mother is the best cook in the world, and no doubt that comes from the love for food we have rooted deep within.

Also, Pakistani food is NOT the same as Indian food. Yes, we have our similarities but the way it tastes to the way it’s cooked is really different (we don’t have anything known as *read in an American accent* Chicken Tikka Masala – it’s just Tikka bro). Although yes, our food recipes are a blend of most of the countries that we are surrounded by such as central Asia, the Middle East and specially the Mughlai cuisine. Since Pakistan is such a diverse country with diverse cultures the traditional foods vary from region to region.

While KPK is all about that meat, Punjabis get their B.B.Q and Karahi on, the Balochis have blessed us with their Sajji and the Sindhis gave us their Sindhi Biryani. Here is a guide to let you know where the foods that we love so much originate from.

Punjab

Tikka/Kebab

Ok so Punjabis cannot live without their barbeque. Chicken tikka, beef tikka, chicken kebab, mutton kebab, mutton boti, chicken boti – name it and they’ll have it all! AND DO NOT FORGET THE CHAMPAIN!

Batair

Yes quails, a specialty, usually barbequed almost like a tiny chicken but very fun to eat!

Keema

Aloo keema , matar keema, shimla keema are all enjoyed with roti or white rice. And let’s not forget those school days when our mothers made us those keema sandwiches in the sandwich maker!

Shami Kabab

This is probably like a snack, there is no time to eat this thing, and ketchup or mint chutney is your best friend while having this.

Gosht

Alright Aloo Gohst , Gobbi Gosht , Saljum Gosht – the list goes on with one as well. This is our stew basically.

Karahi

“Aoo jee” is what the guys usually say at the thought of it but then again who says no to a freshly cooked steaming Chicken Karahi?

Biryani

All DAY ERRR DAYY! WE LIVE ON THIS! NEVER SAY NO TO THIS! THIS IS OUR MAGICAL FOOD! Seriously give it a thought. Whenever your mother asked you what you wanted her to cook, was BIRYANI not the first thing that came to your mind?

Khichri

Yes on those sad days, when we had an upset stomach we enjoyed this rice moong daal mixture with Dahi!

Sarson Ka Saag

You know winter is here when you can smell saag, best goes with a dollop of butter and some hot Makai ki roti!

Naan / Paratha / Roti

There are literally so many kinds now it’s not even funny. We have a nuetella naan, cheese naan, zeera naan, kalwanji naan, aloo ka paratha, mooli ka paratha, walon wala paratha, meeta paratha (best childhood memory ever!), besan ki roti, khameri roti, normal roti. But what would we do without all of these!?

Halwa Puri

Most of us don’t even know what this magical stuff is made out of but it’s so sweet and those granules just melt in your mouth! You could devour this with as many puris as you want and won’t even mind mixing the achar and chanay with it.

Sindh

Sai bhaji chawal

Not known to many people living within Pakistan, sai bhaji is in fact one of the most popular dishes in Sindh. It’s made from of white steamed rice served with spinach curry – really simple. This is what popeye would probably like.

Koki (such a cute name though)

By now we know that we have a whole lot of flat breads going on, and Koki (still such a cute name) is Sindh’s take on flat bread. Its usually eaten like a paratha with a lil dip of some sort here and there or just on its on.

Seviyan

Oooooh sweet sweet vermicelli! The ones we loveee on EID! Comes from Sindh, typically served sweet, you could do a whole lot with it such as sheer khurma with a hint of saffron! Cant you smell that already?

Mitho lolo (I did not make this up)

Yet another flat bread but its sweet this time , and usually tinier than your normal flat bread , so yay! They usually serve this with chilled LASSI on various occasions. A real nice combination for hot days as far as your lassi is cold!

Taryal Patata

If potatoes are your thing then you’d like this one. Kind of like Aloo ki Bhujiya, this is Sindh’s version of it. A very popular and well known dish, the staple of Sindhi diet, this is a form of thinly sliced, deliciously pan fried potatoes with an array of local spices.

Pallo Machi

Things be getting fishy, yes this is your Sindhi style MACHI . Pallo Machi which is made from Hilsha fish and is considered a delicacy in Sindh, can be deep fried and garnished with their local spices. Like most dishes this too has its versions where its cooked with potatoes and onions into a traditional fish meal or simply be barbecued.

Thadal

Remember that white drink your mother often offered you in the summer, and you pretty much just gulped it down because it was cold and sweet but you couldn’t quite understand what that taste was? Well first of all it’s called Thaddal and yes it comes from Sindh so to crack that one for you it’s a drink made from almonds and khashkhaash, and that’s what that taste was.

Sindhi Biryani

MORE BIRYANI! But this one is the one with the infinite amount of ALOOS and all of that good stuff. Yes Sindh is to thank for it.

Balochistan

Sajji

That joke about the chicken crossing the road, yeh never happened in Pakistan because before they could really cross it this is where they ended up. Just the sight of Sajji makes our taste buds tingle from afar. Sajji is the native and most famous dish of Balochistan. As we know, it consists of the whole chicken (yusss), in skewers (fat and meat intact – more yusss), marinated only in salt, then roasted over coals thus luring us with that aroma. The roasting time takes many hours 🙁 but its worth the wait as it comes out amazing paired with that special rice.

Kaak

You can eat em or you can try wearing them as bangles, or even hold it as purse. But no seriously just eat this yummy round bread covered in sesame seeds by dipping it in your tea or kahwa.

Dumpukht

This one has its variations and is a pretty intense dish because of the resulting flavors. As we know the word DUM means to well give it dum which is basically slow oven cooking, and it’s prepared by letting the meat cook in its own fats. Wouldn’t really recommend it to someone with heart issues, real heart issues not your breakups :p

Lahandi

Because this is one of those lesser known dishes, looking at the picture you might not be inclined towards trying it ever but its really just our own version of bacon. Sadly we didn’t know it existed, did we? It’s just dried meat, that is consumed mainly in the winters. There is a lot of hard work put into it because the sheep are specially fattened so that their flesh may be more suitable for preparing lahandi.

Khaadi Kabab

No not a kebab really, it’s lamb barbecue, yes the whole thing :D. The whole lamb or goat is cooked on fiyaaah. That isn’t all because there’s a hidden treat inside, usually there is raw rice in the stomach of the lamb and it cooks by the fats of the lamb.

Khyber Pakhtunkhwa

Chappli Kebab

How do you resist these meaty, tangy, spicy yummy Chappli kebabs? It feels so weird to call it a patty but for the sake of description this patty that tantalizes our taste buds is made from beef or chicken mince, onions, tomatoes, green chilies, coriander seeds, cumin seeds, etc. Also the real deal is huge like almost as big as your hand and really thick so do not settle for those frozen fake ones.

Kahwa

You haven’t had the real one if it wasn’t from the Pathan holding a huge kettle, whose voice you could hear from a distance saying ” kahwaa, kahwaaa”. However we’ve all tried it in one form or another, and we all love it. This magical concoction infused with God knows what (Elaichi mostly :p) can be enjoyed with gur or dates on cold days.

Kabuli Pulao

If you ever happen to visit a local market in Peshawar, just around every corner you will find a person trying to convince you to try their Kabuli Pulao, and you really should try it because you won’t find the same taste elsewhere. This Pulao is usually made with lamb and consists of steamed rice but because it’s mixed with raisins and carrots giving it a sweet taste it might not suit everyone’s appetite.

Dumba/lamb karahi

If sheep ever went missing KPK would become really chaotic because they loveee their lamb! One of the lamb delicacies is the Dumba Karahi. It’s a fairly simple karahi – mostly just uses salt and voila it’s done!

Dumba/lamb tikka

Yes it’s all about that lamb. So as the name suggests yet again, these are pieces of lamb on skewers along with lamb fat. Whole lotta lamb fat juice with tender pieces of tikka, one skewer wont be enough for you even if it’s your first time trying it!

Mantu (or mamtu or whatever else you may call it)

This is also our take on cute little meat dumplings, which are usually served under a yogurt-based white sauce. You seriously have to try these, they literally melt in your mouth!

Bonjan

Not the usual eggplant salan we have, this is eggplant cooked in oil with potatoes and tomatoes. It’s special because it’s really different than how eggplant is made in Punjab and a lot more tangy really adds that zing to the eggplant.

Naan (Doday)

Lastly no this is not your average round naan/flat bread. Doday, as it’s called in Pashto, is huugeee and it’s usually oval with all sorts of designs. I’m not sure if you can ask for your own customized one though.

In this article, we will provide a step-by-step guide on how to install PHP on a Debian 12 system. We will specifically look into two different versions – PHP 8.3 and PHP 7.4, providing you with the flexibility to choose the version that suits your needs. PHP is a popular server-side scripting language often used for web development, which makes it an important installation for any web server.

Prerequisites

Its always a good practice to keep system packages up-to-date with the latest security patches and software updates. If any of the package are required to stick with specific version, You can exclude them from automatic upgrade. Now, execute the following commands to update Apt cache and then upgrade all system packages.

sudo apt update 
sudo apt upgrade 

Step 1: Add the SURY PHP PPA repository

The default Debian 12 repositories contains PHP 8.3 and PHP 7.4 packages, but not other versions like PHP 8.1, 7.3, 7.2 or 5.6. So we recommend to add a third-party repository, Ondřej Surý’s PHP repository, which provides up-to-date PHP packages. Run the following commands to add the repository:

sudo apt install -y apt-transport-https lsb-release ca-certificates wget 
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list 

Then update the system to reflect the addition of the new repository.

sudo apt update 

Step 2: Installing PHP on Debian 12

As you have configured the required PPA on your system. Let’s install the required PHP version. You can also installed multiple versions on a single system.

  • Installing PHP 8.3
  • To install PHP 8.3, execute the following command:
sudo apt install -y php8.3 
  • Installing PHP 8.2
  • Now, install PHP 8.2 by running the following command:
sudo apt install -y php8.2 
  • Installing PHP 7.4
  • For some legacy applications, you may need an older version like PHP 7.4. Now you can install PHP 7.4 using the following command:
sudo apt install -y php7.4 

Step 3: Verify the Installation

You can check the installation using the same method as above:

php -v 

This should display the version of PHP that’s currently active on your system. If PHP 7.4 is correctly installed, it will reflect here.

Step 4: Switching PHP Versions (Optional)

If you have multiple versions of PHP installed, you can switch between them using the update-alternatives command. For example, to switch to PHP 7.4, you would use:

sudo update-alternatives --set php /usr/bin/php7.4 

To switch back to PHP 8.3, replace php7.4 with php8.2.

Conclusion

Congratulations! You now know how to install PHP 8.3, PHP 8.2 and PHP 7.4 on a Debian 12 system, and how to switch between the two versions. Remember, the version of PHP your server should run depends on your specific requirements and the compatibility of the web applications you plan to host. Always ensure to use supported and up-to-date versions of PHP for the best security and performance.

As a software developer, creating a tailored experience for your clients within the WordPress admin area can significantly improve their workflow and satisfaction with the product. Customizing the WordPress dashboard does not only streamline the user interface but also reinforces the client's brand identity, and enhances security by limiting access to critical features.

Customizing Admin Menus

To customize admin menus, one can use the functions.php file or create a custom plugin. Here's an example of how to remove a menu item:

function remove_menus(){
  remove_menu_page( 'index.php' ); //Dashboard
}
add_action( 'admin_menu', 'remove_menus' );

This code will remove the dashboard menu item for all users. To target specific user roles, WordPress provides conditional functions like current_user_can().

Customizing Dashboard Widgets

WordPress allows developers to add, remove, or customize dashboard widgets. To remove a widget, you can use:

function remove_dashboard_widgets() {
  remove_meta_box( 'dashboard_widget_id', 'dashboard', 'side' );
}
add_action( 'wp_dashboard_setup', 'remove_dashboard_widgets' );

To add a custom widget:

function add_custom_dashboard_widget() {
  wp_add_dashboard_widget(
    'custom_dashboard_widget', // Widget slug.
    'Custom Dashboard Widget', // Title.
    'custom_dashboard_widget_display_function' // Display function.
  );
}
add_action( 'wp_dashboard_setup', 'add_custom_dashboard_widget' );

function custom_dashboard_widget_display_function() {
  echo "Welcome to your custom dashboard!";
}

Branding the Login Page

Creating a branded login page can add a professional touch to your client's website. You can customize the login page styles by enqueueing a custom stylesheet:

function my_custom_login_stylesheet() {
  wp_enqueue_style( 'custom-login', get_stylesheet_directory_uri() . '/style-login.css' ); // Path to your custom stylesheet
}
add_action( 'login_enqueue_scripts', 'my_custom_login_stylesheet' );

In your style-login.css, you can style elements like body.login h1 a, and .login form.

User Role Management

To enhance security and provide a more focused admin experience, consider creating custom user roles with specific capabilities:

add_role('custom_role', __('Custom Role'), array(
    'read' => true,
    // other capabilities here
));

You can also modify existing roles using get_role() and add_cap().

Admin Styles and Scripts

To further tailor the admin area, enqueue custom styles and scripts:

function load_custom_wp_admin_style() {
  wp_register_style( 'custom_wp_admin_css', get_bloginfo( 'stylesheet_directory' ) . '/admin-style.css', false, '1.0.0' );
  wp_enqueue_style( 'custom_wp_admin_css' );
}
add_action( 'admin_enqueue_scripts', 'load_custom_wp_admin_style' );

Create an admin-style.css file in your theme directory to hold your custom admin styles.

In Conclusion

The WordPress admin area is highly customizable. By harnessing these techniques, you can create a tailored experience that meets the needs of your clients. If you require professional assistance, consider opting to hire WordPress developers with expertise in creating bespoke WordPress solutions.

For any website, the speed at which it loads is a critical factor affecting user experience and search engine rankings. WordPress sites are no exception. One of the effective ways to improve your WordPress site's performance is by leveraging browser caching. This technique allows browsers to store frequently used content like images, JavaScript, and CSS files for a set period, reducing server load and page load times on subsequent visits.

To implement browser caching on your WordPress site, you'll typically need to modify the .htaccess file if you are using Apache or the proper config file if you're on NGINX. Here's how you can go about it:

Modifying .htaccess in Apache

<IfModule mod_expires.c>
  ExpiresActive On
  # Images
  ExpiresByType image/jpeg "access plus 1 year"
  ExpiresByType image/gif "access plus 1 year"
  ExpiresByType image/png "access plus 1 year"
  ExpiresByType image/webp "access plus 1 year"
  # Video
  ExpiresByType video/mp4 "access plus 1 year"
  ExpiresByType video/mpeg "access plus 1 year"
  # CSS, JavaScript
  ExpiresByType text/css "access plus 1 month"
  ExpiresByType text/javascript "access plus 1 month"
  ExpiresByType application/javascript "access plus 1 month"
</IfModule>
<IfModule mod_headers.c>
  <FilesMatch "\.(js|css|xml|gz|webp)$">
    Header append Vary: Accept-Encoding
  </FilesMatch>
</IfModule>

For NGINX users, similar settings can be achieved by adding the following to your server block:

location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|eot|otf)$ {
    expires 365d;
}
location ~* \.(js|css)$ {
    expires 30d;
}

However, modifying server files isn't the only way to control caching in WordPress. There are plugins available that can help simplify this process. For instance, W3 Total Cache and WP Super Cache come with options to manage browser caching without touching code.

Using Plugins for Browser Caching

Installing a plugin like W3 Total Cache is straightforward. Once activated, navigate to the 'Browser Cache' section in the plugin settings, where you can set different caching parameters for various file types and enable HTTP compression.

Testing Your Site

After implementing browser caching, it's essential to test your site using tools such as Google PageSpeed Insights or GTmetrix. These tools will give you an overview of how well caching is working and provide additional insights into other performance optimizations.

Conclusion

Leveraging browser caching is a key step in optimizing your WordPress site's performance. Whether you choose to edit server configuration files directly or use a plugin, this technique can significantly reduce load times and improve user experience. Remember that if you're uncertain about implementing these changes, professional help is available. Consider choosing to hire JavaScript WordPress developers for deeper integrations or custom caching solutions tailored to your specific needs.

As the digital landscape becomes increasingly global, the ability to cater to a multilingual audience is essential for any website. For WordPress developers, this often means implementing a robust solution for managing and displaying content in multiple languages. WPML (WordPress Multilingual Plugin) is a powerful tool that simplifies the process of adding multilingual support to WordPress websites.

Getting Started with WPML

Before you can start using WPML, you need to purchase and download it from the official website. Once you have the plugin files, follow these steps:

  1. Navigate to your WordPress dashboard.
  2. Go to 'Plugins' > 'Add New' and click on 'Upload Plugin'.
  3. Choose the downloaded WPML ZIP file and click 'Install Now'.
  4. After installation, activate the plugin.

Following activation, you'll be prompted to configure WPML by adding languages and setting up language switcher options.

Configuring Languages

Within the WPML setup wizard, you can select your site's default language and add additional languages you want to support. It's crucial to choose all languages your content will be translated into at this stage.

Translating Content

WPML allows you to translate posts, pages, custom post types, taxonomy terms, menus, and even theme and plugin texts. You can either translate content manually within the WordPress admin or use professional translation services integrated with WPML.

Manual Translation

To manually translate a post or page:

  1. Edit the post or page in your default language.
  2. In the sidebar, under 'Language', click on the plus icon corresponding to a language you wish to translate into.
  3. You'll be directed to an editor where you can add your translated content.
  4. Publish your translation once complete.

Automatic Translation

If manual translation isn't feasible for your project, consider using WPML's automatic translation service. This service requires API integration with third-party providers and incurs additional costs based on word count.

Language Switcher Options

The language switcher allows visitors to choose their preferred language. You can place it in various locations, including menus, widgets, or directly in theme files using PHP code:

 do_action('wpml_add_language_selector'); 

If you're not comfortable with coding or need more complex features such as custom language selectors or multilingual SEO support, consider hiring specialized professionals. Teams like those at Reintech can offer expertise in these areas—whether you need to hire WordPress developers, or even experts adept in React or Node.js.

Multilingual SEO Considerations

WPML handles multilingual SEO by allowing you to set SEO meta information for each language. It also supports sitemaps for different languages, helping search engines index your content appropriately.

Maintaining and Updating Your Multilingual Site

Maintaining a multilingual site includes keeping translations up-to-date and ensuring compatibility with other plugins and themes. Regularly check for updates in WPML and perform backups before making significant changes or updates.

WordPress, the titan of content management systems, owes much of its flexibility to themes and templates. As a software developer, delving into the realm of custom WordPress page template creation is not just about injecting personalized aesthetics; it's about crafting unique digital experiences tailored to client needs. Whether you're developing for niche markets or broad audiences, the power to mold the WordPress platform into your vision is invaluable.

Understanding the basics is paramount. A WordPress page template is a blueprint for how a single page should appear on your website. It's a PHP file that dictates layout, design elements, and functionality, different from the rest of your site or following a particular style. Let's explore how you can create one from scratch.

Setting Up Your Development Environment

Before embarking on this journey, ensure you have access to your WordPress site's files, either through FTP or your hosting file manager. A solid code editor like Visual Studio Code or Sublime Text will aid in writing clean code efficiently.

Creating Your Custom Page Template

To start, navigate to your theme's directory and create a new PHP file for your template. Name it so it reflects its purpose, for example, 'page-custom.php'. Open the file and initiate it with the following structure:

/*
Template Name: Custom Page Example
*/
 get_header(); 

<!-- Your HTML and WordPress loop goes here -->

 get_footer(); ;

Note that 'Template Name' is what appears in the WordPress dashboard when selecting your template. The basic structure includes calls to 'get_header()' and 'get_footer()', which pull in your site's header and footer. Between these tags lies your custom page structure.

Injecting Custom Design and Functionality

This is where you sculpt the user experience. Are you creating a landing page, a gallery showcase, or a product feature page? Your HTML markup and PHP code will reflect this purpose:

<div class="custom-container">
    <!-- Custom HTML and PHP to display content -->
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
        <h2><?php the_title(); ?></h2>
        <div><?php the_content(); ?></div>
    <?php endwhile; endif; ?>
</div>

Your custom PHP will often interact with WordPress' Loop, accessing content dynamically based on which page is being rendered.

Styling Your Template

With the bones of your page in place, style comes next. CSS can be added directly within the template file between 'style' tags or more preferably enqueued in your theme's functions.php file for better organization and caching:

wp_enqueue_style('custom-page-style', get_template_directory_uri() . '/css/custom-page.css');

Add corresponding classes and IDs in your custom-page.css file to bring your design vision to life.

Adding Interactivity with JavaScript

For added interactivity beyond what PHP offers—such as client-side form validation or dynamic content updates—JavaScript comes into play. Enqueue scripts similarly to how you've added styles:

wp_enqueue_script('custom-page-script', get_template_directory_uri() . '/js/custom-page.js', array(), false, true);

Testing and Refining Your Template

Once you've implemented your design and functionality, test across various devices and browsers. Look for responsiveness issues and confirm that all interactive elements function correctly.

The Final Touches

Before considering your template complete, ensure that it aligns with WordPress coding standards and best practices for security and performance optimization. Clean code matters just as much as a stunning design.

In Conclusion

Crafting a custom WordPress page template is an art that balances creative expression with technical prowess. It allows developers to push beyond off-the-shelf themes to create bespoke solutions that stand out in the digital landscape.

If this process seems daunting or time-consuming, consider partnering with experts who specialize in this arena. For those looking to hire WordPress developers, professional teams can bring efficiency and refined skill sets to the table.

WordPress is a versatile content management system (CMS) that powers a significant proportion of websites on the internet today. However, as your WordPress site grows, so does its database, which can lead to slower response times and decreased performance. To maintain a swift and efficient website, optimizing your WordPress database is crucial. This article will guide you through the steps to optimize your WordPress database for better performance.

Cleaning Up Post Revisions

WordPress automatically saves multiple revisions of each post or page. While this feature is helpful for preserving content history, it can quickly bloat your database. To clean up unnecessary revisions, you can add the following line to your wp-config.php file:

define('WP_POST_REVISIONS', 3);

This code limits the number of revisions stored in the database to three per post or page.

Deleting Spam Comments and Unapproved Comments

Spam comments can accumulate over time and take up valuable space in your database. Regularly check and empty the spam comments using WordPress's built-in functionality or SQL queries such as:

DELETE FROM wp_comments WHERE comment_approved = 'spam';

Optimizing Database Tables

Over time, your database tables may become fragmented, leading to inefficient data retrieval. Use a plugin like WP-Optimize or run the SQL command:

OPTIMIZE TABLE wp_posts;

This command will defragment the selected table for improved performance.

Cleaning Transients

Transients are temporary data stored in the database to save time on future requests. However, expired transients can remain in the database and should be deleted regularly:

$expired_transients = $wpdb->get_col("SELECT option_name FROM {$wpdb->options} WHERE option_name LIKE '_transient_timeout_%' AND option_value < UNIX_TIMESTAMP();");
foreach($expired_transients as $transient) {
    $key = str_replace('_transient_timeout_', '', $transient);
    delete_transient($key);
}

Database Indexing

Proper indexing can significantly speed up queries on large databases. Examine your query patterns and add indexes to columns that are frequently searched or joined on:

ALTER TABLE wp_postmeta ADD INDEX meta_key_index (meta_key);

Scheduling Database Cleanups

To maintain optimal performance, schedule regular database cleanups using cron jobs or plugins that automate these tasks.

Using a Content Delivery Network (CDN)

A CDN can reduce the load on your server by serving static assets from a network of global servers. This indirectly benefits database performance by freeing up server resources.

Conclusion

Optimizing your WordPress database is a continuous process that should be an integral part of your site maintenance routine. Applying these strategies will help you maintain a high-performance website that provides a great user experience. If you're looking to scale your WordPress development team with expert talent, consider the option to hire WordPress developers.

WordPress is a powerful and versatile CMS that powers a significant portion of the web. Its popularity, however, also makes it a prime target for malicious attacks. Securing your WordPress site is not just a recommendation; it's a necessity to protect your data and your users. Let's delve into effective strategies to fortify your WordPress site against common threats.

Keeping WordPress Updated

Regular updates are crucial for security. They often include patches for security vulnerabilities that have been discovered since the last version. To update WordPress, themes, and plugins:

# Update WordPress core
wp core update

# Update all plugins
wp plugin update --all

# Update all themes
wp theme update --all

Automating these updates can save time and ensure you're always running the latest versions.

Strong Password Policies

Enforce strong passwords for all user accounts, especially administrators. Consider using a plugin that enforces password complexity and changes every few months.

Utilizing Security Plugins

Plugins like Wordfence or iThemes Security add an extra layer of protection by implementing firewalls and frequent scans for malware.

Leveraging .htaccess for Security

The .htaccess file is a powerful configuration file which can be used to restrict access to your wp-admin directory:

# Protect wp-config.php
<Files wp-config.php>
order allow,deny
deny from all
</Files>

Securing wp-config.php

The wp-config.php file contains sensitive information and should be protected:

# Move wp-config.php to a non-public directory
mv wp-config.php ../wp-config.php

This makes it inaccessible from the web.

Database Security Enhancements

Changing the default database prefix from 'wp_' to something more obscure can reduce SQL injection risks. This can be done during the installation process or afterwards with careful database and wp-config.php modifications.

Implement SSL Encryption

An SSL certificate encrypts data transferred between the user's browser and your server, making it more difficult for hackers to intercept sensitive information.

Regular Backups

In the event of an attack, having a recent backup allows you to restore your site quickly. There are various plugins available that can automate this process for you.

User Role Management

Only give users the permissions they need to perform their tasks. Limiting the number of administrators can reduce the risk of a breach through user accounts.

Disable XML-RPC if Not Needed

XML-RPC facilitates remote connections but can be exploited for brute force attacks if not properly secured or necessary, disable it:

<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>

Conclusion

Your WordPress site's security should never be an afterthought. By implementing these practices, you're taking proactive steps to safeguard your website against common cyber threats. If you need professional support to secure your WordPress site, consider opting to hire WordPress developers, who specialize in creating robust, secure online platforms.

When it comes to setting up a web server, the LAMP stack is a popular choice among developers. LAMP is an acronym for Linux, Apache, MySQL, and PHP, which are the primary components used to build a robust server environment. Debian 12, known for its stability and security, is an excellent operating system for hosting a LAMP stack.

Prerequisites

  • A fresh Debian 12 installation
  • Root user privileges or a user with sudo access
  • Access to the terminal or command line

Step 1: Update Package Index

First, ensure your system's package index is up to date:

sudo apt update

Step 2: Install Apache

Apache is a widely-used web server software that will serve your web pages to the internet. Install Apache using:

sudo apt install apache2

Once installed, enable and start the Apache service:

sudo systemctl enable apache2
sudo systemctl start apache2

Step 3: Install MySQL

MySQL is a robust database management system. Install it with:

sudo apt install mysql-server

Secure your MySQL installation by running:

sudo mysql_secure_installation

Follow the on-screen prompts to set a root password and configure security options.

Step 4: Install PHP

PHP is a server-side scripting language used for web development. Install PHP along with commonly used modules:

sudo apt install php libapache2-mod-php php-mysql

After the installation, restart Apache to apply the changes:

sudo systemctl restart apache2

Step 5: Test PHP Processing

To ensure PHP is correctly installed and configured, create a test PHP file in the web server's root directory:

echo '<!--?php phpinfo(); ?-->' | sudo tee /var/www/html/phpinfo.php

Now open your web browser and navigate to http://your_server_ip/phpinfo.php. You should see a page displaying information about your PHP configuration.

Step 6: Secure Your LAMP Stack

Don't forget to implement security best practices, such as setting up firewalls, encrypting communications with SSL/TLS, and regularly updating all components.

For developers and teams looking to streamline their workflow and ensure best practices are followed, it may be beneficial to hire remote DevOps engineers who can provide expertise and support for your infrastructure.

Conclusion

With your Debian 12 server now running a complete LAMP stack, you're all set to host web applications. Remember to maintain and secure your server regularly to prevent potential vulnerabilities.

امریکی صدر ڈونلڈ ٹرمپ نے تصدیق کی ہے کہ امریکہ نے فردو، نطنز اور اصفہان میں ایران کی تین جوہری تنصیبات پر حملے کیے ہیں جس میں ان کے مطابق انھیں ’بہترین کامیابی‘ ملی اور ان تنصیبات کو ’مکمل طور پر تباہ کر دیا گیا۔‘

امریکہ کے سابق نائب اسسٹنٹ سیکریٹری ڈیفنس برائے مشرقِ وسطیٰ مارک کمٹ نے بی بی سی نیوز سے بات کرتے ہوئے کہا ہے کہ یہ واضح ہے کہ امریکہ نے ایران کی جوہری تنصیبات پر ’بڑے پیمانے پر حملہ‘ کیا ہے لیکن باضابطہ جائزے کے بعد ہی یہ تصدیق ہو سکی گی کہ اس سے کتنا نقصان ہوا ہے۔

ان کا مزید کہنا تھا کہ اگر امریکہ کی جانب سے متعدد ’بنکر بسٹر‘ بم فردو کی جوہری تنصیب پر گرائے گئے ہیں تو اس بات کا ’زیادہ امکان ہے کہ یہ تنصیب اب ناکارہ ہو چکی ہے۔‘

امریکی عہدیداروں نے امریکہ میں بی بی سی کے شراکت دار ادارے سی بی ایس نیوز کو تصدیق کی ہے کہ اس حملے میں ایم او پی بموں کا استعمال کیا گیا اور ہر ہدف پر دو ایسے بم گرائے گئے۔

صدر ٹرمپ نے قوم سے اپنے خطاب میں اس حملے کی تفصیلات تو نہیں بتائیں لیکن یہ ضرور کہا کہ ’یا تو امن ہو گا یا پھر ایک ایسا سانحہ جو اس سے بہت بڑا ہو گا جو گذشتہ آٹھ روز کے دوران ایران دیکھ چکا ہے۔‘

ان کا مزید کہنا تھا کہ ’اگر وہ ایسا نہیں کرتے تو مستقبل میں حملے اس سے بھی زیادہ بدترین ہوں گے اور بہت آسان بھی۔‘

دنیا کا سب سے طاقتور غیر جوہری 'بنکر شکن' بم

ایران کے زیرِ زمین ایٹمی پلانٹس کو نشانہ بنانے کی صلاحیت رکھنے والا یہ ہتھیار اس سے قبل استعمال نہیں کیا گیا تھا۔ یہ جی بی یو-57 اے/بی میسیو آرڈیننس پینیٹریٹر (ایم او پی) بم کے نام سے جانا جاتا ہے۔

دنیا کا سب سے طاقتور غیر جوہری ’بنکر شکن‘ بم صرف امریکہ کی ملکیت ہے اور اسرائیل بھی اسے حاصل نہیں کر سکا ہے۔

ماہرین کا خیال ہے کہ 30 ہزار پاؤنڈ یا 13,600 کلو گرام وزنی یہ بم شاید پہاڑ کے نیچے بنے ایران کے فردو ایٹمی پلانٹ کے مرکز کو نقصان پہنچانے کی صلاحیت رکھتا ہے۔

امریکی حکومت کے مطابق ایم پی او ایک ایسا ہتھیار ہے جو زیر زمین گہرائی میں بنے مضبوط بنکرز اور سرنگوں کو تباہ کرنے کی صلاحیت رکھتا ہے۔

خیال کیا جاتا ہے کہ چھ میٹر لمبا یہ ہتھیار زمین میں 200 فٹ کی گہرائی تک مار کر سکتا ہے۔ اس سے زیادہ گہرائی تک نقصان پہنچانے کے لیے ان بموں کا یکے بعد دیگرے پھینکا جانا ضروری ہے۔

یہ بم بوئنگ کمپنی نے تیار کیا ہے لیکن اس بم کو کبھی میدانِ جنگ میں استعمال نہیں کیا گیا تھا۔ تاہم امریکی ریاست نیو میکسیکو میں واقع وائٹ سینڈس میزائل رینج میں اس کا تجربہ کیا جا چکا ہے۔

یہ 2017 میں افغانستان میں استعمال کیے گئے 9,800 کلو گرام وزنی ’مدر آف آل بم - ایم او اے بی‘ سے بھی طاقتور ہے۔

برطانیہ کی بریڈفورڈ یونیورسٹی میں پیس سٹڈیز کے پروفیسر پال راجرز کہتے ہیں کہ امریکی فضائیہ نے ایم او اے بی جیسا بڑے سائز کا بم تیار کرنے میں کافی محنت کی ہے لیکن اس میں فرق یہ کہ ایم او پی میں دھماکہ خیز مواد ایک انتہائی سخت دھاتی کیس میں ہوتا ہے۔

بی 2 بمبار طیارے

سٹیلتھ بمبار کے نام سے مشہور امریکی بی-2 سپرٹ طیارہ ہی یہ بم گرانے کی صلاحیت رکھتا ہے۔

بی-2 سپرٹ امریکی فضائیہ کے سب سے جدید طیاروں میں سے ایک ہے اور اسے نارتھروپ گرومن کمپنی نے تیار کیا ہے۔

کمپنی کے مطابق، بی-2 بمبار طیارہ 40 ہزار پاؤنڈ (18 ہزار کلو گرام) کا پے لوڈ لے جا سکتا ہے۔ تاہم امریکی فضائیہ کا دعویٰ ہے کہ وہ اس طیارے میں بیک وقت دو ایم او پی لے جانے کا کامیاب تجربہ کر چکے ہیں جن کا مجموعی وزن 60 ہزار پاؤنڈ (27,200 کلو گرام) بنتا ہے۔

نارتھروپ گرومن کا کہنا ہے کہ یہ جہاز ری فیول کیے بغیر سات ہزار میل (11 ہزار کلومیٹر) کا سفر طے کر سکتا ہے جبکہ دورانِ پرواز ایک مرتبہ ری فیولنگ کے ساتھ 11 ہزار 500 میل یا 18 ہزار 500 کلومیٹر تک پرواز کر سکتا ہے۔

پروفیسر راجرز کا کہنا ہے کہ ایم او پی استعمال کرنے کے لیے بی-2 بمبار کی مدد کے لیے دوسرے طیارے بھی استعمال کرنے پڑیں گے۔ مثال کے طور پر، دشمن کے دفاعی نظام کو کمزور کرنے کے لیے اس کے ساتھ ایف-22 سٹیلتھ طیارے بھی استعمال کرنے پڑیں گے جبکہ بعد ازاں صورتحال کا جائزہ لینے کے لیے ڈرون استعمال کیے جا سکتے ہیں تاکہ یہ پتا لگایا جا سکے کہ آیا دوبارہ حملے کی ضرورت ہے کہ نہیں۔

تاہم ان کے اندازے کے مطابق امریکہ کے پاس ایم او پی بموں کا محدود ذخیرہ ہے۔ پروفیسر راجر کے مطابق، امریکہ کے پاس ایسے 10 سے 20 آپریشنل بم ہوں گے۔

snbjrpbas9fhvr9yu6p9kbshpb74kbpn.webp

ایران کی جوہری تنصیبات کہاں واقع ہیں اور امریکہ اور اسرائیل کو اس سے کیا خادشات تھے؟

اسرائیلی وزیراعظم بنیامن نتن یاہو نے کہا ہے کہ ایران پر حملے کا مقصد اس کے میزائل اور جوہری پروگرام کو ختم کرنا ہے، جسے وہ ’اسرائیلی سلامتی کے لیے خطرہ‘ قرار دیتے ہیں۔

سنہ 2006 میں ایران نے اصفہان نیوکلیئر ریسرچ سینٹر میں یورینیم پروسیسنگ کی سہولت پر کام شروع کیا، جس کا مقصد ییلو کیک کو تین اہم شکلوں میں تبدیل کرنا تھا۔

  • یورینیم ہیکسافلوورائیڈ گیس جو نطنز اور فردو میں یورینیئم افزودگی کے عمل میں استعمال ہوتی ہے۔
  • یورینیم آکسائیڈ، جو ری ایکٹرز کو ایندھن فراہم کرنے کے لیے استعمال کیا جاتا ہے۔
  • دھاتیں، جو کچھ قسم کے ایندھن کے عناصر کی تیاری کے ساتھ ساتھ جوہری بموں کی تیاری میں استعمال ہوتی ہیں۔

دوسری جانب نطنز ایران میں یورینیئم کی افزودگی کا اہم مقام ہے، جو تہران سے تقریباً 250 کلومیٹر جنوب میں واقع ہے۔

اقوام متحدہ کی سلامتی کونسل کی قراردادوں کی خلاف ورزی کرتے ہوئے یہ پلانٹ فروری 2007 سے کام کر رہا ہے۔

یہ سہولت تین بڑی زیر زمین عمارتوں پر مشتمل ہے، جو 50,000 سینٹری فیوجز کو چلانے کی صلاحیت رکھتی ہے تاہم اس وقت وہاں تقریباً 14,000 سینٹری فیوجز نصب ہیں، جن میں سے تقریباً 11,000 کام کر رہے ہیں، تاکہ یورینیم کو مخصوص حد تک صاف کیا جا سکے۔

نطنز پلانٹ میں تیار یورینیم نیوکلیئر پاور پلانٹس کے لیے ایندھن پیدا کرنے کے لیے موزوں ہوتی ہے تاہم اسے جوہری ہتھیاروں کی تیاری کے لیے درکار 90 فیصد سطح تک بھی افزودہ کیا جا سکتا ہے۔

ایران کے نطنز اور اصفہان میں قائم یورونیم افزودگی کے پلانٹ کے علاوہ فردو ایران کا دوسرا اہم ترین ایٹمی پلانٹ ہے۔

اسے تہران کے جنوب مغرب میں تقریباً 60 میل (95 کلومیٹر) کے فاصلے پر قم شہر کے قریب ایک پہاڑ کے پہلو میں بنایا گیا ہے۔

خیال کیا جاتا ہے کہ اس کی تعمیر کا آغاز 2006 کے آس پاس ہوا جبکہ 2009 سے یہ مرکز آپریشنل ہے۔ 2009 میں ہی تہران نے اس کی موجودگی کا اعتراف کیا تھا۔

ایک اندازے کے مطابق 80 میٹر(260 فٹ) چٹان اور مٹی کے نیچے موجود فردو کی حفظت کے لیے مبینہ طور پر ایرانی اور روسی ساختہ زمین سے فضا میں مار کرنے والے دفاعی میزائل سسٹم بھی نصب کیے گئے ہیں۔

مارچ 2023 میں بین الاقوامی ایٹمی توانائی ایجنسی (آئی اے ای اے) نے اس جوہری پلانٹ پر 83.7 فیصد افزودہ یورینیم کے ذرات کا پتہ لگایا تھا۔ یہ ایٹمی ہتھیاروں میں استعمال کے لیے درکار افزودہ یورینیم کے معیار کے قریب قریب ہے۔

ہم ایران کے جوہری پروگرام کے بارے میں کیا جانتے ہیں؟

ایران ہمیشہ سے زور دیتا آیا ہے کہ اس کا جوہری پروگرام مکمل طور پر پُرامن مقاصد کے لیے ہے اور اس نے کبھی نیوکلیئر ہتھیار بنانے کی کوشش نہیں کی ہے۔

تاہم آئی اے ای اے کی ایک دہائی تک جاری رہنے والی تحقیقات میں سامنے آیا ہے کہ ایران نے 1980 کی دہائی کے اواخر سے 2003 تک ایسی متعدد 'سرگرمیاں انجام دیں جو ایٹمی دھماکہ خیز ڈیوائس کی تیاری' کے زمرے میں آتی ہیں۔ تاہم 2003 میں 'پروجیکٹ امد' نامی اس منصوبے کو روک دیا گیا تھا۔

ایجنسی کا کہنا ہے کہ اس کے بعد بھی 2009 تک ایران نے مختلف سرگرمیاں جاری رکھیں۔ اس وقت مغربی طاقتوں نے زیرِ زمین افزودگی کے مرکز فورڈو کا انکشاف کیا تھا۔ تاہم آئی اے ای اے نے یہ نتیجہ اخذ کیا کہ اس کے بعد سے ہتھیاروں کی تیاری کے 'کوئی قابل اعتماد شواہد' نہیں ملے ہیں۔

سنہ 2015 میں ایران نے دنیا کی چھ طاقتوں کے ساتھ ایک جوہری معاہدے پر دستخط کیے جس کے تحت ایران پر عائد پابندیاں اٹھانے کے بدلے اس نے نہ صرف اپنی جوہری سرگرمیوں پر پابندیاں قبول کیں بلکہ آئی اے ای اے کے معائنہ کاروں کو سخت نگرانی کی اجازت بھی دی۔

اس معاہدے کے تحت ایران پر افزودہ یورینیئم کی پیداوار پر بھی قدغن لگائی گئی۔ یہ یورینیئم جوہری ری ایکٹر کے ایندھن کے طور پر استعمال ہونے کے ساتھ ساتھ جوہری ہتھیاروں کے لیے بھی استعمال ہوتا ہے۔

لیکن 2018 میں امریکی صدر ڈونلڈ ٹرمپ نے اپنی پہلی مدتِ صدارت کے دوران اس معاہدے کو یہ کہتے ہوئے ختم کر دیا کہ اس سے ایران کو جوہری ہتھیار بنانے سے روکنے میں زیادہ مدد نہیں ملی اور انھوں نے ایران پر امریکی پابندیاں بحال کر دیں۔

ایران نے اس کے جواب میں تیزی سے پابندیوں کی خلاف ورزی کی، خاص طور پر افزودگی سے متعلق پابندیوں کی۔

جوہری معاہدے کے تحت فورڈو میں 15 سال تک افزودگی کی اجازت نہیں تھی۔ تاہم 2021 میں ایران نے 20 فیصد تک یورینیئم کی افزودگی دوبارہ شروع کر دی۔

جمعرات کو آئی اے ای اے کے 35 ملکی بورڈ آف گورنرز نے باضابطہ طور پر اعلان کیا کہ ایران نے 20 سالوں میں پہلی بار جوہری عدم پھیلاؤ کی ذمہ داریوں کی خلاف ورزی کی ہے۔

ایران کا کہنا ہے کہ وہ 'محفوظ مقام' پر ایک نئی یورینیئم افزودگی کی سہولت قائم کرے گا اور فورڈو پلانٹ میں یورینیئم کی افزودگی کے لیے استعمال ہونے والے فرسٹ جنریشن سینٹری فیوجز کی جگہ جدید چھٹی جنریشن کی مشینیں نصب کرے گا۔