La instalación que se hace en este ejemplo es bajo un sistema Linux CentOS 6 x86_64.
Descargas de software necesario.
NGINX: Yo usé esta descarga, pero se puede usar cualquier otra disponible en la web: http://www.nginx.org
[root@TEST]# wget http://nginx.org/download/nginx-1.0.13.tar.gz
PCRE: Se pueden encontrar mas descargas de pcre en http://www.pcre.org
[root@TEST]# wget http://sourceforge.net/projects/pcre/files/latest/download?source=files
ZLIB: Se pueden encontrar mas descargas en http://www.zlib.net
[root@TEST]# wget http://zlib.net/zlib-1.2.6.tar.gz
Instalación.
Paquetes necesarios.
[root@TEST]# yum install openssl openssl-devel
Descomprimimos el software descargado previamente:
[root@TEST]# tar zxvf nginx-1.0.13.tar.gz
[root@TEST]# tar zxvf pcre-8.30.tar.gz
[root@TEST]# tar zxvf zlib-1.2.6.tar.gz
Instalación Nginx desde código fuente.
A continuación una breve explicación de cada parámetro:
--prefix : Lugar donde queremos que haga la instalación del software.
--with-http_ssl_module : Añade soporte para el protocolo HTTPS es requerido la instalación previa del openssl.
--with-pcre : Apunta las fuentes descargadas de pcre para permitir el uso de expresiones regulares en la directiva "location" y para el http_rewrite_module.
--with-zlib : Apunta las fuentes descargadas de zlib, necesario para el http_gzip_module.
--with-http_stub_status_module : Habilita al servidor de Nginx facilitar estados de conexión a los clientes. Para monitorizar el rendimiento.
Mas info en la url: http://nginx.org/en/docs/install.html
[root@TEST]# cd nginx-1.0.13
[root@TEST]# mkdir -p /opt/www
[root@TEST]# ./configure --prefix=/opt/www/nginx-1.0.13 --with-http_ssl_module --with-pcre=../pcre-8.30 --with-zlib=../zlib-1.2.6 --with-http_stub_status_module
[root@TEST]# make
[root@TEST]# make install
Instalación de PHP-FPM.
Descomprimimos el software descargado previamente:
Podemos descargar cualquier otra versión disponible en http://www.php.net
[root@TEST]# wget http://es.php.net/get/php-5.4.0.tar.gz/from/es2.php.net/mirror
[root@TEST]# tar zcvf php-5.4.0.tar.gz
Instalación de software necesario.
[root@TEST]# yum install libxml2 libxml2-devel
[root@TEST]# yum install libcurl libcurl-devel
[root@TEST]# yum install libjpeg-devel
[root@TEST]# yum install libpng-devel
[root@TEST]# wget http://pkgs.repoforge.org/libmcrypt/libmcrypt-2.5.7-1.2.el6.rf.x86_64.rpm
[root@TEST]# wget http://pkgs.repoforge.org/libmcrypt/libmcrypt-devel-2.5.7-1.2.el6.rf.x86_64.rpm
[root@TEST]# rpm -ivh libmcrypt-2.5.7-1.2.el6.rf.x86_64.rpm
[root@TEST]# rpm -ivh libmcrypt-devel-2.5.7-1.2.el6.rf.x86_64.rpm
Instalación del PHP.
[root@TEST]# cd php-5.4.0
[root@TEST php-5.4.0]# ./configure --enable-fastcgi --enable-fpm --with-mcrypt --enable-mbstring --with-curl --with-sockets --with-gd --with-zlib --with-iconv --with-dom --with-jpeg --with-openssl --with-libdir=lib64
Nota: Si nuestro sistema es de 32 bits, omitiremos el parámetro "--with-libdir=lib64"
[root@TEST]# make
[root@TEST]# make install
Archivos de configuración.
Antes de arrancar los servicios es necesario dejar preparados algunos archivos de configuración necesarios para el correcto funcionamiento de los servicios.
[root@TEST php-5.4.0]# cp php.ini-development /etc/php.ini
[root@TEST ~]# vi /usr/local/etc/php-fpm.conf
;;;;;;;;;;;;;;;;;;;;;
; FPM Configuration ;
;;;;;;;;;;;;;;;;;;;;;
;include=etc/fpm.d/*.conf
;;;;;;;;;;;;;;;;;;
; Global Options ;
;;;;;;;;;;;;;;;;;;
[global]
;pid = run/php-fpm.pid
error_log = log/php-fpm.log
log_level = alert
;emergency_restart_threshold = 0
;emergency_restart_interval = 0
;process_control_timeout = 0
;daemonize = yes
;rlimit_files = 1024
;rlimit_core = 0
;;;;;;;;;;;;;;;;;;;;
; Pool Definitions ;
;;;;;;;;;;;;;;;;;;;;
[www]
;prefix = /path/to/pools/$pool
listen = 127.0.0.1:9000
;listen.backlog = -1
;listen.allowed_clients = 127.0.0.1
;listen.owner = nobody
;listen.group = nobody
;listen.mode = 0666
user = nobody
group = nobody
pm = dynamic
pm.max_children = 20
pm.start_servers = 5
pm.min_spare_servers = 4
pm.max_spare_servers = 10
;pm.max_requests = 500
;pm.status_path = /status
;ping.path = /ping
;ping.response = pong
;access.log = log/$pool.access.log
;access.format = %R - %u %t "%m %r%Q%q" %s %f %{mili}d %{kilo}M %C%%
;request_terminate_timeout = 0
;request_slowlog_timeout = 0
;slowlog = log/$pool.log.slow
;rlimit_files = 1024
;rlimit_core = 0
;chroot =
;chdir = /var/www
;catch_workers_output = yes
;env[HOSTNAME] = $HOSTNAME
;env[PATH] = /usr/local/bin:/usr/bin:/bin
;env[TMP] = /tmp
;env[TMPDIR] = /tmp
;env[TEMP] = /tmp
;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] = 48M
rlimit_files = 32768
rlimit_core = unlimited
[root@TEST]# cat /opt/www/nginx-1.0.13/conf/nginx.conf
#user nobody;
worker_processes 4;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
## Size Limits
#client_body_buffer_size 128K;
client_header_buffer_size 128K;
#client_max_body_size 24M;
large_client_header_buffers 1 1k;
server_names_hash_bucket_size 128;
## Timeouts
client_body_timeout 60;
client_header_timeout 60;
expires 24h;
keepalive_timeout 60;
send_timeout 60;
## General Options
ignore_invalid_headers on;
keepalive_requests 100;
limit_zone gulag $binary_remote_addr 5m;
recursive_error_pages on;
sendfile on;
server_name_in_redirect off;
server_tokens off;
## TCP options
tcp_nodelay on;
tcp_nopush on;
## Compression
gzip on;
gzip_comp_level 6;
gzip_http_version 1.0;
gzip_min_length 0;
gzip_types text/plain text/css image/x-icon application/x-perl application/x-httpd-cgi;
gzip_vary on;
## Log Format
log_format main '$remote_addr $host $remote_user [$time_local] "$request"
$status $body_bytes_sent "$http_referer" "$http_user_agent" $request_time';
## Proxy options
#proxy_buffering on;
#proxy_cache_min_uses 3;
#proxy_cache_path /opt/www/nginx-1.0.13/proxy_temp/ levels=1:2 keys_zone=cache:10m inactive=10m max_size=1000M;
#proxy_cache_valid any 10m;
#proxy_ignore_client_abort off;
#proxy_intercept_errors on;
#proxy_next_upstream error timeout invalid_header;
#proxy_redirect off;
#proxy_set_header X-Forwarded-For $remote_addr;
#proxy_connect_timeout 60;
#proxy_send_timeout 60;
#proxy_read_timeout 60;
#server {
# listen 80;
# server_name localhost;
#
# location / {
# root html;
# index index.html index.htm;
# }
#
# #error_page 404 /404.html;
#
# # redirect server error pages to the static page /50x.html
# #
# error_page 500 502 503 504 /50x.html;
# location = /50x.html {
# root html;
# }
#
# # proxy the PHP scripts to Apache listening on 127.0.0.1:80
# #
# #location ~ \.php$ {
# # proxy_pass http://127.0.0.1;
# #}
#
# # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
# #
# #location ~ \.php$ {
# # root html;
# # fastcgi_pass 127.0.0.1:9000;
# # fastcgi_index index.php;
# # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# # include fastcgi_params;
# #}
#
# # deny access to .htaccess files, if Apache's document root
# # concurs with nginx's one
# #
# #location ~ /\.ht {
# # deny all;
# #}
# location /nginx_status {
# stub_status on;
# allow 10.0.0.0/8;
# deny all;
# }
#
# }
include /opt/www/nginx-1.0.13/vhosts/*.conf;
}
Arranque de los servicios.
Nginx.
Para arrancar el servidor Nginx:
[root@TEST]# /opt/www/nginx-1.0.13/sbin/nginx
Para parar el servidor Nginx:
[root@TEST]# /opt/www/nginx-1.0.13/sbin/nginx -s stop
Para recargar la configuración:
[root@TEST]# /opt/www/nginx-1.0.13/sbin/nginx -s reload
PHP-FPM.
[root@TEST]# php-fpm --php-ini /etc/php.ini
hola puedo instalar estos paquete arriba del apache y php normal? si instalo estos se me pierden los datos de las webs alojadas?
ResponderEliminar