# opcache not working on windows

- Thread: https://externals.io/message/74225
- Original archive: https://news-web.php.net/php.internals/74225
- Started by Nicolai Scheer on 2014-05-15T13:15:29+00:00
- Messages: 8
- Reply by email to internals@lists.php.net
- More for agents: search with https://externals.io/search.md?q={query} · JSON API at https://externals.io/api · documentation at https://externals.io/llms.txt

---

## #74225 — Nicolai Scheer — 2014-05-15T13:15:29+00:00

URL: https://externals.io/message/74225#74225

Hi,

I'm currently testing opcache for php 5.5.12 on linux and windows. Both
platforms are used in conjunction with apache 2.2 and mod_fcgid + php-fcgi.

On linux opcache seems to work just fine, but on windows (Windows Server
2008, php NTS, VC11 binary) it does not seem to work.

If I dump the settings I get:

Array
(
    [directives] => Array
        (
            [opcache.enable] => 1
            [opcache.enable_cli] =>
            [opcache.use_cwd] => 1
            [opcache.validate_timestamps] => 1
            [opcache.inherited_hack] => 1
            [opcache.dups_fix] =>
            [opcache.revalidate_path] =>
            [opcache.log_verbosity_level] => 4
            [opcache.memory_consumption] => 67108864
            [opcache.interned_strings_buffer] => 8
            [opcache.max_accelerated_files] => 20000
            [opcache.max_wasted_percentage] => 0.05
            [opcache.consistency_checks] => 0
            [opcache.force_restart_timeout] => 180
            [opcache.revalidate_freq] => 2
            [opcache.preferred_memory_model] =>
            [opcache.blacklist_filename] =>
            [opcache.max_file_size] => 0
            [opcache.error_log] =>
            [opcache.protect_memory] =>
            [opcache.save_comments] => 1
            [opcache.load_comments] => 1
            [opcache.fast_shutdown] => 1
            [opcache.enable_file_override] =>
            [opcache.optimization_level] => 2147483647
        )

    [version] => Array
        (
            [version] => 7.0.4-dev
            [opcache_product_name] => Zend OPcache
        )

    [blacklist] => Array
        (
        )

)

But dumping the status shows that the cache is not enabled:


 Array
(
    [opcache_enabled] =>
    [cache_full] => 1
    [restart_pending] => 1
    [restart_in_progress] =>
    [memory_usage] => Array
        (
            [used_memory] => 63439832
            [free_memory] => 48
            [wasted_memory] => 3668984
            [current_wasted_percentage] => 5.4672122001648
        )

    [interned_strings_usage] => Array
        (
            [buffer_size] => 4194304
            [used_memory] => 2549912
            [free_memory] => 1644392
            [number_of_strings] => 83780
        )

    [opcache_statistics] => Array
        (
            [num_cached_scripts] => 328
            [num_cached_keys] => 700
            [max_cached_keys] => 32531
            [hits] => 221276
            [start_time] => 1397470295
            [last_restart_time] => 1397480294
            [oom_restarts] => 1
            [hash_restarts] => 0
            [manual_restarts] => 0
            [misses] => 3071052
            [blacklist_misses] => 0
            [blacklist_miss_ratio] => 0
            [opcache_hit_rate] => 6.7209585436202
        )

)

The phpinfo page also shows all opcache settings and lists "Opcode
Caching" as "Disabled".

Maybe I'm overseeing something here.

Any hints on what could be wrong?

Greetings

Nico

---

## #74232 — Matt Ficken — 2014-05-15T18:20:55+00:00

URL: https://externals.io/message/74225#74232 · In reply to: #74225

Which web server and PHP build are you using on Windows?

With Apache on Windows, you should be using the TS build of PHP. You said
you were using the NTS build, which is what you'd use with IIS.

Also, try setting `enable_cli=1`




On Thu, May 15, 2014 at 6:15 AM, Nicolai Scheer <nicolai.scheer@gmail.com>wrote:

> Hi,
>
> I'm currently testing opcache for php 5.5.12 on linux and windows. Both
> platforms are used in conjunction with apache 2.2 and mod_fcgid + php-fcgi.
>
> On linux opcache seems to work just fine, but on windows (Windows Server
> 2008, php NTS, VC11 binary) it does not seem to work.
>
> If I dump the settings I get:
>
> Array
> (
>     [directives] => Array
>         (
>             [opcache.enable] => 1
>             [opcache.enable_cli] =>
>             [opcache.use_cwd] => 1
>             [opcache.validate_timestamps] => 1
>             [opcache.inherited_hack] => 1
>             [opcache.dups_fix] =>
>             [opcache.revalidate_path] =>
>             [opcache.log_verbosity_level] => 4
>             [opcache.memory_consumption] => 67108864
>             [opcache.interned_strings_buffer] => 8
>             [opcache.max_accelerated_files] => 20000
>             [opcache.max_wasted_percentage] => 0.05
>             [opcache.consistency_checks] => 0
>             [opcache.force_restart_timeout] => 180
>             [opcache.revalidate_freq] => 2
>             [opcache.preferred_memory_model] =>
>             [opcache.blacklist_filename] =>
>             [opcache.max_file_size] => 0
>             [opcache.error_log] =>
>             [opcache.protect_memory] =>
>             [opcache.save_comments] => 1
>             [opcache.load_comments] => 1
>             [opcache.fast_shutdown] => 1
>             [opcache.enable_file_override] =>
>             [opcache.optimization_level] => 2147483647
>         )
>
>     [version] => Array
>         (
>             [version] => 7.0.4-dev
>             [opcache_product_name] => Zend OPcache
>         )
>
>     [blacklist] => Array
>         (
>         )
>
> )
>
> But dumping the status shows that the cache is not enabled:
>
>
>  Array
> (
>     [opcache_enabled] =>
>     [cache_full] => 1
>     [restart_pending] => 1
>     [restart_in_progress] =>
>     [memory_usage] => Array
>         (
>             [used_memory] => 63439832
>             [free_memory] => 48
>             [wasted_memory] => 3668984
>             [current_wasted_percentage] => 5.4672122001648
>         )
>
>     [interned_strings_usage] => Array
>         (
>             [buffer_size] => 4194304
>             [used_memory] => 2549912
>             [free_memory] => 1644392
>             [number_of_strings] => 83780
>         )
>
>     [opcache_statistics] => Array
>         (
>             [num_cached_scripts] => 328
>             [num_cached_keys] => 700
>             [max_cached_keys] => 32531
>             [hits] => 221276
>             [start_time] => 1397470295
>             [last_restart_time] => 1397480294
>             [oom_restarts] => 1
>             [hash_restarts] => 0
>             [manual_restarts] => 0
>             [misses] => 3071052
>             [blacklist_misses] => 0
>             [blacklist_miss_ratio] => 0
>             [opcache_hit_rate] => 6.7209585436202
>         )
>
> )
>
> The phpinfo page also shows all opcache settings and lists "Opcode
> Caching" as "Disabled".
>
> Maybe I'm overseeing something here.
>
> Any hints on what could be wrong?
>
> Greetings
>
> Nico

---

## #74249 — Bruno CHALOPIN — 2014-05-16T06:26:23+00:00

URL: https://externals.io/message/74225#74249 · In reply to: #74232

Hi,

He's using fcgi on windows too so NTS is more than fine


2014-05-15 20:20 GMT+02:00 Matt Ficken <themattficken@gmail.com>:

> Which web server and PHP build are you using on Windows?
>
> With Apache on Windows, you should be using the TS build of PHP. You said
> you were using the NTS build, which is what you'd use with IIS.
>
> Also, try setting `enable_cli=1`
>
>
>
>
> On Thu, May 15, 2014 at 6:15 AM, Nicolai Scheer <nicolai.scheer@gmail.com
> > […]
>
> > […]
> php-fcgi.
> > […]

---

## #74252 — Nicolai Scheer — 2014-05-16T07:54:00+00:00

URL: https://externals.io/message/74225#74252 · In reply to: #74232

Hi,

thanks for your quick response.

I'm using apache 2.2.32 (win32) with mod_fcgid 2.3.7. On top of that I'm
using stock PHP-5.5.11 (wrong version in my last mail) NTS VC11 as fastcgi.

I enabled opcache for cli, and the same script seems to work when run from
command line:

Array
(
    [directives] => Array
        (
            [opcache.enable] => 1
            [opcache.enable_cli] => 1
            [opcache.use_cwd] => 1
            [opcache.validate_timestamps] => 1
            [opcache.inherited_hack] => 1
            [opcache.dups_fix] =>
            [opcache.revalidate_path] =>
            [opcache.log_verbosity_level] => 4
            [opcache.memory_consumption] => 67108864
            [opcache.interned_strings_buffer] => 8
            [opcache.max_accelerated_files] => 20000
            [opcache.max_wasted_percentage] => 0.05
            [opcache.consistency_checks] => 0
            [opcache.force_restart_timeout] => 180
            [opcache.revalidate_freq] => 2
            [opcache.preferred_memory_model] =>
            [opcache.blacklist_filename] =>
            [opcache.max_file_size] => 0
            [opcache.error_log] =>
X:\users\common\var\log\php\php_opcache_errors.log
            [opcache.protect_memory] =>
            [opcache.save_comments] => 1
            [opcache.load_comments] => 1
            [opcache.fast_shutdown] => 1
            [opcache.enable_file_override] =>
            [opcache.optimization_level] => 2147483647
        )

    [version] => Array
        (
            [version] => 7.0.4-dev
            [opcache_product_name] => Zend OPcache
        )

    [blacklist] => Array
        (
        )

)
Array
(
    [opcache_enabled] => 1
    [cache_full] =>
    [restart_pending] =>
    [restart_in_progress] =>
    [memory_usage] => Array
        (
            [used_memory] => 18008464
            [free_memory] => 49100400
            [wasted_memory] => 0
            [current_wasted_percentage] => 0
        )

    [interned_strings_usage] => Array
        (
            [buffer_size] => 8388608
            [used_memory] => 373344
            [free_memory] => 8015264
            [number_of_strings] => 6652
        )

    [opcache_statistics] => Array
        (
            [num_cached_scripts] => 2
            [num_cached_keys] => 3
            [max_cached_keys] => 32531
            [hits] => 0
            [start_time] => 1400226468
            [last_restart_time] => 0
            [oom_restarts] => 0
            [hash_restarts] => 0
            [manual_restarts] => 0
            [misses] => 2
            [blacklist_misses] => 0
            [blacklist_miss_ratio] => 0
            [opcache_hit_rate] => 0
        )

    [scripts] => Array
        (

[X:\users\scheer.nicolai\htdocs\branches\opcode\object.class.inc.php] =>
Array
                (
                    [full_path] =>
X:\users\scheer.nicolai\htdocs\branches\opcode\object.class.inc.php
                    [hits] => 0
                    [memory_consumption] => 6608256
                    [last_used] => Fri May 16 09:47:48 2014
                    [last_used_timestamp] => 1400226468
                    [timestamp] => 1400154713
                )

            [X:\users\scheer.nicolai\htdocs\branches\opcode\opcode.php] =>
Array
                (
                    [full_path] =>
X:\users\scheer.nicolai\htdocs\branches\gemse_current_release\htdocs\wwwroot\__test\opcode\opcode.php
                    [hits] => 0
                    [memory_consumption] => 1832
                    [last_used] => Fri May 16 09:47:48 2014
                    [last_used_timestamp] => 1400226468
                    [timestamp] => 1400166861
                )

        )

)

Here, "opcache_enabled" from the status is 1 and obviously my test class
gets cached. Of course I need opcache support for the web...

To my mind, using fastcgi, the web server should not play any role in that
problem, but I might be wrong here.

Greetings

Nico





> Which web server and PHP build are you using on Windows?
>
> With Apache on Windows, you should be using the TS build of PHP. You said
> you were using the NTS build, which is what you'd use with IIS.
>
> Also, try setting `enable_cli=1`
>
>
>
>
> On Thu, May 15, 2014 at 6:15 AM, Nicolai Scheer <nicolai.scheer@gmail.com>wrote:
>
> > […]

---

## #74253 — Nicolai Scheer — 2014-05-16T08:01:34+00:00

URL: https://externals.io/message/74225#74253 · In reply to: #74252

Hi again,

seems that I've narrowed it down a bit.
Since fastcgi should just run php-cgi.exe I tried to run php-cgi.exe myself
from the command line.

So I fetched myself the phpinfo stuff in two ways:

php.exe -i > cli.txt
php-cgi.exe -i > cgi.htm

Both files report the opcache as "Up and running". Since apache runs as
local system account it might have something to do with not being able to
create the shared memory realm? But usually the local system account is as
powerful as it gets... I'll try to run it as a different user...


Greetings

Nico






> Hi,
>
> thanks for your quick response.
>
> I'm using apache 2.2.32 (win32) with mod_fcgid 2.3.7. On top of that I'm
> using stock PHP-5.5.11 (wrong version in my last mail) NTS VC11 as fastcgi.
>
> I enabled opcache for cli, and the same script seems to work when run from
> command line:
>
>
> Array
> (
>     [directives] => Array
>         (
>             [opcache.enable] => 1
>             [opcache.enable_cli] => 1
>
>             [opcache.use_cwd] => 1
>             [opcache.validate_timestamps] => 1
>             [opcache.inherited_hack] => 1
>             [opcache.dups_fix] =>
>             [opcache.revalidate_path] =>
>             [opcache.log_verbosity_level] => 4
>             [opcache.memory_consumption] => 67108864
>             [opcache.interned_strings_buffer] => 8
>             [opcache.max_accelerated_files] => 20000
>             [opcache.max_wasted_percentage] => 0.05
>             [opcache.consistency_checks] => 0
>             [opcache.force_restart_timeout] => 180
>             [opcache.revalidate_freq] => 2
>             [opcache.preferred_memory_model] =>
>             [opcache.blacklist_filename] =>
>             [opcache.max_file_size] => 0
>             [opcache.error_log] =>
> X:\users\common\var\log\php\php_opcache_errors.log
>
>             [opcache.protect_memory] =>
>             [opcache.save_comments] => 1
>             [opcache.load_comments] => 1
>             [opcache.fast_shutdown] => 1
>             [opcache.enable_file_override] =>
>             [opcache.optimization_level] => 2147483647
>         )
>
>     [version] => Array
>         (
>             [version] => 7.0.4-dev
>             [opcache_product_name] => Zend OPcache
>         )
>
>     [blacklist] => Array
>         (
>         )
>
> )
> Array
> (
>     [opcache_enabled] => 1
>     [cache_full] =>
>     [restart_pending] =>
>
>     [restart_in_progress] =>
>     [memory_usage] => Array
>         (
>             [used_memory] => 18008464
>             [free_memory] => 49100400
>             [wasted_memory] => 0
>             [current_wasted_percentage] => 0
>
>         )
>
>     [interned_strings_usage] => Array
>         (
>             [buffer_size] => 8388608
>             [used_memory] => 373344
>             [free_memory] => 8015264
>             [number_of_strings] => 6652
>
>         )
>
>     [opcache_statistics] => Array
>         (
>             [num_cached_scripts] => 2
>             [num_cached_keys] => 3
>             [max_cached_keys] => 32531
>             [hits] => 0
>             [start_time] => 1400226468
>             [last_restart_time] => 0
>
>             [oom_restarts] => 0
>             [hash_restarts] => 0
>             [manual_restarts] => 0
>             [misses] => 2
>
>             [blacklist_misses] => 0
>             [blacklist_miss_ratio] => 0
>             [opcache_hit_rate] => 0
>         )
>
>     [scripts] => Array
>         (
>
> [X:\users\scheer.nicolai\htdocs\branches\opcode\object.class.inc.php] =>
> Array
>                 (
>                     [full_path] =>
> X:\users\scheer.nicolai\htdocs\branches\opcode\object.class.inc.php
>                     [hits] => 0
>                     [memory_consumption] => 6608256
>                     [last_used] => Fri May 16 09:47:48 2014
>                     [last_used_timestamp] => 1400226468
>                     [timestamp] => 1400154713
>                 )
>
>             [X:\users\scheer.nicolai\htdocs\branches\opcode\opcode.php] =>
> Array
>                 (
>                     [full_path] =>
> X:\users\scheer.nicolai\htdocs\branches\gemse_current_release\htdocs\wwwroot\__test\opcode\opcode.php
>                     [hits] => 0
>                     [memory_consumption] => 1832
>                     [last_used] => Fri May 16 09:47:48 2014
>                     [last_used_timestamp] => 1400226468
>                     [timestamp] => 1400166861
>                 )
>
>         )
>
> )
>
> Here, "opcache_enabled" from the status is 1 and obviously my test class
> gets cached. Of course I need opcache support for the web...
>
> To my mind, using fastcgi, the web server should not play any role in that
> problem, but I might be wrong here.
>
> Greetings
>
> Nico
>
>
>
> 
>
> > […]

---

## #74255 — Nicolai Scheer — 2014-05-16T08:45:01+00:00

URL: https://externals.io/message/74225#74255 · In reply to: #74253

Hi again,



> Hi again,
>
> seems that I've narrowed it down a bit.
> Since fastcgi should just run php-cgi.exe I tried to run php-cgi.exe
> myself from the command line.
>
> So I fetched myself the phpinfo stuff in two ways:
>
> php.exe -i > cli.txt
> php-cgi.exe -i > cgi.htm
>
> Both files report the opcache as "Up and running". Since apache runs as
> local system account it might have something to do with not being able to
> create the shared memory realm? But usually the local system account is as
> powerful as it gets... I'll try to run it as a different user...
>
>
> Greetings
>
> Nico
>

opcache runs fine when apache service is started as a local admin user. It
does not work when running as local system account.

Still no idea why there is a difference... Any suggestions appreciated...

Thanks and greetings

Nico

---

## #74257 — Pierre Joye — 2014-05-16T08:59:48+00:00

URL: https://externals.io/message/74225#74257 · In reply to: #74255

On Fri, May 16, 2014 at 10:45 AM, Nicolai Scheer
<nicolai.scheer@gmail.com> wrote:
> Hi again,
>
> 
>
> > […]
>
> opcache runs fine when apache service is started as a local admin user. It
> does not work when running as local system account.
>
> Still no idea why there is a difference... Any suggestions appreciated...

It tells me that your local user does not have the permission to
create the necessary mapped file.

Cheers,
-- 
Pierre

@pierrejoye | http://www.libgd.org

---

## #74262 — Nicolai Scheer — 2014-05-16T13:57:56+00:00

URL: https://externals.io/message/74225#74262 · In reply to: #74257

Hi Pierre,



> On Fri, May 16, 2014 at 10:45 AM, Nicolai Scheer
> <nicolai.scheer@gmail.com> wrote:
> > […]
> to
> > […]
> as
> > […]
> It
> > […]
>
> It tells me that your local user does not have the permission to
> create the necessary mapped file.
>

Well, it works with a local admin user. It does not work when running the
service as local system account (i.e. local system account selected for
"log on as").
I don't see why the local system account (which usually can do just
anything) should not be able to create the mapped file...

Greetings

Nico
