Coder Social home page Coder Social logo

neweracracker / eaccelerator Goto Github PK

View Code? Open in Web Editor NEW

This project forked from eaccelerator/eaccelerator

7.0 5.0 2.0 1.26 MB

eAccelerator is a free open source opcode cache for PHP. Compatible with PHP 5.1 up to PHP 5.5.

Home Page: https://bitbucket.org/NewEraCracker/eaccelerator

License: GNU General Public License v2.0

GLSL 0.17% PHP 13.69% C 84.53% C++ 1.62%
php php-extension c

eaccelerator's Introduction

eAccelerator for PHP Build Status

What is eAccelerator?

eAccelerator is a free and open source accelerator for PHP. It increases the performance of PHP scripts by caching them in compiled state, so the overhead of compiling is almost completely eliminated.

eAccelerator typically reduces server load and increases the speed of your PHP code by 1-10 times.

eAccelerator is a fork of TurckMMCache ( http://sourceforge.net/projects/turck-mmcache/ by Dmitry Stogov )

eAccelerator stores compiled PHP scripts in shared memory and executes code directly from it. It creates locks only for short time, while searching compiled PHP script in the cache, so one script can be executed simultaneously by several engines. Files that can't fit in shared memory are cached on disk only.

eAccelerator is compatible with Zend Optimizer's loader. Zend Optimizer must be installed after eAccelerator in php.ini. If you don't use scripts encoded with Zend Encoder we do not recommend to install Zend Optimizer with eAccelerator.

eAccelerator does not work in CGI mode but it does work in FastCGI mode with webservers like lighttpd or using php-fpm.

Download

Latest eAccelerator versions can be downloaded at the sourceforge page: http://sourceforge.net/projects/eaccelerator/ Development snapshots from cvs can be downloaded at http://snapshots.eaccelerator.net

Requirements

  • apache >= 1.3, mod_php >= 5.1 or php with fastcgi support
  • autoconf, automake, libtool, m4

Compatibility

eAccelerator works with php version 5.1 and higher. It is being used on Linux, FreeBSD, Mac OS X, Solaris and Windows with Apache 1.3 and 2, lighttpd, php-fpm and IIS.

Quick install

You can find more information about the installation of eAccelerator on our website at http://www.eaccelerator.net/

Note(1): for Microsoft Windows installation, please refer to README.win32 file.

Step 1. Compiling eAccelerator

  export PHP_PREFIX="/usr"

  $PHP_PREFIX/bin/phpize

  ./configure \
  --enable-eaccelerator=shared \
  --with-php-config=$PHP_PREFIX/bin/php-config

  make

You must specify the real prefix where PHP is installed in the "export" command. It may be "/usr" "/usr/local", or something else.

Step 2. Installing eAccelerator

  make install

Step 3. Configuring eAccelerator

eAccelerator can be installed both as Zend or PHP extension.

For eaccelerator > 0.9.1, if you have /etc/php.d directory, you should copy eaccelerator.ini inside and modify default value if you need.

If not, you need to edit your php.ini file (usually /etc/php.ini).

To install as Zend extension:

  zend_extension="/usr/lib/php5/eaccelerator.so"
  eaccelerator.shm_size="16"
  eaccelerator.cache_dir="/tmp/eaccelerator"
  eaccelerator.enable="1"
  eaccelerator.check_mtime="1"
  eaccelerator.debug="0"
  eaccelerator.filter=""
  eaccelerator.shm_ttl="0"
  eaccelerator.shm_prune_period="0"
  eaccelerator.shm_only="0"

If you use thread safe build of PHP you must use "zend_extension_ts" instead of "zend_extension".

To install as PHP extension:

  extension="eaccelerator.so"
  eaccelerator.shm_size="16"
  eaccelerator.cache_dir="/tmp/eaccelerator"
  eaccelerator.enable="1"
  eaccelerator.check_mtime="1"
  eaccelerator.debug="0"
  eaccelerator.filter=""
  eaccelerator.shm_ttl="0"
  eaccelerator.shm_prune_period="0"
  eaccelerator.shm_only="0"

Step 4. Creating cache directory

  mkdir /tmp/eaccelerator
  chmod 0777 /tmp/eaccelerator

Configuration Options

eaccelerator.shm_size The amount of shared memory (in megabytes) that eAccelerator will use. "0" means OS default. Default value is "0".

eaccelerator.cache_dir The directory that is used for disk cache. eAccelerator stores precompiled code, session data, content and user entries here. The same data can be stored in shared memory also (for more quick access). Default value is "/tmp/eaccelerator".

eaccelerator.enable Enables or disables eAccelerator. Should be "1" for enabling or "0" for disabling. Default value is "1".

eaccelerator.debug Enables or disables debug logging. Should be "1" for enabling or "0" for disabling. Default value is "0".

eaccelerator.check_mtime Enables or disables PHP file modification checking . Should be "1" for enabling or "0" for disabling. You should set it to "1" if you want to recompile PHP files after modification. Default value is "1".

eaccelerator.filter Determine which PHP files must be cached. You may specify the number of patterns (for example "*.php *.phtml") which specifies to cache or not to cache. If pattern starts with the character "!", it means to ignore files which are matched by the following pattern. Default value is "" that means all PHP scripts will be cached.

eaccelerator.shm_ttl When eaccelerator fails to get shared memory for new script it removes all scripts which were not accessed at last "shm_ttl" seconds from shared memory. Default value is "0" that means - don't remove any files from shared memory.

eaccelerator.shm_prune_period When eaccelerator fails to get shared memory for new script it tryes to remove old script if the previous try was made more then "shm_prune_period" seconds ago. Default value is "0" that means - don't try to remove any files from shared memory.

eaccelerator.shm_only Enables or disables caching of compiled scripts on disk. It has no effect on session data and content caching. Default value is "0" that means - use disk and shared memory for caching.

eaccelerator.allowed_admin_path The script paths that are allowed to get admin information and do admin controls

Control panel and disassembler

If you want to use the control-panel you need to compile eAccelerator with --with-eaccelerator-info which is the default value. You need to copy the control.php file to your webroot and set the path to it in the php.ini or eaccelerator.ini in the eaccelerator.allowed_admin_path directive. If you don't do this you wont be able to see much information and can't control eAccelerator. You can set the username and password needed to access the control-panel in the control.php file. By default the username is administrator and the password is eAccelerator.

When you compile eAccelerator with --with-eaccelerator-disassembler you need to place the dasm.php and PHP_Highlight.php file also in the same directory as the control.php file. The disassembler requires PHP to be compiled with tokenizer support (--enable-tokenizer). You can set the username and password needed to access the disassembler at the top of dasm.php.

Contact us

You can contact us with questions, patches or bugs on GitHub https://github.com/eaccelerator/eaccelerator

eaccelerator's People

Contributors

bartv avatar ecanuto avatar hrak avatar llorephie avatar neweracracker avatar roywikan avatar tony2001 avatar woooha avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

eaccelerator's Issues

fnmatch.obj : error LNK2005: fnmatch already defined in fnmatch.obj

php 5.6.14 win x86_64 Microsoft Visual Studio 12.0

fnmatch.obj : error LNK2005: fnmatch уже определен в fnmatch.obj
libintl_a.lib(gettext.obj) : найден .netmodule MSIL или модуль, откомпилированный с параметром /GL; перезапускается компоновка с параметром /LTCG; добавьте /LTCG в командную строку компоновки для повы
шения производительности компоновщика
fnmatch.obj : error LNK2005: fnmatch уже определен в fnmatch.obj
   Создается библиотека x64\Release_TS\php5ts.lib и объект x64\Release_TS\php5ts.exp
x64\Release_TS\php5ts.dll : fatal error LNK1169: обнаружен многократно определенный символ - один или более
NMAKE : fatal error U1077: "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\amd64\cl.exe" : возвращенный код "0x2"
Stop.

fnmatch.obj : error LNK2005: fnmatch already defined in fnmatch.obj

Enabling the extension (PHP 5.5.9 - Ubuntu 14.04.2)

I recently migrated to PHP 5.5.9 (as part of an Ubuntu 14.04.2 migration). I followed the procedures I always used to get the eAccelerator on PHP 5.4. Using your 1.1-dev zip, followed the steps all the way to sudo make install. The .so is in the correct place, but the extension does not get activated. I use /etc/php5/conf.d/eaccelerator.ini.

I'm not sure what is wrong. Did something else change on PHP 5.5.9?

IS_CONSTANT_ARRAY -> IS_CONSTANT_AST

php 5.6.14 win x84_64

ext\eaccelerator\ea_restore.c(143) : error C2065: IS_CONSTANT_ARRAY: необъявленный идентификатор
ext\eaccelerator\ea_restore.c(143) : error C2051: значение выражения для варианта выбора не является константой
ext\eaccelerator\ea_restore.c(462) : error C2065: IS_CONSTANT_ARRAY: необъявленный идентификатор
ext\eaccelerator\ea_restore.c(462) : error C2051: значение выражения для варианта выбора не является константой

https://github.com/php/php-src/blob/82ecdcdb6352f851e351f70f19b85aff06de0e4b/UPGRADING.INTERNALS

l. Removal of IS_CONSTANT_ARRAY and IS_CONSTANT_INDEX hack

These two #defines disappeared. Instead we have now IS_CONSTANT_AST which
covers also the functionality IS_CONSTANT_ARRAY bid and furthermore the
hack for marking zvals as constant index with IS_CONSTANT_INDEX is now
superfluous and so removed.
Please note that IS_CONSTANT_AST now has the same value than
IS_CONSTANT_ARRAY had.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.