1a. Go to your php.ini file usually located in C:/xampp/php/php.ini
find this line:
Code:
;extension=php_memcache.dll
replace with
Code:
extension=php_memcache.dll
1b. If you cannot find this line simply add the following line to below where all the ;extension= lines.
Code:
extension=php_memcache.dll
2. Add the following to just below the new line
Code:
- [Memcache]
- memcache.allow_failover = 1
- memcache.max_failover_attempts=20
- memcache.chunk_size =8192
- memcache.default_port = 11211
3. Download the necessary php_memecache.dll file from the following location.
Attention
For windows 7 I used the following file:
4. Unzip the php_memcache.dll file and put it into your php ext folder. Usually C:/xampp/php/ext/
5. Download memcached for windows here (make sure it’s the win32 binary):
6. Unzip and put the memcache.exe file into a desired directory (e.g. c:/memcached/)
7. Open command line in Windows Administrator Mode.
Click start, type in ‘Search programs and Files’ box, wait for the program cmd.exe to appear, right hand click on the icon and select run as administrator
8. Install the memcache service
Type the following into the command line
Code:
c:\memcached\memcached.exe -d install
If you dont get any errors it means it’s worked.
9. Start memcached
Type the following into the command line
Code:
- c:\memcached\memcached.exe -d start, or net start “memcached Server”
10. Restart Xampp Apache
11. Test Memcache
Create a php file and paste the following code. Then go to the page. If you do not see any errors then it has worked.
PHP Code:
<?php
$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ("Could not connect");
$version = $memcache->getVersion();
echo "Server's version: ".$version."<br/>\n";
$tmp_object = new stdClass;
$tmp_object->str_attr = 'test';
$tmp_object->int_attr = 123;
$memcache->set('key', $tmp_object, false, 10) or die ("Failed to save data at the server");
echo "Store data in the cache (data will expire in 10 seconds) <br/>\n";
$get_result = $memcache->get('key');
echo "Data from the cache:<br/>\n";
var_dump($get_result);
?>
12. Just in case it doesn’t work: One other thing I did was to run the C:/memcached/memcached.exe file as administrator. This opens the ports on the windows firewall which might solve some problems.
You can verify if memcached is running by executing this in the command line:
Code:
wmic process get description, executablepath | findstr memcached.exe
- You should see a result list showing memcached.exe and its full path.
SUPER EASY WAY
Easiest way to tell if memache is running... Check task manager services tab, if its runing it will be listed, if its not, well....then it's not.
I have included both files here to save so time and headaches
~Enjoy