====== Instalacija Lighttpd web servera ====== ===== Priprema za instalaciju ===== Potrebno je preuzeti instalacioni kod sa sledece adrese http://www.lighttpd.net/download (http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.28.tar.gz)\\ \\ Neophodni paket potrebni za instalaciju. yum install kernel-devel mc gcc make ncurses-devel gcc-c++ openssl-devel libxml2-devel curl-devel libjpeg-devel libpng-devel aspell-devel zlib-devel freetype-devel libc-client-devel libmcrypt-devel GeoIP-devel autoconf libevent-devel krb5-devel libtool pcre-devel bzip2-devel openldap-devel \\ ===== Kompajliranje i instalacija ===== \\ Dodajemo lighttpd korisnika (http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/s1-users-tools.html) useradd -r lighttpd\\ Raspakovanje instalacionog paketa. (http://www.gnu.org/s/tar/manual/tar.html) tar zxvf lighttpd-1.4.28.tar.gz\\ Prelazimo u direktorijum raspakovanog instalacionog paketa lighttpd-1.4.28 cd lighttpd-1.4.28\\ Konfigurisanje instalacije lighttpd web servera ./configure --enable-maintainer-mode --prefix=/usr/local/lighttpd --with-openssl Pomoc pri konfiguraciji ./configure --help\\ Kompajliranje instalacije make\\ Instalacija make install\\ ===== Podesavanje skripta za automatsko pokretanje servera ===== \\ Potrebno je dodati:\\ **lighttpd** fajl u **/etc/sysconfig/** sa sledecim sadrzajem LIGHTTPD_CONF_PATH=/usr/local/lighttpd/etc/lighttpd.conf **lighttpd** fajl u **/etc/rc.d/init.d/** sa sledecim sadrzajem #!/bin/sh # # lighttpd Startup script for the lighttpd server # # chkconfig: - 85 15 # description: Lightning fast webserver with light system requirements # # processname: lighttpd # config: /etc/lighttpd/lighttpd.conf # config: /etc/sysconfig/lighttpd # pidfile: /var/run/lighttpd.pid # # Note: pidfile is assumed to be created # by lighttpd (config: server.pid-file). # If not, uncomment 'pidof' line. # Source function library . /etc/rc.d/init.d/functions if [ -f /etc/sysconfig/lighttpd ]; then . /etc/sysconfig/lighttpd fi if [ -z "$LIGHTTPD_CONF_PATH" ]; then LIGHTTPD_CONF_PATH="/etc/lighttpd/lighttpd.conf" fi prog="lighttpd" lighttpd="/usr/local/lighttpd/sbin/lighttpd" RETVAL=0 start() { echo -n $"Starting $prog: " daemon $lighttpd -f $LIGHTTPD_CONF_PATH RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog return $RETVAL } stop() { echo -n $"Stopping $prog: " killproc $lighttpd RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog return $RETVAL } reload() { echo -n $"Reloading $prog: " killproc $lighttpd -HUP RETVAL=$? echo return $RETVAL } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; condrestart) if [ -f /var/lock/subsys/$prog ]; then stop start fi ;; reload) reload ;; status) status $lighttpd RETVAL=$? ;; *) echo $"Usage: $0 {start|stop|restart|condrestart|reload|status}" RETVAL=1 esac exit $RETVAL Podesavamo potrebe dozvole. chmod +x /etc/rc.d/init.d/lighttpd\\ Aktiviramo skript. chkconfig --add lighttpd chkconfig --level 2345 lighttpd on ===== Finalna konfiguracija ===== \\ Kreiramo direktorijum za smestanje logova **/var/log/lighttpd** mkdir /var/log/lighttpd chown lighttpd /var/log/lighttpd\\ Potrebno je kreirati i sledeci direktorijum **/var/cache/lighttpd/compress** mkdir /var/cache/lighttpd mkdir /var/cache/lighttpd/compress chown -R lighttpd /var/cache/lighttpd\\ Kreiramo direktorijum za konfiguracione fajlove **/usr/local/lighttpd/etc** mkdir /usr/local/lighttpd/etc Kopiramo konfiguracione fajlove cp putanja_raspakovane_instalacije/lighttpd-1.4.28/doc/config/*.conf /usr/local/lighttpd/etc/ cp -R putanja_raspakovane_instalacije/lighttpd-1.4.28/doc/config/conf.d/ /usr/local/lighttpd/etc/\\ Menjamo sadrzaj **/usr/local/lighttpd/etc/lighttpd.conf** ####################################################################### ## ## /etc/lighttpd/lighttpd.conf ## ## check /etc/lighttpd/conf.d/*.conf for the configuration of modules. ## ####################################################################### ####################################################################### ## ## Some Variable definition which will make chrooting easier. ## ## if you add a variable here. Add the corresponding variable in the ## chroot example aswell. ## var.log_root = "/var/log/lighttpd" var.server_root = "/var/www" var.state_dir = "/var/run" var.home_dir = "/var/lib/lighttpd" var.conf_dir = "/etc/lighttpd" ## ## run the server chrooted. ## ## This requires root permissions during startup. ## ## If you run Chrooted set the the variables to directories relative to ## the chroot dir. ## ## example chroot configuration: ## #var.log_root = "/logs" #var.server_root = "/" #var.state_dir = "/run" #var.home_dir = "/lib/lighttpd" #var.vhosts_dir = "/vhosts" #var.conf_dir = "/etc" # #server.chroot = "/srv/www" ## ## Some additional variables to make the configuration easier ## ## ## Base directory for all virtual hosts ## ## used in: ## conf.d/evhost.conf ## conf.d/simple_vhost.conf ## vhosts.d/vhosts.template ## var.vhosts_dir = server_root + "/vhosts" ## ## Cache for mod_compress ## ## used in: ## conf.d/compress.conf ## var.cache_dir = "/var/cache/lighttpd" ## ## Base directory for sockets. ## ## used in: ## conf.d/fastcgi.conf ## conf.d/scgi.conf ## var.socket_dir = home_dir + "/sockets" ## ####################################################################### ####################################################################### ## ## Load the modules. include "modules.conf" ## ####################################################################### ####################################################################### ## ## Basic Configuration ## --------------------- ## server.port = 80 ## ## Use IPv6? ## # server.use-ipv6 = "enable" ## ## bind to a specific IP ## #server.bind = "localhost" ## ## Run as a different username/groupname. ## This requires root permissions during startup. ## server.username = "lighttpd" server.groupname = "lighttpd" ## ## enable core files. ## #server.core-files = "disable" ## ## Document root ## server.document-root = server_root + "/htdocs" ## ## The value for the "Server:" response field. ## ## It would be nice to keep it at "lighttpd". ## #server.tag = "lighttpd" ## ## store a pid file ## server.pid-file = state_dir + "/lighttpd.pid" ## ####################################################################### ####################################################################### ## ## Logging Options ## ------------------ ## ## all logging options can be overwritten per vhost. ## ## Path to the error log file ## server.errorlog = log_root + "/error.log" ## ## If you want to log to syslog you have to unset the ## server.errorlog setting and uncomment the next line. ## #server.errorlog-use-syslog = "enable" ## ## Access log config ## include "conf.d/access_log.conf" ## ## The debug options are moved into their own file. ## see conf.d/debug.conf for various options for request debugging. ## include "conf.d/debug.conf" ## ####################################################################### ####################################################################### ## ## Tuning/Performance ## -------------------- ## ## corresponding documentation: ## http://www.lighttpd.net/documentation/performance.html ## ## set the event-handler (read the performance section in the manual) ## ## possible options on linux are: ## ## select ## poll ## linux-sysepoll ## ## linux-sysepoll is recommended on kernel 2.6. ## server.event-handler = "linux-sysepoll" ## ## The basic network interface for all platforms at the syscalls read() ## and write(). Every modern OS provides its own syscall to help network ## servers transfer files as fast as possible ## ## linux-sendfile - is recommended for small files. ## writev - is recommended for sending many large files ## server.network-backend = "linux-sendfile" ## ## As lighttpd is a single-threaded server, its main resource limit is ## the number of file descriptors, which is set to 1024 by default (on ## most systems). ## ## If you are running a high-traffic site you might want to increase this ## limit by setting server.max-fds. ## ## Changing this setting requires root permissions on startup. see ## server.username/server.groupname. ## ## By default lighttpd would not change the operation system default. ## But setting it to 2048 is a better default for busy servers. ## server.max-fds = 2048 ## ## Stat() call caching. ## ## lighttpd can utilize FAM/Gamin to cache stat call. ## ## possible values are: ## disable, simple or fam. ## server.stat-cache-engine = "simple" ## ## Fine tuning for the request handling ## ## max-connections == max-fds/2 (maybe /3) ## means the other file handles are used for fastcgi/files ## server.max-connections = 1024 ## ## How many seconds to keep a keep-alive connection open, ## until we consider it idle. ## ## Default: 5 ## #server.max-keep-alive-idle = 5 ## ## How many keep-alive requests until closing the connection. ## ## Default: 16 ## #server.max-keep-alive-requests = 16 ## ## Maximum size of a request in kilobytes. ## By default it is unlimited (0). ## ## Uploads to your server cant be larger than this value. ## #server.max-request-size = 0 ## ## Time to read from a socket before we consider it idle. ## ## Default: 60 ## #server.max-read-idle = 60 ## ## Time to write to a socket before we consider it idle. ## ## Default: 360 ## #server.max-write-idle = 360 ## ## Traffic Shaping ## ----------------- ## ## see /usr/share/doc/lighttpd/traffic-shaping.txt ## ## Values are in kilobyte per second. ## ## Keep in mind that a limit below 32kB/s might actually limit the ## traffic to 32kB/s. This is caused by the size of the TCP send ## buffer. ## ## per server: ## #server.kbytes-per-second = 128 ## ## per connection: ## #connection.kbytes-per-second = 32 ## ####################################################################### ####################################################################### ## ## Filename/File handling ## ------------------------ ## ## files to check for if .../ is requested ## index-file.names = ( "index.php", "index.rb", "index.html", ## "index.htm", "default.htm" ) ## index-file.names += ( "index.xhtml", "index.html", "index.htm", "default.htm", "index.php" ) ## ## deny access the file-extensions ## ## ~ is for backupfiles from vi, emacs, joe, ... ## .inc is often used for code includes which should in general not be part ## of the document-root url.access-deny = ( "~", ".inc" ) ## ## disable range requests for pdf files ## workaround for a bug in the Acrobat Reader plugin. ## $HTTP["url"] =~ "\.pdf$" { server.range-requests = "disable" } ## ## url handling modules (rewrite, redirect) ## #url.rewrite = ( "^/$" => "/server-status" ) #url.redirect = ( "^/wishlist/(.+)" => "http://www.example.com/$1" ) ## ## both rewrite/redirect support back reference to regex conditional using %n ## #$HTTP["host"] =~ "^www\.(.*)" { # url.redirect = ( "^/(.*)" => "http://%1/$1" ) #} ## ## which extensions should not be handle via static-file transfer ## ## .php, .pl, .fcgi are most often handled by mod_fastcgi or mod_cgi ## static-file.exclude-extensions = ( ".php", ".pl", ".fcgi", ".scgi" ) ## ## error-handler for status 404 ## #server.error-handler-404 = "/error-handler.html" #server.error-handler-404 = "/error-handler.php" ## ## Format: .html ## -> ..../status-404.html for 'File not found' ## #server.errorfile-prefix = "/srv/www/htdocs/errors/status-" ## ## mimetype mapping ## include "conf.d/mime.conf" ## ## directory listing configuration ## include "conf.d/dirlisting.conf" ## ## Should lighttpd follow symlinks? ## server.follow-symlink = "enable" ## ## force all filenames to be lowercase? ## #server.force-lowercase-filenames = "disable" ## ## defaults to /var/tmp as we assume it is a local harddisk ## server.upload-dirs = ( "/var/tmp" ) ## ####################################################################### ####################################################################### ## ## SSL Support ## ------------- ## ## To enable SSL for the whole server you have to provide a valid ## certificate and have to enable the SSL engine.:: ## ## ssl.engine = "enable" ## ssl.pemfile = "/path/to/server.pem" ## ## The HTTPS protocol does not allow you to use name-based virtual ## hosting with SSL. If you want to run multiple SSL servers with ## one lighttpd instance you must use IP-based virtual hosting: :: ## ## $SERVER["socket"] == "10.0.0.1:443" { ## ssl.engine = "enable" ## ssl.pemfile = "/etc/ssl/private/www.example.com.pem" ## server.name = "www.example.com" ## ## server.document-root = "/srv/www/vhosts/example.com/www/" ## } ## ## If you have a .crt and a .key file, cat them together into a ## single PEM file: ## $ cat /etc/ssl/private/lighttpd.key /etc/ssl/certs/lighttpd.crt \ ## > /etc/ssl/private/lighttpd.pem ## #ssl.pemfile = "/etc/ssl/private/lighttpd.pem" ## ## optionally pass the CA certificate here. ## ## #ssl.ca-file = "" ## ####################################################################### ####################################################################### ## ## custom includes like vhosts. ## #include "conf.d/config.conf" #include_shell "cat /etc/lighttpd/vhosts.d/*.conf" ## ####################################################################### \\ Kreiramo direktorijum za dokumenta. mkdir /var/www mkdir /var/www/htdocs ===== Testiranje ===== \\ Kreiramo test dokument echo ":-)" > /var/www/htdocs/index.html Testiramo server http://ip_adresa_servera/ ===== Podešavanje virtuelnih sajtova ===== Uskoro … ====== Instalacija PHP-a ====== Potrebno je preuzeti instalacioni kod sa sledece adrese http://www.php.net/downloads.php (PHP 5.3.6 (tar.gz))\\ \\ \\ ===== Kompajliranje i instalacija ===== Konfiguracija instalacije (http://www.php.net/manual/en/configure.about.php) ./configure --prefix=/usr/local/php-5.3.6 --with-libdir=lib64 --with-mysql=/usr/local/mysql --with-mysqli --enable-ftp --enable-mbstring --with-openssl --with-jpeg-dir=/usr --with-png-dir=/usr --with-freetype-dir=/usr --with-gd --enable-inline-optimization --with-imap --with-curl --with-imap-ssl --enable-gd-native-ttf --with-curlwrappers --with-zlib-dir=/usr --with-pspell --enable-soap --with-kerberos --enable-sockets --with-pdo-mysql=/usr/local/mysql --with-libdir=lib64 --with-mcrypt --with-libdir=lib64 --enable-pcntl --with-ldap --with-ldap-sasl --enable-fpm --with-fpm-user=lighttpd --with-fpm-group=lighttpd --with-gettext \\ Kompajliranje make\\ Instaliranje make install ===== Konfiguracija ===== \\ Kreiranje symlinka ln -s /usr/local/php-5.3.6 /usr/local/php\\ Podrazumevani konfiguracioni fajl cp php.ini-production /usr/local/php/lib/php.ini Podesavanje lokacije konfiguracionog fajla /usr/local/php/bin/pear config-set php_ini /usr/local/php/lib Kreiramo script za automasko pokretanje php-a **/etc/rc.d/init.d/php-fpm** #!/bin/sh # # php-fpm - this script starts and stops the php-fpm daemon # # chkconfig: - 85 15 # description: PHP-FPM (FastCGI Process Manager) is an alternative PHP FastCGI \ # implementation with some additional features useful for sites of \ # any size, especially busier sites. # processname: php-fpm prefix=/usr/local/php exec_prefix=${prefix} php_fpm_BIN=${exec_prefix}/sbin/php-fpm php_fpm_CONF=${prefix}/etc/php-fpm.conf php_fpm_PID=${prefix}/var/run/php-fpm.pid php_opts="--fpm-config $php_fpm_CONF" wait_for_pid () { try=0 while test $try -lt 35 ; do case "$1" in 'created') if [ -f "$2" ] ; then try='' break fi ;; 'removed') if [ ! -f "$2" ] ; then try='' break fi ;; esac echo -n . try=`expr $try + 1` sleep 1 done } case "$1" in start) echo -n "Starting php-fpm " $php_fpm_BIN $php_opts if [ "$?" != 0 ] ; then echo " failed" exit 1 fi wait_for_pid created $php_fpm_PID if [ -n "$try" ] ; then echo " failed" exit 1 else echo " done" fi ;; stop) echo -n "Gracefully shutting down php-fpm " if [ ! -r $php_fpm_PID ] ; then echo "warning, no pid file found - php-fpm is not running ?" exit 1 fi kill -QUIT `cat $php_fpm_PID` wait_for_pid removed $php_fpm_PID if [ -n "$try" ] ; then echo " failed. Use force-exit" exit 1 else echo " done" fi ;; force-quit) echo -n "Terminating php-fpm " if [ ! -r $php_fpm_PID ] ; then echo "warning, no pid file found - php-fpm is not running ?" exit 1 fi kill -TERM `cat $php_fpm_PID` wait_for_pid removed $php_fpm_PID if [ -n "$try" ] ; then echo " failed" exit 1 else echo " done" fi ;; restart) $0 stop $0 start ;; reload) echo -n "Reload service php-fpm " if [ ! -r $php_fpm_PID ] ; then echo "warning, no pid file found - php-fpm is not running ?" exit 1 fi kill -USR2 `cat $php_fpm_PID` echo " done" ;; *) echo "Usage: $0 {start|stop|force-quit|restart|reload}" exit 1 ;; esac Podesavamo potrebe dozvole chmod +x /etc/rc.d/init.d/php-fpm\\ Aktiviramo skript chkconfig --add php-fpm chkconfig --level 2345 php-fpm on\\ Kreiramo konfiguracioni skript **/usr/local/php/etc/php-fpm.conf** ;;;;;;;;;;;;;;;;;;;;; ; FPM Configuration ; ;;;;;;;;;;;;;;;;;;;;; ; All relative paths in this configuration file are relative to PHP's install ; prefix (/usr/local/php-5.3.6). This prefix can be dynamicaly changed by using the ; '-p' argument from the command line. ; Include one or more files. If glob(3) exists, it is used to include a bunch of ; files from a glob(3) pattern. This directive can be used everywhere in the ; file. ; Relative path can also be used. They will be prefixed by: ; - the global prefix if it's been set (-p arguement) ; - /usr/local/php-5.3.6 otherwise ;include=etc/fpm.d/*.conf ;;;;;;;;;;;;;;;;;; ; Global Options ; ;;;;;;;;;;;;;;;;;; [global] ; Pid file ; Note: the default prefix is /usr/local/php-5.3.6/var ; Default Value: none pid = run/php-fpm.pid ; Error log file ; Note: the default prefix is /usr/local/php-5.3.6/var ; Default Value: log/php-fpm.log error_log = log/php-fpm.log ; Log level ; Possible Values: alert, error, warning, notice, debug ; Default Value: notice ;log_level = notice ; If this number of child processes exit with SIGSEGV or SIGBUS within the time ; interval set by emergency_restart_interval then FPM will restart. A value ; of '0' means 'Off'. ; Default Value: 0 ;emergency_restart_threshold = 0 ; Interval of time used by emergency_restart_interval to determine when ; a graceful restart will be initiated. This can be useful to work around ; accidental corruptions in an accelerator's shared memory. ; Available Units: s(econds), m(inutes), h(ours), or d(ays) ; Default Unit: seconds ; Default Value: 0 ;emergency_restart_interval = 0 ; Time limit for child processes to wait for a reaction on signals from master. ; Available units: s(econds), m(inutes), h(ours), or d(ays) ; Default Unit: seconds ; Default Value: 0 ;process_control_timeout = 0 ; Send FPM to background. Set to 'no' to keep FPM in foreground for debugging. ; Default Value: yes daemonize = yes ;;;;;;;;;;;;;;;;;;;; ; Pool Definitions ; ;;;;;;;;;;;;;;;;;;;; ; Multiple pools of child processes may be started with different listening ; ports and different management options. The name of the pool will be ; used in logs and stats. There is no limitation on the number of pools which ; FPM can handle. Your system will tell you anyway :) ; Start a new pool named 'www'. ; the variable $pool can we used in any directive and will be replaced by the ; pool name ('www' here) [www] ; Per pool prefix ; It only applies on the following directives: ; - 'slowlog' ; - 'listen' (unixsocket) ; - 'chroot' ; - 'chdir' ; - 'php_values' ; - 'php_admin_values' ; When not set, the global prefix (or /usr/local/php-5.3.6) applies instead. ; Note: This directive can also be relative to the global prefix. ; Default Value: none ;prefix = /path/to/pools/$pool ; The address on which to accept FastCGI requests. ; Valid syntaxes are: ; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific address on ; a specific port; ; 'port' - to listen on a TCP socket to all addresses on a ; specific port; ; '/path/to/unix/socket' - to listen on a unix socket. ; Note: This value is mandatory. listen = 127.0.0.1:9000 ; Set listen(2) backlog. A value of '-1' means unlimited. ; Default Value: 128 (-1 on FreeBSD and OpenBSD) ;listen.backlog = -1 ; List of ipv4 addresses of FastCGI clients which are allowed to connect. ; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original ; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address ; must be separated by a comma. If this value is left blank, connections will be ; accepted from any ip address. ; Default Value: any ;listen.allowed_clients = 127.0.0.1 ; Set permissions for unix socket, if one is used. In Linux, read/write ; permissions must be set in order to allow connections from a web server. Many ; BSD-derived systems allow connections regardless of permissions. ; Default Values: user and group are set as the running user ; mode is set to 0666 listen.owner = lighttpd listen.group = lighttpd listen.mode = 0666 ; Unix user/group of processes ; Note: The user is mandatory. If the group is not set, the default user's group ; will be used. user = lighttpd group = lighttpd ; Choose how the process manager will control the number of child processes. ; Possible Values: ; static - a fixed number (pm.max_children) of child processes; ; dynamic - the number of child processes are set dynamically based on the ; following directives: ; pm.max_children - the maximum number of children that can ; be alive at the same time. ; pm.start_servers - the number of children created on startup. ; pm.min_spare_servers - the minimum number of children in 'idle' ; state (waiting to process). If the number ; of 'idle' processes is less than this ; number then some children will be created. ; pm.max_spare_servers - the maximum number of children in 'idle' ; state (waiting to process). If the number ; of 'idle' processes is greater than this ; number then some children will be killed. ; Note: This value is mandatory. pm = dynamic ; The number of child processes to be created when pm is set to 'static' and the ; maximum number of child processes to be created when pm is set to 'dynamic'. ; This value sets the limit on the number of simultaneous requests that will be ; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. ; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP ; CGI. ; Note: Used when pm is set to either 'static' or 'dynamic' ; Note: This value is mandatory. pm.max_children = 50 ; The number of child processes created on startup. ; Note: Used only when pm is set to 'dynamic' ; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 pm.start_servers = 20 ; The desired minimum number of idle server processes. ; Note: Used only when pm is set to 'dynamic' ; Note: Mandatory when pm is set to 'dynamic' pm.min_spare_servers = 5 ; The desired maximum number of idle server processes. ; Note: Used only when pm is set to 'dynamic' ; Note: Mandatory when pm is set to 'dynamic' pm.max_spare_servers = 35 ; The number of requests each child process should execute before respawning. ; This can be useful to work around memory leaks in 3rd party libraries. For ; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. ; Default Value: 0 pm.max_requests = 500 ; The URI to view the FPM status page. If this value is not set, no URI will be ; recognized as a status page. By default, the status page shows the following ; information: ; accepted conn - the number of request accepted by the pool; ; pool - the name of the pool; ; process manager - static or dynamic; ; idle processes - the number of idle processes; ; active processes - the number of active processes; ; total processes - the number of idle + active processes. ; max children reached - number of times, the process limit has been reached, ; when pm tries to start more children (works only for ; pm 'dynamic') ; The values of 'idle processes', 'active processes' and 'total processes' are ; updated each second. The value of 'accepted conn' is updated in real time. ; Example output: ; accepted conn: 12073 ; pool: www ; process manager: static ; idle processes: 35 ; active processes: 65 ; total processes: 100 ; max children reached: 1 ; By default the status page output is formatted as text/plain. Passing either ; 'html' or 'json' as a query string will return the corresponding output ; syntax. Example: ; http://www.foo.bar/status ; http://www.foo.bar/status?json ; http://www.foo.bar/status?html ; Note: The value must start with a leading slash (/). The value can be ; anything, but it may not be a good idea to use the .php extension or it ; may conflict with a real PHP file. ; Default Value: not set pm.status_path = /fpm-status ; The ping URI to call the monitoring page of FPM. If this value is not set, no ; URI will be recognized as a ping page. This could be used to test from outside ; that FPM is alive and responding, or to ; - create a graph of FPM availability (rrd or such); ; - remove a server from a group if it is not responding (load balancing); ; - trigger alerts for the operating team (24/7). ; Note: The value must start with a leading slash (/). The value can be ; anything, but it may not be a good idea to use the .php extension or it ; may conflict with a real PHP file. ; Default Value: not set ping.path = /ping ; This directive may be used to customize the response of a ping request. The ; response is formatted as text/plain with a 200 response code. ; Default Value: pong ping.response = pong ; The timeout for serving a single request after which the worker process will ; be killed. This option should be used when the 'max_execution_time' ini option ; does not stop script execution for some reason. A value of '0' means 'off'. ; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) ; Default Value: 0 request_terminate_timeout = 0 ; The timeout for serving a single request after which a PHP backtrace will be ; dumped to the 'slowlog' file. A value of '0s' means 'off'. ; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) ; Default Value: 0 request_slowlog_timeout = 0 ; The log file for slow requests ; Default Value: not set ; Note: slowlog is mandatory if request_slowlog_timeout is set slowlog = log/$pool.log.slow ; Set open file descriptor rlimit. ; Default Value: system defined value rlimit_files = 1024 ; Set max core size rlimit. ; Possible Values: 'unlimited' or an integer greater or equal to 0 ; Default Value: system defined value rlimit_core = 0 ; Chroot to this directory at the start. This value must be defined as an ; absolute path. When this value is not set, chroot is not used. ; Note: you can prefix with '$prefix' to chroot to the pool prefix or one ; of its subdirectories. If the pool prefix is not set, the global prefix ; will be used instead. ; Note: chrooting is a great security feature and should be used whenever ; possible. However, all PHP paths will be relative to the chroot ; (error_log, sessions.save_path, ...). ; Default Value: not set ;chroot = ; Chdir to this directory at the start. ; Note: relative path can be used. ; Default Value: current directory or / when chroot chdir = /var/www ; Redirect worker stdout and stderr into main error log. If not set, stdout and ; stderr will be redirected to /dev/null according to FastCGI specs. ; Note: on highloaded environement, this can cause some delay in the page ; process time (several ms). ; Default Value: no catch_workers_output = yes ; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from ; the current environment. ; Default Value: clean env env[HOSTNAME] = $HOSTNAME env[PATH] = /usr/local/bin:/usr/bin:/bin:/usr/local/php env[TMP] = /tmp env[TMPDIR] = /tmp env[TEMP] = /tmp ; Additional php.ini defines, specific to this pool of workers. These settings ; overwrite the values previously defined in the php.ini. The directives are the ; same as the PHP SAPI: ; php_value/php_flag - you can set classic ini defines which can ; be overwritten from PHP call 'ini_set'. ; php_admin_value/php_admin_flag - these directives won't be overwritten by ; PHP call 'ini_set' ; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. ; Defining 'extension' will load the corresponding shared extension from ; extension_dir. Defining 'disable_functions' or 'disable_classes' will not ; overwrite previously defined php.ini values, but will append the new value ; instead. ; Note: path INI options can be relative and will be expanded with the prefix ; (pool, global or /usr/local/php-5.3.6) ; Default Value: nothing is defined by default except the values in php.ini and ; specified at startup with the -d argument ;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com ;php_flag[display_errors] = off ;php_admin_value[error_log] = /var/log/fpm-php.www.log php_admin_flag[log_errors] = on ;php_admin_value[memory_limit] = 32M Menjamo sadrzaj fajla **/usr/local/lighttpd/etc/lighttpd.conf** ####################################################################### ## ## /etc/lighttpd/lighttpd.conf ## ## check /etc/lighttpd/conf.d/*.conf for the configuration of modules. ## ####################################################################### ####################################################################### ## ## Some Variable definition which will make chrooting easier. ## ## if you add a variable here. Add the corresponding variable in the ## chroot example aswell. ## var.log_root = "/var/log/lighttpd" var.server_root = "/var/www" var.state_dir = "/var/run" var.home_dir = "/var/lib/lighttpd" var.conf_dir = "/etc/lighttpd" ## ## run the server chrooted. ## ## This requires root permissions during startup. ## ## If you run Chrooted set the the variables to directories relative to ## the chroot dir. ## ## example chroot configuration: ## #var.log_root = "/logs" #var.server_root = "/" #var.state_dir = "/run" #var.home_dir = "/lib/lighttpd" #var.vhosts_dir = "/vhosts" #var.conf_dir = "/etc" # #server.chroot = "/srv/www" ## ## Some additional variables to make the configuration easier ## ## ## Base directory for all virtual hosts ## ## used in: ## conf.d/evhost.conf ## conf.d/simple_vhost.conf ## vhosts.d/vhosts.template ## var.vhosts_dir = server_root + "/vhosts" ## ## Cache for mod_compress ## ## used in: ## conf.d/compress.conf ## var.cache_dir = "/var/cache/lighttpd" ## ## Base directory for sockets. ## ## used in: ## conf.d/fastcgi.conf ## conf.d/scgi.conf ## var.socket_dir = home_dir + "/sockets" ## ####################################################################### ####################################################################### ## ## Load the modules. include "modules.conf" ## ####################################################################### ####################################################################### ## ## Basic Configuration ## --------------------- ## server.port = 80 ## ## Use IPv6? ## #server.use-ipv6 = "enable" ## ## bind to a specific IP ## #server.bind = "localhost" ## ## Run as a different username/groupname. ## This requires root permissions during startup. ## server.username = "lighttpd" server.groupname = "lighttpd" ## ## enable core files. ## #server.core-files = "disable" ## ## Document root ## server.document-root = server_root + "/htdocs" ## ## The value for the "Server:" response field. ## ## It would be nice to keep it at "lighttpd". ## #server.tag = "lighttpd" ## ## store a pid file ## server.pid-file = state_dir + "/lighttpd.pid" ## ####################################################################### ####################################################################### ## ## Logging Options ## ------------------ ## ## all logging options can be overwritten per vhost. ## ## Path to the error log file ## server.errorlog = log_root + "/error.log" ## ## If you want to log to syslog you have to unset the ## server.errorlog setting and uncomment the next line. ## #server.errorlog-use-syslog = "enable" ## ## Access log config ## include "conf.d/access_log.conf" ## ## The debug options are moved into their own file. ## see conf.d/debug.conf for various options for request debugging. ## include "conf.d/debug.conf" ## ####################################################################### ####################################################################### ## ## Tuning/Performance ## -------------------- ## ## corresponding documentation: ## http://www.lighttpd.net/documentation/performance.html ## ## set the event-handler (read the performance section in the manual) ## ## possible options on linux are: ## ## select ## poll ## linux-sysepoll ## ## linux-sysepoll is recommended on kernel 2.6. ## server.event-handler = "linux-sysepoll" ## ## The basic network interface for all platforms at the syscalls read() ## and write(). Every modern OS provides its own syscall to help network ## servers transfer files as fast as possible ## ## linux-sendfile - is recommended for small files. ## writev - is recommended for sending many large files ## server.network-backend = "linux-sendfile" ## ## As lighttpd is a single-threaded server, its main resource limit is ## the number of file descriptors, which is set to 1024 by default (on ## most systems). ## ## If you are running a high-traffic site you might want to increase this ## limit by setting server.max-fds. ## ## Changing this setting requires root permissions on startup. see ## server.username/server.groupname. ## ## By default lighttpd would not change the operation system default. ## But setting it to 2048 is a better default for busy servers. ## server.max-fds = 2048 ## ## Stat() call caching. ## ## lighttpd can utilize FAM/Gamin to cache stat call. ## ## possible values are: ## disable, simple or fam. ## server.stat-cache-engine = "simple" ## ## Fine tuning for the request handling ## ## max-connections == max-fds/2 (maybe /3) ## means the other file handles are used for fastcgi/files ## server.max-connections = 1024 ## ## How many seconds to keep a keep-alive connection open, ## until we consider it idle. ## ## Default: 5 ## #server.max-keep-alive-idle = 5 ## ## How many keep-alive requests until closing the connection. ## ## Default: 16 ## #server.max-keep-alive-requests = 16 ## ## Maximum size of a request in kilobytes. ## By default it is unlimited (0). ## ## Uploads to your server cant be larger than this value. ## #server.max-request-size = 0 ## ## Time to read from a socket before we consider it idle. ## ## Default: 60 ## #server.max-read-idle = 60 ## ## Time to write to a socket before we consider it idle. ## ## Default: 360 ## #server.max-write-idle = 360 ## ## Traffic Shaping ## ----------------- ## ## see /usr/share/doc/lighttpd/traffic-shaping.txt ## ## Values are in kilobyte per second. ## ## Keep in mind that a limit below 32kB/s might actually limit the ## traffic to 32kB/s. This is caused by the size of the TCP send ## buffer. ## ## per server: ## #server.kbytes-per-second = 128 ## ## per connection: ## #connection.kbytes-per-second = 32 ## ####################################################################### ####################################################################### ## ## Filename/File handling ## ------------------------ ## ## files to check for if .../ is requested ## index-file.names = ( "index.php", "index.rb", "index.html", ## "index.htm", "default.htm" ) ## index-file.names += ( "index.xhtml", "index.html", "index.htm", "default.htm", "index.php" ) ## ## deny access the file-extensions ## ## ~ is for backupfiles from vi, emacs, joe, ... ## .inc is often used for code includes which should in general not be part ## of the document-root url.access-deny = ( "~", ".inc" ) ## ## disable range requests for pdf files ## workaround for a bug in the Acrobat Reader plugin. ## $HTTP["url"] =~ "\.pdf$" { server.range-requests = "disable" } ## ## url handling modules (rewrite, redirect) ## #url.rewrite = ( "^/$" => "/server-status" ) #url.redirect = ( "^/wishlist/(.+)" => "http://www.example.com/$1" ) ## ## both rewrite/redirect support back reference to regex conditional using %n ## #$HTTP["host"] =~ "^www\.(.*)" { # url.redirect = ( "^/(.*)" => "http://%1/$1" ) #} ## ## which extensions should not be handle via static-file transfer ## ## .php, .pl, .fcgi are most often handled by mod_fastcgi or mod_cgi ## static-file.exclude-extensions = ( ".php", ".pl", ".fcgi", ".scgi" ) ## ## error-handler for status 404 ## #server.error-handler-404 = "/error-handler.html" #server.error-handler-404 = "/error-handler.php" ## ## Format: .html ## -> ..../status-404.html for 'File not found' ## #server.errorfile-prefix = "/srv/www/htdocs/errors/status-" ## ## mimetype mapping ## include "conf.d/mime.conf" ## ## directory listing configuration ## include "conf.d/dirlisting.conf" ## ## Should lighttpd follow symlinks? ## server.follow-symlink = "enable" ## ## force all filenames to be lowercase? ## #server.force-lowercase-filenames = "disable" ## ## defaults to /var/tmp as we assume it is a local harddisk ## server.upload-dirs = ( "/var/tmp" ) ## ####################################################################### ####################################################################### ## ## SSL Support ## ------------- ## ## To enable SSL for the whole server you have to provide a valid ## certificate and have to enable the SSL engine.:: ## ## ssl.engine = "enable" ## ssl.pemfile = "/path/to/server.pem" ## ## The HTTPS protocol does not allow you to use name-based virtual ## hosting with SSL. If you want to run multiple SSL servers with ## one lighttpd instance you must use IP-based virtual hosting: :: ## ## $SERVER["socket"] == "10.0.0.1:443" { ## ssl.engine = "enable" ## ssl.pemfile = "/etc/ssl/private/www.example.com.pem" ## server.name = "www.example.com" ## ## server.document-root = "/srv/www/vhosts/example.com/www/" ## } ## ## If you have a .crt and a .key file, cat them together into a ## single PEM file: ## $ cat /etc/ssl/private/lighttpd.key /etc/ssl/certs/lighttpd.crt \ ## > /etc/ssl/private/lighttpd.pem ## #ssl.pemfile = "/etc/ssl/private/lighttpd.pem" ## ## optionally pass the CA certificate here. ## ## #ssl.ca-file = "" ## ####################################################################### ####################################################################### ## ## custom includes like vhosts. ## #include "conf.d/config.conf" #include_shell "cat /etc/lighttpd/vhosts.d/*.conf" ## ####################################################################### Menjamo sadrzaj fajla **/usr/local/lighttpd/etc/modules.conf** ####################################################################### ## ## Modules to load ## ----------------- ## ## at least mod_access and mod_accesslog should be loaded ## all other module should only be loaded if really neccesary ## ## - saves some time ## - saves memory ## ## the default module set contains: ## ## "mod_indexfile", "mod_dirlisting", "mod_staticfile" ## ## you dont have to include those modules in your list ## ## Modules, which are pulled in via conf.d/*.conf ## ## NOTE: the order of modules is important. ## ## - mod_accesslog -> conf.d/access_log.conf ## - mod_compress -> conf.d/compress.conf ## - mod_status -> conf.d/status.conf ## - mod_webdav -> conf.d/webdav.conf ## - mod_cml -> conf.d/cml.conf ## - mod_evhost -> conf.d/evhost.conf ## - mod_simple_vhost -> conf.d/simple_vhost.conf ## - mod_mysql_vhost -> conf.d/mysql_vhost.conf ## - mod_trigger_b4_dl -> conf.d/trigger_b4_dl.conf ## - mod_userdir -> conf.d/userdir.conf ## - mod_rrdtool -> conf.d/rrdtool.conf ## - mod_ssi -> conf.d/ssi.conf ## - mod_cgi -> conf.d/cgi.conf ## - mod_scgi -> conf.d/scgi.conf ## - mod_fastcgi -> conf.d/fastcgi.conf ## - mod_proxy -> conf.d/proxy.conf ## - mod_secdownload -> conf.d/secdownload.conf ## - mod_expire -> conf.d/expire.conf ## server.modules = ( "mod_access", # "mod_alias", # "mod_auth", # "mod_evasive", # "mod_redirect", # "mod_rewrite", # "mod_setenv", # "mod_usertrack", ) ## ####################################################################### ####################################################################### ## ## Config for various Modules ## ## ## mod_ssi ## #include "conf.d/ssi.conf" ## ## mod_status ## #include "conf.d/status.conf" ## ## mod_webdav ## #include "conf.d/webdav.conf" ## ## mod_compress ## #include "conf.d/compress.conf" ## ## mod_userdir ## #include "conf.d/userdir.conf" ## ## mod_magnet ## #include "conf.d/magnet.conf" ## ## mod_cml ## #include "conf.d/cml.conf" ## ## mod_rrdtool ## #include "conf.d/rrdtool.conf" ## ## mod_proxy ## #include "conf.d/proxy.conf" ## ## mod_expire ## #include "conf.d/expire.conf" ## ## mod_secdownload ## #include "conf.d/secdownload.conf" ## ####################################################################### ####################################################################### ## ## CGI modules ## ## ## SCGI (mod_scgi) ## #include "conf.d/scgi.conf" ## ## FastCGI (mod_fastcgi) ## include "conf.d/fastcgi.conf" ## ## plain old CGI (mod_cgi) ## #include "conf.d/cgi.conf" ## ####################################################################### ####################################################################### ## ## VHost Modules ## ## Only load ONE of them! ## ======================== ## ## ## You can use conditionals for vhosts aswell. ## ## see http://www.lighttpd.net/documentation/configuration.html ## ## ## mod_evhost ## #include "conf.d/evhost.conf" ## ## mod_simple_vhost ## #include "conf.d/simple_vhost.conf" ## ## mod_mysql_vhost ## #include "conf.d/mysql_vhost.conf" ## ####################################################################### Aktiviramo fastcgi u **/usr/local/lighttpd/etc/conf.d/fastcgi.conf** ####################################################################### ## ## FastCGI Module ## --------------- ## ## http://www.lighttpd.net/documentation/fastcgi.html ## server.modules += ( "mod_fastcgi" ) fastcgi.server = ( ".php" => ( ( "host" => "127.0.0.1", "port" => 9000, "check-local" => "disable", "broken-scriptfilename" => "enable", ) ) ) ## ## PHP Example ## For PHP don't forget to set cgi.fix_pathinfo = 1 in the php.ini. ## ## The number of php processes you will get can be easily calculated: ## ## num-procs = max-procs * ( 1 + PHP_FCGI_CHILDREN ) ## ## for the php-num-procs example it means you will get 17*5 = 85 php ## processes. you always should need this high number for your very ## busy sites. And if you have a lot of RAM. :) ## #fastcgi.server = ( ".php" => # ( "php-local" => # ( # "socket" => socket_dir + "/php-fastcgi-1.socket", # "bin-path" => server_root + "/cgi-bin/php5", # "max-procs" => 1, # "broken-scriptfilename" => "enable", # ) # ), # ( "php-tcp" => # ( # "host" => "127.0.0.1", # "port" => 9999, # "check-local" => "disable", # "broken-scriptfilename" => "enable", # ) # ), # # ( "php-num-procs" => # ( # "socket" => socket_dir + "/php-fastcgi-2.socket", # "bin-path" => server_root + "/cgi-bin/php5", # "bin-environment" => ( # "PHP_FCGI_CHILDREN" => "16", # "PHP_FCGI_MAX_REQUESTS" => "10000", # ), # "max-procs" => 5, # "broken-scriptfilename" => "enable", # ) # ), # ) ## ## Ruby on Rails Example ## ## Normally you only run one Rails application on one vhost. ## #$HTTP["host"] == "rails1.example.com" { # server.document-root = server_root + "/rails/someapp/public" # server.error-handler-404 = "/dispatch.fcgi" # fastcgi.server = ( ".fcgi" => # ("someapp" => # ( "socket" => socket_dir + "/someapp-fcgi.socket", # "bin-path" => server_root + "/rails/someapp/public/dispatch.fcgi", # "bin-environment" => ( # "RAILS_ENV" => "production", # "TMP" => home_dir + "/rails/someapp", # ), # ) # ) # ) #} ## ## Another example with multiple rails applications on one vhost. ## ## http://blog.lighttpd.net/articles/2005/11/23/lighttpd-1-4-8-and-multiple-rails-apps ## #$HTTP["host"] == "rails2.example.com" { # $HTTP["url"] =~ "^/someapp1" { # server.document-root = server_root + "/rails/someapp1/public" # server.error-handler-404 = "/dispatch.fcgi" # fastcgi.server = ( ".fcgi" => # ("someapp1" => # ( "socket" => socket_dir + "/someapp1-fcgi.socket", # "bin-path" => server_root + "/rails/someapp1/public/dispatch.fcgi", # "bin-environment" => ( # "RAILS_ENV" => "production", # "TMP" => home_dir + "/rails/someapp1", # ), # "strip-request-uri" => "/someapp1/" # ) # ) # ) # } # # $HTTP["url"] =~ "^/someapp2" { # server.document-root = server_root + "/rails/someapp2/public" # server.error-handler-404 = "/dispatch.fcgi" # fastcgi.server = ( ".fcgi" => # ("someapp2" => # ( "socket" => socket_dir + "/someapp2-fcgi.socket", # "bin-path" => server_root + "/rails/someapp2/public/dispatch.fcgi", # "bin-environment" => ( # "RAILS_ENV" => "production", # "TMP" => home_dir + "/rails/someapp2", # ), # "strip-request-uri" => "/someapp2/" # ) # ) # ) # } #} ## chrooted webserver + external PHP ## ## $ spawn-fcgi -f /usr/bin/php-cgi -p 2000 -a 127.0.0.1 -C 8 ## ## webserver chrooted to /srv/www/ ## php running outside the chroot # #fastcgi.server = ( # ".php" => (( # "host" => "127.0.0.1", # "port" => "2000", # "docroot" => "/srv/www/servers/www.example.org/htdocs/" # ))) # #server.chroot = "/srv/www" #server.document-root = "/servers/wwww.example.org/htdocs/" # ## ####################################################################### ==== Testiranje ==== Kreiramo test fajl echo " /var/www/htdocs/index.php Restartujemo lighttpd /etc/rc.d/init.d/lighttpd restart Stopping lighttpd: [ OK ] Starting lighttpd: Restartujemo php-fpm /etc/rc.d/init.d/php-fpm restart Gracefully shutting down php-fpm . done Starting php-fpm done http://ip_adresa_servera/ Radi... [[aleksandar.atanasijevic| Povratak]]