Strategic Portfolio Advisor · Environment Test · 2026-05-13 02:33:46 UTC
Test Results
10 / 12 passed
Server
PHP 7.4.33
LiteSpeed
Server Environment
PHP Version
❌ FAIL — PHP 7.4.33 — need 8.0+
PHP Extensions
✅ PASS — curl, json, mysqli, openssl, mbstring — all present
File Write Permission
✅ PASS — Directory is writable — logs and cache can be written
Server Functions (exec/shell)
✅ PASS — exec/shell_exec available — cron scripts will work
Database
MySQL Connection
✅ PASS — Connected to MySQL — host: localhost, db: awsgieuf_sparos
Yahoo Finance — Price Feed
Yahoo Finance (O9P.SI)
✅ PASS — HTTP 200 — regularMarketPrice = 6.7
{ "currency": "USD", "symbol": "O9P.SI", "exchangeName": "SES", "fullExchangeName": "SES", "instrumentType": "ETF", "firstTradeDate": 1323046800, "regularMarketTime": 1778639023, "hasPrePostMarketData": false, "gmtoffset": 28800, "timezone": "SGT", "exchangeTimezoneName": "Asia\/Singapore", "regularMarketPrice": 6.70000000000000017763568394002504646778106689453125, "fiftyTwoWeekHigh": 6.88999999999999968025576890795491635799407958984375, "fiftyTwoWeekLow": 6.480000000000000426325641456060111522674560546875, "regularMarketDayHigh": 6.75, "regularMarketDayLow": 6.70000000000000017763568394002504646778106689453125, "regularMarketVolume": 504920, "longName": "iShares USD Asia High Yield Bond ETF", "shortName": "IS ASIA HYG US$", "chartPreviousClose": 6.70000000000000017763568394002504646778106689453125, "priceHint": 2, "currentTradingPeriod": { "pre": { "timezone": "SGT", "start": 1778632200, "end": 1778634000, "gmtoffset": 28800 }, "regular": { "timezone": "SGT", "start": 1778634000, "end": 1778662800, "gmtoffset": 28800 }, "post": { "timezone": "SGT", "start": 1778662800, "end": 1778662800, "gmtoffset": 28800 } }, "dataGranularity": "1d", "range": "1d", "validRanges": [ "1d", "5d", "1mo", "3mo", "6mo", "1y", "2y", "5y", "10y", "ytd", "max" ] }
Yahoo Finance (CSPX.L — LSE)
✅ PASS — HTTP 200 — regularMarketPrice = 790.12
{ "currency": "USD", "symbol": "CSPX.L", "exchangeName": "LSE", "fullExchangeName": "LSE", "instrumentType": "ETF", "firstTradeDate": 1284534000, "regularMarketTime": 1778609622, "hasPrePostMarketData": false, "gmtoffset": 3600, "timezone": "BST", "exchangeTimezoneName": "Europe\/London", "regularMarketPrice": 790.1200000000000045474735088646411895751953125, "fiftyTwoWeekHigh": 888.759999999999990905052982270717620849609375, "fiftyTwoWeekLow": 0, "regularMarketDayHigh": 0, "regularMarketDayLow": 0, "regularMarketVolume": 0, "longName": "iShares VII PLC - iShares Core S&P 500 UCITS ETF", "shortName": "ISHARES VII PLC ISHRS CORE S&P ", "chartPreviousClose": 797.6200000000000045474735088646411895751953125, "priceHint": 2, "currentTradingPeriod": { "pre": { "timezone": "BST", "start": 1778652900, "end": 1778655600, "gmtoffset": 3600 }, "regular": { "timezone": "BST", "start": 1778655600, "end": 1778686200, "gmtoffset": 3600 }, "post": { "timezone": "BST", "start": 1778686200, "end": 1778688900, "gmtoffset": 3600 } }, "dataGranularity": "1d", "range": "1d", "validRanges": [ "1d", "5d", "1mo", "3mo", "6mo", "1y", "2y", "5y", "10y", "ytd", "max" ] }
Yahoo Finance (9988.HK — HKEX)
✅ PASS — HTTP 200 — regularMarketPrice = 130.8
{ "currency": "HKD", "symbol": "9988.HK", "exchangeName": "HKG", "fullExchangeName": "HKSE", "instrumentType": "EQUITY", "firstTradeDate": 1574731800, "regularMarketTime": 1778638724, "hasPrePostMarketData": false, "gmtoffset": 28800, "timezone": "HKT", "exchangeTimezoneName": "Asia\/Hong_Kong", "regularMarketPrice": 130.80000000000001136868377216160297393798828125, "fiftyTwoWeekHigh": 186.19999999999998863131622783839702606201171875, "fiftyTwoWeekLow": 101.7999999999999971578290569595992565155029296875, "regularMarketDayHigh": 132.80000000000001136868377216160297393798828125, "regularMarketDayLow": 130.30000000000001136868377216160297393798828125, "regularMarketVolume": 23094321, "longName": "Alibaba Group Holding Limited", "shortName": "BABA-W", "chartPreviousClose": 133.30000000000001136868377216160297393798828125, "priceHint": 3, "currentTradingPeriod": { "pre": { "timezone": "HKT", "end": 1778635800, "start": 1778634000, "gmtoffset": 28800 }, "regular": { "timezone": "HKT", "end": 1778659800, "start": 1778635800, "gmtoffset": 28800 }, "post": { "timezone": "HKT", "end": 1778659800, "start": 1778659800, "gmtoffset": 28800 } }, "dataGranularity": "1d", "range": "1d", "validRanges": [ "1d", "5d", "1mo", "3mo", "6mo", "1y", "2y", "5y", "10y", "ytd", "max" ] }
FX Rates — Currency Conversion
FX Rate (USDSGD via Yahoo)
✅ PASS — USDSGD = 1.2721
FX Rate (HKDSGD via Yahoo)
✅ PASS — HKDSGD = 0.1624
FX Rate (GBPSGD via Yahoo)
✅ PASS — GBPSGD = 1.7212
Google Sheets
Google Sheets Access
❌ FAIL — HTTP 400 — Sheet not accessible. Make sure it is shared publicly.
<!DOCTYPE html><html lang="en"><head><meta name="description" content="Web word processing, presentations and spreadsheets"><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0"><link rel="shortcut icon" href="//docs.google.com/favicon.ico"><title>Page Not Found</title><meta name="referrer" content="origin"><link href="//fonts.googleapis.com/css?family=Product+Sans" rel="stylesheet" type="text/css" nonce="BL3vN8_T-TbvktZUa8A9Ug"><style nonce="BL3vN8_T-TbvktZUa8A9Ug">#drive-logo{margin:18px 0;position:absolute;white-space:nowrap}.docs-drivelogo-img{background-image:url(//ssl.gstatic.com/images/branding/googlelogo/1x/googlelogo_color_116x41dp.png);-webkit-background-size:116px 41px;background-size:116px 41px;display:inline-block;height:41px;vertical-align:bottom;width:116px}.docs-drivelogo-text{color:var(--gm3-sys-color-on-surface,#1f1f1f);display:inline-block;opacity:.54;text-decoration:none;font-family:Product Sans,Arial,Helvetica,sans-serif;font-size:32px;text-rendering:optimizeLegibility;position:relative;top:-6px;left:-7px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (-webkit-min-device-pixel-ratio:1.5),(min-resolution:144dpi){.docs-drivelogo-img{background-image:url(//ssl.gstatic.com/images/branding/googlelogo/2x/googlelogo_color_116x41dp.png)}}.goog-inline-block{position:relative;display:-moz-inline-box;display:inline-block}* html .goog-inline-block{display:inline}:first-child+html .goog-inline-block{display:inline}sentinel{}</style><style type="text/css" nonce="BL3vN8_T-TbvktZUa8A9Ug">body {background-color: #fff; font-family: Arial,sans-serif; font-size: 13px; margin: 0; padding: 0;}a, a:link, a:visited {color: #112ABB;}</style><style type="text/css" nonce="BL3vN8_T-TbvktZUa8A9Ug">.errorMessage {font-size: 12pt; font-weight: bold; line-height: 150%;}</style></head><body><div id="outerContainer"><div id="innerContainer"><div style="position: absolute; top: -80px;"><div style="margin: 18px 0; position: absolute; white-space: nowrap;"><a href="//support.google.com/docs/"><img height="35px" src="//ssl.gstatic.com/docs/common/product/spreadsheets_lockup2.png" alt="Google logo"/></a></div></div><div align="center"><p class="errorMessage" style="padding-top: 50px">Sorry, unable to open the file at this time.</p><p> Please check the address and try again. </p><div style="background: #F0F6FF; border: 1px solid black; margin-top: 35px; padding: 10px 125px; width: 300px;"><p><strong>Get stuff done with Google Drive</strong></p><p>Apps in Google Drive make it easy to create, store and share online documents, spreadsheets, presentations and more.</p><p>Learn more at <a href="https://drive.google.com/start/apps">drive.google.com/start/apps</a>.</p></div></div></div></div></body><style nonce="BL3vN8_T-TbvktZUa8A9Ug">html {height: 100%; overflow: auto;}body {height: 100%; overflow: auto;}#outerContainer {margin: auto; max-width: 750px;}#innerContainer {margin-bottom: 20px; margin-left: 40px; margin-right: 40px; margin-top: 80px; position: relative;}</style></html>
Your Google Sheet needs to be shared publicly to allow server-side reading.
In Google Sheets: Share → Anyone with the link → Viewer → Done
Next Steps
2 test(s) failed. Review the results above and fix before building.
Share a screenshot of this page for help diagnosing issues.
⚠️ DELETE test.php from your server after testing — it exposes server configuration · SPAR · spar.aw.sg