воскресенье, 19 июня 2011 г.

Установка nginx + php-fpm + mysql на Gentoo

Устанавливаем nginx:

USE=fastcgi emerge nginx
Создаем юзера и группу для www:

groupadd www
useradd www -g www

Установка MySQL:


emerge dev-db/mysql
mysql_install_db --basedir=/usr --datadir=/var/lib/mysql --user=mysql

Запускаем MySQL:

/etc/init.d/mysql start

Зададим пароль для mysql-юзера root:

mysqladmin -u root password 'new password'

Далее, устанавливаем php-fpm. Качаем php-5.3.0 отсюда: http://www.mediafire.com/?bzbvz2klo3y и патч для php-fpm: http://dpvps.googlecode.com/files/php-5.3.0-fpm-0.5.12.diff.gz

можно поставить его и через svn. подробности здесь: http://php-fpm.org/download/

Распаковываем php и патчим:

tar jxf php-5.3.0.tar.bz2
gzip -cd php-5.3.0-fpm-0.5.12.diff.gz | patch -d php-5.3.0 -p1
Ставим библиотеки png, jpeg, truetype и gd:

emerge libpng jpeg freetype
USE="png jpeg truetype" emerge gd

Копмилим php:

cd php-5.3.0

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr --with-mysqli=/usr/bin/mysql_config --enable-fpm --enable-sockets --enable-pdo --with-pdo-mysql=/usr --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-zlib

make && make install

Копируем конфиг php:

cp php.ini-production /usr/local/php/etc/php.ini

Code listing /usr/local/php/etc/php.ini:
Unix user of processes
www

Unix group of processes
www

apache-like

Копируем конфиг php-fpm:

cp /usr/local/php/sbin/php-fpm /etc/init.d/php-fpm

Запустим php-fpm и добавим в автозагрузку:

/etc/init.d/php-fpm start
rc-update add nginx default
rc-update add mysql default
rc-update add php-fpm default

nginx + php

Редактируем конфиг nginx:
nano /etc/nginx/nginx.conf

Code listing /etc/nginx/nginx.conf:
user www;
worker_processes 5;

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;

# configure log format
log_format main '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

# main access log
access_log /var/log/nginx_access.log main;

sendfile on;
#tcp_nopush on;

#keepalive_timeout 0;
keepalive_timeout 2;
tcp_nodelay on;

gzip on;

include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}

Создаем папку sites-enabled, и в ней файл с именем сайта:

mkdir /etc/nginx/sites-enabled
nano /etc/nginx/sites-enabled/example.com

Code listing /etc/nginx/sites-enabled/example.com:
server {
listen 80;
server_name example.com www.example.com;
access_log /var/log/example.com-access.log;
error_log /var/log/example.com-error.log;

root /var/www;

location ~ /.svn/ {
deny all;
}

location ~ \.php$ {
root /var/www/;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
}
}

Рестартим nginx:

/etc/init.d/nginx restart

Проверка php и mysql:

echo "" > /var/www/test/index.php

..и качаем скрипт для mysql отсюда: http://www.wallpaperama.com/forums/simple-php-mysql-connection-test-script-example-t5702.html

Ссылки: hily.me, habrahabr.ru

Комментариев нет:

Отправить комментарий