Showing posts with label #Ubuntu. Show all posts
Showing posts with label #Ubuntu. Show all posts

Tuesday, September 15, 2026

Learn how to install Apache, MySQL and PHP on Ubuntu. Complete LAMP stack installation guide with one-shot commands, PHP testing and php-opcache troubleshooting

How to Install LAMP Stack on Ubuntu | Complete Guide
UBUNTU • LINUX • SERVER • PHP

How to Install LAMP Stack on Ubuntu

A complete step-by-step guide to installing Apache, MySQL and PHP on Ubuntu — including a one-shot installation command and a fix for the common php-opcache package error.

The LAMP stack is one of the most popular environments for hosting PHP applications on Linux. It combines Linux, Apache, MySQL and PHP into a complete web application platform.

Whether you're building a WordPress website, Laravel application, PHP API or simply creating a local development environment, installing LAMP gives you everything you need to get started.

What Does LAMP Stand For?

🐧

Linux

The operating system powering the server.

🌐

Apache

Handles HTTP requests and serves web pages.

🗄️

MySQL

Stores and manages application data.

🐘

PHP

Processes dynamic server-side application code.

How the LAMP Stack Works

A typical request flows through the stack like this:

Browser HTTP Request
→
Apache Web Server
→
PHP Application
→
MySQL Database

Install LAMP on Ubuntu

First update your Ubuntu package index:

Terminal
sudo apt update

Install Apache, MySQL and PHP

You can install the complete LAMP environment with the following command:

One-shot installation
sudo apt install -y apache2 mysql-server php libapache2-mod-php php-mysql php-cli php-curl php-gd php-mbstring php-xml php-zip php-bcmath php-intl php-soap

Start Apache and MySQL

Enable both services so they start automatically with Ubuntu:

Terminal
sudo systemctl enable --now apache2 mysql

Enable Apache URL Rewriting

The Apache rewrite module is commonly required by modern PHP applications and frameworks such as Laravel.

Terminal
sudo a2enmod rewrite
sudo systemctl restart apache2

Wednesday, September 9, 2026

Ubuntu 26.04 LTS: Setting Up Native RDP Remote Login from Windows — A Real-World Troubleshooting Guide

Table of Contents

  • Why use native GNOME RDP?
  • Remote Login vs Desktop Sharing
  • Check Ubuntu version
  • Enable system RDP
  • Configure TLS
  • Configure RDP credentials
  • Configure GDM
  • Check port 3389
  • Test from Windows
  • Diagnose RDP failures
  • Final architecture

Ubuntu 26.04 LTS and Native RDP

Ubuntu 26.04 LTS uses the modern GNOME desktop stack and provides GNOME Remote Desktop for remote desktop access.

This means you can connect to an Ubuntu machine from Windows using Microsoft's built-in Remote Desktop Connection application instead of immediately installing third-party RDP software.

Recommended approach: For a modern Ubuntu 26.04 workstation or headless AI server, start with GNOME's native Remote Login functionality before installing xrdp.

The Goal

┌──────────────────────────┐
│ Windows 11 PC            │
│                          │
│ mstsc.exe                │
└────────────┬─────────────┘
             │
             │ RDP / TCP 3389
             │
             ▼
┌──────────────────────────────┐
│ Ubuntu 26.04 LTS             │
│                              │
│ GNOME Remote Desktop         │
│             ↓                │
│ GDM / GNOME Login            │
│             ↓                │
│ Ubuntu Desktop               │
└──────────────────────────────┘

Remote Login vs Desktop Sharing

Saturday, September 5, 2026

Build Your Own Local AI Coding Agent: A Complete Multi-Platform Development System


 Imagine telling your computer:

“Build me a Python application, test it, fix the errors and package it.”

Or:

“Create an Android application and generate the APK.”

Or even:

“Build this .NET application for Windows.”

Instead of sending your source code to a cloud AI service, you could have your own local AI coding agent running on your computer.

The agent can understand requirements, write code, execute commands, run tests, debug errors, build applications and manage Git repositories.

Even better, the system can support multiple programming languages and platforms.

The practical way to build such a system is to use Windows as the host, an Ubuntu virtual machine as the development environment, local AI through Ollama, and specialized build machines for Windows and Apple platforms.

The Architecture

The overall architecture looks like this:

                         WINDOWS 11 PRO
                              │
              ┌───────────────┴────────────────┐
              │                                │
         NVIDIA GPU                       Windows Tools
              │                                │
           Ollama                    Visual Studio / MSBuild
              │                                │
              └──────────────┬─────────────────┘
                             │
                       Hyper-V Network
                             │
                    ┌────────▼────────┐
                    │   UBUNTU VM    │
                    │                │
                    │ OpenHands      │
                    │ Cline          │
                    │ Aider          │
                    │ Docker         │
                    │ Git            │
                    │ Python         │
                    │ Java           │
                    │ .NET           │
                    │ C/C++          │
                    │ Rust           │
                    │ Go             │
                    │ Node.js        │
                    │ Android        │
                    │ Flutter        │
                    └────────┬───────┘
                             │
                             │ SSH
                             ▼
                       OPTIONAL MAC
                             │
                       Xcode / Swift
                             │
                         iOS / macOS

This architecture separates AI, development and platform-specific compilation.

That separation is important.

Linux does not need to do everything.

Why Use an Ubuntu VM?

You could install everything directly on Windows, but a dedicated Linux development environment provides several advantages.

Ubuntu gives you:

  • A clean development environment
  • Native Linux tooling
  • Docker
  • Python
  • Java
  • C/C++
  • Rust
  • Go
  • Node.js
  • .NET
  • Android development
  • Flutter
  • Linux builds
  • Easy automation
  • Easier agent sandboxing

Most importantly, the AI agent can operate inside a controlled environment without modifying your main Windows installation.

Your Windows machine remains your everyday desktop.

Ubuntu becomes your AI software factory.

Windows Remains Your Main Desktop

You don't have to sit inside the Ubuntu desktop all day.

Install VS Code on Windows and connect to Ubuntu using Remote SSH.

The experience looks like this:

Windows
   │
   ▼
VS Code
   │
   ▼
Ubuntu VM
   │
   ├── Source code
   ├── Git
   ├── Docker
   ├── Compilers
   └── AI agents

You see the familiar Windows VS Code interface.

But the code executes inside Ubuntu.

This gives you the best of both worlds.

Step 1: Enable Hyper-V

Windows 11 Pro includes Hyper-V.

Open PowerShell as Administrator and run:

Enable-WindowsOptionalFeature `
    -Online `
    -FeatureName Microsoft-Hyper-V `
    -All

Restart Windows after installation.

Then open:

Hyper-V Manager

Hyper-V will be the virtualization layer for your Ubuntu development machine.

Step 2: Create a Virtual Network

Open:

Hyper-V Manager
→ Virtual Switch Manager

Create an:

External Virtual Switch

Name it:

DevAgentSwitch

Connect it to your physical Ethernet or Wi-Fi adapter.

This allows your Ubuntu VM to communicate with:

  • Windows
  • Ollama
  • Other computers
  • Build servers
  • Future Mac machines

Step 3: Create the Ubuntu VM

Download the current Ubuntu LTS desktop ISO.

Create a new Hyper-V VM with approximately:

ResourceRecommended
GenerationGeneration 2
CPU12 virtual CPUs
RAM32 GB
Disk500 GB
NetworkDevAgentSwitch
OSUbuntu LTS

If your system has 64 GB RAM, 32 GB allocated to the development VM is a good starting point.

You can change the allocation later.

Step 4: Install Ubuntu

Install Ubuntu normally.

A simple hostname is:

localdev

After installation:

sudo apt update
sudo apt upgrade -y

Reboot:

sudo reboot

Verify the resources:

nproc
free -h
df -h

Step 5: Enable SSH

SSH allows Windows to access Ubuntu directly.

Inside Ubuntu:

sudo apt install -y openssh-server

Enable the service:

sudo systemctl enable --now ssh

Find the Ubuntu IP:

hostname -I

For example:

192.168.1.50

From Windows PowerShell:

ssh dev@192.168.1.50

Now you can control Ubuntu directly from Windows.

Step 6: Use VS Code From Windows

Install VS Code on Windows and add the:

Remote - SSH

extension.

Connect to:

dev@192.168.1.50

Now your workflow becomes:

Windows Desktop
      ↓
VS Code
      ↓
Ubuntu VM
      ↓
Development Environment

You can open, edit, compile and test Linux projects without leaving Windows.

Step 7: Install Docker

Docker is critical because it allows the AI agent to work in isolated environments.

Install Docker Engine and Compose in Ubuntu.

After installation:

docker run hello-world

The objective is to eventually have separate development environments such as:

Python container
Java container
Node container
.NET container
Rust container
C++ container
Android container

This prevents dependencies from different projects from interfering with each other.

Step 8: Keep Ollama on Windows

This is an important architectural decision.

Your NVIDIA GPU is physically installed in the Windows machine.

Instead of making GPU passthrough work inside Hyper-V, initially keep Ollama on Windows.

The architecture becomes:

                NVIDIA GPU
                    │
                    ▼
               Windows
                 Ollama
                    │
                    │ HTTP
                    ▼
              Ubuntu VM
                    │
                OpenHands

This is considerably simpler than configuring GPU passthrough.

Install Ollama on Windows and download a suitable coding model.

For example:

ollama run qwen3-coder:30b

The exact model/quantization you choose should depend on your available VRAM and system RAM.

Step 9: Connect Ubuntu to Ollama

The Ubuntu VM needs to communicate with Ollama running on Windows.

Conceptually:

Ubuntu
  │
  │ HTTP
  ▼
Windows:11434
  │
  ▼
Ollama
  │
  ▼
NVIDIA GPU

From Ubuntu, test the connection:

curl http://WINDOWS_IP:11434/api/tags

If the connection works, Ubuntu can use the Windows-hosted local model.

Do not expose Ollama's port to the public internet.

Keep it restricted to your private network.

Step 10: Install OpenHands

OpenHands will become the primary autonomous coding agent.

Install the required Python environment and OpenHands inside Ubuntu.

The resulting workflow is:

User
  ↓
OpenHands
  ↓
Local LLM
  ↓
Planning
  ↓
Code generation
  ↓
Terminal commands
  ↓
Testing
  ↓
Debugging
  ↓
Build

Unlike a simple autocomplete tool, an agent can perform multiple actions to accomplish a task.

Step 11: Add Cline

Cline can be used from VS Code for interactive development.

This gives you two different working modes:

OpenHands

Best for:

Autonomous tasks
Large projects
Long-running workflows
Testing
Debugging
Automation

Cline

Best for:

Interactive coding
Working directly inside VS Code
Reviewing changes
Making targeted modifications

You can connect both to your local Ollama instance.

Step 12: Add Aider

Aider gives you a powerful terminal-based interface.

For example:

aider --model ollama_chat/qwen3-coder:30b

You now have three interfaces:

              Local LLM
                  │
        ┌─────────┼─────────┐
        │         │         │
     OpenHands  Cline     Aider
        │         │         │
        └─────────┼─────────┘
                  │
              Git Project

Step 13: Install Programming Languages

The Ubuntu VM can become your universal development environment.

Install:

Python

sudo apt install python3 python3-venv python3-pip

Java

sudo apt install openjdk-21-jdk maven gradle

C/C++

sudo apt install build-essential gcc g++ clang cmake ninja-build

Go

sudo apt install golang-go

Rust

sudo apt install rustc cargo

Node.js

Install a current Node.js LTS environment.

.NET

Install the appropriate .NET SDK for the Ubuntu release.

The result is a single environment capable of working with:

Python
Java
Kotlin
C
C++
C#
.NET
Go
Rust
JavaScript
TypeScript
PHP
Ruby
and many others

Step 14: Android Development

Android is one of the major advantages of using Linux.

Install:

Android Studio
Android SDK
Android SDK Platform Tools
Android Emulator
Gradle

Then verify:

adb devices

The AI agent can eventually perform:

Generate project
      ↓
Write code
      ↓
Compile APK
      ↓
Launch emulator
      ↓
Install APK
      ↓
Run tests
      ↓
Read logcat
      ↓
Fix bugs
      ↓
Build final APK

This is where the system starts becoming genuinely autonomous.

Step 15: Flutter

Flutter is another important component.

A single Flutter project can target multiple platforms:

Android
iOS
Windows
Linux
macOS
Web

Linux can handle Android and Linux builds.

Windows can handle Windows builds.

A Mac can handle iOS and macOS builds.

This makes Flutter an excellent framework for the agent to use when cross-platform applications are required.

Step 16: Windows Application Builds

Your Windows host can act as the Windows build machine.

Install:

Visual Studio
MSBuild
Windows SDK
.NET SDK
CMake
Flutter

The architecture becomes:

Ubuntu Agent
      │
      │ Build request
      ▼
Windows Host
      │
      ▼
MSBuild / Visual Studio
      │
      ▼
EXE / MSIX

This means the AI can write code in Ubuntu while the native Windows toolchain performs the final build.

Step 17: macOS and iPhone

Apple platforms are different.

For genuine iOS/macOS builds, you eventually need a Mac running macOS and Xcode.

The architecture becomes:

Ubuntu
   │
   │ SSH
   ▼
Mac
   │
   ├── Xcode
   ├── Swift
   ├── CocoaPods
   └── iOS Simulator
          │
          ▼
       iOS build

The Mac doesn't need to run the AI.

It simply becomes your Apple build worker.

The Complete Build Pipeline

Once everything is implemented, a request such as:

Build an expense management application for Android and Windows.

could become:

USER REQUEST
     │
     ▼
AI PLANNER
     │
     ▼
Architecture
     │
     ▼
Technology Selection
     │
     ▼
CODE GENERATOR
     │
     ▼
Git Repository
     │
     ▼
Implementation
     │
     ▼
UNIT TESTS
     │
     ▼
BUILD
     │
 ┌───┴────┐
 │        │
Android  Windows
 │        │
 ▼        ▼
APK      EXE
 │        │
 └───┬────┘
     ▼
INTEGRATION TESTS
     │
     ▼
SECURITY REVIEW
     │
     ▼
DOCUMENTATION
     │
     ▼
RELEASE ARTIFACTS

The AI becomes more than a code generator.

It becomes a software engineering system.

The Project Structure

A useful directory structure is:

~/local-agent/

├── core/
│   ├── planner/
│   ├── coder/
│   ├── reviewer/
│   ├── debugger/
│   └── tester/
│
├── orchestrator/
│
├── builders/
│   ├── linux/
│   ├── windows/
│   ├── android/
│   └── macos/
│
├── runtimes/
│   ├── python/
│   ├── java/
│   ├── dotnet/
│   ├── node/
│   ├── rust/
│   └── cpp/
│
├── projects/
├── artifacts/
├── logs/
└── config/

This gives us a foundation for building a custom orchestration layer.

Add Git to Everything

Every project should be managed through Git.

The agent should follow a workflow such as:

Create branch
     ↓
Understand project
     ↓
Modify code
     ↓
Run formatter
     ↓
Run tests
     ↓
Build
     ↓
Review diff
     ↓
Commit

You should never allow an autonomous agent to blindly modify your only copy of a project.

Git becomes the safety net.

Add Agent Rules

Every repository can contain an AGENTS.md file.

For example:

Before modifying code:

1. Read the project documentation.
2. Inspect the existing architecture.
3. Do not delete working functionality unnecessarily.
4. Create a Git branch.
5. Implement the requested change.
6. Run formatting.
7. Run static analysis.
8. Run unit tests.
9. Build the application.
10. Fix failures.
11. Review the Git diff.
12. Commit only when validation succeeds.

This makes agent behavior considerably more predictable.

The Final System

Ultimately your computer becomes a local development platform:

                       LOCAL AI SOFTWARE FACTORY

                              USER
                               │
                               ▼
                        WEB DASHBOARD
                               │
                               ▼
                         AI ORCHESTRATOR
                               │
               ┌───────────────┼────────────────┐
               │               │                │
            Planner          Coder           Reviewer
               │               │                │
               └───────────────┼────────────────┘
                               │
                         Local LLM
                          Ollama
                               │
                               ▼
                         OpenHands
                               │
                     ┌─────────┴─────────┐
                     │                   │
                  Docker               Git
                     │                   │
                     ▼                   ▼
              Development             Repository
              environments
                     │
        ┌────────────┼─────────────┐
        │            │             │
      Linux       Windows         Mac
        │            │             │
      Build        Build          Xcode
        │            │             │
       APK         EXE           IPA

What Makes This Different?

A normal AI coding assistant might give you:

code

A local coding agent can potentially give you:

requirements
→ architecture
→ source code
→ dependencies
→ tests
→ debugging
→ builds
→ artifacts
→ documentation

And because the entire development environment can remain local, your source code and internal projects don't have to be sent to a third-party AI API.

Wednesday, November 1, 2023

Exploring #Popular #OS #Distributions: A Guide to Next #Linux #Adventure...


Exploring Popular OS Distributions: A Guide to Your Next #Linux Adventure

Are you ready to embark on a journey through the diverse world of #OperatingSystem (#OS) distributions? From powerful #Linux variants to unique open-source projects, the landscape of OS choices is both extensive and exciting. In this article, we'll take a closer look at some popular OS distributions, offering insights into what makes each one unique.

Ubuntu

#Ubuntu, based on #Debian, is known for its user-friendly interface and extensive software repositories. It's a great choice for those new to #Linux.

Fedora

#Fedora, backed by Red Hat, is where innovation and cutting-edge technologies meet. Hashed with "#RPM" package management, Fedora offers the latest features for those who want to stay on the bleeding edge.

Linux Mint

#LinuxMint, with the term "Cinnamon," is a distro with a focus on providing a comfortable and visually appealing user experience. It's an ideal choice for users who value aesthetics and usability.

CentOS

#CentOS is hashed with "stability" and "servers" in mind. If you need a reliable OS for server environments, CentOS is your trusted companion.

Arch Linux

For the adventurous user who enjoys building their system from the ground up, #ArchLinux, hashed with "rolling release," is a go-to choice. It's all about customization and control.

openSUSE

#openSUSE, known for its versatility, offers both Tumbleweed and Leap versions. The word "YAST" in openSUSE stands for user-friendly configuration tools, which make it appealing for both beginners and experts.

Debian

As the parent distribution of #Ubuntu, #Debian is a rock-solid choice. Hashed with "community-driven" and "stability," Debian is perfect for those who prioritize reliability and community involvement.

Slackware

#Slackware, a timeless distro, is revered by seasoned Linux users. It's hashed with "simplicity" and "traditional." For those who appreciate the old-school charm, Slackware is worth exploring.

In conclusion, the world of #OSDistributions offers something for everyone. Whether you're a newcomer looking for a user-friendly interface or an experienced user seeking customization and control, the variety of choices ensures you'll find the perfect OS for your needs.

Remember that while downloading and trying different OS distributions is an exciting endeavor, always ensure you're obtaining them from official sources to maintain security and authenticity.

Happy exploring, and may your OS journey lead to an enriching and rewarding computing experience!

Saturday, October 21, 2023

Installing #Ubuntu #Server #2310

Introducing #Ubuntu #Server 23.10: Powerful and Versatile
#UbuntuServer23.10, the latest release in the #Ubuntu Server series, continues its tradition of providing a robust and versatile platform for a wide range of server-based applications. With a focus on performance, security, and ease of use, Ubuntu Server 23.10 offers an ideal solution for businesses and organizations seeking a reliable server operating system.
Performance Boosts
One of the standout features of Ubuntu Server 23.10 is the performance enhancements. Leveraging the latest advancements in the Linux kernel and software optimizations, this release ensures that your server can handle demanding workloads efficiently. Whether you're running a web server, database server, or cloud infrastructure, Ubuntu Server 23.10 is designed to deliver top-notch performance.
Enhanced Security
Security is a top priority for Ubuntu Server. With built-in security features and timely updates, you can trust that your server is well-protected. Ubuntu Server 23.10 includes AppArmor and SELinux support, making it easier to isolate and secure applications. This, coupled with the robust firewall and security policies, ensures that your data and applications are safe from threats.
Easy Management
Ubuntu Server 23.10 continues to provide a user-friendly experience for administrators. The command-line interface is intuitive and well-documented, while the inclusion of web-based management tools simplifies server administration. Whether you're a seasoned sysadmin or new to server management, you'll find Ubuntu Server 23.10 easy to work with.
Containerization and Cloud Integration
In line with modern server trends, Ubuntu Server 23.10 offers exceptional support for containerization and cloud integration. Docker and Kubernetes are seamlessly integrated, enabling you to deploy and manage containers effortlessly. Plus, cloud integration with AWS, Azure, and Google Cloud ensures that your server can seamlessly interact with leading cloud platforms.
UbuntuServer
#Linux #ServerPerformance #Security #ServerManagement #Containerization #CloudIntegration #Ubuntu2310 #OpenSource #Sysadmin
Ubuntu Server 23.10 is a powerful and flexible solution that caters to the needs of modern server environments. Whether you're running a small business or a large data center, Ubuntu Server 23.10 is the reliable, secure, and high-performance choice to keep your operations running smoothly.

#UbuntuServer #Ubuntu2310 #Linux #ServerOS #WebHosting #DatabaseServer #ApplicationServer #CloudComputing #Security #Flexibility

Additional features of Ubuntu Server 23.10: Support for OpenStack and Kubernetes Integration with Ansible and Terraform Support for a variety of programming languages and frameworks, including Python, Java, Node.js, and Ruby on Rails A wide range of software packages available through the Ubuntu repositories Use cases for Ubuntu Server 23.10: Web hosting Database servers Application servers File servers Mail servers VPN servers Cloud computing DevOps Machine learning Artificial intelligence Conclusion
Ubuntu Server 23.10 is a powerful and flexible server operating system that is well-suited for a variety of workloads. It is easy to use and manage, and it is supported by a large community of users and developers. If you are looking for a reliable and secure server operating system, Ubuntu Server 23.10 is a great option to consider.

Featured Posts

Kali Linux Remote Desktop: Access GNOME from Windows Using Native RDP

  Kali Linux + GNOME 50 + GNOME Remote Desktop + Windows Remote Desktop (MSTSC) Getting a full GNOME desktop remotely on Kali Linux can be ...