C jak configure

Kwiecień 18, 2008

eaccelerator – dopalacz php

Filed under: konfiguracja — erendil @ 2:09 pm
Tags: , , ,

Ściągnąć i rozpakować instalkę ze strony http://www.eaccelerator.net

Następnie jako root wydajemy kolejne polecenia:
export PHP_PREFIX="/usr/local"
$PHP_PREFIX/bin/phpize
./configure --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config
make
make test

Nie robimy make install, bo sami sobie skopiujemy co trzeba, tam gdzie trzeba. Jeśli wszystko przebiegnie ok to w ./modules powinien zostać utworzony plik o nazwie eaccelerator.so. Kopiujemy go gdziekolwiek, w moim wypadku ląduje on tu: /www/sbin/eaccelerator.so.

Na co zwrócić uwagę gdy pojawią się problemy? Przede wszystkim zobacz czy automake, autoheader i autoconf są na Twojej ścieżce poszukiwań. Wystarczy z konsoli napisać:

automak ( i nacisnąć Ctrl-D w shellu, jeśli system rozwinie to na automake to jesteś w domu.), jeśli nie…. to kombinuj (podpowiem ;) zmień shella na zsh, tak będzie najprościej. OK, mamy eaccelerator, teraz trzeba go podpiąć do php. Wyedytuj swój php.ini i dopisz w nim następującą sekcję:

zend_extension="/www/sbin/eaccelerator.so"
eaccelerator.shm_size="32"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"

Opcje jak widać są ładnie opisane nie ma potrzeby tłumaczyć. Baczną uwagę należy zwrócić na pierwsze trzy:

zend_extension="/www/sbin/eaccelerator.so"
W tym katalogu musi znaleźć się nasz lib z eacceleratorem.

eaccelerator.shm_size="32"
Rozmiar przeznaczonej na cache pamięci(w MB),jak masz sporo RAM’u to zmień np. na 400, jak mało wpisz tam 0 – system sam dobierze stosowną wartość.

eaccelerator.cache_dir="/tmp/eaccelerator"
Nasz cache na dysku, żeby zadziałał musimy zrobić to:
mkdir /tmp/eaccelerator
chmod 0777 /tmp/eaccelerator

Przerestartować demony – koniec.
Jak sprawdzić czy eaccelerator działa? Najłatwiej odpytując funkcję phpinfo() via www.

Kwiecień 17, 2008

nginx + php + freebsd

Filed under: konfiguracja — erendil @ 12:38 pm
Tags: , ,

Nginx:
kompilujemy z następującymi opcjami, jeśli chcemy coś dodać to warto poczytać o opcjach konfiguracyjnych do nginx’a
./configure --prefix=/www --user=www --group=www --with-cc-opt="-I /usr/local/include/pcre"

Można zwiększyć liczbę deskryptorów do pliku dodając opcję:
--with-cc-opt="-D FD_SETSIZE=2048"

PHP 5.2.5
dokompilowujemy obsługę mysql itp. dodatki + fcgi(bez tego ani rusz)
./configure --with-mysql=/usr/local/mysql --with-gd --with-jpeg-dir=/usr/local/include --with-png-dir=/usr/local/include --with-zlib-dir=/usr/lib --with-freetype-dir=/usr/local/include --with-pear --enable-ftp --enable-soap --enable-exif --enable-cgi --enable-fastcgi

Skompilować z portów lighthttpd:
Nie instalować, w katalogu work jest to o co nam chodzi. Sam lighthttpd nam na nic(wolimy nginx’a ;) ) ale przyda nam się z niego spawn-fcgi
cp spawn-fcgi /usr/local/bin

Dopisać do startówek w /usr/local/etc/rc.d/a_php.sh
Poniżej zawartość tego pliku:

#!/bin/sh
SPAWNPATH="/usr/local/bin/spawn-fcgi"
PHPCGIPATH="/usr/local/bin/php-cgi"
PIDPATH="/var/run/php-cgi.pid"
case $1 in
start)
"$SPAWNPATH" -f "$PHPCGIPATH" -a 127.0.0.1 -p 9000 -P "$PIDPATH" -u www -C 5
;;
stop)
kill `cat $PIDPATH`
;;
restart)
kill -HUP `cat $PIDPATH`
;;
*)
echo $"Usage: $0 start|stop|restart"
exit 1
esac
exit 0

odpalić z reki
sh ./a_php.sh
uruchomi to 5 procesow fcgi na localhost:9000, a po restarcie będzie samo ładnie wstawało

zawartość nginx.conf
czyli sedno sprawy, zamiast domena.pl podstawiamy swoją domenkę, procesy nginx’a będą pracować z uprawnieniami usera www(oczywiście musimy go dodać) – jak? Najlepiej via pw (pw groupadd www -g 80, pw useradd www -u 80 -g 80 -d /dev/null -s /sbin/nologin). Simple ;)

user www;
worker_processes 5;
events {
worker_connections 4096;
}
http {
include conf/mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
gzip on;
server {
listen 80;
server_name domena.pl;
access_log logs/domena.pl.access.log;
location / {
root docs/domena.pl;
index index.php index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location ~ \.php$ {
include /www/conf/domena.pl.conf;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
}
location ~ /\.ht {
deny all;
}
}
}

Zawartość domena.pl.conf
Dzięki takiemu rozwiązaniu możemy sobie trochę pożonglować ustawieniami dla virtualek…

fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_FILENAME /www/docs/domena.pl$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;

test konfiguracji nginx’a
/www/sbin/nginx –t –c /www/conf/nginx.conf

odpalanie nginx’a
/www/sbin/nginx –c /www/conf/nginx.conf

I ta ostatnia linijka znów powinna na stałe trafić do /usr/local/etc/rc.d/naszestartoweconfy.sh

Theme: Rubric. Blog na WordPress.com.

Follow

Otrzymuj każdy nowy wpis na swoją skrzynkę e-mail.