Warning: Memcache::addserver() expects parameter 2 to be long, string given in /usr/home/rpc/domains/rpc.one.pl/public_html/libraries/joomla/cache/storage/memcache.php on line 84 Prosta konfiguracja nginx z php w ubuntu
 
 
Prosta konfiguracja nginx z php w ubuntu Drukuj Email
Wpisany przez rpc   
niedziela, 27 czerwca 2010 15:05

Prosta konfiguracja nginx z php w ubuntu.

 

Prosta konfiguracja serwera www na podstawie nginx z php opartego na fastcgi uruchomiona pod Ubuntu 10.04 LTS. Ponieważ uruchomiłem na nginx joomle to dogrywam jeszcze dodatkowe pakiety (drugi wiersz z pakietami).

 

Instalacja:

sudo apt-get update
sudo apt-get install nginx php5-cgi php5-cli spawn-fcgi
sudo apt-get install php5-xmlrpc php5-mysql php5-imagick php-pear mysql-server mysql-client-5.1

 

Konfiguracja:

Ponieważ w ubuntu nie ma części plików to utworzymy je sobie:

Plik  /etc/init.d/php-cgi winien wyglądać następująco:

sudo touch /etc/init.d/php-cgi
sudo chmod +x /etc/init.d/php-cgi

#! /bin/sh

### BEGIN INIT INFO
# Provides:          php-cgi
# Required-Start:    $local_fs $remote_fs $network $syslog
# Required-Stop:     $local_fs $remote_fs $network $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: spawns the php-cgi
# Description:       spawns the php-cgi
### END INIT INFO

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=php-cgi
DESC=php-cgi

test -x $DAEMON || exit 0

PIDFILE="/var/run/$NAME.pid"
DAEMON="/usr/bin/php-cgi"
SPAWN_FCGI="/usr/bin/spawn-fcgi"
FCGI_PORT=9000
FCGI_USER="www-data"
FCGI_GROUP="www-data"
FCGI_CHILDREN=0

# Include php-cgi defaults if available
if [ -f /etc/default/php-cgi ] ; then
. /etc/default/php-cgi
fi

SPAWN_FCGI_OPTS="-f $DAEMON -a 127.0.0.1 -p $FCGI_PORT -u $FCGI_USER -g $FCGI_GROUP -C $FCGI_CHILDREN -P $PIDFILE"

set -e

. /lib/lsb/init-functions

case "$1" in
start)
echo -n "Starting $DESC: "
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec "$SPAWN_FCGI" -- $SPAWN_FCGI_OPTS || true
echo "$NAME."
;;
stop)
echo -n "Stopping $DESC: "
start-stop-daemon --stop --quiet --pidfile $PIDFILE --exec "$DAEMON" || true
echo "$NAME."
;;
restart)
echo -n "Restarting $DESC: "
start-stop-daemon --stop --quiet --pidfile $PIDFILE --exec "$DAEMON" || true
sleep 1
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec "$SPAWN_FCGI" -- $SPAWN_FCGI_OPTS || true
echo "$NAME."
;;
status)
status_of_proc -p $PIDFILE "$DAEMON" php-cgi && exit 0 || exit $?
;;
*)
echo "Usage: $NAME {start|stop|restart|status}" >&2
exit 1
;;
esac

exit 0

 

Plik /etc/default/php-cgi winien wyglądać:

sudo touch /etc/default/php-cgi

PIDFILE="/var/run/php-cgi.pid"
DAEMON="/usr/bin/php-cgi"
SPAWN_FCGI="/usr/bin/spawn-fcgi"
FCGI_PORT=9000
FCGI_USER="www-data"
FCGI_GROUP="www-data"
FCGI_CHILDREN=0

 

Plik  /etc/nginx/sites-available/rpc.one.pl winien wyglądać:

sudo touch /etc/nginx/sites-available/rpc.one.pl
sudo ln -s /etc/nginx/sites-available/rpc.one.pl /etc/nginx/sites-enabled/rpc.one.pl

# You may add here your

server {
listen   80 default;
server_name  *.one.pl;

access_log  /var/log/nginx/$host.access.log;
error_log   /var/log/nginx/$host.error.log error;

location / {
root   /var/www/$host;
index  index.php index.html index.htm;
}

location /doc {
root   /usr/share;
autoindex on;
allow 127.0.0.1;
deny all;
}

location /images {
root   /usr/share;
autoindex on;
}

#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   /var/www/nginx-default;www-data
#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ ^(.+\.php)(.*)$ {
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_pass   127.0.0.1:9000;
fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME  /var/www/$host/$fastcgi_script_name;
include        /etc/nginx/fastcgi_params;
}
location ~ /\.ht {
deny  all;
}

}

Zmienna "$host" podstawia nam nazwę domeny na którą się odwołujemy np. rpc.one.pl. A serwer parametr "server_name" definiuje wszystkie domeny i poddomeny *.one.pl. To taka prosta uniwersalna konfiguracja.

Tworzymy katalog na naszą stronę i nadajemy odpowiednie uprawnienia:

sudo mkdir /var/www/rpc.one.pl
sudo chown -R www-data.www-data /var/www/rpc.one.pl

 

Tworzymy stronę testową:

sudo echo "<?php echo phpinfo(); ?>" > /var/www/rpc.one.pl/index.php

 

Uruchamiamy nasz serwer www nginx:

sudo /etc/init.d/php-cli start
sudo /etc/init.d/nginx start

 



 

 

Naśladujemy Apache w rewrite:

Jeśli ktoś ma problem z joomla na nginx (proste adresy) winien sobie napisać rewrite w stylu:

if ( !-e $request_filename ) {
rewrite ^/(.*)$  /index.php?q=$1 last;
}

 

Jeśli ktoś ma konto na rootnode na fastweb (nginx) do poprawnej obsługi joomli (proste adresy) powinien napisac sobie rewrite np.:

touch ~/fastweb/*/conf/nginx

o zawartości:

<nginx>
<if condition="!-e $request_filename">
<rewrite>^/(.*)$  /index.php?q=$1 last</rewrite>
</if>
</nginx>

to jest styl pisania rewrite według rootnode



Podziel się tą informacja z innymi:
Poprawiony: poniedziałek, 28 czerwca 2010 06:37