├── README.md
├── salt_configuration
├── README.md
├── _grains
│ └── squid.py
├── ais_app_webserver.sls
├── clear.sls
├── cron.sls
├── files
│ ├── ais_app_webserver
│ │ └── conf.d
│ │ │ └── monitor.conf
│ ├── city_webserver
│ │ ├── nginx.conf
│ │ └── php.ini
│ ├── files
│ │ ├── test1
│ │ ├── test2
│ │ └── test3
│ ├── my_webserver
│ │ └── conf.d
│ │ │ ├── monitor.conf
│ │ │ └── test.conf
│ ├── nginx
│ │ ├── fastcgi.conf
│ │ ├── nginx.conf
│ │ └── nginx.ini
│ ├── php
│ │ ├── pear.conf
│ │ ├── php-fpm.conf
│ │ └── php.ini
│ ├── python
│ │ ├── init-python.sh
│ │ ├── pip-2.7
│ │ ├── setuptools-1.4.2.tar.gz
│ │ └── virtualenv-2.7
│ ├── salt-minion
│ │ └── minion
│ ├── squid
│ │ ├── rm_cache_swap_log.sh
│ │ ├── root
│ │ ├── squid
│ │ ├── squid.conf
│ │ └── squid_log
│ ├── system
│ │ ├── limits.conf
│ │ ├── motd.sh
│ │ ├── resolv.conf
│ │ ├── sshd_config
│ │ ├── sudoers
│ │ ├── sysctl.conf
│ │ ├── syslog.conf
│ │ └── vimrc
│ └── zabbix
│ │ ├── nginx_status.conf
│ │ ├── nginx_status.sh
│ │ ├── php-fpm_status.conf
│ │ ├── php-fpm_status.sh
│ │ ├── squid_status.conf
│ │ ├── squid_status.sh
│ │ └── zabbix_agentd.conf
├── inc
│ ├── resolv.sls
│ ├── vim.sls
│ └── yum.sls
├── install.sls
├── mendian.sls
├── my_webserver.sls
├── nginx.sls
├── person.sls
├── php.sls
├── pillar
│ ├── pillar.sls
│ ├── schedule.sls
│ └── top.sls
├── python.sls
├── salt-minion.sls
├── squid.sls
├── system.sls
├── test.sls
├── top.sls
├── user.sls
├── virtualenv.sls
└── zabbix.sls
├── saltmaster配置文件选项说明.md
├── saltstack的安装与简单配置.md
├── salt匹配minion以及自定义用户组nodegroup.md
├── salt的grains使用以及cmd.run.md
├── salt的pillar定义以及使用.md
├── salt的state.sls的使用.md
├── test
├── 基于saltstack的grains和pillar自动化配置squid.md
└── 基于saltstack的webui的搭建使用halite.md
/README.md:
--------------------------------------------------------------------------------
1 | salt
2 | ====
3 |
4 | 这里主要整理saltstack运维自动化
5 |
6 | 记录下来saltstack研究中遇到的事情,方便以后查阅,也可以帮助又需要的人
7 |
8 |
9 |
10 | ==
11 |
12 | Here the main cleaning saltstack operations automation。
13 |
14 | Recorded saltstack encountered in the study for myself, and can also help people in need
15 |
--------------------------------------------------------------------------------
/salt_configuration/README.md:
--------------------------------------------------------------------------------
1 | #
2 | 新加模块测试不要用'*'去匹配全局,现在已经应用线上环境了
3 |
4 | 测试请用salt -L 'hostname' state.sls 模块
5 |
--------------------------------------------------------------------------------
/salt_configuration/_grains/squid.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | '''
4 | Module for squid disk information by python2.7.3
5 | '''
6 |
7 |
8 | import commands
9 | import os
10 |
11 | def cache():
12 | '''
13 | Return the cache usage information for volumes mounted on this minion
14 | '''
15 | grains={}
16 | m = commands.getoutput("free -g|awk '$0~/Mem/ {print$2+1}'")
17 | grains['cache_mem_size']=int(int(m)*(0.45))
18 |
19 | file = commands.getoutput("df -Th |awk '{print$7}'")
20 | cache = 'cache'
21 |
22 | if cache in file:
23 |
24 | a = commands.getoutput("df -Th |grep cache |awk 'NR==1 {print$3}' |sed 's/G//g'")
25 | b = int(int(a)*(0.9))
26 | if b >= 65:
27 | grains['cache_disk_size'] = 65*1024
28 | else:
29 | grains['cache_disk_size'] = int(b*1024)
30 | else:
31 | grains['cache_disk_size'] = 'The cache of partition does not exist'
32 |
33 | return grains
34 |
--------------------------------------------------------------------------------
/salt_configuration/ais_app_webserver.sls:
--------------------------------------------------------------------------------
1 | include:
2 | - nginx
3 | - php
4 |
5 | {{ pillar['ngx_conf_dir'] }}/conf.d:
6 | file.recurse:
7 | - source: salt://files/ais_app_webserver/conf.d
8 | - require:
9 | - pkg: nginx
10 | - watch_in:
11 | - service: nginx
12 |
--------------------------------------------------------------------------------
/salt_configuration/clear.sls:
--------------------------------------------------------------------------------
1 | puppet:
2 | pkg:
3 | - purged
4 |
5 | mcollective-common:
6 | pkg:
7 | - purged
8 |
--------------------------------------------------------------------------------
/salt_configuration/cron.sls:
--------------------------------------------------------------------------------
1 | date > /tmp/crontest:
2 | cron.present:
3 | - user: root
4 | - minute: '*/1'
5 |
--------------------------------------------------------------------------------
/salt_configuration/files/ais_app_webserver/conf.d/monitor.conf:
--------------------------------------------------------------------------------
1 | server {
2 | listen 40080;
3 | server_name _;
4 | allow 127.0.0.1;
5 | deny all;
6 | access_log off;
7 |
8 | location /php-fpm_status {
9 | fastcgi_pass unix:/dev/shm/php-fpm.sock;
10 | include fastcgi_params;
11 | fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
12 | }
13 |
14 | location /nginx_status {
15 | stub_status on;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/salt_configuration/files/city_webserver/nginx.conf:
--------------------------------------------------------------------------------
1 | user nginx;
2 | {% if grains['num_cpus'] < 8 %}
3 | worker_processes {{ grains['num_cpus'] }};
4 | {% else %}
5 | worker_processes 8;
6 | {% endif %}
7 | worker_rlimit_nofile 65535;
8 |
9 | error_log /var/log/nginx/error.log notice;
10 | pid /var/run/nginx.pid;
11 |
12 | events {
13 | use epoll;
14 | worker_connections 65535;
15 | }
16 |
17 |
18 | http {
19 | include /etc/nginx/mime.types;
20 | default_type appliacation/octet-stream;
21 |
22 | log_format main '$request_time $upstream_response_time $remote_addr - $upstream_addr [$time_local] '
23 | '$host "$request" $status $bytes_sent '
24 | '"$http_referer" "$http_user_agent" "$gzip_ratio" "$http_x_forwarded_for" - "$server_addr"';
25 |
26 | access_log /data1/logs/nginx/access.log main;
27 |
28 | server_names_hash_bucket_size 128;
29 |
30 | proxy_redirect off;
31 | proxy_set_header Host $host;
32 | proxy_set_header X-Real-IP $remote_addr;
33 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
34 | client_body_buffer_size 1024k;
35 | client_max_body_size 2m;
36 | proxy_connect_timeout 90;
37 | proxy_send_timeout 90;
38 | proxy_read_timeout 90;
39 | proxy_buffer_size 4k;
40 | proxy_buffers 4 32k;
41 | proxy_busy_buffers_size 64k;
42 | proxy_temp_file_write_size 100k;
43 |
44 | sendfile on;
45 | tcp_nopush on;
46 | tcp_nodelay on;
47 | server_tokens off;
48 | send_timeout 10;
49 | client_header_timeout 10;
50 | client_body_timeout 10;
51 |
52 | keepalive_timeout 65;
53 |
54 | fastcgi_connect_timeout 300;
55 | fastcgi_send_timeout 300;
56 | fastcgi_read_timeout 300;
57 | fastcgi_buffer_size 64k;
58 | fastcgi_buffers 8 64k;
59 | fastcgi_busy_buffers_size 128k;
60 | fastcgi_temp_file_write_size 128k;
61 | fastcgi_intercept_errors on;
62 |
63 | include conf.d/*.conf;
64 | }
65 |
--------------------------------------------------------------------------------
/salt_configuration/files/city_webserver/php.ini:
--------------------------------------------------------------------------------
1 | [PHP]
2 | engine = On
3 | short_open_tag = On
4 | asp_tags = Off
5 | precision = 14
6 | y2k_compliance = On
7 | output_buffering = 4096
8 | zlib.output_compression = Off
9 | implicit_flush = Off
10 | unserialize_callback_func =
11 | serialize_precision = 17
12 | allow_call_time_pass_reference = Off
13 | safe_mode = Off
14 | safe_mode_gid = Off
15 | safe_mode_include_dir =
16 | safe_mode_exec_dir =
17 | safe_mode_allowed_env_vars = PHP_
18 | safe_mode_protected_env_vars = LD_LIBRARY_PATH
19 | disable_functions =
20 | disable_classes =
21 | zend.enable_gc = On
22 | expose_php = Off
23 | max_execution_time = 30
24 | max_input_time = 60
25 | memory_limit = 128M
26 | error_reporting = E_ALL & ~E_NOTICE
27 | display_errors = Off
28 | display_startup_errors = Off
29 | log_errors = On
30 | log_errors_max_len = 1024
31 | ignore_repeated_errors = Off
32 | ignore_repeated_source = Off
33 | report_memleaks = On
34 | track_errors = Off
35 | html_errors = Off
36 | variables_order = "GPCS"
37 | request_order = "GP"
38 | register_globals = Off
39 | register_long_arrays = Off
40 | register_argc_argv = Off
41 | auto_globals_jit = On
42 | post_max_size = 8M
43 | magic_quotes_gpc = Off
44 | magic_quotes_runtime = Off
45 | magic_quotes_sybase = Off
46 | auto_prepend_file =
47 | auto_append_file =
48 | default_mimetype = "text/html"
49 | doc_root =
50 | user_dir =
51 | enable_dl = Off
52 | file_uploads = On
53 | upload_max_filesize = 2M
54 | max_file_uploads = 20
55 | allow_url_fopen = On
56 | allow_url_include = Off
57 | default_socket_timeout = 60
58 | [Date]
59 | date.timezone = Asia/Shanghai
60 | [filter]
61 | [iconv]
62 | [intl]
63 | [sqlite]
64 | [sqlite3]
65 | [Pcre]
66 | [Pdo]
67 | [Pdo_mysql]
68 | pdo_mysql.cache_size = 2000
69 | pdo_mysql.default_socket=
70 | [Phar]
71 | [Syslog]
72 | define_syslog_variables = Off
73 | [mail function]
74 | SMTP = localhost
75 | smtp_port = 25
76 | mail.add_x_header = On
77 | [SQL]
78 | sql.safe_mode = Off
79 | [ODBC]
80 | odbc.allow_persistent = On
81 | odbc.check_persistent = On
82 | odbc.max_persistent = -1
83 | odbc.max_links = -1
84 | odbc.defaultlrl = 4096
85 | odbc.defaultbinmode = 1
86 | [Interbase]
87 | ibase.allow_persistent = 1
88 | ibase.max_persistent = -1
89 | ibase.max_links = -1
90 | ibase.timestampformat = "%Y-%m-%d %H:%M:%S"
91 | ibase.dateformat = "%Y-%m-%d"
92 | ibase.timeformat = "%H:%M:%S"
93 | [MySQL]
94 | mysql.allow_local_infile = On
95 | mysql.allow_persistent = On
96 | mysql.cache_size = 2000
97 | mysql.max_persistent = -1
98 | mysql.max_links = -1
99 | mysql.default_port =
100 | mysql.default_socket =
101 | mysql.default_host =
102 | mysql.default_user =
103 | mysql.default_password =
104 | mysql.connect_timeout = 60
105 | mysql.trace_mode = Off
106 | [MySQLi]
107 | mysqli.max_persistent = -1
108 | mysqli.allow_persistent = On
109 | mysqli.max_links = -1
110 | mysqli.cache_size = 2000
111 | mysqli.default_port = 3306
112 | mysqli.default_socket =
113 | mysqli.default_host =
114 | mysqli.default_user =
115 | mysqli.default_pw =
116 | mysqli.reconnect = Off
117 | [mysqlnd]
118 | mysqlnd.collect_statistics = On
119 | mysqlnd.collect_memory_statistics = Off
120 | [OCI8]
121 | [PostgreSQL]
122 | pgsql.allow_persistent = On
123 | pgsql.auto_reset_persistent = Off
124 | pgsql.max_persistent = -1
125 | pgsql.max_links = -1
126 | pgsql.ignore_notice = 0
127 | pgsql.log_notice = 0
128 | [Sybase-CT]
129 | sybct.allow_persistent = On
130 | sybct.max_persistent = -1
131 | sybct.max_links = -1
132 | sybct.min_server_severity = 10
133 | sybct.min_client_severity = 10
134 | [bcmath]
135 | bcmath.scale = 0
136 | [browscap]
137 | [Session]
138 | session.save_handler = files
139 | session.use_cookies = 1
140 | session.use_only_cookies = 1
141 | session.name = PHPSESSID
142 | session.auto_start = 0
143 | session.cookie_lifetime = 0
144 | session.cookie_path = /
145 | session.cookie_domain =
146 | session.cookie_httponly =
147 | session.serialize_handler = php
148 | session.gc_probability = 1
149 | session.gc_divisor = 1000
150 | session.gc_maxlifetime = 1440
151 | session.bug_compat_42 = Off
152 | session.bug_compat_warn = Off
153 | session.referer_check =
154 | session.entropy_length = 0
155 | session.cache_limiter = nocache
156 | session.cache_expire = 180
157 | session.use_trans_sid = 0
158 | session.hash_function = 0
159 | session.hash_bits_per_character = 5
160 | url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
161 | [MSSQL]
162 | mssql.allow_persistent = On
163 | mssql.max_persistent = -1
164 | mssql.max_links = -1
165 | mssql.min_error_severity = 10
166 | mssql.min_message_severity = 10
167 | mssql.compatability_mode = Off
168 | mssql.secure_connection = Off
169 | [Assertion]
170 | [COM]
171 | [mbstring]
172 | [exif]
173 | [Tidy]
174 | tidy.clean_output = Off
175 | [soap]
176 | soap.wsdl_cache_enabled=1
177 | soap.wsdl_cache_dir="/tmp"
178 | soap.wsdl_cache_ttl=86400
179 | soap.wsdl_cache_limit = 5
180 | [sysvshm]
181 | [ldap]
182 | ldap.max_links = -1
183 | [mcrypt]
184 | [dba]
185 | [xsl]
186 | [apc]
187 | extension = apc.so
188 | apc.enabled=1
189 | apc.optimization=1
190 | apc.shm_size=512M
191 | apc.ttl=60
192 | apc.user_ttl=60
193 | apc.num_files_hint=1024
194 | apc.mmap_file_mask=/dev/zero
195 | apc.enable_cli=1
196 | apc.cache_by_default=1
197 | [redis]
198 | extension = redis.so
199 | [zeromq]
200 | extension = zmq.so
201 | [msgpack]
202 | extension = msgpack.so
203 | [dbase]
204 | extension=dbase.so
205 | [mcrtpt]
206 | extension=mcrypt.so
207 | [memcache]
208 | extension=memcache.so
209 | memcache.hash_strategy = "consistent"
210 | memcache.hash_function = "crc32"
211 | [mmseg]
212 | extension=mmseg.so
213 | mmseg.area_dic="/home/www/v2/dict/areas_ext.dic"
214 | mmseg.area_level=2000
215 | mmseg.comm_dic="/home/www/v2/dict/communities_ext.dic"
216 | mmseg.comm_level=3000
217 |
218 |
--------------------------------------------------------------------------------
/salt_configuration/files/files/test1:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kerncai/saltstack/841807b6979b6f59cda26ce89b72f0ffbd9bd5fd/salt_configuration/files/files/test1
--------------------------------------------------------------------------------
/salt_configuration/files/files/test2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kerncai/saltstack/841807b6979b6f59cda26ce89b72f0ffbd9bd5fd/salt_configuration/files/files/test2
--------------------------------------------------------------------------------
/salt_configuration/files/files/test3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kerncai/saltstack/841807b6979b6f59cda26ce89b72f0ffbd9bd5fd/salt_configuration/files/files/test3
--------------------------------------------------------------------------------
/salt_configuration/files/my_webserver/conf.d/monitor.conf:
--------------------------------------------------------------------------------
1 | server {
2 | listen 80;
3 | server_name _;
4 |
5 | location /nginx_status {
6 | stub_status on;
7 | access_log off;
8 | allow 10.0.0.0/8;
9 | allow 192.168.1.0/24;
10 | deny all;
11 | }
12 | }
13 |
14 |
--------------------------------------------------------------------------------
/salt_configuration/files/my_webserver/conf.d/test.conf:
--------------------------------------------------------------------------------
1 | server {
2 |
3 | location = /tem/index.php {
4 | include /home/www/conf/fastcgi_params;
5 | internal;
6 | fastcgi_pass unix:/dev/shm/php-fpm.sock;
7 | fastcgi_index index.php;
8 | fastcgi_param SCRIPT_FILENAME /home/www/indexes/tem/index.php;
9 | fastcgi_temp_path /home/www/tmp/tem/temp;
10 | }
11 | location /tem {
12 | rewrite . /duankou/index.php last;
13 | }
14 |
15 |
16 |
--------------------------------------------------------------------------------
/salt_configuration/files/nginx/fastcgi.conf:
--------------------------------------------------------------------------------
1 |
2 | fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
3 | fastcgi_param QUERY_STRING $query_string;
4 | fastcgi_param REQUEST_METHOD $request_method;
5 | fastcgi_param CONTENT_TYPE $content_type;
6 | fastcgi_param CONTENT_LENGTH $content_length;
7 |
8 | fastcgi_param SCRIPT_NAME $fastcgi_script_name;
9 | fastcgi_param REQUEST_URI $request_uri;
10 | fastcgi_param DOCUMENT_URI $document_uri;
11 | fastcgi_param DOCUMENT_ROOT $document_root;
12 | fastcgi_param SERVER_PROTOCOL $server_protocol;
13 |
14 | fastcgi_param GATEWAY_INTERFACE CGI/1.1;
15 | fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
16 |
17 | fastcgi_param REMOTE_ADDR $remote_addr;
18 | fastcgi_param REMOTE_PORT $remote_port;
19 | fastcgi_param SERVER_ADDR $server_addr;
20 | fastcgi_param SERVER_PORT $server_port;
21 | fastcgi_param SERVER_NAME $server_name;
22 |
23 | # PHP only, required if PHP was built with --enable-force-cgi-redirect
24 | fastcgi_param REDIRECT_STATUS 200;
25 |
--------------------------------------------------------------------------------
/salt_configuration/files/nginx/nginx.conf:
--------------------------------------------------------------------------------
1 | user nginx;
2 | {% if grains['num_cpus'] < 8 %}
3 | worker_processes {{ grains['num_cpus'] }};
4 | {% else %}
5 | worker_processes 8;
6 | {% endif %}
7 | worker_rlimit_nofile 65535;
8 |
9 | error_log /var/log/nginx/error.log notice;
10 | pid /var/run/nginx.pid;
11 |
12 | events {
13 | use epoll;
14 | worker_connections 65535;
15 | }
16 |
17 |
18 | http {
19 | include /etc/nginx/mime.types;
20 | default_type appliacation/octet-stream;
21 |
22 | log_format main '$request_time $upstream_response_time $remote_addr - $upstream_addr [$time_local] '
23 | '$host "$request" $status $bytes_sent '
24 | '"$http_referer" "$http_user_agent" "$gzip_ratio" "$http_x_forwarded_for" - "$server_addr"';
25 |
26 | access_log /data1/logs/nginx/access.log main;
27 |
28 | server_names_hash_bucket_size 128;
29 |
30 | proxy_redirect off;
31 | proxy_set_header Host $host;
32 | proxy_set_header X-Real-IP $remote_addr;
33 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
34 | client_body_buffer_size 1024k;
35 | client_max_body_size 2m;
36 | proxy_connect_timeout 90;
37 | proxy_send_timeout 90;
38 | proxy_read_timeout 90;
39 | proxy_buffer_size 4k;
40 | proxy_buffers 4 32k;
41 | proxy_busy_buffers_size 64k;
42 | proxy_temp_file_write_size 100k;
43 |
44 | sendfile on;
45 | tcp_nopush on;
46 | tcp_nodelay on;
47 | server_tokens off;
48 | send_timeout 10;
49 | client_header_timeout 10;
50 | client_body_timeout 10;
51 |
52 | keepalive_timeout 65;
53 |
54 | fastcgi_connect_timeout 300;
55 | fastcgi_send_timeout 300;
56 | fastcgi_read_timeout 300;
57 | fastcgi_buffer_size 64k;
58 | fastcgi_buffers 8 64k;
59 | fastcgi_busy_buffers_size 128k;
60 | fastcgi_temp_file_write_size 128k;
61 | fastcgi_intercept_errors on;
62 |
63 | include conf.d/*.conf;
64 | }
65 |
--------------------------------------------------------------------------------
/salt_configuration/files/nginx/nginx.ini:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | #
3 | # nginx Startup script for nginx
4 | #
5 | # chkconfig: - 85 15
6 | # processname: nginx
7 | # config: /etc/nginx/nginx.conf
8 | # config: /etc/sysconfig/nginx
9 | # pidfile: /var/run/nginx.pid
10 | # description: nginx is a HTTP and reverse proxy server
11 | #
12 | ### BEGIN INIT INFO
13 | # Provides: nginx
14 | # Required-Start: $local_fs $remote_fs $network
15 | # Required-Stop: $local_fs $remote_fs $network
16 | # Default-Start: 2 3 4 5
17 | # Default-Stop: 0 1 6
18 | # Short-Description: start and stop nginx
19 | ### END INIT INFO
20 |
21 | # Source function library.
22 | . /etc/rc.d/init.d/functions
23 |
24 | CONFFILE="/etc/nginx/nginx.conf"
25 |
26 | if [ -f /etc/sysconfig/nginx ]; then
27 | . /etc/sysconfig/nginx
28 | fi
29 |
30 | prog=nginx
31 | nginx=${NGINX-/usr/sbin/nginx}
32 | conffile=${CONFFILE-/etc/nginx/nginx.conf}
33 | lockfile=${LOCKFILE-/var/lock/subsys/nginx}
34 | pidfile=${PIDFILE-/var/run/nginx.pid}
35 | SLEEPMSEC=100000
36 | RETVAL=0
37 |
38 | start() {
39 | echo -n $"Starting $prog: "
40 |
41 | daemon --pidfile=${pidfile} ${nginx} -c ${conffile}
42 | RETVAL=$?
43 | echo
44 | [ $RETVAL = 0 ] && touch ${lockfile}
45 | return $RETVAL
46 | }
47 |
48 | stop() {
49 | echo -n $"Stopping $prog: "
50 | killproc -p ${pidfile} ${prog}
51 | RETVAL=$?
52 | echo
53 | [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
54 | }
55 |
56 | reload() {
57 | configtest || return $?
58 | echo -n $"Reloading $prog: "
59 | killproc -p ${pidfile} ${prog} -HUP
60 | RETVAL=$?
61 | echo
62 | }
63 |
64 | upgrade() {
65 | oldbinpidfile=${pidfile}.oldbin
66 |
67 | configtest -q || return 6
68 | echo -n $"Staring new master $prog: "
69 | killproc -p ${pidfile} ${prog} -USR2
70 | RETVAL=$?
71 | echo
72 | /bin/usleep $SLEEPMSEC
73 | if [ -f ${oldbinpidfile} -a -f ${pidfile} ]; then
74 | echo -n $"Graceful shutdown of old $prog: "
75 | killproc -p ${oldbinpidfile} ${prog} -QUIT
76 | RETVAL=$?
77 | echo
78 | else
79 | echo $"Upgrade failed!"
80 | return 1
81 | fi
82 | }
83 |
84 | configtest() {
85 | if [ "$#" -ne 0 ] ; then
86 | case "$1" in
87 | -q)
88 | FLAG=$1
89 | ;;
90 | *)
91 | ;;
92 | esac
93 | shift
94 | fi
95 | ${nginx} -t -c ${conffile} $FLAG
96 | RETVAL=$?
97 | return $RETVAL
98 | }
99 |
100 | rh_status() {
101 | status -p ${pidfile} ${nginx}
102 | }
103 |
104 | # See how we were called.
105 | case "$1" in
106 | start)
107 | rh_status >/dev/null 2>&1 && exit 0
108 | start
109 | ;;
110 | stop)
111 | stop
112 | ;;
113 | status)
114 | rh_status
115 | RETVAL=$?
116 | ;;
117 | restart)
118 | configtest -q || exit $RETVAL
119 | stop
120 | start
121 | ;;
122 | upgrade)
123 | upgrade
124 | ;;
125 | condrestart|try-restart)
126 | if rh_status >/dev/null 2>&1; then
127 | stop
128 | start
129 | fi
130 | ;;
131 | force-reload|reload)
132 | reload
133 | ;;
134 | configtest)
135 | configtest
136 | ;;
137 | *)
138 | echo $"Usage: $prog {start|stop|restart|condrestart|try-restart|force-reload|upgrade|reload|status|help|configtest}"
139 | RETVAL=2
140 | esac
141 |
142 | exit $RETVAL
143 |
--------------------------------------------------------------------------------
/salt_configuration/files/php/pear.conf:
--------------------------------------------------------------------------------
1 | #PEAR_Config 0.9
2 | a:31:{s:9:"cache_dir";s:15:"/tmp/pear/cache";s:15:"default_channel";s:12:"pear.php.net";s:16:"preferred_mirror";s:12:"pear.php.net";s:13:"remote_config";s:0:"";s:13:"auto_discover";i:0;s:13:"master_server";s:12:"pear.php.net";s:10:"http_proxy";s:0:"";s:7:"php_dir";s:26:"/opt/local/php-fpm/lib/php";s:7:"ext_dir";s:63:"/opt/local/php-fpm/lib/php/extensions/no-debug-non-zts-20090626";s:7:"doc_dir";s:30:"/opt/local/php-fpm/lib/php/doc";s:7:"bin_dir";s:22:"/opt/local/php-fpm/bin";s:8:"data_dir";s:31:"/opt/local/php-fpm/lib/php/data";s:7:"cfg_dir";s:30:"/opt/local/php-fpm/lib/php/cfg";s:7:"www_dir";s:33:"/opt/local/php-fpm/lib/php/htdocs";s:8:"test_dir";s:31:"/opt/local/php-fpm/lib/php/test";s:8:"temp_dir";s:14:"/tmp/pear/temp";s:12:"download_dir";s:18:"/tmp/pear/download";s:7:"php_bin";s:26:"/opt/local/php-fpm/bin/php";s:10:"php_prefix";s:0:"";s:10:"php_suffix";s:0:"";s:7:"php_ini";s:0:"";s:8:"username";s:0:"";s:8:"password";s:0:"";s:7:"verbose";i:1;s:15:"preferred_state";s:6:"stable";s:5:"umask";i:18;s:9:"cache_ttl";i:3600;s:8:"sig_type";s:3:"gpg";s:7:"sig_bin";s:12:"/usr/bin/gpg";s:9:"sig_keyid";s:0:"";s:10:"sig_keydir";s:31:"/opt/local/php-fpm/etc/pearkeys";}
--------------------------------------------------------------------------------
/salt_configuration/files/php/php-fpm.conf:
--------------------------------------------------------------------------------
1 | ;;;;;;;;;;;;;;;;;;;;;
2 | ; FPM Configuration ;
3 | ;;;;;;;;;;;;;;;;;;;;;
4 |
5 | ; All relative paths in this configuration file are relative to PHP's install
6 | ; prefix.
7 |
8 | ; Include one or more files. If glob(3) exists, it is used to include a bunch of
9 | ; files from a glob(3) pattern. This directive can be used everywhere in the
10 | ; file.
11 | ;include=/opt/local/phpfpm/etc/phpfpm.d/*.conf
12 |
13 | ;;;;;;;;;;;;;;;;;;
14 | ; Global Options ;
15 | ;;;;;;;;;;;;;;;;;;
16 |
17 | [global]
18 | ; Pid file
19 | ; Default Value: none
20 | pid = /var/run/php-fpm/php-fpm.pid
21 |
22 | ; Error log file
23 | ; Default Value: /var/log/php-fpm.log
24 | error_log = /var/log/php-fpm/error.log
25 |
26 | ; Log level
27 | ; Possible Values: alert, error, warning, notice, debug
28 | ; Default Value: notice
29 | ;log_level = notice
30 |
31 | ; If this number of child processes exit with SIGSEGV or SIGBUS within the time
32 | ; interval set by emergency_restart_interval then FPM will restart. A value
33 | ; of '0' means 'Off'.
34 | ; Default Value: 0
35 | ;emergency_restart_threshold = 0
36 |
37 | ; Interval of time used by emergency_restart_interval to determine when
38 | ; a graceful restart will be initiated. This can be useful to work around
39 | ; accidental corruptions in an accelerator's shared memory.
40 | ; Available Units: s(econds), m(inutes), h(ours), or d(ays)
41 | ; Default Unit: seconds
42 | ; Default Value: 0
43 | ;emergency_restart_interval = 0
44 |
45 | ; Time limit for child processes to wait for a reaction on signals from master.
46 | ; Available units: s(econds), m(inutes), h(ours), or d(ays)
47 | ; Default Unit: seconds
48 | ; Default Value: 0
49 | ;process_control_timeout = 0
50 |
51 | ; Send FPM to background. Set to 'no' to keep FPM in foreground for debugging.
52 | ; Default Value: yes
53 | ;daemonize = yes
54 |
55 | ;;;;;;;;;;;;;;;;;;;;
56 | ; Pool Definitions ;
57 | ;;;;;;;;;;;;;;;;;;;;
58 |
59 |
60 | ; Start a new pool named 'www'.
61 | [www]
62 |
63 | ; The address on which to accept FastCGI requests.
64 | ; Valid syntaxes are:
65 | ; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific address on
66 | ; a specific port;
67 | ; 'port' - to listen on a TCP socket to all addresses on a
68 | ; specific port;
69 | ; '/path/to/unix/socket' - to listen on a unix socket.
70 | ; Note: This value is mandatory.
71 | listen = /dev/shm/php-fpm.sock
72 |
73 | ; Set listen(2) backlog. A value of '-1' means unlimited.
74 | ; Default Value: -1
75 | listen.backlog = 8192
76 |
77 | ; List of ipv4 addresses of FastCGI clients which are allowed to connect.
78 | ; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original
79 | ; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address
80 | ; must be separated by a comma. If this value is left blank, connections will be
81 | ; accepted from any ip address.
82 | ; Default Value: any
83 | listen.allowed_clients = 127.0.0.1
84 |
85 | ; Set permissions for unix socket, if one is used. In Linux, read/write
86 | ; permissions must be set in order to allow connections from a web server. Many
87 | ; BSD-derived systems allow connections regardless of permissions.
88 | ; Default Values: user and group are set as the running user
89 | ; mode is set to 0666
90 | ;listen.owner = nobody
91 | ;listen.group = nobody
92 | ;listen.mode = 0666
93 |
94 | ; Unix user/group of processes
95 | ; Note: The user is mandatory. If the group is not set, the default user's group
96 | ; will be used.
97 | ; RPM: apache Choosed to be able to access some dir as httpd
98 | user = php-fpm
99 | ; RPM: Keep a group allowed to write in log dir.
100 | group = php-fpm
101 |
102 | ; Choose how the process manager will control the number of child processes.
103 | ; Possible Values:
104 | ; static - a fixed number (pm.max_children) of child processes;
105 | ; dynamic - the number of child processes are set dynamically based on the
106 | ; following directives:
107 | ; pm.max_children - the maximum number of children that can
108 | ; be alive at the same time.
109 | ; pm.start_servers - the number of children created on startup.
110 | ; pm.min_spare_servers - the minimum number of children in 'idle'
111 | ; state (waiting to process). If the number
112 | ; of 'idle' processes is less than this
113 | ; number then some children will be created.
114 | ; pm.max_spare_servers - the maximum number of children in 'idle'
115 | ; state (waiting to process). If the number
116 | ; of 'idle' processes is greater than this
117 | ; number then some children will be killed.
118 | ; Note: This value is mandatory.
119 | pm = static
120 |
121 | ; The number of child processes to be created when pm is set to 'static' and the
122 | ; maximum number of child processes to be created when pm is set to 'dynamic'.
123 | ; This value sets the limit on the number of simultaneous requests that will be
124 | ; served. Equivalent to the ApacheMaxClients directive with mpm_prefork.
125 | ; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP
126 | ; CGI.
127 | ; Note: Used when pm is set to either 'static' or 'dynamic'
128 | ; Note: This value is mandatory.
129 | pm.max_children = 100
130 |
131 | ; The number of child processes created on startup.
132 | ; Note: Used only when pm is set to 'dynamic'
133 | ; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2
134 | ;pm.start_servers = 20
135 |
136 | ; The desired minimum number of idle server processes.
137 | ; Note: Used only when pm is set to 'dynamic'
138 | ; Note: Mandatory when pm is set to 'dynamic'
139 | ;pm.min_spare_servers = 28
140 |
141 | ; The desired maximum number of idle server processes.
142 | ; Note: Used only when pm is set to 'dynamic'
143 | ; Note: Mandatory when pm is set to 'dynamic'
144 | ;pm.max_spare_servers = 68
145 |
146 | ; The number of requests each child process should execute before respawning.
147 | ; This can be useful to work around memory leaks in 3rd party libraries. For
148 | ; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
149 | ; Default Value: 0
150 | pm.max_requests = 10240
151 |
152 | ; The URI to view the FPM status page. If this value is not set, no URI will be
153 | ; recognized as a status page. By default, the status page shows the following
154 | ; information:
155 | ; accepted conn - the number of request accepted by the pool;
156 | ; pool - the name of the pool;
157 | ; process manager - static or dynamic;
158 | ; idle processes - the number of idle processes;
159 | ; active processes - the number of active processes;
160 | ; total processes - the number of idle + active processes.
161 | ; The values of 'idle processes', 'active processes' and 'total processes' are
162 | ; updated each second. The value of 'accepted conn' is updated in real time.
163 | ; Example output:
164 | ; accepted conn: 12073
165 | ; pool: www
166 | ; process manager: static
167 | ; idle processes: 35
168 | ; active processes: 65
169 | ; total processes: 100
170 | ; By default the status page output is formatted as text/plain. Passing either
171 | ; 'html' or 'json' as a query string will return the corresponding output
172 | ; syntax. Example:
173 | ; http://www.foo.bar/status
174 | ; http://www.foo.bar/status?json
175 | ; http://www.foo.bar/status?html
176 | ; Note: The value must start with a leading slash (/). The value can be
177 | ; anything, but it may not be a good idea to use the .php extension or it
178 | ; may conflict with a real PHP file.
179 | ; Default Value: not set
180 | pm.status_path = /php-fpm_status
181 |
182 | ; The ping URI to call the monitoring page of FPM. If this value is not set, no
183 | ; URI will be recognized as a ping page. This could be used to test from outside
184 | ; that FPM is alive and responding, or to
185 | ; - create a graph of FPM availability (rrd or such);
186 | ; - remove a server from a group if it is not responding (load balancing);
187 | ; - trigger alerts for the operating team (24/7).
188 | ; Note: The value must start with a leading slash (/). The value can be
189 | ; anything, but it may not be a good idea to use the .php extension or it
190 | ; may conflict with a real PHP file.
191 | ; Default Value: not set
192 | ;ping.path = /ping
193 |
194 | ; This directive may be used to customize the response of a ping request. The
195 | ; response is formatted as text/plain with a 200 response code.
196 | ; Default Value: pong
197 | ;ping.response = pong
198 |
199 | ; The timeout for serving a single request after which the worker process will
200 | ; be killed. This option should be used when the 'max_execution_time' ini option
201 | ; does not stop script execution for some reason. A value of '0' means 'off'.
202 | ; Available units: s(econds)(default), m(inutes), h(ours), or d(ays)
203 | ; Default Value: 0
204 | ;request_terminate_timeout = 0
205 |
206 | ; The timeout for serving a single request after which a PHP backtrace will be
207 | ; dumped to the 'slowlog' file. A value of '0s' means 'off'.
208 | ; Available units: s(econds)(default), m(inutes), h(ours), or d(ays)
209 | ; Default Value: 0
210 | request_slowlog_timeout = 2s
211 |
212 | ; The log file for slow requests
213 | ; Default Value: not set
214 | ; Note: slowlog is mandatory if request_slowlog_timeout is set
215 | slowlog = /var/log/php-fpm/www-slow.log
216 |
217 | ; Set open file descriptor rlimit.
218 | ; Default Value: system defined value
219 | ;rlimit_files = 1024
220 |
221 | ; Set max core size rlimit.
222 | ; Possible Values: 'unlimited' or an integer greater or equal to 0
223 | ; Default Value: system defined value
224 | ;rlimit_core = 0
225 |
226 | ; Chroot to this directory at the start. This value must be defined as an
227 | ; absolute path. When this value is not set, chroot is not used.
228 | ; Note: chrooting is a great security feature and should be used whenever
229 | ; possible. However, all PHP paths will be relative to the chroot
230 | ; (error_log, sessions.save_path, ...).
231 | ; Default Value: not set
232 | ;chroot =
233 |
234 | ; Chdir to this directory at the start. This value must be an absolute path.
235 | ; Default Value: current directory or / when chroot
236 | ;chdir = /var/www
237 |
238 | ; Redirect worker stdout and stderr into main error log. If not set, stdout and
239 | ; stderr will be redirected to /dev/null according to FastCGI specs.
240 | ; Default Value: no
241 | ;catch_workers_output = yes
242 |
243 | ; Limits the extensions of the main script FPM will allow to parse. This can
244 | ; prevent configuration mistakes on the web server side. You should only limit
245 | ; FPM to .php extensions to prevent malicious users to use other extensions to
246 | ; exectute php code.
247 | ; Note: set an empty value to allow all extensions.
248 | ; Default Value: .php
249 | ;security.limit_extensions = .php .php3 .php4 .php5
250 |
251 | ; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from
252 | ; the current environment.
253 | ; Default Value: clean env
254 | ;env[HOSTNAME] = $HOSTNAME
255 | ;env[PATH] = /usr/local/bin:/usr/bin:/bin
256 | ;env[TMP] = /tmp
257 | ;env[TMPDIR] = /tmp
258 | ;env[TEMP] = /tmp
259 |
260 | ; Additional php.ini defines, specific to this pool of workers. These settings
261 | ; overwrite the values previously defined in the php.ini. The directives are the
262 | ; same as the PHP SAPI:
263 | ; php_value/php_flag - you can set classic ini defines which can
264 | ; be overwritten from PHP call 'ini_set'.
265 | ; php_admin_value/php_admin_flag - these directives won't be overwritten by
266 | ; PHP call 'ini_set'
267 | ; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no.
268 |
269 | ; Defining 'extension' will load the corresponding shared extension from
270 | ; extension_dir. Defining 'disable_functions' or 'disable_classes' will not
271 | ; overwrite previously defined php.ini values, but will append the new value
272 | ; instead.
273 |
274 | ; Default Value: nothing is defined by default except the values in php.ini and
275 | ; specified at startup with the -d argument
276 | ;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com
277 | ;php_flag[display_errors] = off
278 | php_admin_value[error_log] = /var/log/php-fpm/www-error.log
279 | php_admin_flag[log_errors] = on
280 | php_admin_value[memory_limit] = 128M
281 |
--------------------------------------------------------------------------------
/salt_configuration/files/php/php.ini:
--------------------------------------------------------------------------------
1 | [PHP]
2 |
3 | ;;;;;;;;;;;;;;;;;;;
4 | ; About php.ini ;
5 | ;;;;;;;;;;;;;;;;;;;
6 | ; PHP's initialization file, generally called php.ini, is responsible for
7 | ; configuring many of the aspects of PHP's behavior.
8 | ;/opt/local/php-fpm/lib/php/extensions/no-debug-non-zts-20090626/
9 | ; PHP attempts to find and load this configuration from a number of locations.
10 | ; The following is a summary of its search order:
11 | ; 1. SAPI module specific location.
12 | ; 2. The PHPRC environment variable. (As of PHP 5.2.0)
13 | ; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0)
14 | ; 4. Current working directory (except CLI)
15 | ; 5. The web server's directory (for SAPI modules), or directory of PHP
16 | ; (otherwise in Windows)
17 | ; 6. The directory from the --with-config-file-path compile time option, or the
18 | ; Windows directory (C:\windows or C:\winnt)
19 | ; See the PHP docs for more specific information.
20 | ; http://php.net/configuration.file
21 |
22 | ; The syntax of the file is extremely simple. Whitespace and Lines
23 | ; beginning with a semicolon are silently ignored (as you probably guessed).
24 | ; Section headers (e.g. [Foo]) are also silently ignored, even though
25 | ; they might mean something in the future.
26 |
27 | ; Directives following the section heading [PATH=/www/mysite] only
28 | ; apply to PHP files in the /www/mysite directory. Directives
29 | ; following the section heading [HOST=www.example.com] only apply to
30 | ; PHP files served from www.example.com. Directives set in these
31 | ; special sections cannot be overridden by user-defined INI files or
32 | ; at runtime. Currently, [PATH=] and [HOST=] sections only work under
33 | ; CGI/FastCGI.
34 | ; http://php.net/ini.sections
35 |
36 | ; Directives are specified using the following syntax:
37 | ; directive = value
38 | ; Directive names are *case sensitive* - foo=bar is different from FOO=bar.
39 | ; Directives are variables used to configure PHP or PHP extensions.
40 | ; There is no name validation. If PHP can't find an expected
41 | ; directive because it is not set or is mistyped, a default value will be used.
42 |
43 | ; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one
44 | ; of the INI constants (On, Off, True, False, Yes, No and None) or an expression
45 | ; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a
46 | ; previously set variable or directive (e.g. ${foo})
47 |
48 | ; Expressions in the INI file are limited to bitwise operators and parentheses:
49 | ; | bitwise OR
50 | ; ^ bitwise XOR
51 | ; & bitwise AND
52 | ; ~ bitwise NOT
53 | ; ! boolean NOT
54 |
55 | ; Boolean flags can be turned on using the values 1, On, True or Yes.
56 | ; They can be turned off using the values 0, Off, False or No.
57 |
58 | ; An empty string can be denoted by simply not writing anything after the equal
59 | ; sign, or by using the None keyword:
60 |
61 | ; foo = ; sets foo to an empty string
62 | ; foo = None ; sets foo to an empty string
63 | ; foo = "None" ; sets foo to the string 'None'
64 |
65 | ; If you use constants in your value, and these constants belong to a
66 | ; dynamically loaded extension (either a PHP extension or a Zend extension),
67 | ; you may only use these constants *after* the line that loads the extension.
68 |
69 | ;;;;;;;;;;;;;;;;;;;
70 | ; About this file ;
71 | ;;;;;;;;;;;;;;;;;;;
72 | ; PHP comes packaged with two INI files. One that is recommended to be used
73 | ; in production environments and one that is recommended to be used in
74 | ; development environments.
75 |
76 | ; php.ini-production contains settings which hold security, performance and
77 | ; best practices at its core. But please be aware, these settings may break
78 | ; compatibility with older or less security conscience applications. We
79 | ; recommending using the production ini in production and testing environments.
80 |
81 | ; php.ini-development is very similar to its production variant, except it's
82 | ; much more verbose when it comes to errors. We recommending using the
83 | ; development version only in development environments as errors shown to
84 | ; application users can inadvertently leak otherwise secure information.
85 |
86 | ;;;;;;;;;;;;;;;;;;;
87 | ; Quick Reference ;
88 | ;;;;;;;;;;;;;;;;;;;
89 | ; The following are all the settings which are different in either the production
90 | ; or development versions of the INIs with respect to PHP's default behavior.
91 | ; Please see the actual settings later in the document for more details as to why
92 | ; we recommend these changes in PHP's behavior.
93 |
94 | ; allow_call_time_pass_reference
95 | ; Default Value: On
96 | ; Development Value: Off
97 | ; Production Value: Off
98 |
99 | ; display_errors
100 | ; Default Value: On
101 | ; Development Value: On
102 | ; Production Value: Off
103 |
104 | ; display_startup_errors
105 | ; Default Value: Off
106 | ; Development Value: On
107 | ; Production Value: Off
108 |
109 | ; error_reporting
110 | ; Default Value: E_ALL & ~E_NOTICE
111 | ; Development Value: E_ALL | E_STRICT
112 | ; Production Value: E_ALL & ~E_DEPRECATED
113 |
114 | ; html_errors
115 | ; Default Value: On
116 | ; Development Value: On
117 | ; Production value: Off
118 |
119 | ; log_errors
120 | ; Default Value: Off
121 | ; Development Value: On
122 | ; Production Value: On
123 |
124 | ; magic_quotes_gpc
125 | ; Default Value: On
126 | ; Development Value: Off
127 | ; Production Value: Off
128 |
129 | ; max_input_time
130 | ; Default Value: -1 (Unlimited)
131 | ; Development Value: 60 (60 seconds)
132 | ; Production Value: 60 (60 seconds)
133 |
134 | ; output_buffering
135 | ; Default Value: Off
136 | ; Development Value: 4096
137 | ; Production Value: 4096
138 |
139 | ; register_argc_argv
140 | ; Default Value: On
141 | ; Development Value: Off
142 | ; Production Value: Off
143 |
144 | ; register_long_arrays
145 | ; Default Value: On
146 | ; Development Value: Off
147 | ; Production Value: Off
148 |
149 | ; request_order
150 | ; Default Value: None
151 | ; Development Value: "GP"
152 | ; Production Value: "GP"
153 |
154 | ; session.bug_compat_42
155 | ; Default Value: On
156 | ; Development Value: On
157 | ; Production Value: Off
158 |
159 | ; session.bug_compat_warn
160 | ; Default Value: On
161 | ; Development Value: On
162 | ; Production Value: Off
163 |
164 | ; session.gc_divisor
165 | ; Default Value: 100
166 | ; Development Value: 1000
167 | ; Production Value: 1000
168 |
169 | ; session.hash_bits_per_character
170 | ; Default Value: 4
171 | ; Development Value: 5
172 | ; Production Value: 5
173 |
174 | ; short_open_tag
175 | ; Default Value: On
176 | ; Development Value: Off
177 | ; Production Value: Off
178 |
179 | ; track_errors
180 | ; Default Value: Off
181 | ; Development Value: On
182 | ; Production Value: Off
183 |
184 | ; url_rewriter.tags
185 | ; Default Value: "a=href,area=href,frame=src,form=,fieldset="
186 | ; Development Value: "a=href,area=href,frame=src,input=src,form=fakeentry"
187 | ; Production Value: "a=href,area=href,frame=src,input=src,form=fakeentry"
188 |
189 | ; variables_order
190 | ; Default Value: "EGPCS"
191 | ; Development Value: "GPCS"
192 | ; Production Value: "GPCS"
193 |
194 | ;;;;;;;;;;;;;;;;;;;;
195 | ; php.ini Options ;
196 | ;;;;;;;;;;;;;;;;;;;;
197 | ; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini"
198 | ;user_ini.filename = ".user.ini"
199 |
200 | ; To disable this feature set this option to empty value
201 | ;user_ini.filename =
202 |
203 | ; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes)
204 | ;user_ini.cache_ttl = 300
205 |
206 | ;;;;;;;;;;;;;;;;;;;;
207 | ; Language Options ;
208 | ;;;;;;;;;;;;;;;;;;;;
209 |
210 | ; Enable the PHP scripting language engine under Apache.
211 | ; http://php.net/engine
212 | engine = On
213 |
214 | ; This directive determines whether or not PHP will recognize code between
215 | ; and ?> tags as PHP source which should be processed as such. It's been
216 | ; recommended for several years that you not use the short tag "short cut" and
217 | ; instead to use the full tag combination. With the wide spread use
218 | ; of XML and use of these tags by other languages, the server can become easily
219 | ; confused and end up parsing the wrong code in the wrong context. But because
220 | ; this short cut has been a feature for such a long time, it's currently still
221 | ; supported for backwards compatibility, but we recommend you don't use them.
222 | ; Default Value: On
223 | ; Development Value: Off
224 | ; Production Value: Off
225 | ; http://php.net/short-open-tag
226 | short_open_tag = On
227 |
228 | ; Allow ASP-style <% %> tags.
229 | ; http://php.net/asp-tags
230 | asp_tags = Off
231 |
232 | ; The number of significant digits displayed in floating point numbers.
233 | ; http://php.net/precision
234 | precision = 14
235 |
236 | ; Enforce year 2000 compliance (will cause problems with non-compliant browsers)
237 | ; http://php.net/y2k-compliance
238 | y2k_compliance = On
239 |
240 | ; Output buffering is a mechanism for controlling how much output data
241 | ; (excluding headers and cookies) PHP should keep internally before pushing that
242 | ; data to the client. If your application's output exceeds this setting, PHP
243 | ; will send that data in chunks of roughly the size you specify.
244 | ; Turning on this setting and managing its maximum buffer size can yield some
245 | ; interesting side-effects depending on your application and web server.
246 | ; You may be able to send headers and cookies after you've already sent output
247 | ; through print or echo. You also may see performance benefits if your server is
248 | ; emitting less packets due to buffered output versus PHP streaming the output
249 | ; as it gets it. On production servers, 4096 bytes is a good setting for performance
250 | ; reasons.
251 | ; Note: Output buffering can also be controlled via Output Buffering Control
252 | ; functions.
253 | ; Possible Values:
254 | ; On = Enabled and buffer is unlimited. (Use with caution)
255 | ; Off = Disabled
256 | ; Integer = Enables the buffer and sets its maximum size in bytes.
257 | ; Note: This directive is hardcoded to Off for the CLI SAPI
258 | ; Default Value: Off
259 | ; Development Value: 4096
260 | ; Production Value: 4096
261 | ; http://php.net/output-buffering
262 | output_buffering = 4096
263 |
264 | ; You can redirect all of the output of your scripts to a function. For
265 | ; example, if you set output_handler to "mb_output_handler", character
266 | ; encoding will be transparently converted to the specified encoding.
267 | ; Setting any output handler automatically turns on output buffering.
268 | ; Note: People who wrote portable scripts should not depend on this ini
269 | ; directive. Instead, explicitly set the output handler using ob_start().
270 | ; Using this ini directive may cause problems unless you know what script
271 | ; is doing.
272 | ; Note: You cannot use both "mb_output_handler" with "ob_iconv_handler"
273 | ; and you cannot use both "ob_gzhandler" and "zlib.output_compression".
274 | ; Note: output_handler must be empty if this is set 'On' !!!!
275 | ; Instead you must use zlib.output_handler.
276 | ; http://php.net/output-handler
277 | ;output_handler =
278 |
279 | ; Transparent output compression using the zlib library
280 | ; Valid values for this option are 'off', 'on', or a specific buffer size
281 | ; to be used for compression (default is 4KB)
282 | ; Note: Resulting chunk size may vary due to nature of compression. PHP
283 | ; outputs chunks that are few hundreds bytes each as a result of
284 | ; compression. If you prefer a larger chunk size for better
285 | ; performance, enable output_buffering in addition.
286 | ; Note: You need to use zlib.output_handler instead of the standard
287 | ; output_handler, or otherwise the output will be corrupted.
288 | ; http://php.net/zlib.output-compression
289 | zlib.output_compression = Off
290 |
291 | ; http://php.net/zlib.output-compression-level
292 | ;zlib.output_compression_level = -1
293 |
294 | ; You cannot specify additional output handlers if zlib.output_compression
295 | ; is activated here. This setting does the same as output_handler but in
296 | ; a different order.
297 | ; http://php.net/zlib.output-handler
298 | ;zlib.output_handler =
299 |
300 | ; Implicit flush tells PHP to tell the output layer to flush itself
301 | ; automatically after every output block. This is equivalent to calling the
302 | ; PHP function flush() after each and every call to print() or echo() and each
303 | ; and every HTML block. Turning this option on has serious performance
304 | ; implications and is generally recommended for debugging purposes only.
305 | ; http://php.net/implicit-flush
306 | ; Note: This directive is hardcoded to On for the CLI SAPI
307 | implicit_flush = Off
308 |
309 | ; The unserialize callback function will be called (with the undefined class'
310 | ; name as parameter), if the unserializer finds an undefined class
311 | ; which should be instantiated. A warning appears if the specified function is
312 | ; not defined, or if the function doesn't include/implement the missing class.
313 | ; So only set this entry, if you really want to implement such a
314 | ; callback-function.
315 | unserialize_callback_func =
316 |
317 | ; When floats & doubles are serialized store serialize_precision significant
318 | ; digits after the floating point. The default value ensures that when floats
319 | ; are decoded with unserialize, the data will remain the same.
320 | serialize_precision = 17
321 |
322 | ; This directive allows you to enable and disable warnings which PHP will issue
323 | ; if you pass a value by reference at function call time. Passing values by
324 | ; reference at function call time is a deprecated feature which will be removed
325 | ; from PHP at some point in the near future. The acceptable method for passing a
326 | ; value by reference to a function is by declaring the reference in the functions
327 | ; definition, not at call time. This directive does not disable this feature, it
328 | ; only determines whether PHP will warn you about it or not. These warnings
329 | ; should enabled in development environments only.
330 | ; Default Value: On (Suppress warnings)
331 | ; Development Value: Off (Issue warnings)
332 | ; Production Value: Off (Issue warnings)
333 | ; http://php.net/allow-call-time-pass-reference
334 | allow_call_time_pass_reference = Off
335 |
336 | ; Safe Mode
337 | ; http://php.net/safe-mode
338 | safe_mode = Off
339 |
340 | ; By default, Safe Mode does a UID compare check when
341 | ; opening files. If you want to relax this to a GID compare,
342 | ; then turn on safe_mode_gid.
343 | ; http://php.net/safe-mode-gid
344 | safe_mode_gid = Off
345 |
346 | ; When safe_mode is on, UID/GID checks are bypassed when
347 | ; including files from this directory and its subdirectories.
348 | ; (directory must also be in include_path or full path must
349 | ; be used when including)
350 | ; http://php.net/safe-mode-include-dir
351 | safe_mode_include_dir =
352 |
353 | ; When safe_mode is on, only executables located in the safe_mode_exec_dir
354 | ; will be allowed to be executed via the exec family of functions.
355 | ; http://php.net/safe-mode-exec-dir
356 | safe_mode_exec_dir =
357 |
358 | ; Setting certain environment variables may be a potential security breach.
359 | ; This directive contains a comma-delimited list of prefixes. In Safe Mode,
360 | ; the user may only alter environment variables whose names begin with the
361 | ; prefixes supplied here. By default, users will only be able to set
362 | ; environment variables that begin with PHP_ (e.g. PHP_FOO=BAR).
363 | ; Note: If this directive is empty, PHP will let the user modify ANY
364 | ; environment variable!
365 | ; http://php.net/safe-mode-allowed-env-vars
366 | safe_mode_allowed_env_vars = PHP_
367 |
368 | ; This directive contains a comma-delimited list of environment variables that
369 | ; the end user won't be able to change using putenv(). These variables will be
370 | ; protected even if safe_mode_allowed_env_vars is set to allow to change them.
371 | ; http://php.net/safe-mode-protected-env-vars
372 | safe_mode_protected_env_vars = LD_LIBRARY_PATH
373 |
374 | ; open_basedir, if set, limits all file operations to the defined directory
375 | ; and below. This directive makes most sense if used in a per-directory
376 | ; or per-virtualhost web server configuration file. This directive is
377 | ; *NOT* affected by whether Safe Mode is turned On or Off.
378 | ; http://php.net/open-basedir
379 | ;open_basedir =
380 |
381 | ; This directive allows you to disable certain functions for security reasons.
382 | ; It receives a comma-delimited list of function names. This directive is
383 | ; *NOT* affected by whether Safe Mode is turned On or Off.
384 | ; http://php.net/disable-functions
385 | disable_functions =
386 |
387 | ; This directive allows you to disable certain classes for security reasons.
388 | ; It receives a comma-delimited list of class names. This directive is
389 | ; *NOT* affected by whether Safe Mode is turned On or Off.
390 | ; http://php.net/disable-classes
391 | disable_classes =
392 |
393 | ; Colors for Syntax Highlighting mode. Anything that's acceptable in
394 | ; would work.
395 | ; http://php.net/syntax-highlighting
396 | ;highlight.string = #DD0000
397 | ;highlight.comment = #FF9900
398 | ;highlight.keyword = #007700
399 | ;highlight.bg = #FFFFFF
400 | ;highlight.default = #0000BB
401 | ;highlight.html = #000000
402 |
403 | ; If enabled, the request will be allowed to complete even if the user aborts
404 | ; the request. Consider enabling it if executing long requests, which may end up
405 | ; being interrupted by the user or a browser timing out. PHP's default behavior
406 | ; is to disable this feature.
407 | ; http://php.net/ignore-user-abort
408 | ;ignore_user_abort = On
409 |
410 | ; Determines the size of the realpath cache to be used by PHP. This value should
411 | ; be increased on systems where PHP opens many files to reflect the quantity of
412 | ; the file operations performed.
413 | ; http://php.net/realpath-cache-size
414 | ;realpath_cache_size = 16k
415 |
416 | ; Duration of time, in seconds for which to cache realpath information for a given
417 | ; file or directory. For systems with rarely changing files, consider increasing this
418 | ; value.
419 | ; http://php.net/realpath-cache-ttl
420 | ;realpath_cache_ttl = 120
421 |
422 | ; Enables or disables the circular reference collector.
423 | ; http://php.net/zend.enable-gc
424 | zend.enable_gc = On
425 |
426 | ;;;;;;;;;;;;;;;;;
427 | ; Miscellaneous ;
428 | ;;;;;;;;;;;;;;;;;
429 |
430 | ; Decides whether PHP may expose the fact that it is installed on the server
431 | ; (e.g. by adding its signature to the Web server header). It is no security
432 | ; threat in any way, but it makes it possible to determine whether you use PHP
433 | ; on your server or not.
434 | ; http://php.net/expose-php
435 | expose_php = Off
436 |
437 | ;;;;;;;;;;;;;;;;;;;
438 | ; Resource Limits ;
439 | ;;;;;;;;;;;;;;;;;;;
440 |
441 | ; Maximum execution time of each script, in seconds
442 | ; http://php.net/max-execution-time
443 | ; Note: This directive is hardcoded to 0 for the CLI SAPI
444 | max_execution_time = 30
445 |
446 | ; Maximum amount of time each script may spend parsing request data. It's a good
447 | ; idea to limit this time on productions servers in order to eliminate unexpectedly
448 | ; long running scripts.
449 | ; Note: This directive is hardcoded to -1 for the CLI SAPI
450 | ; Default Value: -1 (Unlimited)
451 | ; Development Value: 60 (60 seconds)
452 | ; Production Value: 60 (60 seconds)
453 | ; http://php.net/max-input-time
454 | max_input_time = 60
455 |
456 | ; Maximum input variable nesting level
457 | ; http://php.net/max-input-nesting-level
458 | ;max_input_nesting_level = 64
459 |
460 | ; How many GET/POST/COOKIE input variables may be accepted
461 | ; max_input_vars = 1000
462 |
463 | ; Maximum amount of memory a script may consume (128MB)
464 | ; http://php.net/memory-limit
465 | memory_limit = 128M
466 |
467 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
468 | ; Error handling and logging ;
469 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
470 |
471 | ; This directive informs PHP of which errors, warnings and notices you would like
472 | ; it to take action for. The recommended way of setting values for this
473 | ; directive is through the use of the error level constants and bitwise
474 | ; operators. The error level constants are below here for convenience as well as
475 | ; some common settings and their meanings.
476 | ; By default, PHP is set to take action on all errors, notices and warnings EXCEPT
477 | ; those related to E_NOTICE and E_STRICT, which together cover best practices and
478 | ; recommended coding standards in PHP. For performance reasons, this is the
479 | ; recommend error reporting setting. Your production server shouldn't be wasting
480 | ; resources complaining about best practices and coding standards. That's what
481 | ; development servers and development settings are for.
482 | ; Note: The php.ini-development file has this setting as E_ALL | E_STRICT. This
483 | ; means it pretty much reports everything which is exactly what you want during
484 | ; development and early testing.
485 | ;
486 | ; Error Level Constants:
487 | ; E_ALL - All errors and warnings (includes E_STRICT as of PHP 6.0.0)
488 | ; E_ERROR - fatal run-time errors
489 | ; E_RECOVERABLE_ERROR - almost fatal run-time errors
490 | ; E_WARNING - run-time warnings (non-fatal errors)
491 | ; E_PARSE - compile-time parse errors
492 | ; E_NOTICE - run-time notices (these are warnings which often result
493 | ; from a bug in your code, but it's possible that it was
494 | ; intentional (e.g., using an uninitialized variable and
495 | ; relying on the fact it's automatically initialized to an
496 | ; empty string)
497 | ; E_STRICT - run-time notices, enable to have PHP suggest changes
498 | ; to your code which will ensure the best interoperability
499 | ; and forward compatibility of your code
500 | ; E_CORE_ERROR - fatal errors that occur during PHP's initial startup
501 | ; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's
502 | ; initial startup
503 | ; E_COMPILE_ERROR - fatal compile-time errors
504 | ; E_COMPILE_WARNING - compile-time warnings (non-fatal errors)
505 | ; E_USER_ERROR - user-generated error message
506 | ; E_USER_WARNING - user-generated warning message
507 | ; E_USER_NOTICE - user-generated notice message
508 | ; E_DEPRECATED - warn about code that will not work in future versions
509 | ; of PHP
510 | ; E_USER_DEPRECATED - user-generated deprecation warnings
511 | ;
512 | ; Common Values:
513 | ; E_ALL & ~E_NOTICE (Show all errors, except for notices and coding standards warnings.)
514 | ; E_ALL & ~E_NOTICE | E_STRICT (Show all errors, except for notices)
515 | ; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors)
516 | ; E_ALL | E_STRICT (Show all errors, warnings and notices including coding standards.)
517 | ; Default Value: E_ALL & ~E_NOTICE
518 | ; Development Value: E_ALL | E_STRICT
519 | ; Production Value: E_ALL & ~E_DEPRECATED
520 | ; http://php.net/error-reporting
521 | error_reporting = E_ALL & ~E_NOTICE
522 |
523 | ; This directive controls whether or not and where PHP will output errors,
524 | ; notices and warnings too. Error output is very useful during development, but
525 | ; it could be very dangerous in production environments. Depending on the code
526 | ; which is triggering the error, sensitive information could potentially leak
527 | ; out of your application such as database usernames and passwords or worse.
528 | ; It's recommended that errors be logged on production servers rather than
529 | ; having the errors sent to STDOUT.
530 | ; Possible Values:
531 | ; Off = Do not display any errors
532 | ; stderr = Display errors to STDERR (affects only CGI/CLI binaries!)
533 | ; On or stdout = Display errors to STDOUT
534 | ; Default Value: On
535 | ; Development Value: On
536 | ; Production Value: Off
537 | ; http://php.net/display-errors
538 | display_errors = Off
539 |
540 | ; The display of errors which occur during PHP's startup sequence are handled
541 | ; separately from display_errors. PHP's default behavior is to suppress those
542 | ; errors from clients. Turning the display of startup errors on can be useful in
543 | ; debugging configuration problems. But, it's strongly recommended that you
544 | ; leave this setting off on production servers.
545 | ; Default Value: Off
546 | ; Development Value: On
547 | ; Production Value: Off
548 | ; http://php.net/display-startup-errors
549 | display_startup_errors = Off
550 |
551 | ; Besides displaying errors, PHP can also log errors to locations such as a
552 | ; server-specific log, STDERR, or a location specified by the error_log
553 | ; directive found below. While errors should not be displayed on productions
554 | ; servers they should still be monitored and logging is a great way to do that.
555 | ; Default Value: Off
556 | ; Development Value: On
557 | ; Production Value: On
558 | ; http://php.net/log-errors
559 | log_errors = On
560 |
561 | ; Set maximum length of log_errors. In error_log information about the source is
562 | ; added. The default is 1024 and 0 allows to not apply any maximum length at all.
563 | ; http://php.net/log-errors-max-len
564 | log_errors_max_len = 1024
565 |
566 | ; Do not log repeated messages. Repeated errors must occur in same file on same
567 | ; line unless ignore_repeated_source is set true.
568 | ; http://php.net/ignore-repeated-errors
569 | ignore_repeated_errors = Off
570 |
571 | ; Ignore source of message when ignoring repeated messages. When this setting
572 | ; is On you will not log errors with repeated messages from different files or
573 | ; source lines.
574 | ; http://php.net/ignore-repeated-source
575 | ignore_repeated_source = Off
576 |
577 | ; If this parameter is set to Off, then memory leaks will not be shown (on
578 | ; stdout or in the log). This has only effect in a debug compile, and if
579 | ; error reporting includes E_WARNING in the allowed list
580 | ; http://php.net/report-memleaks
581 | report_memleaks = On
582 |
583 | ; This setting is on by default.
584 | ;report_zend_debug = 0
585 |
586 | ; Store the last error/warning message in $php_errormsg (boolean). Setting this value
587 | ; to On can assist in debugging and is appropriate for development servers. It should
588 | ; however be disabled on production servers.
589 | ; Default Value: Off
590 | ; Development Value: On
591 | ; Production Value: Off
592 | ; http://php.net/track-errors
593 | track_errors = Off
594 |
595 | ; Turn off normal error reporting and emit XML-RPC error XML
596 | ; http://php.net/xmlrpc-errors
597 | ;xmlrpc_errors = 0
598 |
599 | ; An XML-RPC faultCode
600 | ;xmlrpc_error_number = 0
601 |
602 | ; When PHP displays or logs an error, it has the capability of inserting html
603 | ; links to documentation related to that error. This directive controls whether
604 | ; those HTML links appear in error messages or not. For performance and security
605 | ; reasons, it's recommended you disable this on production servers.
606 | ; Note: This directive is hardcoded to Off for the CLI SAPI
607 | ; Default Value: On
608 | ; Development Value: On
609 | ; Production value: Off
610 | ; http://php.net/html-errors
611 | html_errors = Off
612 |
613 | ; If html_errors is set On PHP produces clickable error messages that direct
614 | ; to a page describing the error or function causing the error in detail.
615 | ; You can download a copy of the PHP manual from http://php.net/docs
616 | ; and change docref_root to the base URL of your local copy including the
617 | ; leading '/'. You must also specify the file extension being used including
618 | ; the dot. PHP's default behavior is to leave these settings empty.
619 | ; Note: Never use this feature for production boxes.
620 | ; http://php.net/docref-root
621 | ; Examples
622 | ;docref_root = "/phpmanual/"
623 |
624 | ; http://php.net/docref-ext
625 | ;docref_ext = .html
626 |
627 | ; String to output before an error message. PHP's default behavior is to leave
628 | ; this setting blank.
629 | ; http://php.net/error-prepend-string
630 | ; Example:
631 | ;error_prepend_string = ""
632 |
633 | ; String to output after an error message. PHP's default behavior is to leave
634 | ; this setting blank.
635 | ; http://php.net/error-append-string
636 | ; Example:
637 | ;error_append_string = ""
638 |
639 | ; Log errors to specified file. PHP's default behavior is to leave this value
640 | ; empty.
641 | ; http://php.net/error-log
642 | ; Example:
643 | ;error_log = php_errors.log
644 | ; Log errors to syslog (Event Log on NT, not valid in Windows 95).
645 | ;error_log = syslog
646 |
647 | ;windows.show_crt_warning
648 | ; Default value: 0
649 | ; Development value: 0
650 | ; Production value: 0
651 |
652 | ;;;;;;;;;;;;;;;;;
653 | ; Data Handling ;
654 | ;;;;;;;;;;;;;;;;;
655 |
656 | ; The separator used in PHP generated URLs to separate arguments.
657 | ; PHP's default setting is "&".
658 | ; http://php.net/arg-separator.output
659 | ; Example:
660 | ;arg_separator.output = "&"
661 |
662 | ; List of separator(s) used by PHP to parse input URLs into variables.
663 | ; PHP's default setting is "&".
664 | ; NOTE: Every character in this directive is considered as separator!
665 | ; http://php.net/arg-separator.input
666 | ; Example:
667 | ;arg_separator.input = ";&"
668 |
669 | ; This directive determines which super global arrays are registered when PHP
670 | ; starts up. If the register_globals directive is enabled, it also determines
671 | ; what order variables are populated into the global space. G,P,C,E & S are
672 | ; abbreviations for the following respective super globals: GET, POST, COOKIE,
673 | ; ENV and SERVER. There is a performance penalty paid for the registration of
674 | ; these arrays and because ENV is not as commonly used as the others, ENV is
675 | ; is not recommended on productions servers. You can still get access to
676 | ; the environment variables through getenv() should you need to.
677 | ; Default Value: "EGPCS"
678 | ; Development Value: "GPCS"
679 | ; Production Value: "GPCS";
680 | ; http://php.net/variables-order
681 | variables_order = "GPCS"
682 |
683 | ; This directive determines which super global data (G,P,C,E & S) should
684 | ; be registered into the super global array REQUEST. If so, it also determines
685 | ; the order in which that data is registered. The values for this directive are
686 | ; specified in the same manner as the variables_order directive, EXCEPT one.
687 | ; Leaving this value empty will cause PHP to use the value set in the
688 | ; variables_order directive. It does not mean it will leave the super globals
689 | ; array REQUEST empty.
690 | ; Default Value: None
691 | ; Development Value: "GP"
692 | ; Production Value: "GP"
693 | ; http://php.net/request-order
694 | request_order = "GP"
695 |
696 | ; Whether or not to register the EGPCS variables as global variables. You may
697 | ; want to turn this off if you don't want to clutter your scripts' global scope
698 | ; with user data.
699 | ; You should do your best to write your scripts so that they do not require
700 | ; register_globals to be on; Using form variables as globals can easily lead
701 | ; to possible security problems, if the code is not very well thought of.
702 | ; http://php.net/register-globals
703 | register_globals = Off
704 |
705 | ; Determines whether the deprecated long $HTTP_*_VARS type predefined variables
706 | ; are registered by PHP or not. As they are deprecated, we obviously don't
707 | ; recommend you use them. They are on by default for compatibility reasons but
708 | ; they are not recommended on production servers.
709 | ; Default Value: On
710 | ; Development Value: Off
711 | ; Production Value: Off
712 | ; http://php.net/register-long-arrays
713 | register_long_arrays = Off
714 |
715 | ; This directive determines whether PHP registers $argv & $argc each time it
716 | ; runs. $argv contains an array of all the arguments passed to PHP when a script
717 | ; is invoked. $argc contains an integer representing the number of arguments
718 | ; that were passed when the script was invoked. These arrays are extremely
719 | ; useful when running scripts from the command line. When this directive is
720 | ; enabled, registering these variables consumes CPU cycles and memory each time
721 | ; a script is executed. For performance reasons, this feature should be disabled
722 | ; on production servers.
723 | ; Note: This directive is hardcoded to On for the CLI SAPI
724 | ; Default Value: On
725 | ; Development Value: Off
726 | ; Production Value: Off
727 | ; http://php.net/register-argc-argv
728 | register_argc_argv = Off
729 |
730 | ; When enabled, the SERVER and ENV variables are created when they're first
731 | ; used (Just In Time) instead of when the script starts. If these variables
732 | ; are not used within a script, having this directive on will result in a
733 | ; performance gain. The PHP directives register_globals, register_long_arrays,
734 | ; and register_argc_argv must be disabled for this directive to have any affect.
735 | ; http://php.net/auto-globals-jit
736 | auto_globals_jit = On
737 |
738 | ; Maximum size of POST data that PHP will accept.
739 | ; http://php.net/post-max-size
740 | post_max_size = 8M
741 |
742 | ; Magic quotes are a preprocessing feature of PHP where PHP will attempt to
743 | ; escape any character sequences in GET, POST, COOKIE and ENV data which might
744 | ; otherwise corrupt data being placed in resources such as databases before
745 | ; making that data available to you. Because of character encoding issues and
746 | ; non-standard SQL implementations across many databases, it's not currently
747 | ; possible for this feature to be 100% accurate. PHP's default behavior is to
748 | ; enable the feature. We strongly recommend you use the escaping mechanisms
749 | ; designed specifically for the database your using instead of relying on this
750 | ; feature. Also note, this feature has been deprecated as of PHP 5.3.0 and is
751 | ; scheduled for removal in PHP 6.
752 | ; Default Value: On
753 | ; Development Value: Off
754 | ; Production Value: Off
755 | ; http://php.net/magic-quotes-gpc
756 | magic_quotes_gpc = Off
757 |
758 | ; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc.
759 | ; http://php.net/magic-quotes-runtime
760 | magic_quotes_runtime = Off
761 |
762 | ; Use Sybase-style magic quotes (escape ' with '' instead of \').
763 | ; http://php.net/magic-quotes-sybase
764 | magic_quotes_sybase = Off
765 |
766 | ; Automatically add files before PHP document.
767 | ; http://php.net/auto-prepend-file
768 | auto_prepend_file =
769 |
770 | ; Automatically add files after PHP document.
771 | ; http://php.net/auto-append-file
772 | auto_append_file =
773 |
774 | ; By default, PHP will output a character encoding using
775 | ; the Content-type: header. To disable sending of the charset, simply
776 | ; set it to be empty.
777 | ;
778 | ; PHP's built-in default is text/html
779 | ; http://php.net/default-mimetype
780 | default_mimetype = "text/html"
781 |
782 | ; PHP's default character set is set to empty.
783 | ; http://php.net/default-charset
784 | ;default_charset = "iso-8859-1"
785 |
786 | ; Always populate the $HTTP_RAW_POST_DATA variable. PHP's default behavior is
787 | ; to disable this feature.
788 | ; http://php.net/always-populate-raw-post-data
789 | ;always_populate_raw_post_data = On
790 |
791 | ;;;;;;;;;;;;;;;;;;;;;;;;;
792 | ; Paths and Directories ;
793 | ;;;;;;;;;;;;;;;;;;;;;;;;;
794 |
795 | ; UNIX: "/path1:/path2"
796 | ;include_path = ".:/php/includes"
797 | ;
798 | ; Windows: "\path1;\path2"
799 | ;include_path = ".;c:\php\includes"
800 | ;
801 | ; PHP's default setting for include_path is ".;/path/to/php/pear"
802 | ; http://php.net/include-path
803 |
804 | ; The root of the PHP pages, used only if nonempty.
805 | ; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root
806 | ; if you are running php as a CGI under any web server (other than IIS)
807 | ; see documentation for security issues. The alternate is to use the
808 | ; cgi.force_redirect configuration below
809 | ; http://php.net/doc-root
810 | doc_root =
811 |
812 | ; The directory under which PHP opens the script using /~username used only
813 | ; if nonempty.
814 | ; http://php.net/user-dir
815 | user_dir =
816 |
817 | ; Directory in which the loadable extensions (modules) reside.
818 | ; http://php.net/extension-dir
819 | ; extension_dir = "./"
820 | ; On windows:
821 | ; extension_dir = "ext"
822 |
823 | ; Whether or not to enable the dl() function. The dl() function does NOT work
824 | ; properly in multithreaded servers, such as IIS or Zeus, and is automatically
825 | ; disabled on them.
826 | ; http://php.net/enable-dl
827 | enable_dl = Off
828 |
829 | ; cgi.force_redirect is necessary to provide security running PHP as a CGI under
830 | ; most web servers. Left undefined, PHP turns this on by default. You can
831 | ; turn it off here AT YOUR OWN RISK
832 | ; **You CAN safely turn this off for IIS, in fact, you MUST.**
833 | ; http://php.net/cgi.force-redirect
834 | ;cgi.force_redirect = 1
835 |
836 | ; if cgi.nph is enabled it will force cgi to always sent Status: 200 with
837 | ; every request. PHP's default behavior is to disable this feature.
838 | ;cgi.nph = 1
839 |
840 | ; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape
841 | ; (iPlanet) web servers, you MAY need to set an environment variable name that PHP
842 | ; will look for to know it is OK to continue execution. Setting this variable MAY
843 | ; cause security issues, KNOW WHAT YOU ARE DOING FIRST.
844 | ; http://php.net/cgi.redirect-status-env
845 | ;cgi.redirect_status_env = ;
846 |
847 | ; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's
848 | ; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok
849 | ; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting
850 | ; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting
851 | ; of zero causes PHP to behave as before. Default is 1. You should fix your scripts
852 | ; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.
853 | ; http://php.net/cgi.fix-pathinfo
854 | ;cgi.fix_pathinfo=1
855 |
856 | ; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate
857 | ; security tokens of the calling client. This allows IIS to define the
858 | ; security context that the request runs under. mod_fastcgi under Apache
859 | ; does not currently support this feature (03/17/2002)
860 | ; Set to 1 if running under IIS. Default is zero.
861 | ; http://php.net/fastcgi.impersonate
862 | ;fastcgi.impersonate = 1;
863 |
864 | ; Disable logging through FastCGI connection. PHP's default behavior is to enable
865 | ; this feature.
866 | ;fastcgi.logging = 0
867 |
868 | ; cgi.rfc2616_headers configuration option tells PHP what type of headers to
869 | ; use when sending HTTP response code. If it's set 0 PHP sends Status: header that
870 | ; is supported by Apache. When this option is set to 1 PHP will send
871 | ; RFC2616 compliant header.
872 | ; Default is zero.
873 | ; http://php.net/cgi.rfc2616-headers
874 | ;cgi.rfc2616_headers = 0
875 |
876 | ;;;;;;;;;;;;;;;;
877 | ; File Uploads ;
878 | ;;;;;;;;;;;;;;;;
879 |
880 | ; Whether to allow HTTP file uploads.
881 | ; http://php.net/file-uploads
882 | file_uploads = On
883 |
884 | ; Temporary directory for HTTP uploaded files (will use system default if not
885 | ; specified).
886 | ; http://php.net/upload-tmp-dir
887 | ;upload_tmp_dir =
888 |
889 | ; Maximum allowed size for uploaded files.
890 | ; http://php.net/upload-max-filesize
891 | upload_max_filesize = 2M
892 |
893 | ; Maximum number of files that can be uploaded via a single request
894 | max_file_uploads = 20
895 |
896 | ;;;;;;;;;;;;;;;;;;
897 | ; Fopen wrappers ;
898 | ;;;;;;;;;;;;;;;;;;
899 |
900 | ; Whether to allow the treatment of URLs (like http:// or ftp://) as files.
901 | ; http://php.net/allow-url-fopen
902 | allow_url_fopen = On
903 |
904 | ; Whether to allow include/require to open URLs (like http:// or ftp://) as files.
905 | ; http://php.net/allow-url-include
906 | allow_url_include = Off
907 |
908 | ; Define the anonymous ftp password (your email address). PHP's default setting
909 | ; for this is empty.
910 | ; http://php.net/from
911 | ;from="john@doe.com"
912 |
913 | ; Define the User-Agent string. PHP's default setting for this is empty.
914 | ; http://php.net/user-agent
915 | ;user_agent="PHP"
916 |
917 | ; Default timeout for socket based streams (seconds)
918 | ; http://php.net/default-socket-timeout
919 | default_socket_timeout = 60
920 |
921 | ; If your scripts have to deal with files from Macintosh systems,
922 | ; or you are running on a Mac and need to deal with files from
923 | ; unix or win32 systems, setting this flag will cause PHP to
924 | ; automatically detect the EOL character in those files so that
925 | ; fgets() and file() will work regardless of the source of the file.
926 | ; http://php.net/auto-detect-line-endings
927 | ;auto_detect_line_endings = Off
928 |
929 | ;;;;;;;;;;;;;;;;;;;;;;
930 | ; Dynamic Extensions ;
931 | ;;;;;;;;;;;;;;;;;;;;;;
932 |
933 | ; If you wish to have an extension loaded automatically, use the following
934 | ; syntax:
935 | ;
936 | ; extension=modulename.extension
937 | ;
938 | ; For example, on Windows:
939 | ;
940 | ; extension=msql.dll
941 | ;
942 | ; ... or under UNIX:
943 | ;
944 | ; extension=msql.so
945 | ;
946 | ; ... or with a path:
947 | ;
948 | ; extension=/path/to/extension/msql.so
949 | ;
950 | ; If you only provide the name of the extension, PHP will look for it in its
951 | ; default extension directory.
952 | ;
953 | ; Windows Extensions
954 | ; Note that ODBC support is built in, so no dll is needed for it.
955 | ; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5)
956 | ; extension folders as well as the separate PECL DLL download (PHP 5).
957 | ; Be sure to appropriately set the extension_dir directive.
958 | ;
959 | ;extension=php_bz2.dll
960 | ;extension=php_curl.dll
961 | ;extension=php_fileinfo.dll
962 | ;extension=php_gd2.dll
963 | ;extension=php_gettext.dll
964 | ;extension=php_gmp.dll
965 | ;extension=php_intl.dll
966 | ;extension=php_imap.dll
967 | ;extension=php_interbase.dll
968 | ;extension=php_ldap.dll
969 | ;extension=php_mbstring.dll
970 | ;extension=php_exif.dll ; Must be after mbstring as it depends on it
971 | ;extension=php_mysql.dll
972 | ;extension=php_mysqli.dll
973 | ;extension=php_oci8.dll ; Use with Oracle 10gR2 Instant Client
974 | ;extension=php_oci8_11g.dll ; Use with Oracle 11gR2 Instant Client
975 | ;extension=php_openssl.dll
976 | ;extension=php_pdo_firebird.dll
977 | ;extension=php_pdo_mssql.dll
978 | ;extension=php_pdo_mysql.dll
979 | ;extension=php_pdo_oci.dll
980 | ;extension=php_pdo_odbc.dll
981 | ;extension=php_pdo_pgsql.dll
982 | ;extension=php_pdo_sqlite.dll
983 | ;extension=php_pgsql.dll
984 | ;extension=php_pspell.dll
985 | ;extension=php_shmop.dll
986 |
987 | ; The MIBS data available in the PHP distribution must be installed.
988 | ; See http://www.php.net/manual/en/snmp.installation.php
989 | ;extension=php_snmp.dll
990 |
991 | ;extension=php_soap.dll
992 | ;extension=php_sockets.dll
993 | ;extension=php_sqlite.dll
994 | ;extension=php_sqlite3.dll
995 | ;extension=php_sybase_ct.dll
996 | ;extension=php_tidy.dll
997 | ;extension=php_xmlrpc.dll
998 | ;extension=php_xsl.dll
999 | ;extension=php_zip.dll
1000 |
1001 | ;;;;;;;;;;;;;;;;;;;
1002 | ; Module Settings ;
1003 | ;;;;;;;;;;;;;;;;;;;
1004 |
1005 | [Date]
1006 | ; Defines the default timezone used by the date functions
1007 | ; http://php.net/date.timezone
1008 | date.timezone = Asia/Shanghai
1009 |
1010 | ; http://php.net/date.default-latitude
1011 | ;date.default_latitude = 31.7667
1012 |
1013 | ; http://php.net/date.default-longitude
1014 | ;date.default_longitude = 35.2333
1015 |
1016 | ; http://php.net/date.sunrise-zenith
1017 | ;date.sunrise_zenith = 90.583333
1018 |
1019 | ; http://php.net/date.sunset-zenith
1020 | ;date.sunset_zenith = 90.583333
1021 |
1022 | [filter]
1023 | ; http://php.net/filter.default
1024 | ;filter.default = unsafe_raw
1025 |
1026 | ; http://php.net/filter.default-flags
1027 | ;filter.default_flags =
1028 |
1029 | [iconv]
1030 | ;iconv.input_encoding = ISO-8859-1
1031 | ;iconv.internal_encoding = ISO-8859-1
1032 | ;iconv.output_encoding = ISO-8859-1
1033 |
1034 | [intl]
1035 | ;intl.default_locale =
1036 | ; This directive allows you to produce PHP errors when some error
1037 | ; happens within intl functions. The value is the level of the error produced.
1038 | ; Default is 0, which does not produce any errors.
1039 | ;intl.error_level = E_WARNING
1040 |
1041 | [sqlite]
1042 | ; http://php.net/sqlite.assoc-case
1043 | ;sqlite.assoc_case = 0
1044 |
1045 | [sqlite3]
1046 | ;sqlite3.extension_dir =
1047 |
1048 | [Pcre]
1049 | ;PCRE library backtracking limit.
1050 | ; http://php.net/pcre.backtrack-limit
1051 | ;pcre.backtrack_limit=100000
1052 |
1053 | ;PCRE library recursion limit.
1054 | ;Please note that if you set this value to a high number you may consume all
1055 | ;the available process stack and eventually crash PHP (due to reaching the
1056 | ;stack size limit imposed by the Operating System).
1057 | ; http://php.net/pcre.recursion-limit
1058 | ;pcre.recursion_limit=100000
1059 |
1060 | [Pdo]
1061 | ; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off"
1062 | ; http://php.net/pdo-odbc.connection-pooling
1063 | ;pdo_odbc.connection_pooling=strict
1064 |
1065 | ;pdo_odbc.db2_instance_name
1066 |
1067 | [Pdo_mysql]
1068 | ; If mysqlnd is used: Number of cache slots for the internal result set cache
1069 | ; http://php.net/pdo_mysql.cache_size
1070 | pdo_mysql.cache_size = 2000
1071 |
1072 | ; Default socket name for local MySQL connects. If empty, uses the built-in
1073 | ; MySQL defaults.
1074 | ; http://php.net/pdo_mysql.default-socket
1075 | pdo_mysql.default_socket=
1076 |
1077 | [Phar]
1078 | ; http://php.net/phar.readonly
1079 | ;phar.readonly = On
1080 |
1081 | ; http://php.net/phar.require-hash
1082 | ;phar.require_hash = On
1083 |
1084 | ;phar.cache_list =
1085 |
1086 | [Syslog]
1087 | ; Whether or not to define the various syslog variables (e.g. $LOG_PID,
1088 | ; $LOG_CRON, etc.). Turning it off is a good idea performance-wise. In
1089 | ; runtime, you can define these variables by calling define_syslog_variables().
1090 | ; http://php.net/define-syslog-variables
1091 | define_syslog_variables = Off
1092 |
1093 | [mail function]
1094 | ; For Win32 only.
1095 | ; http://php.net/smtp
1096 | SMTP = localhost
1097 | ; http://php.net/smtp-port
1098 | smtp_port = 25
1099 |
1100 | ; For Win32 only.
1101 | ; http://php.net/sendmail-from
1102 | ;sendmail_from = me@example.com
1103 |
1104 | ; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
1105 | ; http://php.net/sendmail-path
1106 | ;sendmail_path =
1107 |
1108 | ; Force the addition of the specified parameters to be passed as extra parameters
1109 | ; to the sendmail binary. These parameters will always replace the value of
1110 | ; the 5th parameter to mail(), even in safe mode.
1111 | ;mail.force_extra_parameters =
1112 |
1113 | ; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename
1114 | mail.add_x_header = On
1115 |
1116 | ; The path to a log file that will log all mail() calls. Log entries include
1117 | ; the full path of the script, line number, To address and headers.
1118 | ;mail.log =
1119 |
1120 | [SQL]
1121 | ; http://php.net/sql.safe-mode
1122 | sql.safe_mode = Off
1123 |
1124 | [ODBC]
1125 | ; http://php.net/odbc.default-db
1126 | ;odbc.default_db = Not yet implemented
1127 |
1128 | ; http://php.net/odbc.default-user
1129 | ;odbc.default_user = Not yet implemented
1130 |
1131 | ; http://php.net/odbc.default-pw
1132 | ;odbc.default_pw = Not yet implemented
1133 |
1134 | ; Controls the ODBC cursor model.
1135 | ; Default: SQL_CURSOR_STATIC (default).
1136 | ;odbc.default_cursortype
1137 |
1138 | ; Allow or prevent persistent links.
1139 | ; http://php.net/odbc.allow-persistent
1140 | odbc.allow_persistent = On
1141 |
1142 | ; Check that a connection is still valid before reuse.
1143 | ; http://php.net/odbc.check-persistent
1144 | odbc.check_persistent = On
1145 |
1146 | ; Maximum number of persistent links. -1 means no limit.
1147 | ; http://php.net/odbc.max-persistent
1148 | odbc.max_persistent = -1
1149 |
1150 | ; Maximum number of links (persistent + non-persistent). -1 means no limit.
1151 | ; http://php.net/odbc.max-links
1152 | odbc.max_links = -1
1153 |
1154 | ; Handling of LONG fields. Returns number of bytes to variables. 0 means
1155 | ; passthru.
1156 | ; http://php.net/odbc.defaultlrl
1157 | odbc.defaultlrl = 4096
1158 |
1159 | ; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char.
1160 | ; See the documentation on odbc_binmode and odbc_longreadlen for an explanation
1161 | ; of odbc.defaultlrl and odbc.defaultbinmode
1162 | ; http://php.net/odbc.defaultbinmode
1163 | odbc.defaultbinmode = 1
1164 |
1165 | ;birdstep.max_links = -1
1166 |
1167 | [Interbase]
1168 | ; Allow or prevent persistent links.
1169 | ibase.allow_persistent = 1
1170 |
1171 | ; Maximum number of persistent links. -1 means no limit.
1172 | ibase.max_persistent = -1
1173 |
1174 | ; Maximum number of links (persistent + non-persistent). -1 means no limit.
1175 | ibase.max_links = -1
1176 |
1177 | ; Default database name for ibase_connect().
1178 | ;ibase.default_db =
1179 |
1180 | ; Default username for ibase_connect().
1181 | ;ibase.default_user =
1182 |
1183 | ; Default password for ibase_connect().
1184 | ;ibase.default_password =
1185 |
1186 | ; Default charset for ibase_connect().
1187 | ;ibase.default_charset =
1188 |
1189 | ; Default timestamp format.
1190 | ibase.timestampformat = "%Y-%m-%d %H:%M:%S"
1191 |
1192 | ; Default date format.
1193 | ibase.dateformat = "%Y-%m-%d"
1194 |
1195 | ; Default time format.
1196 | ibase.timeformat = "%H:%M:%S"
1197 |
1198 | [MySQL]
1199 | ; Allow accessing, from PHP's perspective, local files with LOAD DATA statements
1200 | ; http://php.net/mysql.allow_local_infile
1201 | mysql.allow_local_infile = On
1202 |
1203 | ; Allow or prevent persistent links.
1204 | ; http://php.net/mysql.allow-persistent
1205 | mysql.allow_persistent = On
1206 |
1207 | ; If mysqlnd is used: Number of cache slots for the internal result set cache
1208 | ; http://php.net/mysql.cache_size
1209 | mysql.cache_size = 2000
1210 |
1211 | ; Maximum number of persistent links. -1 means no limit.
1212 | ; http://php.net/mysql.max-persistent
1213 | mysql.max_persistent = -1
1214 |
1215 | ; Maximum number of links (persistent + non-persistent). -1 means no limit.
1216 | ; http://php.net/mysql.max-links
1217 | mysql.max_links = -1
1218 |
1219 | ; Default port number for mysql_connect(). If unset, mysql_connect() will use
1220 | ; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the
1221 | ; compile-time value defined MYSQL_PORT (in that order). Win32 will only look
1222 | ; at MYSQL_PORT.
1223 | ; http://php.net/mysql.default-port
1224 | mysql.default_port =
1225 |
1226 | ; Default socket name for local MySQL connects. If empty, uses the built-in
1227 | ; MySQL defaults.
1228 | ; http://php.net/mysql.default-socket
1229 | mysql.default_socket =
1230 |
1231 | ; Default host for mysql_connect() (doesn't apply in safe mode).
1232 | ; http://php.net/mysql.default-host
1233 | mysql.default_host =
1234 |
1235 | ; Default user for mysql_connect() (doesn't apply in safe mode).
1236 | ; http://php.net/mysql.default-user
1237 | mysql.default_user =
1238 |
1239 | ; Default password for mysql_connect() (doesn't apply in safe mode).
1240 | ; Note that this is generally a *bad* idea to store passwords in this file.
1241 | ; *Any* user with PHP access can run 'echo get_cfg_var("mysql.default_password")
1242 | ; and reveal this password! And of course, any users with read access to this
1243 | ; file will be able to reveal the password as well.
1244 | ; http://php.net/mysql.default-password
1245 | mysql.default_password =
1246 |
1247 | ; Maximum time (in seconds) for connect timeout. -1 means no limit
1248 | ; http://php.net/mysql.connect-timeout
1249 | mysql.connect_timeout = 60
1250 |
1251 | ; Trace mode. When trace_mode is active (=On), warnings for table/index scans and
1252 | ; SQL-Errors will be displayed.
1253 | ; http://php.net/mysql.trace-mode
1254 | mysql.trace_mode = Off
1255 |
1256 | [MySQLi]
1257 |
1258 | ; Maximum number of persistent links. -1 means no limit.
1259 | ; http://php.net/mysqli.max-persistent
1260 | mysqli.max_persistent = -1
1261 |
1262 | ; Allow accessing, from PHP's perspective, local files with LOAD DATA statements
1263 | ; http://php.net/mysqli.allow_local_infile
1264 | ;mysqli.allow_local_infile = On
1265 |
1266 | ; Allow or prevent persistent links.
1267 | ; http://php.net/mysqli.allow-persistent
1268 | mysqli.allow_persistent = On
1269 |
1270 | ; Maximum number of links. -1 means no limit.
1271 | ; http://php.net/mysqli.max-links
1272 | mysqli.max_links = -1
1273 |
1274 | ; If mysqlnd is used: Number of cache slots for the internal result set cache
1275 | ; http://php.net/mysqli.cache_size
1276 | mysqli.cache_size = 2000
1277 |
1278 | ; Default port number for mysqli_connect(). If unset, mysqli_connect() will use
1279 | ; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the
1280 | ; compile-time value defined MYSQL_PORT (in that order). Win32 will only look
1281 | ; at MYSQL_PORT.
1282 | ; http://php.net/mysqli.default-port
1283 | mysqli.default_port = 3306
1284 |
1285 | ; Default socket name for local MySQL connects. If empty, uses the built-in
1286 | ; MySQL defaults.
1287 | ; http://php.net/mysqli.default-socket
1288 | mysqli.default_socket =
1289 |
1290 | ; Default host for mysql_connect() (doesn't apply in safe mode).
1291 | ; http://php.net/mysqli.default-host
1292 | mysqli.default_host =
1293 |
1294 | ; Default user for mysql_connect() (doesn't apply in safe mode).
1295 | ; http://php.net/mysqli.default-user
1296 | mysqli.default_user =
1297 |
1298 | ; Default password for mysqli_connect() (doesn't apply in safe mode).
1299 | ; Note that this is generally a *bad* idea to store passwords in this file.
1300 | ; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw")
1301 | ; and reveal this password! And of course, any users with read access to this
1302 | ; file will be able to reveal the password as well.
1303 | ; http://php.net/mysqli.default-pw
1304 | mysqli.default_pw =
1305 |
1306 | ; Allow or prevent reconnect
1307 | mysqli.reconnect = Off
1308 |
1309 | [mysqlnd]
1310 | ; Enable / Disable collection of general statistics by mysqlnd which can be
1311 | ; used to tune and monitor MySQL operations.
1312 | ; http://php.net/mysqlnd.collect_statistics
1313 | mysqlnd.collect_statistics = On
1314 |
1315 | ; Enable / Disable collection of memory usage statistics by mysqlnd which can be
1316 | ; used to tune and monitor MySQL operations.
1317 | ; http://php.net/mysqlnd.collect_memory_statistics
1318 | mysqlnd.collect_memory_statistics = Off
1319 |
1320 | ; Size of a pre-allocated buffer used when sending commands to MySQL in bytes.
1321 | ; http://php.net/mysqlnd.net_cmd_buffer_size
1322 | ;mysqlnd.net_cmd_buffer_size = 2048
1323 |
1324 | ; Size of a pre-allocated buffer used for reading data sent by the server in
1325 | ; bytes.
1326 | ; http://php.net/mysqlnd.net_read_buffer_size
1327 | ;mysqlnd.net_read_buffer_size = 32768
1328 |
1329 | [OCI8]
1330 |
1331 | ; Connection: Enables privileged connections using external
1332 | ; credentials (OCI_SYSOPER, OCI_SYSDBA)
1333 | ; http://php.net/oci8.privileged-connect
1334 | ;oci8.privileged_connect = Off
1335 |
1336 | ; Connection: The maximum number of persistent OCI8 connections per
1337 | ; process. Using -1 means no limit.
1338 | ; http://php.net/oci8.max-persistent
1339 | ;oci8.max_persistent = -1
1340 |
1341 | ; Connection: The maximum number of seconds a process is allowed to
1342 | ; maintain an idle persistent connection. Using -1 means idle
1343 | ; persistent connections will be maintained forever.
1344 | ; http://php.net/oci8.persistent-timeout
1345 | ;oci8.persistent_timeout = -1
1346 |
1347 | ; Connection: The number of seconds that must pass before issuing a
1348 | ; ping during oci_pconnect() to check the connection validity. When
1349 | ; set to 0, each oci_pconnect() will cause a ping. Using -1 disables
1350 | ; pings completely.
1351 | ; http://php.net/oci8.ping-interval
1352 | ;oci8.ping_interval = 60
1353 |
1354 | ; Connection: Set this to a user chosen connection class to be used
1355 | ; for all pooled server requests with Oracle 11g Database Resident
1356 | ; Connection Pooling (DRCP). To use DRCP, this value should be set to
1357 | ; the same string for all web servers running the same application,
1358 | ; the database pool must be configured, and the connection string must
1359 | ; specify to use a pooled server.
1360 | ;oci8.connection_class =
1361 |
1362 | ; High Availability: Using On lets PHP receive Fast Application
1363 | ; Notification (FAN) events generated when a database node fails. The
1364 | ; database must also be configured to post FAN events.
1365 | ;oci8.events = Off
1366 |
1367 | ; Tuning: This option enables statement caching, and specifies how
1368 | ; many statements to cache. Using 0 disables statement caching.
1369 | ; http://php.net/oci8.statement-cache-size
1370 | ;oci8.statement_cache_size = 20
1371 |
1372 | ; Tuning: Enables statement prefetching and sets the default number of
1373 | ; rows that will be fetched automatically after statement execution.
1374 | ; http://php.net/oci8.default-prefetch
1375 | ;oci8.default_prefetch = 100
1376 |
1377 | ; Compatibility. Using On means oci_close() will not close
1378 | ; oci_connect() and oci_new_connect() connections.
1379 | ; http://php.net/oci8.old-oci-close-semantics
1380 | ;oci8.old_oci_close_semantics = Off
1381 |
1382 | [PostgreSQL]
1383 | ; Allow or prevent persistent links.
1384 | ; http://php.net/pgsql.allow-persistent
1385 | pgsql.allow_persistent = On
1386 |
1387 | ; Detect broken persistent links always with pg_pconnect().
1388 | ; Auto reset feature requires a little overheads.
1389 | ; http://php.net/pgsql.auto-reset-persistent
1390 | pgsql.auto_reset_persistent = Off
1391 |
1392 | ; Maximum number of persistent links. -1 means no limit.
1393 | ; http://php.net/pgsql.max-persistent
1394 | pgsql.max_persistent = -1
1395 |
1396 | ; Maximum number of links (persistent+non persistent). -1 means no limit.
1397 | ; http://php.net/pgsql.max-links
1398 | pgsql.max_links = -1
1399 |
1400 | ; Ignore PostgreSQL backends Notice message or not.
1401 | ; Notice message logging require a little overheads.
1402 | ; http://php.net/pgsql.ignore-notice
1403 | pgsql.ignore_notice = 0
1404 |
1405 | ; Log PostgreSQL backends Notice message or not.
1406 | ; Unless pgsql.ignore_notice=0, module cannot log notice message.
1407 | ; http://php.net/pgsql.log-notice
1408 | pgsql.log_notice = 0
1409 |
1410 | [Sybase-CT]
1411 | ; Allow or prevent persistent links.
1412 | ; http://php.net/sybct.allow-persistent
1413 | sybct.allow_persistent = On
1414 |
1415 | ; Maximum number of persistent links. -1 means no limit.
1416 | ; http://php.net/sybct.max-persistent
1417 | sybct.max_persistent = -1
1418 |
1419 | ; Maximum number of links (persistent + non-persistent). -1 means no limit.
1420 | ; http://php.net/sybct.max-links
1421 | sybct.max_links = -1
1422 |
1423 | ; Minimum server message severity to display.
1424 | ; http://php.net/sybct.min-server-severity
1425 | sybct.min_server_severity = 10
1426 |
1427 | ; Minimum client message severity to display.
1428 | ; http://php.net/sybct.min-client-severity
1429 | sybct.min_client_severity = 10
1430 |
1431 | ; Set per-context timeout
1432 | ; http://php.net/sybct.timeout
1433 | ;sybct.timeout=
1434 |
1435 | ;sybct.packet_size
1436 |
1437 | ; The maximum time in seconds to wait for a connection attempt to succeed before returning failure.
1438 | ; Default: one minute
1439 | ;sybct.login_timeout=
1440 |
1441 | ; The name of the host you claim to be connecting from, for display by sp_who.
1442 | ; Default: none
1443 | ;sybct.hostname=
1444 |
1445 | ; Allows you to define how often deadlocks are to be retried. -1 means "forever".
1446 | ; Default: 0
1447 | ;sybct.deadlock_retry_count=
1448 |
1449 | [bcmath]
1450 | ; Number of decimal digits for all bcmath functions.
1451 | ; http://php.net/bcmath.scale
1452 | bcmath.scale = 0
1453 |
1454 | [browscap]
1455 | ; http://php.net/browscap
1456 | ;browscap = extra/browscap.ini
1457 |
1458 | [Session]
1459 | ; Handler used to store/retrieve data.
1460 | ; http://php.net/session.save-handler
1461 | session.save_handler = files
1462 |
1463 | ; Argument passed to save_handler. In the case of files, this is the path
1464 | ; where data files are stored. Note: Windows users have to change this
1465 | ; variable in order to use PHP's session functions.
1466 | ;
1467 | ; The path can be defined as:
1468 | ;
1469 | ; session.save_path = "N;/path"
1470 | ;
1471 | ; where N is an integer. Instead of storing all the session files in
1472 | ; /path, what this will do is use subdirectories N-levels deep, and
1473 | ; store the session data in those directories. This is useful if you
1474 | ; or your OS have problems with lots of files in one directory, and is
1475 | ; a more efficient layout for servers that handle lots of sessions.
1476 | ;
1477 | ; NOTE 1: PHP will not create this directory structure automatically.
1478 | ; You can use the script in the ext/session dir for that purpose.
1479 | ; NOTE 2: See the section on garbage collection below if you choose to
1480 | ; use subdirectories for session storage
1481 | ;
1482 | ; The file storage module creates files using mode 600 by default.
1483 | ; You can change that by using
1484 | ;
1485 | ; session.save_path = "N;MODE;/path"
1486 | ;
1487 | ; where MODE is the octal representation of the mode. Note that this
1488 | ; does not overwrite the process's umask.
1489 | ; http://php.net/session.save-path
1490 | ;session.save_path = "/tmp"
1491 |
1492 | ; Whether to use cookies.
1493 | ; http://php.net/session.use-cookies
1494 | session.use_cookies = 1
1495 |
1496 | ; http://php.net/session.cookie-secure
1497 | ;session.cookie_secure =
1498 |
1499 | ; This option forces PHP to fetch and use a cookie for storing and maintaining
1500 | ; the session id. We encourage this operation as it's very helpful in combatting
1501 | ; session hijacking when not specifying and managing your own session id. It is
1502 | ; not the end all be all of session hijacking defense, but it's a good start.
1503 | ; http://php.net/session.use-only-cookies
1504 | session.use_only_cookies = 1
1505 |
1506 | ; Name of the session (used as cookie name).
1507 | ; http://php.net/session.name
1508 | session.name = PHPSESSID
1509 |
1510 | ; Initialize session on request startup.
1511 | ; http://php.net/session.auto-start
1512 | session.auto_start = 0
1513 |
1514 | ; Lifetime in seconds of cookie or, if 0, until browser is restarted.
1515 | ; http://php.net/session.cookie-lifetime
1516 | session.cookie_lifetime = 0
1517 |
1518 | ; The path for which the cookie is valid.
1519 | ; http://php.net/session.cookie-path
1520 | session.cookie_path = /
1521 |
1522 | ; The domain for which the cookie is valid.
1523 | ; http://php.net/session.cookie-domain
1524 | session.cookie_domain =
1525 |
1526 | ; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript.
1527 | ; http://php.net/session.cookie-httponly
1528 | session.cookie_httponly =
1529 |
1530 | ; Handler used to serialize data. php is the standard serializer of PHP.
1531 | ; http://php.net/session.serialize-handler
1532 | session.serialize_handler = php
1533 |
1534 | ; Defines the probability that the 'garbage collection' process is started
1535 | ; on every session initialization. The probability is calculated by using
1536 | ; gc_probability/gc_divisor. Where session.gc_probability is the numerator
1537 | ; and gc_divisor is the denominator in the equation. Setting this value to 1
1538 | ; when the session.gc_divisor value is 100 will give you approximately a 1% chance
1539 | ; the gc will run on any give request.
1540 | ; Default Value: 1
1541 | ; Development Value: 1
1542 | ; Production Value: 1
1543 | ; http://php.net/session.gc-probability
1544 | session.gc_probability = 1
1545 |
1546 | ; Defines the probability that the 'garbage collection' process is started on every
1547 | ; session initialization. The probability is calculated by using the following equation:
1548 | ; gc_probability/gc_divisor. Where session.gc_probability is the numerator and
1549 | ; session.gc_divisor is the denominator in the equation. Setting this value to 1
1550 | ; when the session.gc_divisor value is 100 will give you approximately a 1% chance
1551 | ; the gc will run on any give request. Increasing this value to 1000 will give you
1552 | ; a 0.1% chance the gc will run on any give request. For high volume production servers,
1553 | ; this is a more efficient approach.
1554 | ; Default Value: 100
1555 | ; Development Value: 1000
1556 | ; Production Value: 1000
1557 | ; http://php.net/session.gc-divisor
1558 | session.gc_divisor = 1000
1559 |
1560 | ; After this number of seconds, stored data will be seen as 'garbage' and
1561 | ; cleaned up by the garbage collection process.
1562 | ; http://php.net/session.gc-maxlifetime
1563 | session.gc_maxlifetime = 1440
1564 |
1565 | ; NOTE: If you are using the subdirectory option for storing session files
1566 | ; (see session.save_path above), then garbage collection does *not*
1567 | ; happen automatically. You will need to do your own garbage
1568 | ; collection through a shell script, cron entry, or some other method.
1569 | ; For example, the following script would is the equivalent of
1570 | ; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes):
1571 | ; find /path/to/sessions -cmin +24 | xargs rm
1572 |
1573 | ; PHP 4.2 and less have an undocumented feature/bug that allows you to
1574 | ; to initialize a session variable in the global scope, even when register_globals
1575 | ; is disabled. PHP 4.3 and later will warn you, if this feature is used.
1576 | ; You can disable the feature and the warning separately. At this time,
1577 | ; the warning is only displayed, if bug_compat_42 is enabled. This feature
1578 | ; introduces some serious security problems if not handled correctly. It's
1579 | ; recommended that you do not use this feature on production servers. But you
1580 | ; should enable this on development servers and enable the warning as well. If you
1581 | ; do not enable the feature on development servers, you won't be warned when it's
1582 | ; used and debugging errors caused by this can be difficult to track down.
1583 | ; Default Value: On
1584 | ; Development Value: On
1585 | ; Production Value: Off
1586 | ; http://php.net/session.bug-compat-42
1587 | session.bug_compat_42 = Off
1588 |
1589 | ; This setting controls whether or not you are warned by PHP when initializing a
1590 | ; session value into the global space. session.bug_compat_42 must be enabled before
1591 | ; these warnings can be issued by PHP. See the directive above for more information.
1592 | ; Default Value: On
1593 | ; Development Value: On
1594 | ; Production Value: Off
1595 | ; http://php.net/session.bug-compat-warn
1596 | session.bug_compat_warn = Off
1597 |
1598 | ; Check HTTP Referer to invalidate externally stored URLs containing ids.
1599 | ; HTTP_REFERER has to contain this substring for the session to be
1600 | ; considered as valid.
1601 | ; http://php.net/session.referer-check
1602 | session.referer_check =
1603 |
1604 | ; How many bytes to read from the file.
1605 | ; http://php.net/session.entropy-length
1606 | session.entropy_length = 0
1607 |
1608 | ; Specified here to create the session id.
1609 | ; http://php.net/session.entropy-file
1610 | ; On systems that don't have /dev/urandom /dev/arandom can be used
1611 | ; On windows, setting the entropy_length setting will activate the
1612 | ; Windows random source (using the CryptoAPI)
1613 | ;session.entropy_file = /dev/urandom
1614 |
1615 | ; Set to {nocache,private,public,} to determine HTTP caching aspects
1616 | ; or leave this empty to avoid sending anti-caching headers.
1617 | ; http://php.net/session.cache-limiter
1618 | session.cache_limiter = nocache
1619 |
1620 | ; Document expires after n minutes.
1621 | ; http://php.net/session.cache-expire
1622 | session.cache_expire = 180
1623 |
1624 | ; trans sid support is disabled by default.
1625 | ; Use of trans sid may risk your users security.
1626 | ; Use this option with caution.
1627 | ; - User may send URL contains active session ID
1628 | ; to other person via. email/irc/etc.
1629 | ; - URL that contains active session ID may be stored
1630 | ; in publically accessible computer.
1631 | ; - User may access your site with the same session ID
1632 | ; always using URL stored in browser's history or bookmarks.
1633 | ; http://php.net/session.use-trans-sid
1634 | session.use_trans_sid = 0
1635 |
1636 | ; Select a hash function for use in generating session ids.
1637 | ; Possible Values
1638 | ; 0 (MD5 128 bits)
1639 | ; 1 (SHA-1 160 bits)
1640 | ; This option may also be set to the name of any hash function supported by
1641 | ; the hash extension. A list of available hashes is returned by the hash_algos()
1642 | ; function.
1643 | ; http://php.net/session.hash-function
1644 | session.hash_function = 0
1645 |
1646 | ; Define how many bits are stored in each character when converting
1647 | ; the binary hash data to something readable.
1648 | ; Possible values:
1649 | ; 4 (4 bits: 0-9, a-f)
1650 | ; 5 (5 bits: 0-9, a-v)
1651 | ; 6 (6 bits: 0-9, a-z, A-Z, "-", ",")
1652 | ; Default Value: 4
1653 | ; Development Value: 5
1654 | ; Production Value: 5
1655 | ; http://php.net/session.hash-bits-per-character
1656 | session.hash_bits_per_character = 5
1657 |
1658 | ; The URL rewriter will look for URLs in a defined set of HTML tags.
1659 | ; form/fieldset are special; if you include them here, the rewriter will
1660 | ; add a hidden field with the info which is otherwise appended
1661 | ; to URLs. If you want XHTML conformity, remove the form entry.
1662 | ; Note that all valid entries require a "=", even if no value follows.
1663 | ; Default Value: "a=href,area=href,frame=src,form=,fieldset="
1664 | ; Development Value: "a=href,area=href,frame=src,input=src,form=fakeentry"
1665 | ; Production Value: "a=href,area=href,frame=src,input=src,form=fakeentry"
1666 | ; http://php.net/url-rewriter.tags
1667 | url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
1668 |
1669 | [MSSQL]
1670 | ; Allow or prevent persistent links.
1671 | mssql.allow_persistent = On
1672 |
1673 | ; Maximum number of persistent links. -1 means no limit.
1674 | mssql.max_persistent = -1
1675 |
1676 | ; Maximum number of links (persistent+non persistent). -1 means no limit.
1677 | mssql.max_links = -1
1678 |
1679 | ; Minimum error severity to display.
1680 | mssql.min_error_severity = 10
1681 |
1682 | ; Minimum message severity to display.
1683 | mssql.min_message_severity = 10
1684 |
1685 | ; Compatibility mode with old versions of PHP 3.0.
1686 | mssql.compatability_mode = Off
1687 |
1688 | ; Connect timeout
1689 | ;mssql.connect_timeout = 5
1690 |
1691 | ; Query timeout
1692 | ;mssql.timeout = 60
1693 |
1694 | ; Valid range 0 - 2147483647. Default = 4096.
1695 | ;mssql.textlimit = 4096
1696 |
1697 | ; Valid range 0 - 2147483647. Default = 4096.
1698 | ;mssql.textsize = 4096
1699 |
1700 | ; Limits the number of records in each batch. 0 = all records in one batch.
1701 | ;mssql.batchsize = 0
1702 |
1703 | ; Specify how datetime and datetim4 columns are returned
1704 | ; On => Returns data converted to SQL server settings
1705 | ; Off => Returns values as YYYY-MM-DD hh:mm:ss
1706 | ;mssql.datetimeconvert = On
1707 |
1708 | ; Use NT authentication when connecting to the server
1709 | mssql.secure_connection = Off
1710 |
1711 | ; Specify max number of processes. -1 = library default
1712 | ; msdlib defaults to 25
1713 | ; FreeTDS defaults to 4096
1714 | ;mssql.max_procs = -1
1715 |
1716 | ; Specify client character set.
1717 | ; If empty or not set the client charset from freetds.conf is used
1718 | ; This is only used when compiled with FreeTDS
1719 | ;mssql.charset = "ISO-8859-1"
1720 |
1721 | [Assertion]
1722 | ; Assert(expr); active by default.
1723 | ; http://php.net/assert.active
1724 | ;assert.active = On
1725 |
1726 | ; Issue a PHP warning for each failed assertion.
1727 | ; http://php.net/assert.warning
1728 | ;assert.warning = On
1729 |
1730 | ; Don't bail out by default.
1731 | ; http://php.net/assert.bail
1732 | ;assert.bail = Off
1733 |
1734 | ; User-function to be called if an assertion fails.
1735 | ; http://php.net/assert.callback
1736 | ;assert.callback = 0
1737 |
1738 | ; Eval the expression with current error_reporting(). Set to true if you want
1739 | ; error_reporting(0) around the eval().
1740 | ; http://php.net/assert.quiet-eval
1741 | ;assert.quiet_eval = 0
1742 |
1743 | [COM]
1744 | ; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs
1745 | ; http://php.net/com.typelib-file
1746 | ;com.typelib_file =
1747 |
1748 | ; allow Distributed-COM calls
1749 | ; http://php.net/com.allow-dcom
1750 | ;com.allow_dcom = true
1751 |
1752 | ; autoregister constants of a components typlib on com_load()
1753 | ; http://php.net/com.autoregister-typelib
1754 | ;com.autoregister_typelib = true
1755 |
1756 | ; register constants casesensitive
1757 | ; http://php.net/com.autoregister-casesensitive
1758 | ;com.autoregister_casesensitive = false
1759 |
1760 | ; show warnings on duplicate constant registrations
1761 | ; http://php.net/com.autoregister-verbose
1762 | ;com.autoregister_verbose = true
1763 |
1764 | ; The default character set code-page to use when passing strings to and from COM objects.
1765 | ; Default: system ANSI code page
1766 | ;com.code_page=
1767 |
1768 | [mbstring]
1769 | ; language for internal character representation.
1770 | ; http://php.net/mbstring.language
1771 | ;mbstring.language = Japanese
1772 |
1773 | ; internal/script encoding.
1774 | ; Some encoding cannot work as internal encoding.
1775 | ; (e.g. SJIS, BIG5, ISO-2022-*)
1776 | ; http://php.net/mbstring.internal-encoding
1777 | ;mbstring.internal_encoding = EUC-JP
1778 |
1779 | ; http input encoding.
1780 | ; http://php.net/mbstring.http-input
1781 | ;mbstring.http_input = auto
1782 |
1783 | ; http output encoding. mb_output_handler must be
1784 | ; registered as output buffer to function
1785 | ; http://php.net/mbstring.http-output
1786 | ;mbstring.http_output = SJIS
1787 |
1788 | ; enable automatic encoding translation according to
1789 | ; mbstring.internal_encoding setting. Input chars are
1790 | ; converted to internal encoding by setting this to On.
1791 | ; Note: Do _not_ use automatic encoding translation for
1792 | ; portable libs/applications.
1793 | ; http://php.net/mbstring.encoding-translation
1794 | ;mbstring.encoding_translation = Off
1795 |
1796 | ; automatic encoding detection order.
1797 | ; auto means
1798 | ; http://php.net/mbstring.detect-order
1799 | ;mbstring.detect_order = auto
1800 |
1801 | ; substitute_character used when character cannot be converted
1802 | ; one from another
1803 | ; http://php.net/mbstring.substitute-character
1804 | ;mbstring.substitute_character = none;
1805 |
1806 | ; overload(replace) single byte functions by mbstring functions.
1807 | ; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(),
1808 | ; etc. Possible values are 0,1,2,4 or combination of them.
1809 | ; For example, 7 for overload everything.
1810 | ; 0: No overload
1811 | ; 1: Overload mail() function
1812 | ; 2: Overload str*() functions
1813 | ; 4: Overload ereg*() functions
1814 | ; http://php.net/mbstring.func-overload
1815 | ;mbstring.func_overload = 0
1816 |
1817 | ; enable strict encoding detection.
1818 | ;mbstring.strict_detection = Off
1819 |
1820 | ; This directive specifies the regex pattern of content types for which mb_output_handler()
1821 | ; is activated.
1822 | ; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml)
1823 | ;mbstring.http_output_conv_mimetype=
1824 |
1825 | ; Allows to set script encoding. Only affects if PHP is compiled with --enable-zend-multibyte
1826 | ; Default: ""
1827 | ;mbstring.script_encoding=
1828 |
1829 | ;[gd]
1830 | ; Tell the jpeg decode to ignore warnings and try to create
1831 | ; a gd image. The warning will then be displayed as notices
1832 | ; disabled by default
1833 | ; http://php.net/gd.jpeg-ignore-warning
1834 | ;gd.jpeg_ignore_warning = 0
1835 |
1836 | [exif]
1837 | ; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS.
1838 | ; With mbstring support this will automatically be converted into the encoding
1839 | ; given by corresponding encode setting. When empty mbstring.internal_encoding
1840 | ; is used. For the decode settings you can distinguish between motorola and
1841 | ; intel byte order. A decode setting cannot be empty.
1842 | ; http://php.net/exif.encode-unicode
1843 | ;exif.encode_unicode = ISO-8859-15
1844 |
1845 | ; http://php.net/exif.decode-unicode-motorola
1846 | ;exif.decode_unicode_motorola = UCS-2BE
1847 |
1848 | ; http://php.net/exif.decode-unicode-intel
1849 | ;exif.decode_unicode_intel = UCS-2LE
1850 |
1851 | ; http://php.net/exif.encode-jis
1852 | ;exif.encode_jis =
1853 |
1854 | ; http://php.net/exif.decode-jis-motorola
1855 | ;exif.decode_jis_motorola = JIS
1856 |
1857 | ; http://php.net/exif.decode-jis-intel
1858 | ;exif.decode_jis_intel = JIS
1859 |
1860 | [Tidy]
1861 | ; The path to a default tidy configuration file to use when using tidy
1862 | ; http://php.net/tidy.default-config
1863 | ;tidy.default_config = /usr/local/lib/php/default.tcfg
1864 |
1865 | ; Should tidy clean and repair output automatically?
1866 | ; WARNING: Do not use this option if you are generating non-html content
1867 | ; such as dynamic images
1868 | ; http://php.net/tidy.clean-output
1869 | tidy.clean_output = Off
1870 |
1871 | [soap]
1872 | ; Enables or disables WSDL caching feature.
1873 | ; http://php.net/soap.wsdl-cache-enabled
1874 | soap.wsdl_cache_enabled=1
1875 |
1876 | ; Sets the directory name where SOAP extension will put cache files.
1877 | ; http://php.net/soap.wsdl-cache-dir
1878 | soap.wsdl_cache_dir="/tmp"
1879 |
1880 | ; (time to live) Sets the number of second while cached file will be used
1881 | ; instead of original one.
1882 | ; http://php.net/soap.wsdl-cache-ttl
1883 | soap.wsdl_cache_ttl=86400
1884 |
1885 | ; Sets the size of the cache limit. (Max. number of WSDL files to cache)
1886 | soap.wsdl_cache_limit = 5
1887 |
1888 | [sysvshm]
1889 | ; A default size of the shared memory segment
1890 | ;sysvshm.init_mem = 10000
1891 |
1892 | [ldap]
1893 | ; Sets the maximum number of open links or -1 for unlimited.
1894 | ldap.max_links = -1
1895 |
1896 | [mcrypt]
1897 | ; For more information about mcrypt settings see http://php.net/mcrypt-module-open
1898 |
1899 | ; Directory where to load mcrypt algorithms
1900 | ; Default: Compiled in into libmcrypt (usually /usr/local/lib/libmcrypt)
1901 | ;mcrypt.algorithms_dir=
1902 |
1903 | ; Directory where to load mcrypt modes
1904 | ; Default: Compiled in into libmcrypt (usually /usr/local/lib/libmcrypt)
1905 | ;mcrypt.modes_dir=
1906 |
1907 | [dba]
1908 | ;dba.default_handler=
1909 |
1910 | [xsl]
1911 | ; Write operations from within XSLT are disabled by default.
1912 | ; XSL_SECPREF_CREATE_DIRECTORY | XSL_SECPREF_WRITE_NETWORK | XSL_SECPREF_WRITE_FILE = 44
1913 | ; Set it to 0 to allow all operations
1914 | ;xsl.security_prefs = 44
1915 |
1916 | ; Local Variables:
1917 | ; tab-width: 4
1918 | ; End:
1919 | [apc]
1920 | extension = apc.so
1921 | ; Options for the apc module
1922 | apc.enabled=1
1923 | apc.optimization=1
1924 | apc.shm_size=512M
1925 | apc.ttl=60
1926 | apc.user_ttl=60
1927 | apc.num_files_hint=1024
1928 | apc.mmap_file_mask=/dev/zero
1929 | apc.enable_cli=1
1930 | apc.cache_by_default=1
1931 | ; Enable apc extension module
1932 |
1933 | [redis]
1934 | extension = redis.so
1935 |
1936 | [zeromq]
1937 | extension = zmq.so
1938 |
1939 | [msgpack]
1940 | extension = msgpack.so
1941 | ; Enable bcmath extension module
1942 | ;[bcmath]
1943 | ;extension=bcmath.so
1944 | ; Enable curl extension module
1945 | ;[curl]
1946 | ;extension=curl.so
1947 | ; Enable dbase extension module
1948 | [dbase]
1949 | extension=dbase.so
1950 | ; Enable dom extension module
1951 | ;[dom]
1952 | ;extension=dom.so
1953 | ; Enable gd extension module
1954 | ;[gd]
1955 | ;extension=gd.so
1956 | ; Enable mbstring extension module
1957 | ;[mbstring]
1958 | ;extension=mbstring.so
1959 | ; Enable mcrypt extension module
1960 | [mcrtpt]
1961 | extension=mcrypt.so
1962 | ; Enable memcache extension module
1963 | [memcache]
1964 | extension=memcache.so
1965 | memcache.hash_strategy = "consistent"
1966 | memcache.hash_function = "crc32"
1967 | [mmseg]
1968 | extension=mmseg.so
1969 | mmseg.area_dic="/home/www/v2/dict/areas_ext.dic"
1970 | mmseg.area_level=2000
1971 | mmseg.comm_dic="/home/www/v2/dict/communities_ext.dic"
1972 | mmseg.comm_level=3000
1973 |
1974 | ;[eaccelerator]
1975 | ;extension="eaccelerator.so"
1976 | ;eaccelerator.shm_size="512"
1977 | ;eaccelerator.cache_dir="/opt/local/php-fpm/tmp/eaccelerator"
1978 | ;eaccelerator.enable="1"
1979 | ;eaccelerator.optimizer="1"
1980 | ;eaccelerator.check_mtime="1"
1981 | ;eaccelerator.debug="0"
1982 | ;eaccelerator.filter=""
1983 | ;eaccelerator.shm_max="0"
1984 | ;eaccelerator.shm_ttl="0"
1985 | ;eaccelerator.shm_prune_period="120"
1986 | ;eaccelerator.shm_only="0"
1987 | ;eaccelerator.compress="0"
1988 | ;eaccelerator.compress_level="9"
1989 |
1990 | ; Enable mysqli extension module
1991 |
1992 | ;[mysqli]
1993 | ;extension=mysqli.so
1994 | ; Enable mysql extension module
1995 | ;[mysql]
1996 | ;extension=mysql.so
1997 | ; Enable pdo extension module
1998 | ;[pdo]
1999 | ;extension=pdo.so
2000 | ; Enable pdo_mysql extension module
2001 | ;[pdo_mysql]
2002 | ;extension=pdo_mysql.so
2003 | ; Enable pdo_sqlite extension module
2004 | ;[pdo_sqlite]
2005 | ;extension=pdo_sqlite.so
2006 | ; Enable wddx extension module
2007 | ;[wddx]
2008 | ;extension=wddx.so
2009 | ; Enable xmlreader extension module
2010 | ;[xmlreader]
2011 | ;extension=xmlreader.so
2012 | ; Enable xmlwriter extension module
2013 | ;[xmlwriter]
2014 | ;extension=xmlwriter.so
2015 | ; Enable xsl extension module
2016 | ;[xsl]
2017 | ;extension=xsl.so
2018 | ; Enable zip extension module
2019 | ;[zip]
2020 | ;extension=zip.so
2021 |
--------------------------------------------------------------------------------
/salt_configuration/files/python/init-python.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | tar xvf /root/init-python/setuptools-1.4.2.tar.gz
4 | cd setuptools-1.4.2
5 | python2.7 setup.py install && python2.7 -m easy_install pip && mv /root/init-python/pip-2.7 /usr/bin/
6 | python 2.7 -m virtualenv || python2.7 -m pip install virtualenv && mv /root/init-python/virtualenv-2.7 /usr/bin/
7 |
--------------------------------------------------------------------------------
/salt_configuration/files/python/pip-2.7:
--------------------------------------------------------------------------------
1 | #!/usr/bin/python2.7
2 | # EASY-INSTALL-ENTRY-SCRIPT: 'pip==1.4.1','console_scripts','pip-2.7'
3 | __requires__ = 'pip==1.4.1'
4 | import sys
5 | from pkg_resources import load_entry_point
6 |
7 | if __name__ == '__main__':
8 | sys.exit(
9 | load_entry_point('pip==1.4.1', 'console_scripts', 'pip-2.7')()
10 | )
11 |
--------------------------------------------------------------------------------
/salt_configuration/files/python/setuptools-1.4.2.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kerncai/saltstack/841807b6979b6f59cda26ce89b72f0ffbd9bd5fd/salt_configuration/files/python/setuptools-1.4.2.tar.gz
--------------------------------------------------------------------------------
/salt_configuration/files/python/virtualenv-2.7:
--------------------------------------------------------------------------------
1 | #!/usr/bin/python2.7
2 | # EASY-INSTALL-ENTRY-SCRIPT: 'virtualenv','console_scripts','virtualenv-2.7'
3 | __requires__ = 'virtualenv'
4 | import sys
5 | from pkg_resources import load_entry_point
6 |
7 | if __name__ == '__main__':
8 | sys.exit(
9 | load_entry_point('virtualenv', 'console_scripts', 'virtualenv-2.7')()
10 | )
11 |
--------------------------------------------------------------------------------
/salt_configuration/files/salt-minion/minion:
--------------------------------------------------------------------------------
1 | ##### Primary configuration settings #####
2 | ##########################################
3 |
4 | # Per default the minion will automatically include all config files
5 | # from minion.d/*.conf (minion.d is a directory in the same directory
6 | # as the main minion config file).
7 | #default_include: minion.d/*.conf
8 |
9 | # Set the location of the salt master server, if the master server cannot be
10 | # resolved, then the minion will fail to start.
11 | master: salt
12 |
13 | # Set whether the minion should connect to the master via IPv6
14 | #ipv6: False
15 |
16 | # Set the number of seconds to wait before attempting to resolve
17 | # the master hostname if name resolution fails. Defaults to 30 seconds.
18 | # Set to zero if the minion should shutdown and not retry.
19 | # retry_dns: 30
20 |
21 | # Set the port used by the master reply and authentication server
22 | #master_port: 4506
23 |
24 | # The user to run salt
25 | #user: root
26 |
27 | # Specify the location of the daemon process ID file
28 | #pidfile: /var/run/salt-minion.pid
29 |
30 | # The root directory prepended to these options: pki_dir, cachedir, log_file,
31 | # sock_dir, pidfile.
32 | #root_dir: /
33 |
34 | # The directory to store the pki information in
35 | #pki_dir: /etc/salt/pki/minion
36 |
37 | # Explicitly declare the id for this minion to use, if left commented the id
38 | # will be the hostname as returned by the python call: socket.getfqdn()
39 | # Since salt uses detached ids it is possible to run multiple minions on the
40 | # same machine but with different ids, this can be useful for salt compute
41 | # clusters.
42 | #id:
43 |
44 | # Append a domain to a hostname in the event that it does not exist. This is
45 | # useful for systems where socket.getfqdn() does not actually result in a
46 | # FQDN (for instance, Solaris).
47 | #append_domain:
48 |
49 | # Custom static grains for this minion can be specified here and used in SLS
50 | # files just like all other grains. This example sets 4 custom grains, with
51 | # the 'roles' grain having two values that can be matched against:
52 | #grains:
53 | # roles:
54 | # - webserver
55 | # - memcache
56 | # deployment: datacenter4
57 | # cabinet: 13
58 | # cab_u: 14-15
59 |
60 | # Where cache data goes
61 | #cachedir: /var/cache/salt/minion
62 |
63 | # Verify and set permissions on configuration directories at startup
64 | #verify_env: True
65 |
66 | # The minion can locally cache the return data from jobs sent to it, this
67 | # can be a good way to keep track of jobs the minion has executed
68 | # (on the minion side). By default this feature is disabled, to enable
69 | # set cache_jobs to True
70 | #cache_jobs: False
71 |
72 | # set the directory used to hold unix sockets
73 | #sock_dir: /var/run/salt/minion
74 |
75 | # Set the default outputter used by the salt-call command. The default is
76 | # "nested"
77 | #output: nested
78 | #
79 | # By default output is colored, to disable colored output set the color value
80 | # to False
81 | #color: True
82 |
83 | # Backup files that are replaced by file.managed and file.recurse under
84 | # 'cachedir'/file_backups relative to their original location and appended
85 | # with a timestamp. The only valid setting is "minion". Disabled by default.
86 | #
87 | # Alternatively this can be specified for each file in state files:
88 | #
89 | # /etc/ssh/sshd_config:
90 | # file.managed:
91 | # - source: salt://ssh/sshd_config
92 | # - backup: minion
93 | #
94 | backup_mode: minion
95 |
96 | # When waiting for a master to accept the minion's public key, salt will
97 | # continuously attempt to reconnect until successful. This is the time, in
98 | # seconds, between those reconnection attempts.
99 | #acceptance_wait_time: 10
100 |
101 | # If this is nonzero, the time between reconnection attempts will increase by
102 | # acceptance_wait_time seconds per iteration, up to this maximum. If this is
103 | # set to zero, the time between reconnection attempts will stay constant.
104 | #acceptance_wait_time_max: 0
105 |
106 | # When the master key changes, the minion will try to re-auth itself to receive
107 | # the new master key. In larger environments this can cause a SYN flood on the
108 | # master because all minions try to re-auth immediately. To prevent this and
109 | # have a minion wait for a random amount of time, use this optional parameter.
110 | # The wait-time will be a random number of seconds between
111 | # 0 and the defined value.
112 | #random_reauth_delay: 60
113 |
114 |
115 | # If you don't have any problems with syn-floods, dont bother with the
116 | # three recon_* settings described below, just leave the defaults!
117 | #
118 | # The ZeroMQ pull-socket that binds to the masters publishing interface tries
119 | # to reconnect immediately, if the socket is disconnected (for example if
120 | # the master processes are restarted). In large setups this will have all
121 | # minions reconnect immediately which might flood the master (the ZeroMQ-default
122 | # is usually a 100ms delay). To prevent this, these three recon_* settings
123 | # can be used.
124 | #
125 | # recon_default: the interval in milliseconds that the socket should wait before
126 | # trying to reconnect to the master (100ms = 1 second)
127 | #
128 | # recon_max: the maximum time a socket should wait. each interval the time to wait
129 | # is calculated by doubling the previous time. if recon_max is reached,
130 | # it starts again at recon_default. Short example:
131 | #
132 | # reconnect 1: the socket will wait 'recon_default' milliseconds
133 | # reconnect 2: 'recon_default' * 2
134 | # reconnect 3: ('recon_default' * 2) * 2
135 | # reconnect 4: value from previous interval * 2
136 | # reconnect 5: value from previous interval * 2
137 | # reconnect x: if value >= recon_max, it starts again with recon_default
138 | #
139 | # recon_randomize: generate a random wait time on minion start. The wait time will
140 | # be a random value between recon_default and recon_default +
141 | # recon_max. Having all minions reconnect with the same recon_default
142 | # and recon_max value kind of defeats the purpose of being able to
143 | # change these settings. If all minions have the same values and your
144 | # setup is quite large (several thousand minions), they will still
145 | # flood the master. The desired behaviour is to have timeframe within
146 | # all minions try to reconnect.
147 |
148 | # Example on how to use these settings:
149 | # The goal: have all minions reconnect within a 60 second timeframe on a disconnect
150 | #
151 | # The settings:
152 | #recon_default: 1000
153 | #recon_max: 59000
154 | #recon_randomize: True
155 | #
156 | # Each minion will have a randomized reconnect value between 'recon_default'
157 | # and 'recon_default + recon_max', which in this example means between 1000ms
158 | # 60000ms (or between 1 and 60 seconds). The generated random-value will be
159 | # doubled after each attempt to reconnect. Lets say the generated random
160 | # value is 11 seconds (or 11000ms).
161 | #
162 | # reconnect 1: wait 11 seconds
163 | # reconnect 2: wait 22 seconds
164 | # reconnect 3: wait 33 seconds
165 | # reconnect 4: wait 44 seconds
166 | # reconnect 5: wait 55 seconds
167 | # reconnect 6: wait time is bigger than 60 seconds (recon_default + recon_max)
168 | # reconnect 7: wait 11 seconds
169 | # reconnect 8: wait 22 seconds
170 | # reconnect 9: wait 33 seconds
171 | # reconnect x: etc.
172 | #
173 | # In a setup with ~6000 thousand hosts these settings would average the reconnects
174 | # to about 100 per second and all hosts would be reconnected within 60 seconds.
175 | #recon_default: 100
176 | #recon_max: 5000
177 | #recon_randomize: False
178 |
179 | # The loop_interval sets how long in seconds the minion will wait between
180 | # evaluating the scheduler and running cleanup tasks. This defaults to a
181 | # sane 60 seconds, but if the minion scheduler needs to be evaluated more
182 | # often lower this value
183 | #loop_interval: 60
184 |
185 | # When healing, a dns_check is run. This is to make sure that the originally
186 | # resolved dns has not changed. If this is something that does not happen in
187 | # your environment, set this value to False.
188 | #dns_check: True
189 |
190 | # Windows platforms lack posix IPC and must rely on slower TCP based inter-
191 | # process communications. Set ipc_mode to 'tcp' on such systems
192 | #ipc_mode: ipc
193 | #
194 | # Overwrite the default tcp ports used by the minion when in tcp mode
195 | #tcp_pub_port: 4510
196 | #tcp_pull_port: 4511
197 |
198 | # The minion can include configuration from other files. To enable this,
199 | # pass a list of paths to this option. The paths can be either relative or
200 | # absolute; if relative, they are considered to be relative to the directory
201 | # the main minion configuration file lives in (this file). Paths can make use
202 | # of shell-style globbing. If no files are matched by a path passed to this
203 | # option then the minion will log a warning message.
204 | #
205 | #
206 | # Include a config file from some other path:
207 | # include: /etc/salt/extra_config
208 | #
209 | # Include config from several files and directories:
210 | #include:
211 | # - /etc/salt/extra_config
212 | # - /etc/roles/webserver
213 |
214 | ##### Minion module management #####
215 | ##########################################
216 | # Disable specific modules. This allows the admin to limit the level of
217 | # access the master has to the minion
218 | #disable_modules: [cmd,test]
219 | #disable_returners: []
220 | #
221 | # Modules can be loaded from arbitrary paths. This enables the easy deployment
222 | # of third party modules. Modules for returners and minions can be loaded.
223 | # Specify a list of extra directories to search for minion modules and
224 | # returners. These paths must be fully qualified!
225 | #module_dirs: []
226 | #returner_dirs: []
227 | #states_dirs: []
228 | #render_dirs: []
229 | #
230 | # A module provider can be statically overwritten or extended for the minion
231 | # via the providers option, in this case the default module will be
232 | # overwritten by the specified module. In this example the pkg module will
233 | # be provided by the yumpkg5 module instead of the system default.
234 | #
235 | #providers:
236 | # pkg: yumpkg5
237 | #
238 | # Enable Cython modules searching and loading. (Default: False)
239 | #cython_enable: False
240 | #
241 |
242 | ##### State Management Settings #####
243 | ###########################################
244 | # The state management system executes all of the state templates on the minion
245 | # to enable more granular control of system state management. The type of
246 | # template and serialization used for state management needs to be configured
247 | # on the minion, the default renderer is yaml_jinja. This is a yaml file
248 | # rendered from a jinja template, the available options are:
249 | # yaml_jinja
250 | # yaml_mako
251 | # yaml_wempy
252 | # json_jinja
253 | # json_mako
254 | # json_wempy
255 | #
256 | #renderer: yaml_jinja
257 | #
258 | # The failhard option tells the minions to stop immediately after the first
259 | # failure detected in the state execution, defaults to False
260 | #failhard: False
261 | #
262 | # autoload_dynamic_modules Turns on automatic loading of modules found in the
263 | # environments on the master. This is turned on by default, to turn of
264 | # autoloading modules when states run set this value to False
265 | #autoload_dynamic_modules: True
266 | #
267 | # clean_dynamic_modules keeps the dynamic modules on the minion in sync with
268 | # the dynamic modules on the master, this means that if a dynamic module is
269 | # not on the master it will be deleted from the minion. By default this is
270 | # enabled and can be disabled by changing this value to False
271 | #clean_dynamic_modules: True
272 | #
273 | # Normally the minion is not isolated to any single environment on the master
274 | # when running states, but the environment can be isolated on the minion side
275 | # by statically setting it. Remember that the recommended way to manage
276 | # environments is to isolate via the top file.
277 | #environment: None
278 | #
279 | # If using the local file directory, then the state top file name needs to be
280 | # defined, by default this is top.sls.
281 | #state_top: top.sls
282 | #
283 | # Run states when the minion daemon starts. To enable, set startup_states to:
284 | # 'highstate' -- Execute state.highstate
285 | # 'sls' -- Read in the sls_list option and execute the named sls files
286 | # 'top' -- Read top_file option and execute based on that file on the Master
287 | #startup_states: ''
288 | #
289 | # list of states to run when the minion starts up if startup_states is 'sls'
290 | #sls_list:
291 | # - edit.vim
292 | # - hyper
293 | #
294 | # top file to execute if startup_states is 'top'
295 | #top_file: ''
296 |
297 | ##### File Directory Settings #####
298 | ##########################################
299 | # The Salt Minion can redirect all file server operations to a local directory,
300 | # this allows for the same state tree that is on the master to be used if
301 | # copied completely onto the minion. This is a literal copy of the settings on
302 | # the master but used to reference a local directory on the minion.
303 |
304 | # Set the file client. The client defaults to looking on the master server for
305 | # files, but can be directed to look at the local file directory setting
306 | # defined below by setting it to local.
307 | #file_client: remote
308 |
309 | # The file directory works on environments passed to the minion, each environment
310 | # can have multiple root directories, the subdirectories in the multiple file
311 | # roots cannot match, otherwise the downloaded files will not be able to be
312 | # reliably ensured. A base environment is required to house the top file.
313 | # Example:
314 | # file_roots:
315 | # base:
316 | # - /srv/salt/
317 | # dev:
318 | # - /srv/salt/dev/services
319 | # - /srv/salt/dev/states
320 | # prod:
321 | # - /srv/salt/prod/services
322 | # - /srv/salt/prod/states
323 | #
324 | #file_roots:
325 | # base:
326 | # - /srv/salt
327 |
328 | # The hash_type is the hash to use when discovering the hash of a file in
329 | # the local fileserver. The default is md5, but sha1, sha224, sha256, sha384
330 | # and sha512 are also supported.
331 | #hash_type: md5
332 |
333 | # The Salt pillar is searched for locally if file_client is set to local. If
334 | # this is the case, and pillar data is defined, then the pillar_roots need to
335 | # also be configured on the minion:
336 | #pillar_roots:
337 | # base:
338 | # - /srv/pillar
339 |
340 | ###### Security settings #####
341 | ###########################################
342 | # Enable "open mode", this mode still maintains encryption, but turns off
343 | # authentication, this is only intended for highly secure environments or for
344 | # the situation where your keys end up in a bad state. If you run in open mode
345 | # you do so at your own risk!
346 | #open_mode: False
347 |
348 | # Enable permissive access to the salt keys. This allows you to run the
349 | # master or minion as root, but have a non-root group be given access to
350 | # your pki_dir. To make the access explicit, root must belong to the group
351 | # you've given access to. This is potentially quite insecure.
352 | #permissive_pki_access: False
353 |
354 | # The state_verbose and state_output settings can be used to change the way
355 | # state system data is printed to the display. By default all data is printed.
356 | # The state_verbose setting can be set to True or False, when set to False
357 | # all data that has a result of True and no changes will be suppressed.
358 | #state_verbose: True
359 | #
360 | # The state_output setting changes if the output is the full multi line
361 | # output for each changed state if set to 'full', but if set to 'terse'
362 | # the output will be shortened to a single line.
363 | #state_output: full
364 | #
365 | # Fingerprint of the master public key to double verify the master is valid,
366 | # the master fingerprint can be found by running "salt-key -F master" on the
367 | # salt master.
368 | #master_finger: ''
369 |
370 | ###### Thread settings #####
371 | ###########################################
372 | # Disable multiprocessing support, by default when a minion receives a
373 | # publication a new process is spawned and the command is executed therein.
374 | #multiprocessing: True
375 |
376 | ##### Logging settings #####
377 | ##########################################
378 | # The location of the minion log file
379 | # The minion log can be sent to a regular file, local path name, or network
380 | # location. Remote logging works best when configured to use rsyslogd(8) (e.g.:
381 | # ``file:///dev/log``), with rsyslogd(8) configured for network logging. The URI
382 | # format is:
15 | 之前使用puppet,各种笨重、各种不爽;之后有看过chef、ansible等,一直没啥兴趣;后面发现了saltstack后,一见钟情。
16 |
29 | centos、redhat等系统的安装:
30 | 31 | 32 | 33 | 现在centos下的yum源内有最新的salt-master源码包,安装的话,直接 34 | yum install salt-master -y #服务端 35 | yum install salt-minion -y #客户端 36 | 37 |38 | ubuntu下的安装:
39 | 40 | 13.04的软件源收录有salt,版本比较老0.12.0版本。但是13.04以下的版本并没有收录,需要添加PPA源 41 | sudo apt-get install salt-master #服务端 42 | sudo apt-get install salt-minion #客户端 43 | 44 |45 | 13.04以下的版本,需要手工添加ppa源,才可以用包管理器安装saltstack:
46 | 47 | sudo apt-get install python-software-properties 48 | echo deb http://ppa.launchpad.net/saltstack/salt/ubuntu `lsb_release -sc` main | sudo tee 49 | /etc/apt/sources.list.d/saltstack.list 50 | wget -q -O- "http://keyserver.ubuntu.com:11371/pks/lookup?op=get&search=0x4759FA960E27C0A6" |sudo apt-key add - 51 | sudo apt-get update 52 | sudo apt-get install salt-master 53 | sudo apt-get install salt-minion 54 | 55 | 56 | ---------- 57 | 58 | 59 | 二、配置 60 | ------------- 61 |62 | server端的配置:vim /etc/salt/master (master的配置文件时默认在这条目录下面的)
63 | user: root 64 | auto_accept: True #自动接收minion端的key并验证 65 | /etc/init.d/salt-master restart 66 |67 | minion端的配置: vim /etc/salt/minion (minion配置文件的默认路径)
68 | 69 | master: salt (这里填写的是服务端的hostname,我的server名字就是salt) 70 | /etc/init.d/salt-minion restart 71 | salt minion和master的认证过程: 72 | 73 | minion在第一次启动时,会在/etc/salt/pki/minion/下自动生成minion.pem(private key), minion.pub(public key),然后将minion.pub发送给master 74 | master在接收到minion的public key后,通过salt-key命令accept minion public key,这样在master的/etc/salt/pki/master/minions下的将会存放以minion id命名的public key, 然后master就能对minion发送指令了 75 | 76 | 来到master端: 77 | 78 | #salt-key -L # 验证minion的key是否接收 79 | Accepted Keys: 80 | sa10-007 81 | Unaccepted Keys: 82 | Rejected Keys: 83 | 可以发现,是正常接收到minion端(sa10-007)的key;这里的自动接收起源于上文提到的auto_accept: True这个参数,这个参数开启,表示只要有minion起来就会自动被salt的server端所接收 84 | 85 | salt-key的基本命令: 86 | 87 | salt-key -L #检测当前server端所有minion端key的情况,三种:接收、等待接收和拒绝 88 | salt-key -a hostname #指定接收某台minion的key 89 | salt-key -A #接收Unaccepted Keys下所有的minion 90 | salt-key -d hostname #删除已经接收的机器中指定机器minion key (Accepted Keys:) 91 | salt-key -D #删除已经接收的所有机器(Accepted Keys:) 92 | 93 | 验证server和minion的通信(server端进行): 94 | 95 | #salt '*' test.ping 96 | sa10-007: 97 | True 98 | 可以发现,server端和minion端是可以正常通信的,至此,saltstack的master和minion正常安装以及配置完成 99 | ,后续 将整理salt的基本使用 -------------------------------------------------------------------------------- /salt匹配minion以及自定义用户组nodegroup.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | 前提:操作在master在进行 4 | minion id minion的唯一标示。默认情况minion id是minion的主机名(FQDN),你可以通过id来指定minion的名字. 5 | salt默认使用shell样式,当然也可以在states.sls中定义。本文主要记录的是匹配minion,以为只有正确的匹配,才是你以后批量管理机器的前提。 6 | 7 | 匹配当前所有的minion: 8 | 9 | root@salt ~ # salt '*' test.ping 10 | cdn20-002: 11 | True 12 | cdn20-001: 13 | True 14 | app10-104: 15 | True 16 | cdn20-003: 17 | True 18 | 其中 '*' 是匹配当前saltmaster接收到所有minion客户端;test.ping是salt默认的验证通信命令 19 | 匹配以cdn开头的所有机器: 20 | 21 | root@salt ~ # salt 'cdn*' test.ping 22 | cdn20-002: 23 | True 24 | cdn20-005: 25 | True 26 | cdn20-004: 27 | True 28 | cdn20-001: 29 | True 30 | cdn20-003: 31 | True 32 | 匹配cdn20-001/004的机器: 33 | 34 | root@salt ~ # salt 'cdn20-00[1-4]' test.ping 35 | cdn20-002: 36 | True 37 | cdn20-001: 38 | True 39 | cdn20-003: 40 | True 41 | cdn20-004: 42 | True 43 | minion也可以通过Perl-compatible正则表达式进行匹配.匹配cdn和sa的机器 44 | 45 | root@salt ~ # salt -E 'cdn|sa' test.ping 46 | cdn20-005: 47 | True 48 | cdn20-002: 49 | True 50 | sa10-003: 51 | True 52 | cdn20-004: 53 | True 54 | cdn20-001: 55 | True 56 | cdn20-003: 57 | True 58 | 指定特定的机器进行匹配,比如,我想匹配cdn20-002\cdn20-004: 59 | 60 | root@salt ~ # salt -L 'cdn20-002,cdn20-004' test.ping 61 | cdn20-002: 62 | True 63 | cdn20-004: 64 | True 65 | 66 | 67 | ---------- 68 | 自定义组进行匹配: 69 | ---- 70 | 使用组进行匹配的前提,必要要在master里面定于组的相关信息 71 | 72 | root@salt ~ # vim /etc/salt/master.d/nodegroups.conf 73 | master.d之前的记录已经介绍过,在master里面开启default_include: master.d/*.conf 74 | root@salt ~ # cat /etc/salt/master.d/nodegroups.conf 75 | nodegroups: 76 | my_app: 'app10-091' 77 | squid_20: 'cdn20-*' 78 | mendian: 'app10-114' 79 | person: 'L@app10-112,app10-113' 80 | 查看squid_20这个组的相关信息: 81 | 82 | root@salt ~ # salt -N 'squid_20' test.ping 83 | cdn20-002: 84 | True 85 | cdn20-005: 86 | True 87 | cdn20-004: 88 | True 89 | cdn20-003: 90 | True 91 | cdn20-001: 92 | True 93 | 94 | 95 | 96 | 97 | -------------------------------------------------------------------------------- /salt的grains使用以及cmd.run.md: -------------------------------------------------------------------------------- 1 | grains.items主要用来收集minion端的信息,方便进行信息采集,后续的piller使用,根据硬件信息自动匹配配置文件等。 2 | 基本用法 3 | ----- 4 | grains.ls 5 | 6 | salt '*' grains.ls 显示所有minion的item 7 | 8 | grains.items 9 | 10 | salt '*' grains.items 显示所有minion的item值 11 | 12 | grains.item 13 | 14 | salt '*' grains.item os 显示os的相关信息。如下 : 15 | root@salt ~ # salt 'sa10-003' grains.item os 16 | sa10-003: 17 | os: RedHat 18 | 如果想同时获取多个item,可以在后面接空格后,直接相关item,如下: 19 | 20 | root@salt ~ # salt 'sa10-003' grains.item os osrelease oscodename 21 | sa10-003: 22 | os: RedHat 23 | oscodename: Tikanga 24 | osrelease: 5.8 25 | 26 | 27 | 28 | ---------- 29 | 30 | 31 | 自定义grains: 32 | 首先,现在salt的根目录下(/srv/salt)建一个目录_grains 33 | 34 | mkdir /srv/salt/_grains 35 | cd /srv/salt/_grains 36 | 假设我要取minion端内存的信息 事例如下: 37 | vim mem.py 38 | 39 | # -*- coding: utf-8 -*- 40 | 41 | ''' 42 | Module for squid disk information by python 43 | ''' 44 | import commands 45 | import os 46 | 47 | def cache(): 48 | ''' 49 | Return the memory usage information for volumes mounted on this minion 50 | ''' 51 | grains={} 52 | m = commands.getoutput("free -g|awk '$0~/Mem/ {print$2+1}'") 53 | grains['mem_test']=int(m) 54 | 55 | return grains 56 | 57 | 58 | 同步到minion端 59 | 60 | root@salt _grains # salt 'sa10-003' saltutil.sync_all 61 | sa10-003: 62 | ---------- 63 | grains: 64 | - grains.mem #已经同步过来了 65 | modules: 66 | outputters: 67 | renderers: 68 | returners: 69 | states: 70 | 如果需要更改模块,更改完成后,可以使用下面命令重载: 71 | 72 | salt sa10-003 sys.reload_modules 73 | 验证下之前的自定义grains: 74 | 75 | root@salt _grains # salt sa10-003 grains.item mem_test 76 | sa10-003: 77 | mem_test: 2 78 | sa10-003的内存信息: 79 | 80 | [root@sa10-003 salt]# free -m 81 | total used free shared buffers cached 82 | Mem: 2012 1766 246 0 286 1207 83 | -/+ buffers/cache: 272 1739 84 | Swap: 0 0 0 85 | 在saltmaster上面自定义grains取到的信息和本机是一致的 86 | 87 | 88 | ---------- 89 | 除了salt自带和我们自定义的items可以取到系统信息之外,我们还可以使用shell命令在来达到目的;当然,这需要salt的另外一个强大的命令,cmd.run 90 | 我要取sa10-003的内存信息,可以使用下面的命令: 91 | 92 | root@salt _grains # salt sa10-003 cmd.run 'free -m' 93 | sa10-003: 94 | total used free shared buffers cached 95 | Mem: 2012 1769 242 0 286 1207 96 | -/+ buffers/cache: 275 1736 97 | Swap: 0 0 0 98 | 99 | cmd.run在master端进行操作,后面跟着的是系统相关的shell命令,这种方式,可以实现minion端几乎所有的命令。 100 | 101 | -------------------------------------------------------------------------------- /salt的pillar定义以及使用.md: -------------------------------------------------------------------------------- 1 | Pillar是Salt非常重要的一个组件,它用于给特定的minion定义任何你需要的数据,这些数据可以被Salt的其他组件使用。这里可以看出Pillar的一个特点,Pillar数据是与特定minion关联的,也就是说每一个minion都只能看到自己的数据,所以Pillar可以用来传递敏感数据(在Salt的设计中,Pillar使用独立的加密session,也是为了保证敏感数据的安全性)。 2 | 另外还可以在Pillar中处理平台差异性,比如针对不同的操作系统设置软件包的名字,然后在State中引用等。 3 | 4 | 定义pillar数据 5 | ---- 6 | 7 | 默认情况下,master配置文件中的所有数据都添加到Pillar中,且对所有minion可用。默认如下: 8 | 9 | #pillar_opts: True 10 | master上配置文件中定义pillar_roots,用来指定pillar的数据存储在哪个目录 11 | 12 | pillar_roots: 13 | base: 14 | - /srv/salt/pillar 15 | 16 | 首先,和state系统一样,pillar也是需要一个top.sls文件作为一个入口,用来指定对象。 17 | 18 | base: 19 | '*': 20 | - pillar #这里指定了一个pillar模块 21 | pillar.sls文件: 22 | 23 | ############IDC################ 24 | {% if grains['ip_interfaces'].get('eth0')[0].startswith('10.10') %} 25 | nameservers: ['10.10.9.31','10.10.9.135'] 26 | zabbixserver: ['10.10.9.234'] 27 | {% else %} 28 | nameservers: ['10.20.9.75'] 29 | zabbixserver: ['10.20.9.234'] 30 | {% endif %} 31 | 32 | ######## nginx ######## 33 | ngx_home_dir: /var/cache/nginx 34 | 35 | 上文的IDC这块是我自己整理的通过ip来划分不同的nameserver等,这里只是放出来参考,在State文件中将可以引用Pillar数据,比如引用ngx_home_dir: 36 | 37 | nginx: 38 | pkg: 39 | - installed 40 | user.present: 41 | - home: {{ pillar['ngx_home_dir'] }} 42 | - shell: /sbin/nologin 43 | - require: 44 | - group: nginx 45 | group.present: 46 | - require: 47 | - pkg: nginx 48 | service.running: 49 | - enable: True 50 | - reload: True 51 | - require: 52 | - file: /etc/init.d/nginx 53 | - file: /data1/logs/nginx 54 | - watch: 55 | - file: {{ pillar['ngx_conf_dir'] }}/nginx.conf 56 | - file: {{ pillar['ngx_conf_dir'] }}/fastcgi.conf 57 | - pkg: nginx 58 | 59 | ······ 后面关于配置就省略了 60 | 61 | 在pillar内可以提前将不同的部分根据在pillar内定义好,这样统一配置的时候就可以实现根据机器实际情况配置;比如根据机器的硬件情况配置nginx的worker_processes: 62 | 63 | user nginx; 64 | {% if grains['num_cpus'] < 8 %} 65 | worker_processes {{ grains['num_cpus'] }}; 66 | {% else %} 67 | worker_processes 8; 68 | {% endif %} 69 | worker_rlimit_nofile 65535; 70 | ``````````具体配置省略 71 | 72 | 很多定义的时候,都可以使用到pillar来进行自定义相关数据,具体情况可以自行摸索,这里只是个举例。 -------------------------------------------------------------------------------- /salt的state.sls的使用.md: -------------------------------------------------------------------------------- 1 | 2 | SLS(代表SaLt State文件)是Salt State系统的核心。SLS描述了系统的目标状态,由格式简单的数据构成。这经常被称作配置管理 3 | 首先,在master上面定义salt的主目录,默认是在/srv/salt/下面,vim /etc/salt/master: 4 | 5 | file_roots: 6 | base: 7 | - /srv/salt 8 | dev: 9 | - /srv/salt-dev 10 | 11 | 然后,在/srv/salt下面创建top.sls文件(如果有的话,就不用创建了,直接编辑好了) 12 | vim top.sls 13 | 14 | base: 15 | '*': 16 | top.sls 默认从 base 标签开始解析执行,下一级是操作的目标,可以通过正则,grain模块,或分组名,来进行匹配,再下一级是要执行的state文件 17 | 18 | base: 19 | '*': #通过正则去匹配所有minion 20 | - nginx #这里都是我自己写的state.sls模块名 这里可以无视 后面会提到 21 | 22 | my_app: #通过分组名去进行匹配 必须要定义match:nodegroup 23 | - match: nodegroup 24 | - nginx 25 | 26 | 'os:Redhat': #通过grains模块去匹配,必须要定义match:grain 27 | - match: grain 28 | - nginx 29 | 30 | 整个top.sls大概的格式就是这个样子,编写完top.sls后,编写state.sls文件; 31 | 32 | cd /srv/salt 33 | vim nginx.sls 34 | nginx.sls内容: 35 | 36 | nginx: 37 | pkg: #定义使用(pkg state module) 38 | - installed #安装nginx(yum安装) 39 | service.running: #保持服务是启动状态 40 | - enable: True 41 | - reload: True 42 | - require: 43 | - file: /etc/init.d/nginx 44 | - watch: #检测下面两个配置文件,有变动,立马执行上述/etc/init.d/nginx 命令reload操作 45 | - file: /etc/nginx/nginx.conf 46 | - file: /etc/nginx/fastcgi.conf 47 | - pkg: nginx 48 | /etc/nginx/nginx.conf: #绝对路径 49 | file.managed: 50 | - source: salt://files/nginx/nginx.conf #nginx.conf配置文件在salt上面的位置 51 | - user: root 52 | - mode: 644 53 | - template: jinja #salt使用jinja模块 54 | - require: 55 | - pkg: nginx 56 | 57 | /etc/nginx/fastcgi.conf: 58 | file.managed: 59 | - source: salt://files/nginx/fastcgi.conf 60 | - user: root 61 | - mode: 644 62 | - require: 63 | - pkg: nginx 64 | 65 | 在当前目录下面(salt的主目录)创建files/nginx/nginx.conf、files/nginx/fastcgi.conf文件,里面肯定是你自己项配置的nginx配置文件的内容啦;使用salt做自动化,一般nginx都是挺熟悉的,这里不做详细解释了 66 | 67 | 测试安装: 68 | 69 | root@salt salt # salt 'sa10-003' state.sls nginx test=True 70 | ··········这里省略输出信息 71 | Summary 72 | ------------ 73 | Succeeded: 8 74 | Failed: 0 75 | ------------ 76 | Total: 8 77 | 78 | 往minion上面进行推送的时候,一般salt 'sa10-003' state.sls nginx 这种命令;当然,也可以执行 79 | salt sa10-003 state.highstate 这种命令会默认匹配所有的state.sls模块。其中test=True 是指测试安装 80 | ,也就是不进行实际操作,只是查看测试效果。 81 | ---------- 82 | state的逻辑关系列表: 83 | 84 | include: 包含某个文件 85 | 比如我新建的一个my_webserver.sls文件内,就可以继承nginx和php相关模块配置,而不必重新编写 86 | 87 | root@salt salt # cat my_webserver.sls 88 | include: 89 | - nginx 90 | - php 91 | match: 配模某个模块,比如 之前定义top.sls时候的 match: grain match: nodegroup 92 | require: 依赖某个state,在运行此state前,先运行依赖的state,依赖可以有多个 93 | 比如文中的nginx模块内,相关的配置必须要先依赖nginx的安装 94 | 95 | - require: 96 | - pkg: nginx 97 | watch: 在某个state变化时运行此模块,文中的配置,相关文件变化后,立即执行相应操作 98 | 99 | - watch: 100 | - file: /etc/nginx/nginx.conf 101 | - file: /etc/nginx/fastcgi.conf 102 | - pkg: nginx 103 | order: 优先级比require和watch低,有order指定的state比没有order指定的优先级高,假如一个state模块内安装多个服务,或者其他依赖关系,可以使用 104 | 105 | nginx: 106 | pkg.installed: 107 | - order:1 108 | 想让某个state最后一个运行,可以用last 109 | -------------------------------------------------------------------------------- /test: -------------------------------------------------------------------------------- 1 | test 2 | test 3 | test 4 | test 5 | test 6 | test 7 | test 8 | -------------------------------------------------------------------------------- /基于saltstack的grains和pillar自动化配置squid.md: -------------------------------------------------------------------------------- 1 | 之前的几篇记录了salt的安装、配置、以及各个模块的使用,今天主要基于salt的grains和pillar自动化部署squid缓存服务。 2 | 3 | 动手之前先确定下当前需求: 4 | 5 | 1. 我们有两个机房,两个机房的ip地址是不同的,一个是10.10.开头,另外一个是10.20.开头; 6 | 2. 10.10.开头的机房主要用来缓存js、css等,另外一个机房的squid机器主要用来缓存图片,这两个的配置文件肯定是不同的 7 | 3. 缓存图片服务的squid机器硬盘大小不同,也就是说要做的cache大小肯定也是不同的 8 | 4. 机器的内存并不是统一大小 9 | 10 | 整理如下: 11 | 12 | 1.首先要通过salt自动安装squid服务 13 | 2.要自己编写grains模块收集机器的内存和硬盘大小 14 | 3.要使用pillar确认机器的ip地址是以什么开头的,以此来确认是用来缓存的具体对象 15 | 4.整理具体配置分发到不同服务的squid配置文件内 16 | 17 | 一、先整理squid的安装包 18 | -------------- 19 | 20 | 自己整理好的squid-2.7的rpm包,通过yum的方式来安装 21 | 编写state.sls文件 22 | 在根目录下/srv/salt下进行,vim squid.sls 23 | 24 | squid: 25 | pkg: 26 | - name: ajk-squid #我自己打的rpm包 27 | - installed 28 | user.present: #检测用户,如果没有就创建 squid用户,设置为nologin状态 29 | - home: {{ pillar['squid_home_dir'] }} 30 | - shell: /sbin/nologin 31 | - require: 32 | - group: squid 33 | group.present: #用户组squid 和用户对应 34 | - name: squid 35 | - require: 36 | - pkg: ajk-squid 37 | service.running: #这里保持squid服务是正常运行的状态 38 | - enable: True 39 | - reload: True 40 | - require: 41 | - file: /etc/init.d/squid #squid的启动脚本,也是打包在安装包内的,检测下面的watch内的服务,有变化就执行 42 | - watch: 43 | - file: {{ pillar['squid_conf_dir'] }}/squid.conf 44 | {{ pillar['squid_conf_dir'] }}/squid.conf: 45 | 46 | file.managed: 47 | - source: salt://files/squid/squid.conf # 定义salt内的squid.conf配置文件 48 | - user: root 49 | - mode: 644 50 | - template: jinja #使用jinja模板,这里是为了配置文件内使用pillar 51 | - require: 52 | - pkg: ajk-squid #依赖关系 53 | 54 | {{ pillar['squid_home_dir'] }} 这里在pillar内定义好的,我是为了美观方便;之前填写下面的目录也是可以的 55 | 56 | squid_home_dir: /usr/local/squid-2.7 57 | squid_conf_dir: /usr/local/squid-2.7/etc 58 | 59 | 目前,squid服务的state.sls模块就已经写好了 60 | 61 | 二、收集服务器端的硬件信息 62 | ------------- 63 | 64 | 还是要使用python脚本,在_grains下面编写脚本,编写脚本前确认下配置;我的需求是squid的内存设置为总内存的45%,我squid的硬盘会有三块,挂载为目录cache1、cache2、cache3 。每块盘取90%,如果90%之后大于65G,直接取值65,少于65的话,直接使用90%的值。 65 | 脚本如下: 66 | 67 | vim squid.py 68 | 69 | # -*- coding: utf-8 -*- 70 | 71 | ''' 72 | Module for squid disk information by python2.7.3 73 | ''' 74 | 75 | 76 | import commands 77 | import os 78 | 79 | def cache(): 80 | ''' 81 | Return the cache usage information for volumes mounted on this minion 82 | ''' 83 | grains={} 84 | m = commands.getoutput("free -g|awk '$0~/Mem/ {print$2+1}'") 85 | grains['cache_mem_size']=int(int(m)*(0.45)) 86 | 87 | file = commands.getoutput("df -Th |awk '{print$7}'") 88 | cache = 'cache' 89 | 90 | if cache in file: 91 | 92 | a = commands.getoutput("df -Th |grep cache |awk 'NR==1 {print$3}' |sed 's/G//g'") 93 | b = int(int(a)*(0.9)) 94 | if b >= 65: 95 | grains['cache_disk_size'] = 65*1024 96 | else: 97 | grains['cache_disk_size'] = int(b*1024) 98 | else: 99 | grains['cache_disk_size'] = 'The cache of partition does not exist' 100 | 101 | return grains 102 | 103 | 我的squid机器在salt上面定义了一个组: 104 | root@salt _grains # cat /etc/salt/master.d/nodegroups.conf 105 | 106 | nodegroups: 107 | squid_20: 'cdn20-* 108 | 109 | '然后,加载编写的模块,命令如下 : 110 | 111 | salt -N squid_20 saltutil.sync_all 112 | 113 | 查询编写的模块取值,根据disk信息取值: 114 | 115 | root@salt _grains # salt -N 'squid_20' grains.item cache_disk_size 116 | cdn20-005: 117 | cache_disk_size: 43008 118 | cdn20-001: 119 | cache_disk_size: 66560 120 | 121 | 查询内存信息取值: 122 | 123 | root@salt _grains # salt -N 'squid_20' grains.item cache_mem_size 124 | cdn20-005: 125 | cache_mem_size: 7 126 | cdn20-001: 127 | cache_mem_size: 14 128 | 129 | 三、编写squid.conf的配置文件 130 | ------------------- 131 | 根据上文的目录定义,路径在/srv/salt/files/squid下 132 | vim squid.conf 133 | 134 | {#% if grains['ip_interfaces'].get('eth0')[0].startswith('10.20') %#} (#去掉) 135 | ...........省略具体配置 136 | ## MEMORY CACHE OPTIONS 137 | cache_mem {{ grains['cache_mem_size'] }} GB #内存的大小 138 | ## DISK CACHE OPTIONS 139 | cache_dir aufs /cache1 {{ grains['cache_disk_size'] }} 16 256 #cache的大小 140 | cache_dir aufs /cache2 {{ grains['cache_disk_size'] }} 16 256 141 | cache_dir aufs /cache3 {{ grains['cache_disk_size'] }} 16 256 142 | visible_hostname {{ grains['host'] }} #机器名 143 | {#% else %#} (#去掉) 144 | 缓存js等的配置文件,此处省略 145 | {#% endif %#}(#去掉) 146 | 147 | 这里只是说明下salt需要配置的东西,至于squid具体的配置文件,这里就不多说了 148 | 当然,上述的判断可以在pillar里面做完而不用在配置文件的时候做判断,只不过我感觉那样要多一层逻辑,就直接判断了 ··· 其实是我比较懒···· 149 | 150 | 这样,一个squid的基本安装配置基本就成功了,可以找机器进行测试 151 | 后续,添加机器的话,可以进行直接部署了 152 | 153 | salt hostname state.highstate 或者 salt hostname state.sls squid -------------------------------------------------------------------------------- /基于saltstack的webui的搭建使用halite.md: -------------------------------------------------------------------------------- 1 | salt的运维自动化,肯定不可能一直在终端执行命令去进行批量处理;salt本身提供了一个web ui,叫做halite。本质是在页面执行管理,后端使用的是saltstack api 2 | 3 | 4 | ---------- 5 | 搭建过程: 6 | 7 | git clone https://github.com/saltstack/halite 8 | 克隆halite官方的源码 9 | 10 | cd halite/halite 11 | 12 | python genindex.py -C # 生成index文件 13 | 14 | 安装salt-api,使用python的pip管理安装 15 | 16 | 首先安装pip管理 17 | 18 | wget http://python-distribute.org/distribute_setup.py 19 | 20 | sudo python distribute_setup.py 21 | 22 | wget https://github.com/pypa/pip/raw/master/contrib/get-pip.py 23 | 24 | sudo python get-pip.py 25 | 26 | 安装salt-api 27 | 28 | pip install salt-api 29 | pip install cherrypy 30 | 31 | 在master文件问添加: 32 | 33 | rest_cherrypy: 34 | host: 10.10.3.191 35 | port: 8080 36 | debug: true 37 | static: /halite/halite 38 | app: /halite/halite/index.html 39 | external_auth: 40 | pam: 41 | admin: 42 | - '*' 43 | - '@runner' 44 | - '@wheel' 45 | 46 | 启动: 47 | 48 | #python server_bottle.py -d -C -l debug -s cherrypy 49 | 20140115_102828.079512 Bottle: Running web application server 'cherrypy' on 0.0.0.0:8080. 50 | 20140115_102828.080180 Bottle: CORS is disabled. 51 | 20140115_102828.080669 Bottle: TLS/SSL is disabled. 52 | 20140115_102828.081155 Bottle: Server options: 53 | {} 54 | Bottle v0.12-dev server starting up (using CherryPyServer())... 55 | Listening on http://0.0.0.0:8080/ 56 | Hit Ctrl-C to quit. 57 | 58 | debug模式 查看相关信息,可以得出是以0.0.0.0:8080端口启动的 59 | 60 | 直接salt-api -d启动 61 | 62 | 至此,halite搭建完成,可以通过http://localhost:8080去访问了 63 | 64 | 我这边是在服务器上面搭建的,线下不能直接访问http://localhost:8080,所以,添加到nginx进行转发 65 | 66 | 配置如下: 67 | 68 | [root@sa10-007 halite]# cat /etc/nginx/conf.d/salt.api.conf 69 | server { 70 | listen 80; 71 | server_name 10.10.3.191; 72 | 73 | location / { 74 | proxy_pass http://0.0.0.0:8080; 75 | } 76 | } 77 | 78 | 这样 我就可以在线下直接访问http://10.10.3.191:80 就可以看到halite的web界面了 79 | 80 | 只不过,好像官方的这个halite看起来很纠结,页面操作各种不爽,准备通过api自己写ui了 --------------------------------------------------------------------------------