Skip to main content

⚙️ PHP Server Setup and Operations

This configuration is recommended when distributing apps to unspecified users or when requiring higher security (authentication/rate limiting) and email integration.

📋 System Requirements

  • PHP 7.4 or higher
  • HTTPS environment required (SSL communication must be established)
  • SQLite3 support (most standard rental servers have this enabled)

🚀 Server Deployment

1. Export Scripts

Select Window > Logify-Unity > Export Server Script from Unity Editor menu and output the PHP file set to any location.

2. Upload to Server

Upload the output folder (e.g., logify-api) as-is to the server.

3. Run Setup

Access setup.php in browser. (e.g., https://yourdomain.com/logify-api/setup.php)

This script automatically performs the following:

  • Creates data storage directory (data/)
  • Sets appropriate permissions (chmod)
  • Generates .htaccess for security protection
  • Generates initial configuration file (config.php)

Setup Complete Screen

After Setup Completion

Be sure to save the Server URL displayed on screen. You'll use it in Unity settings. For security, we recommend manually deleting setup.php from the server after completion.


🛠️ Unity Setup

1. Select Service and Set URL

Open Window > Logify-Unity > Settings and select HTTP Feedback Service for Feedback Service.

  • Server Url: Enter the URL you saved earlier.

2. Enter Connection Information

  • Secret Generator: Click Open to open the generation window, then execute ①Generate.
  • ②Save the Shared Secret value as you'll need it for the next server configuration.
About Security

Executing Generate automatically generates obfuscated C++ code and C# Bridge code. This significantly reduces the risk of extracting the Webhook URL from the binary after build.

IL2CPP Build Recommended

To enable protection via C++ plugin, set Scripting Backend to [IL2CPP] in Unity's Build Settings before building.

  • iOS / Android (IL2CPP): Generated Native C++ Plugin is used, providing strong protection
  • Editor / Android (Mono): Automatically generated C# fallback code is used for compatibility

⚙️ Detailed Server Configuration

Immediately after setup completion, config.php has all notification features set to false (disabled) for safety. Testing will not receive notifications unless you complete the following steps.

Open config.php on the server and enter the Shared Secret generated on Unity side. Requests that don't match this will be rejected by the server.

2. Enable Services and Set Tokens

Change the enabled of services you want to use to true and enter necessary information. Refer to each guide below to obtain configuration information.

Configuration Example (config.php)

Enable Discord

return [
//1. [Required] Enter Shared Secret generated on Unity side
'shared_secret' => 't8Hz4KNqlmI7gXjj8SFvKsu7IwYpBLImrijN_CKieak',

'services' => [
'discord' => [
'enabled' => true, // Enable by changing to true
'webhook_url' => 'https://discord.com/api/webhooks/...' // Enter per guide
],
'slack' => [
'enabled' => false, // Change to true to use
'token' => '', // xoxb-...
'channel' => '' // C...
],
'email' => [
'enabled' => false, // Change to true to use
'to' => '',
'from' => '',
],
],
// ...
];

Checking Configuration File

When setup.php executes successfully, config.php is automatically generated in the directory.

If File Not Displayed

When using FTP clients (FileZilla, etc.), newly generated files may not appear in the list due to caching. Execute "Refresh" to verify.

If Cannot Edit or Overwrite

Depending on server environment, files generated by PHP scripts may have ownership set to "execution user (apache/www-data, etc.)", restricting FTP operations.

In that case, open the server's control panel (file browser) and change the target file's permissions to 644 before editing.

Applying Settings

After editing files, don't forget to save (upload) the changes. If not saved, settings won't apply and testing will fail.


🧪 Testing

Once setup is complete, test whether feedback is actually received.

  1. Run app following Testing Procedure.
  2. Submit from in-game Custom > Feedback tab.
  3. Success if notifications arrive at designated service (Discord/Slack/Email).

🛡️ Operations and Troubleshooting

1. Blocking Malicious Users (Blacklist)

To manually reject specific IP addresses or Reporter ID, add one per line to data/blacklist_???.txt.

2. Checking Access Reports

Access report.php to check current submission counts and block status. Add the secret_key generated in config.php to URL end.

  • URL example: https://yourdomain.com/logify-api/report.php?key=xxxx

Output summary is saved to data/__database_???.txt.

=== Logify Access Report (Generated: 2026-02-18 15:39:06) ===
Reporter ID | IP / Identifier (Full Hash) | Count | Last Request
---------------------------------------------------------------------------------------------------
d115e86e-ca84-4431-8781-06240224d72b | 888.50.222.281 | 1 | 2026-02-18 15:33:17

=== Auto Blocked Clients ===
Reporter ID | IP | Active | Blocked Until | Last Violation | Reason
----------------------------------------------------------------------------------------
...

3. Debug Logs

If submission fails or server error (500) occurs, check data/debug_???.log. Detailed stack traces are recorded.

4. Advanced Settings (Rate Limit / Auto Block)

Strengthen countermeasures against brute force attacks and continuous submissions by adjusting values in config.php.

  • rate_limit: Submission frequency per user (e.g., up to 3 times per hour).
  • auto_block: Automatically isolates users sending large volumes of violation requests in short periods for a set duration.