[Bug]: Windows Smart App Control blocks Herd PHP 8.4/8.5 unsigned DLLs
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 30/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- php
- Domain
- operating-systems, security
Research direction
Start by reproducing the failure with Smart App Control enabled and inspect Windows Event Viewer’s CodeIntegrity Operational log, especially Event ID 3077. Check the Herd PHP executable and extension DLLs under .config\herd\bin\php84 and the corresponding PHP 8.5 path; done means the reported extensions load without requiring Smart App Control to be disabled.
Written by the indexing model from the issue text.
Description
Platform
Windows
Operating system version
Windows 11 25H2
System architecture
Windows
Herd Version
1.30.0
PHP Version
No response
Bug description
When Windows 11 Smart App Control is enabled, PHP installed through Laravel Herd fails to load its extensions because Windows Code Integrity blocks the PHP DLLs.
This affects both PHP 8.4 and PHP 8.5, so it does not appear to be specific to PHP 8.5.
Environment
Windows 11 25H2
Laravel Herd for Windows
PHP 8.4 and PHP 8.5
Smart App Control: Enabled
Symptoms
Running PHP produces errors such as:
PHP Warning: PHP Startup: Unable to load dynamic library 'gd'
(tried: ext\gd (The specified module could not be found),
ext\php_gd.dll (An Application Control policy has blocked this file))
The same occurs with multiple extensions, including:
php_bz2.dll
php_fileinfo.dll
php_gd.dll
php_intl.dll
php_mbstring.dll
php_mysqli.dll
php_openssl.dll
php_pgsql.dll
php_soap.dll
php_sockets.dll
The PHP executable itself starts successfully and reports the expected PHP version.
Disabling Windows Smart App Control immediately resolves the problem.
Code Integrity evidence
Windows Event Viewer → Applications and Services Logs → Microsoft → Windows → CodeIntegrity → Operational reports Event ID 3077.
For example:
Code Integrity determined that a process
(\Device\HarddiskVolume3\Users...\ .config\herd\bin\php84\php-cgi.exe)
attempted to load
\Device\HarddiskVolume3\Users...\ .config\herd\bin\php84\ext\php_gmp.dll
that did not meet the Enterprise signing level requirements
or violated code integrity policy
(Policy ID:{0283AC0F-FFF1-49AE-ADA1-8A933130CAD6}).
The same policy blocks multiple other PHP extensions, including php_mbstring.dll, php_fileinfo.dll, php_ffi.dll, php_opcache.dll, php_zip.dll, php_sqlite3.dll, php_sodium.dll, php_soap.dll, and php_pgsql.dll.
The Herd PHP executable and extension DLLs are not Authenticode-signed.
Expected behavior
Herd's PHP installation should work with Windows Smart App Control enabled, without requiring users to disable a Windows security feature.
Additional information
The issue also occurs with PHP 8.4, not only PHP 8.5. This suggests that the problem may be related to the signing/reputation of Herd's PHP binaries and extensions rather than a PHP 8.5-specific issue.
Disabling Smart App Control allows PHP and all of the extensions to load normally.
Could you please investigate whether Herd's Windows PHP binaries/extensions can be signed or otherwise made compatible with Windows Smart App Control?
- Dominant language
- No language data
- Stars
- 123
- Forks
- 1
- PR merge metrics
- No merged PRs in 30d
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from beyondcode/herd-community
-
[Bug]: PHP 8.3 php.ini missing auto_prepend_file and herd-ext extension lines (dump() undefined)OpenmacOS
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
beyondcode/herd-community#1693 ·
-
macOS
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
beyondcode/herd-community#1602 ·
-
macOS
Difficulty 3/5 1-2 days Newbie friendliness 58/100
beyondcode/herd-community#1760 ·
-
macOS
Difficulty 4/5 3-5 days Newbie friendliness 25/100
beyondcode/herd-community#1758 ·
-
macOS
Difficulty 4/5 3-5 days Newbie friendliness 35/100
beyondcode/herd-community#1755 ·
All issues in beyondcode/herd-community
Similar issues
-
A SKILL.md larger than max_skill_size is read whole through the mountPossibly taken @Frun1na claimed this today. Opencomponent:skillfs
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
agentic-os-org/ANOLISA#6060 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
apple/swift-system#400 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
intel/intel-lpmd#137 ·
Maintainers usually reply within 1 day
-
systemd-binfmt exits 1 when the binfmt_misc flush fails, even though all rules register successfullyPossibly taken @turbcool claimed this today. Openbinfmt
Difficulty 2/5 1-3 hours Newbie friendliness 80/100
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 75/100