1 /* (c) 2007,2008 Andrei Nigmatulin */ 2 3 #ifndef FPM_CONF_H 4 #define FPM_CONF_H 1 5 6 #include <stdint.h> 7 #include "php.h" 8 9 #define PM2STR(a) (a == PM_STYLE_STATIC ? "static" : (a == PM_STYLE_DYNAMIC ? "dynamic" : "ondemand")) 10 11 #define FPM_CONF_MAX_PONG_LENGTH 64 12 13 struct key_value_s; 14 15 struct key_value_s { 16 struct key_value_s *next; 17 char *key; 18 char *value; 19 }; 20 21 /* 22 * Please keep the same order as in fpm_conf.c and in php-fpm.conf.in 23 */ 24 struct fpm_global_config_s { 25 char *pid_file; 26 char *error_log; 27 #ifdef HAVE_SYSLOG_H 28 char *syslog_ident; 29 int syslog_facility; 30 #endif 31 int log_level; 32 int log_limit; 33 int log_buffering; 34 int emergency_restart_threshold; 35 int emergency_restart_interval; 36 int process_control_timeout; 37 int process_max; 38 int process_priority; 39 int daemonize; 40 int rlimit_files; 41 int rlimit_core; 42 char *events_mechanism; 43 #ifdef HAVE_SYSTEMD 44 int systemd_watchdog; 45 int systemd_interval; 46 #endif 47 }; 48 49 extern struct fpm_global_config_s fpm_global_config; 50 51 /* 52 * Please keep the same order as in fpm_conf.c and in php-fpm.conf.in 53 */ 54 struct fpm_worker_pool_config_s { 55 char *name; 56 char *prefix; 57 char *user; 58 char *group; 59 char *listen_address; 60 int listen_backlog; 61 /* Using chown */ 62 char *listen_owner; 63 char *listen_group; 64 char *listen_mode; 65 char *listen_allowed_clients; 66 int process_priority; 67 int process_dumpable; 68 int pm; 69 int pm_max_children; 70 int pm_start_servers; 71 int pm_min_spare_servers; 72 int pm_max_spare_servers; 73 int pm_max_spawn_rate; 74 int pm_process_idle_timeout; 75 int pm_max_requests; 76 char *pm_status_path; 77 char *pm_status_listen; 78 char *ping_path; 79 char *ping_response; 80 char *access_log; 81 char *access_format; 82 char *slowlog; 83 int request_slowlog_timeout; 84 int request_slowlog_trace_depth; 85 int request_terminate_timeout; 86 int request_terminate_timeout_track_finished; 87 int rlimit_files; 88 int rlimit_core; 89 char *chroot; 90 char *chdir; 91 int catch_workers_output; 92 int decorate_workers_output; 93 int clear_env; 94 char *security_limit_extensions; 95 struct key_value_s *env; 96 struct key_value_s *php_admin_values; 97 struct key_value_s *php_values; 98 #ifdef HAVE_APPARMOR 99 char *apparmor_hat; 100 #endif 101 #ifdef HAVE_FPM_ACL 102 /* Using Posix ACL */ 103 char *listen_acl_users; 104 char *listen_acl_groups; 105 #endif 106 }; 107 108 struct ini_value_parser_s { 109 char *name; 110 char *(*parser)(zval *, void **, intptr_t); 111 intptr_t offset; 112 }; 113 114 enum { 115 PM_STYLE_STATIC = 1, 116 PM_STYLE_DYNAMIC = 2, 117 PM_STYLE_ONDEMAND = 3 118 }; 119 120 int fpm_conf_init_main(int test_conf, int force_daemon); 121 int fpm_worker_pool_config_free(struct fpm_worker_pool_config_s *wpc); 122 int fpm_conf_write_pid(void); 123 int fpm_conf_unlink_pid(void); 124 125 #endif 126