Are you facing the error, PHP has encountered an Access Violation?
This guide is for you.
PHP has encountered an Access Violation error might be as a result of Database inconsistency which can occur if you move a database, table, application or some other object by using operating system commands rather than the supported Ingres utilities.
Here, A database file can become corrupted from hardware or software failures of various kinds.
Basically, it is regarded as a critical system issue, Access violation error may cause total system corruption or even loss of data.
In this context, we shall look into how to fix the error, PHP has encountered an Access Violation.
Nature of PHP has encountered an Access Violation
Recently, one of our customers came across an error message in the Windows server with the Plesk control panel:
PHP has encountered an Access Violation at xxxxxxxx
The major causes of this error include:
1. Several DLL files in different folders with different versions.
2. If the server runs Windows, this probably relates to a memory leak in PHP or a PHP module.
3. Due to Eaccelerator extension from PHP.
4. Incorrect permissions of the temp folder.
5. ZendOptimizer does not work well with PHP.
6. Due to limits set in the application pool.
How to solve the error, PHP has encountered an Access Violation?
To begin, we copy the file libmysql.dll from C:\Program Files (x86)\SWsoft\Plesk\Additional\PleskPHP5 to C:\WINDOWS\system32.
Then we correct the PATH in environment variables.
We need to put the PHP path (C:\Php) at the beginning of the environment variable “Path”.
The incorrect one is as below:
Path = %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\Intel\DMIX;C:\Php;
On the other hand, the correct one looks like this:
Path = C:\Php;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\Intel\DMIX;
Then we can see that there is something that does not allow to access the resources.
It might be the maximum reach of the memory limit, might be the maximum limit of Inodes, or any bad piece of code which holds the memory.
In addition, it can occur due to the limits set in the application pool.
Moving ahead, we remove the eaccelerator extension from PHP.
This will solve the problem. However, it may add to the system’s burden because Eaccelerator is basically something that saves system resources.
We can find php.ini, usually in C:/PHP/php.ini or C:/winnt/php.ini or C:/Windows/php.ini.
Make sure that there are read, write and execute permissions for the folder C:/winnt/temp or C:/Windows/temp.
In the case of ZendOptimizer, we need to try another version.