fpm_init
2015-11-04 14:23:07 0 举报
fpm_init是一个函数,用于初始化FPM(FastCGI Process Manager)进程管理器。FPM是一个PHP扩展,用于管理PHP脚本的生命周期,包括启动、停止和重启PHP进程。fpm_init函数通常在Nginx配置文件中使用,以便将请求传递给FPM进程处理。这个函数的主要参数是php-fpm配置文件的路径,以及一个回调函数,用于在初始化过程中执行自定义操作。当FPM进程成功启动时,回调函数会被调用,可以用于执行一些清理操作或记录日志。总之,fpm_init函数是配置Nginx与FPM集成的关键步骤,有助于提高PHP应用程序的性能和稳定性。
作者其他创作
大纲/内容
/* pm */if (wp-config-pm != PM_STYLE_STATIC && wp-config-pm != PM_STYLE_DYNAMIC && wp-config-pm != PM_STYLE_ONDEMAND) {
if (0 fpm_stdio_open_error_log(0))
struct fpm_worker_pool_config_s *config = wp-config;if (!fpm_event_support_edge_trigger()) {if (config-pm_process_idle_timeout listen_backlog listen_backlog = FPM_BACKLOG_DEFAULT;/* certainely useless but proper */config-pm_start_servers = 0;config-pm_min_spare_servers = 0;config-pm_max_spare_servers = 0;
struct fpm_event_module_s *fpm_event_poll_module()
fpm_pagesize = getpagesize();
enum fpm_address_domain fpm_sockets_domain_from_address(char *address)
if (fpm_globals.prefix && *fpm_globals.prefix) {if (!fpm_conf_is_dir(fpm_globals.prefix)) {
if (config-pm_min_spare_servers pm_max_spare_servers pm_min_spare_servers config-pm_max_children || config-pm_max_spare_servers config-pm_max_children) {if (config-pm_max_spare_servers pm_min_spare_servers) {if (config-pm_start_servers pm_start_servers = config-pm_min_spare_servers + ((config-pm_max_spare_servers - config-pm_min_spare_servers) / 2);} else if (config-pm_start_servers pm_min_spare_servers || config-pm_start_servers config-pm_max_spare_servers) {
/* security.limit_extensions */if (!wp-config-security_limit_extensions) {wp-config-security_limit_extensions = strdup(\".php .phar\");
static inline int fpm_use_error_log()
fpm_stdio_init_main()
struct fpm_event_module_s *fpm_event_devpoll_module()
return module ? module-support_edge_trigger : 0;
fpm_php_init_main()
struct fpm_event_module_s *fpm_event_port_module()
int fpm_php_init_main()
/* status */if (wp-config-pm_status_path && *wp-config-pm_status_path) {
/* alert if user is not set only if we are not root*/if (!wp-config-user && !geteuid()) {
/* ping */if (wp-config-ping_path && *wp-config-ping_path) {if (!wp-config-ping_response) {wp-config-ping_response = strdup(\"pong\");
void fpm_pctl_kill_all(int signo)
static int fpm_conf_process_all_pools()
#if HAVE_PORTreturn &port_module;#else return NULL;
{
int fpm_unix_init_main()
fpm_conf_post_process(force_daemon TSRMLS_CC)
fpm_conf_process_all_pools()
if (test_conf) {if (test_conf 1) {fpm_conf_dump();fpm_globals.test_successful = 1;
Y
if (0 fpm_systemd_conf())
if (wp && wp-config) {prefix = wp-config-prefix; /* if the wp prefix is not set */if (prefix == NULL) {prefix = fpm_globals.prefix;/* if the global prefix is not set */if (prefix == NULL) {prefix = default_prefix ? default_prefix : PHP_PREFIX;
if (wp-config-process_priority != 64 && (wp-config-process_priority config-process_priority 20)) {
fpm_event_pre_init(fpm_global_config.events_mechanism)
fpm_unix_init_main()
for (wp = fpm_worker_all_pools; wp; wp = wp-next) {if (0 fpm_log_write(wp-config-access_format TSRMLS_CC)) {
static int fpm_conf_post_process(int force_daemon TSRMLS_DC)
struct fpm_event_module_s *fpm_event_epoll_module()
PHP_FUNCTION(openlog);
#if HAVE_SELECT return &select_module;#else return NULL;
int zlog_set_fd(int new_fd)
int fpm_event_pre_init(char *machanism)
if (fpm_globals.config == NULL)
zlog_fd = new_fd;
int fd = open(\"/dev/null\
int zlog_set_level(int new_value)
int fpm_log_open(int reopen)
f (force_daemon = 0) {/* forced from command line options */fpm_global_config.daemonize = force_daemon;fpm_globals.log_level = fpm_global_config.log_level;zlog_set_level(fpm_globals.log_level);if (fpm_global_config.process_max 0) {if (fpm_global_config.process_priority != 64 && (fpm_global_config.process_priority 20)) {if (!fpm_global_config.error_log) {fpm_global_config.error_log = strdup(\"log/php-fpm.log\");
int fpm_event_support_edge_trigger()
#if HAVE_DEVPOLL return &devpoll_module;#else return NULL;
N
ret = fpm_conf_load_ini_file(fpm_globals.config TSRMLS_CC);
fpm_log_open(0)
if (!fpm_global_config.syslog_ident) {fpm_global_config.syslog_ident = strdup(\"php-fpm\
static inline void *fpm_array_push(struct fpm_array_s *a)
free(fpm_global_config.pid_file);free(fpm_global_config.error_log);free(fpm_global_config.events_mechanism);fpm_global_config.pid_file = 0;fpm_global_config.error_log = 0;#ifdef HAVE_SYSLOG_Hfree(fpm_global_config.syslog_ident);fpm_global_config.syslog_ident = 0;#endiffree(fpm_globals.config);
#if HAVE_EPOLLreturn &epoll_module;#else return NULL;
/** Return the module configuration*/ struct fpm_event_module_s *fpm_event_kqueue_module()
zlog_level = new_value;
int fpm_stdio_init_main()
int fpm_log_write(char *log_format TSRMLS_DC)
ret = (char *) a-data + a-sz * n; return ret;
int fpm_systemd_conf()
int fpm_conf_load_ini_file(char *filename TSRMLS_DC)
TSRMLS_FETCH();php_module_shutdown(TSRMLS_C);sapi_shutdown();
struct fpm_event_module_s *fpm_event_select_module()
#if HAVE_POLL return &poll_module;#else return NULL;
fpm_globals.argc = argc;fpm_globals.argv = argv;if (config && *config) {fpm_globals.config = strdup(config);} fpm_globals.prefix = prefix;fpm_globals.pid = pid;fpm_globals.run_as_root = run_as_root;fpm_globals.force_stderr = force_stderr;
static int fpm_conf_is_dir(char *path)
int fpm_stdio_open_error_log(int reopen)
if (fpm_globals.pid && *fpm_globals.pid) {fpm_global_config.pid_file = strdup(fpm_globals.pid);
struct cleanup_s *c;c = fpm_array_push(&cleanups);
fpm_globals.config = strdup(tmp); efree(tmp);
for (wp = fpm_worker_all_pools; wp; wp = wp-next) {
#if HAVE_KQUEUE return &kqueue_module; #else return NULL;
else if (wp-config-pm == PM_STYLE_ONDEMAND) {
c-type = type;c-cleanup = cleanup;c-arg = arg;
0 条评论
下一页