Configurare Nginx E Apache + Php + Mysql Su Debian

Dopo tantissime configurazioni e test sono finalmente giunto alla configurazione ottimale per poter far funzionare apache/php & nginx su debian 6.

Dunque per prima cosa colleghiamoci in ssh alla nostra macchina e installiamo apache2 / php / mysql / nginx , poi passeremo alla configurazione dei vari proxy , listen e altro ancora.

sudo apt-get install apache2 libapache2-mod-php5 php5-cli php5-common php5-cgi php5-mysql php5-gd mysql-server
`</pre>
Adesso installiamo il modulo rpaf
<pre>`sudo aptitude install libapache2-mod-rpaf`</pre>
Infine abilitiamo il modulo di rewrite in apache e riavviamo apache
<pre>`a2enmod rewrite
service apache2 restart`</pre>
Dopo aver installato il tutto adesso cominciamo a modificare le varie configurazioni, iniziando da apache.

Modifichiamo **/etc/apache2/ports.conf** spostando la porta 80 sulla porta 8080
<pre>`NameVirtualHost *:80
Listen 127.0.0.1:8080`</pre>
Se vogliamo avere piu virtualhost consiglio di inserire più porte in ascolto inserendo altri Listen
<pre>`Listen 127.0.0.1:8081
Listen 127.0.0.1:8082
Listen 127.0.0.1:8083
[...]`</pre>
E in caso dunque di più virtualhost o subdomain ecco alcuni esempi

&nbsp;

<!--more-->
<pre>`
&lt;virtualhost *:8080&gt;
DocumentRoot "/var/www/host1/htdocs/"
ServerName host1.it
ServerAlias www.host1.it
CustomLog /var/www/host1/log/apache_test_access.log common
ErrorLog /var/www/host1/log/apache_test_error.log
&lt;/virtualhost&gt;

&lt;virtualhost *:8081&gt;
DocumentRoot "/var/www/host2/htdocs/"
ServerName host2.it
ServerAlias www.host2.it
CustomLog /var/www/host2/log/apache_test_access.log common
ErrorLog /var/www/host2/log/apache_test_error.log
&lt;/virtualhost&gt;

`</pre>
Adesso passiamo ad occuparci di nginx, dopo averlo installato con **apt-get install nginx** andiamo a modificare **/etc/nginx/nginx.conf**
<pre>`
user www-data;
worker_processes  1;
error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;
events {
worker_connections  1024;
}
http {
include       /etc/nginx/mime.types;
default_type  application/octet-stream;
access_log    /var/log/nginx/access.log;
sendfile        on;
#tcp_nopush     on;
#keepalive_timeout  0;
keepalive_timeout  65;
tcp_nodelay        on;
gzip  on;
gzip_http_version 1.0;
gzip_buffers      16 8k;
gzip_comp_level   9;
gzip_min_length   2048;
gzip_types        text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;
gzip_vary         on;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
`</pre>
creiamo il file **proxy.conf** in **/etc/nginx/conf.d/proxy.conf**
<pre>`
proxy_redirect          off;
proxy_set_header        Host            $host;
proxy_set_header        X-Real-IP       $remote_addr; proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size    10m;
client_body_buffer_size 128k;
client_header_buffer_size 64k;
proxy_connect_timeout   90;
proxy_send_timeout      90;
proxy_read_timeout      90;
proxy_buffer_size   32k;
proxy_buffers       32   32k;
proxy_busy_buffers_size 64k;
client_header_timeout  3m;
client_body_timeout    3m;
send_timeout           3m;
large_client_header_buffers  4 4k;
server_names_hash_bucket_size 64;
`</pre>
Infine passiamo ad occuparci dei vari host , dunque rechiamoci in **/etc/nginx/sites-available/** e creiamo per ogni host un suo file.
<pre>` vim /etc/nginx/sites-available/host `</pre>
E Scriviamo
<pre>`
server {
listen   80;
server_name forum.host.it;
access_log  /var/www/host/log/nginx.access.log;
error_log  /var/www/host/log/nginx_error.log debug;
root /var/www/host/htdocs/forum;
index index.html index.htm index.php;
location /
{   proxy_pass         http://127.0.0.1:8080/;  }
#location /phpmyadmin {
#  proxy_pass         http://127.0.0.1:8080/phpmyadmin;
#  allow 1.1.1.1;
#  deny all;
# }
location /static {
root   /var/www/host/htdocs/;
expires     max;
}
error_page   500 502 503 504  /50x.html;
location = /50x.html {
root   /var/www/nginx-default;
}
location ~ .*.(php)$ {
proxy_pass         http://127.0.0.1:8080;
proxy_redirect     off;
proxy_set_header   Host             $host;
proxy_set_header   X-Real-IP        $remote_addr;
proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
client_max_body_size       10m;
client_body_buffer_size    128k;
proxy_connect_timeout      90;
proxy_send_timeout         90;
proxy_read_timeout         90;
proxy_buffer_size          4k;
proxy_buffers              4 32k;
proxy_busy_buffers_size    64k;
proxy_temp_file_write_size 64k; } }
`</pre>
Poi facciamo lo stesso per tutti gli altri host ricondandoci di cambiare la porta 8080 con le porte configurate nel virtualhost di apache, quindi inserendo 8081/8082 [...]

Concludendo abilitiamo il sito copiando un collegamento del file appena creato in sites-enabled
<pre>`
sudo ln -s /etc/nginx/sites-available/host1.it /etc/nginx/sites-enabled/host1.it
`</pre>
Infine creiamo tutte le nostre cartelle
<pre>`
sudo mkdir /var/www/host1/
sudo mkdir /var/www/host1/log
sudo mkdir /var/www/host2/htdocs
sudo mkdir /var/www/host2/log/
`</pre>
Infine riavviamo apache2 e ngins
<pre>`/etc/init.d/apache2 restart &amp;&amp; /etc/init.d/nginx restart

Con questo abbiamo finito.

Condividi Commenti