1
2
3
4
5 #ifndef FPM_CONF_H
6 #define FPM_CONF_H 1
7
8 #include <stdint.h>
9 #include "php.h"
10
11 #define PM2STR(a) (a == PM_STYLE_STATIC ? "static" : (a == PM_STYLE_DYNAMIC ? "dynamic" : "ondemand"))
12
13 #define FPM_CONF_MAX_PONG_LENGTH 64
14
15 struct key_value_s;
16
17 struct key_value_s {
18 struct key_value_s *next;
19 char *key;
20 char *value;
21 };
22
23
24
25
26 struct fpm_global_config_s {
27 char *pid_file;
28 char *error_log;
29 #ifdef HAVE_SYSLOG_H
30 char *syslog_ident;
31 int syslog_facility;
32 #endif
33 int log_level;
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
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
62 char *listen_owner;
63 char *listen_group;
64 char *listen_mode;
65 char *listen_allowed_clients;
66 int process_priority;
67 int pm;
68 int pm_max_children;
69 int pm_start_servers;
70 int pm_min_spare_servers;
71 int pm_max_spare_servers;
72 int pm_process_idle_timeout;
73 int pm_max_requests;
74 char *pm_status_path;
75 char *ping_path;
76 char *ping_response;
77 char *access_log;
78 char *access_format;
79 char *slowlog;
80 int request_slowlog_timeout;
81 int request_terminate_timeout;
82 int rlimit_files;
83 int rlimit_core;
84 char *chroot;
85 char *chdir;
86 int catch_workers_output;
87 int clear_env;
88 char *security_limit_extensions;
89 struct key_value_s *env;
90 struct key_value_s *php_admin_values;
91 struct key_value_s *php_values;
92 #ifdef HAVE_APPARMOR
93 char *apparmor_hat;
94 #endif
95 #ifdef HAVE_FPM_ACL
96
97 char *listen_acl_users;
98 char *listen_acl_groups;
99 #endif
100 };
101
102 struct ini_value_parser_s {
103 char *name;
104 char *(*parser)(zval *, void **, intptr_t);
105 intptr_t offset;
106 };
107
108 enum {
109 PM_STYLE_STATIC = 1,
110 PM_STYLE_DYNAMIC = 2,
111 PM_STYLE_ONDEMAND = 3
112 };
113
114 int fpm_conf_init_main(int test_conf, int force_daemon);
115 int fpm_worker_pool_config_free(struct fpm_worker_pool_config_s *wpc);
116 int fpm_conf_write_pid();
117 int fpm_conf_unlink_pid();
118
119 #endif
120