This project focuses on deploying a working web application in Azure while resolving failures across multiple system layers (IIS, PHP, MySQL).
The objective was not just deployment, but restoring functionality when dependencies failed.
A Windows-based environment was deployed in Azure to host osTicket. The system required coordination between:
- IIS (web server)
- PHP (application processing)
- MySQL (database backend)
Failure in any layer prevented the application from working.
- Microsoft Azure (Virtual Machines)
- Windows 10
- Remote Desktop Protocol (RDP)
- Internet Information Services (IIS)
- PHP
- MySQL
- HeidiSQL
- osTicket
- Windows 10 Virtual Machine (
osticket-vm) - IIS with CGI enabled
- PHP installed in
C:\PHP - MySQL database
- osTicket deployed in
C:\inetpub\wwwroot\osTicket
Problem:
No working environment to host application.
Decision:
Deploy Windows VM in Azure and establish remote access.
Result:
- Functional system accessible via RDP
- Base environment ready for service configuration
Problem:
IIS could not process PHP files, blocking application execution.
Root Cause:
PHP was installed but not registered with IIS.
Decision:
Manually configure FastCGI and link php-cgi.exe.
Result:
- PHP execution restored
- Web server able to process application requests
![]() PHP Not Registered |
![]() PHP Registered |
Problem:
Application required database backend to function.
Decision:
Install MySQL and manually create database using HeidiSQL.
Result:
- Database created and accessible
- Tables successfully generated during installation
Problem:
Application not yet integrated into web environment.
Decision:
Deploy osTicket into IIS web root and complete installation via browser.
Result:
- Application successfully installed
- Web interface accessible
Problem:
Need to confirm system functionality across all layers.
Decision:
Test authentication and simulate ticket workflow.
Result:
- Admin access verified
- Ticket creation and handling confirmed
- Full application functionality validated
- Cause: Missing FastCGI configuration
- Fix: Manual registration of PHP with IIS
- Cause: Required extensions disabled
- Fix: Enabled extensions required by osTicket
- Cause: No backend defined
- Fix: Created MySQL database and connected application
- Chose IIS to align with Windows-based environments
- Configured PHP manually to understand integration points
- Validated each dependency before proceeding
- Used direct database access (HeidiSQL) for verification
- Application stability depends on all service layers functioning correctly
- Failures often occur at integration points, not installation
- Troubleshooting requires isolating each layer independently
- Most failures are configuration issues, not missing software
- Dependency validation must happen before deployment
- Fixing one layer does not guarantee full system functionality
- Multi-service environments require step-by-step isolation
This project demonstrates the ability to diagnose and resolve failures across a multi-layer application stack.
Instead of following a linear installation, this required:
- Identifying where execution failed (IIS vs PHP vs MySQL)
- Restoring functionality at each layer
- Validating full system behavior after integration
Result:
A working application environment built by resolving dependency failures, not just completing installation steps.








