mirror of
https://github.com/php/php-src.git
synced 2026-04-02 21:52:36 +02:00
Merge branch 'PHP-7.0'
* PHP-7.0: make opcache lockfile path configurable
This commit is contained in:
@@ -213,3 +213,6 @@ opcache.mmap_base
|
||||
processes have to map shared memory into the same address space. This
|
||||
directive allows to manually fix the "Unable to reattach to base address"
|
||||
errors.
|
||||
|
||||
opcache.lockfile_path (default "/tmp")
|
||||
Absolute path used to store shared lockfiles.
|
||||
|
||||
@@ -195,6 +195,7 @@ typedef struct _zend_accel_directives {
|
||||
zend_long max_file_size;
|
||||
zend_long interned_strings_buffer;
|
||||
char *restrict_api;
|
||||
char *lockfile_path;
|
||||
#ifdef HAVE_OPCACHE_FILE_CACHE
|
||||
char *file_cache;
|
||||
zend_bool file_cache_only;
|
||||
|
||||
@@ -299,6 +299,7 @@ ZEND_INI_BEGIN()
|
||||
STD_PHP_INI_BOOLEAN("opcache.enable_cli" , "0" , PHP_INI_SYSTEM, OnUpdateBool, accel_directives.enable_cli, zend_accel_globals, accel_globals)
|
||||
STD_PHP_INI_ENTRY("opcache.error_log" , "" , PHP_INI_SYSTEM, OnUpdateString, accel_directives.error_log, zend_accel_globals, accel_globals)
|
||||
STD_PHP_INI_ENTRY("opcache.restrict_api" , "" , PHP_INI_SYSTEM, OnUpdateString, accel_directives.restrict_api, zend_accel_globals, accel_globals)
|
||||
STD_PHP_INI_ENTRY("opcache.lockfile_path" , "/tmp" , PHP_INI_SYSTEM, OnUpdateString, accel_directives.lockfile_path, zend_accel_globals, accel_globals)
|
||||
|
||||
#ifdef ZEND_WIN32
|
||||
STD_PHP_INI_ENTRY("opcache.mmap_base", NULL, PHP_INI_SYSTEM, OnUpdateString, accel_directives.mmap_base, zend_accel_globals, accel_globals)
|
||||
@@ -711,6 +712,7 @@ static ZEND_FUNCTION(opcache_get_configuration)
|
||||
add_assoc_bool(&directives, "opcache.fast_shutdown", ZCG(accel_directives).fast_shutdown);
|
||||
add_assoc_bool(&directives, "opcache.enable_file_override", ZCG(accel_directives).file_override_enabled);
|
||||
add_assoc_long(&directives, "opcache.optimization_level", ZCG(accel_directives).optimization_level);
|
||||
add_assoc_string(&directives, "opcache.lockfile_path", STRING_NOT_NULL(ZCG(accel_directives).lockfile_path));
|
||||
|
||||
#ifdef HAVE_OPCACHE_FILE_CACHE
|
||||
add_assoc_string(&directives, "opcache.file_cache", ZCG(accel_directives).file_cache ? ZCG(accel_directives).file_cache : "");
|
||||
|
||||
@@ -38,7 +38,6 @@
|
||||
# include "sys/mman.h"
|
||||
#endif
|
||||
|
||||
#define TMP_DIR "/tmp"
|
||||
#define SEM_FILENAME_PREFIX ".ZendSem."
|
||||
#define S_H(s) g_shared_alloc_handler->s
|
||||
|
||||
@@ -55,7 +54,7 @@ zend_smm_shared_globals *smm_shared_globals;
|
||||
static MUTEX_T zts_lock;
|
||||
#endif
|
||||
int lock_file;
|
||||
static char lockfile_name[sizeof(TMP_DIR) + sizeof(SEM_FILENAME_PREFIX) + 8];
|
||||
static char lockfile_name[MAXPATHLEN];
|
||||
#endif
|
||||
|
||||
static const zend_shared_memory_handler_entry handler_table[] = {
|
||||
@@ -75,7 +74,7 @@ static const zend_shared_memory_handler_entry handler_table[] = {
|
||||
};
|
||||
|
||||
#ifndef ZEND_WIN32
|
||||
void zend_shared_alloc_create_lock(void)
|
||||
void zend_shared_alloc_create_lock(char *lockfile_path)
|
||||
{
|
||||
int val;
|
||||
|
||||
@@ -83,7 +82,7 @@ void zend_shared_alloc_create_lock(void)
|
||||
zts_lock = tsrm_mutex_alloc();
|
||||
#endif
|
||||
|
||||
sprintf(lockfile_name, "%s/%sXXXXXX", TMP_DIR, SEM_FILENAME_PREFIX);
|
||||
snprintf(lockfile_name, sizeof(lockfile_name), "%s/%sXXXXXX", lockfile_path, SEM_FILENAME_PREFIX);
|
||||
lock_file = mkstemp(lockfile_name);
|
||||
fchmod(lock_file, 0666);
|
||||
|
||||
@@ -163,7 +162,11 @@ int zend_shared_alloc_startup(size_t requested_size)
|
||||
smm_shared_globals = &tmp_shared_globals;
|
||||
ZSMMG(shared_free) = requested_size; /* goes to tmp_shared_globals.shared_free */
|
||||
|
||||
#ifndef ZEND_WIN32
|
||||
zend_shared_alloc_create_lock(ZCG(accel_directives).lockfile_path);
|
||||
#else
|
||||
zend_shared_alloc_create_lock();
|
||||
#endif
|
||||
|
||||
if (ZCG(accel_directives).memory_model && ZCG(accel_directives).memory_model[0]) {
|
||||
char *model = ZCG(accel_directives).memory_model;
|
||||
|
||||
Reference in New Issue
Block a user