I use this mostly for WordPress & Laravel.
Primarily this is useful for any PHP projects.
Step 1 :
You need to enable vhosts.
Open C:\xampp\apache\conf\httpd.conf
Find the line inside there that looks like this :
# Virtual hosts
# Include conf/extra/httpd-vhosts.conf
And remove the # from the include statement.
# Virtual hosts
include conf/extra/httpd-vhosts.conf
—
<VirtualHost *:80>
ServerName leantime.localhost
DocumentRoot “/Applications/XAMPP/xamppfiles/htdocs/leantime/public”
<Directory “/Applications/XAMPP/xamppfiles/htdocs/leantime/public”>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog “logs/leantime.localhost-error_log”
CustomLog “logs/leantime.localhost-access_log” common
</VirtualHost>

Step 2 :
Enable any php extensions you want to use.
In the xampp control panel. If you select config on the apache line. Select PHP (php.ini)
This is where you enable php extensions you may need.
Same as before. If you want to enable any extensions.
Remove the # at the beginning of the line.

Step 3 :
You need to configure the httpd-vhosts.conf and hosts
Vhosts
Then you need to update https-vhosts.conf with your project directory.
The file can be found at :
C:\xampp\apache\conf\extra\https-vhosts.conf
Inside the hosts file for each project you want to add.
# Virtual Hosts # # Required modules: mod_log_config # If you want to maintain multiple domains/hostnames on your # machine you can setup VirtualHost containers for them. Most configurations # use only name-based virtual hosts so the server doesn't need to worry about # IP addresses. This is indicated by the asterisks in the directives below. # # Please see the documentation at # <URL:http://httpd.apache.org/docs/2.4/vhosts/> # for further details before you try to setup virtual hosts. # # You may use the command line option '-S' to verify your virtual host # configuration. # # Use name-based virtual hosting. # ##NameVirtualHost *:80 # # VirtualHost example: # Almost any Apache directive may go into a VirtualHost container. # The first VirtualHost section is used for all requests that do not # match a ##ServerName or ##ServerAlias in any <VirtualHost> block. # ##<VirtualHost *:80> ##ServerAdmin webmaster@dummy-host.example.com ##DocumentRoot "C:/xampp/htdocs/dummy-host.example.com" ##ServerName dummy-host.example.com ##ServerAlias www.dummy-host.example.com ##ErrorLog "logs/dummy-host.example.com-error.log" ##CustomLog "logs/dummy-host.example.com-access.log" common ##</VirtualHost> <VirtualHost *:80> DocumentRoot "C:/xampp/htdocs/dashboard" ServerName localhost </VirtualHost> #################################### # Sites <VirtualHost *:80> DocumentRoot "C:/xampp/htdocs/digi" ServerName site-name1.localhost </VirtualHost> <VirtualHost *:80> DocumentRoot "C:/xampp/htdocs/coverweb/public" ServerName site-name2.localhost </VirtualHost> <VirtualHost *:80> DocumentRoot "C:/xampp/htdocs/coverweb/public" ServerName site-name3.localhost </VirtualHost>
hosts file
This is located under :
C:\Windows\System32\drivers\etc
hosts
Open the hosts file with administrative privileges.
Use any text editor of your choice.
# Copyright (c) 1993-2009 Microsoft Corp. # # This is a sample HOSTS file used by Microsoft TCP/IP for Windows. # # This file contains the mappings of IP addresses to host names. Each # entry should be kept on an individual line. The IP address should # be placed in the first column followed by the corresponding host name. # The IP address and the host name should be separated by at least one # space. # # Additionally, comments (such as these) may be inserted on individual # lines or following the machine name denoted by a '#' symbol. # # For example: # # 192.168.0.1 local.website1.com # Comment here # 192.168.0.1 local.website2.com # Comment here # localhost name resolution is handled within DNS itself. 127.0.0.1 localhost ::1 localhost ########################################### # Sites 127.0.0.1 site-name1.localhost 127.0.0.1 site-name2.localhost 127.0.0.1 site-name3.localhost ########################################### wsl.localhost ########################################### # Added by Docker Desktop 192.168.0.106 host.docker.internal 192.168.0.106 gateway.docker.internal # To allow the same kube context to work on the host and the container: 127.0.0.1 kubernetes.docker.internal # End of section



- Solution 1 :
Go into the game root directory. (The folder that has your generals.exe) and delete the dbghelp.dll - Solution 2 :
Edit the options.ini file.
I installed my game through Steam on Windows 11.
Now it’s important to note that on the newer versions of windows.
Some documents get uploaded automatically to a OneDrive folder.
This caused a lot of confusion for me because my documents folder with the ini file was empty.- There are 2 directories you can check for the Options.ini folder.
- 1 : C:\Users\User\OneDrive\Documents\Command and Conquer Generals Zero Hour Data
- 2 : C:\Users\User\Documents\Command and Conquer Generals Zero Hour Data
- Inside one of those directories. You should find an Options.ini file.
Inside the file update your resolution to 800 600
You can adjust it once the game starts. But just to get the game started update it to 800 600
—
AntiAliasing = 18
CampaignDifficulty = 2
GameSpyIPAddress = 0.0.0.0
Gamma = 50
IPAddress = 0.0.0.0
IdealStaticGameLOD = High
LanguageFilter = false
MusicVolume = 55
Resolution = 800 600
Retaliation = yes
SFX3DVolume = 79
SFXVolume = 71
ScrollFactor = 50
SendDelay = no
StaticGameLOD = High
UseAlternateMouse = no
UseDoubleClickAttackMove = no
VoiceVolume = 70
- Inside one of those directories. You should find an Options.ini file.
- There are 2 directories you can check for the Options.ini folder.
- Solution 3, Also I believe this was my fix for the screen size limitation :
Install the C&C GenTool_v8.8.exe
I can’t remember exactly which site I installed this from. I found a link on Reddit.
I do not take any credit for this tool. I found it online.
I did not make it. But it did solve my issue.
So I figured this out by mistake and had my mind blow when I saw it. Haha I have been programming with CSS for 7 years and I didn’t know this!
I was adjusting default bootstrap checkbox colours and I accidentally typed an additional colour without clearing and it ended up splitting the colours. Looks quite cool! Check how the border splits half half on each side with the colours.

.form-check-input:checked { background-color: #000; border-color: #000#FFF; }
(VMware vSphere, Microsoft Hyper-V, Proxmox Virtual Environment (Proxmox VE), Oracle VirtualBox, Docker, Kubernetes, FreeNAS, OpenMediaVault, VMware Workstation/Fusion, Microsoft Azure, Amazon EC2, Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP), DigitalOcean, Synology DiskStation, QNAP NAS, Western Digital My Cloud)
Virtualization and Storage Technologies for Website Hosting, Website Containerization, Dedicated Storage, and VM Deployments:
- Virtualization Platforms:
- VMware vSphere: Enterprise-level virtualization for server consolidation, high availability, and resource management.
- Microsoft Hyper-V: Virtualization platform for running multiple VMs on Windows servers.
- Proxmox Virtual Environment (Proxmox VE): Open-source virtualization with KVM and LXC support for data centers and cloud environments.
- Oracle VirtualBox: General-purpose virtualization software for testing and development on desktops.
- Website Containerization:
- Docker: Containerization platform for packaging applications and their dependencies for easy deployment and scalability.
- Kubernetes: Container orchestration system for automating, scaling, and managing containerized applications.
- Dedicated Storage Operating Systems:
- FreeNAS: Open-source NAS OS with support for SMB/CIFS, NFS, and iSCSI, offering data redundancy through ZFS.
- OpenMediaVault: NAS OS with a web-based interface, supporting various file sharing protocols and plugins.
- Virtual Machine Deployment:
- VMware Workstation/Fusion: Desktop virtualization for testing and development of VMs on personal computers.
- Oracle VirtualBox: General-purpose virtualization software also used for testing and running VMs on desktops.
- Microsoft Azure: Cloud platform offering VM deployment and management in the cloud.
- Amazon EC2: Cloud-based VMs on Amazon Web Services (AWS) for scalable computing.
- Cloud Hosting Services:
- Amazon Web Services (AWS): Cloud computing platform with various services, including EC2 for VMs and S3 for storage.
- Microsoft Azure: Cloud platform offering VMs, databases, and other services for website hosting and application deployment.
- Google Cloud Platform (GCP): Cloud services with Compute Engine for VMs and Cloud Storage for scalable storage.
- DigitalOcean: Cloud provider with Droplets (VMs) and Spaces for object storage.
- Network-Attached Storage (NAS) Solutions:
- Synology DiskStation: NAS solution with a user-friendly interface, supporting various services like file sharing, backups, and media streaming.
- QNAP NAS: Network storage solutions with comprehensive applications and RAID configurations for data protection.
- Western Digital My Cloud: Personal cloud storage for home users with remote access to files.
These are some of the popular virtualization and storage technologies used in the IT industry, each catering to specific use cases for website hosting, containerization, storage, and VM deployments.
public function import_data(Request $request) { $success = true; try { DB::beginTransaction(); foreach ($request->array_or_object as $item) { $record_payload = [ "name" => $item->name, "surname" => $item->surname, ]; $record_id = $item->id ?? null; $inserted_record = RecordModel::updateOrCreate(['id' => $record_id], $record_payload); if (!$inserted_record) { $success = false; break; // Stop further processing if any insert fails } } if ($success) { DB::commit(); return ['status' => true, 'message' => 'Success, Your import has completed with no issues.']; } else { DB::rollBack(); return ['status' => false, 'message' => 'Unsuccessful Transaction. Not an exception.']; } } catch (\Exception $e) { DB::rollBack(); $i = count($e->errorInfo) - 1; return ['status' => false, 'message' => $e->errorInfo[$i]]; } }