для отладки сайтов ставят, как правило, на одной из линуксовых тачек в студии.
Если делать всё как для хостинга — вопросов не возникнет, а вот если захотите открывать сервае по ip
то надо его же и прописывать, например в конфиге жумлы, иначе css не подгрузится.
И ещё: надо включить один мод.
sudo a2enmod rewrite
Это если делать виртуальные хостинги, в настайках вирттуальных хостов надо сделать следуюшее в директориях
AllowOverride All
ServerAlias www.Name.com # Что бы сайти был доступен и по www…, добавить сразу после ServerName
в директории файлов создать .htaccess и добавить в него
ErrorDocument 404 /404.htmlи нет её — 404 стр
(FreeBSD 6.2-RELEASE)
У С Т А Н О В К А И З П О Р Т О В
Nginx
cd /usr/ports/www/nginx-devel
make install clean
в конфигурации выбираем следующие пункты:
[X] HTTP_MODULE
[X] HTTP_PERL_MODULE
[X] HTTP_REWRITE_MODULE
[X] HTTP_STATUS_MODULE
php
cd /usr/ports/lang/php5
make install clean
в конфигурации выбираем нужные вам опции и обязательно:
[X] CLI Build CLI version
[X] CGI Build CGI version
[X] REDIRECT Enable force-cgi-redirect support (CGI only)
[X] DISCARD Enable discard-path support (CGI only)
[X] FASTCGI Enable fastcgi support (CGI only)
[X] PATHINFO Enable path-info-check support (CGI only)
lighttpd
cd /usr/ports/www/lighttpd
Выполняем только
make
В конфигурационном меню убираем все опции.
После окончания компиляции делаем следующие:
cp work/lighttpd-1.4.18/src/spawn-fcgi /usr/local/bin/spawn-fcgi
cp work/lighttpd-1.4.18/doc/spawn-php.sh /usr/local/etc/rc.d/
слегка подредактируем /usr/local/etc/rc.d/spawn-php.sh
#!/usr/local/bin/bash
## ABSOLUTE path to the spawn-fcgi binary
SPAWNFCGI="/usr/local/bin/spawn-fcgi"
## ABSOLUTE path to the PHP binary
FCGIPROGRAM="/usr/local/bin/php-cgi"
## if this script is run as root, switch to the following user
USERID=nobody
GROUPID=nogroup
Создадим тестовый php файл index.php
cat > /usr/local/www/nginx/index.php
< ? phpinfo(); ?>
ctrl+d
Отредактируем конфигурационный файл nginx:
/usr/local/etc/nginx/nginx.conf
user nobody;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root /usr/local/www/nginx;
index index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/local/www/nginx-dist;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:1026;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/www/nginx$fastcgi_script_name;
include fastcgi_params;
}
}
}
Вот и всё, можно взлетать:
/usr/local/etc/rc.d/spawn-php.sh
/usr/local/etc/rc.d/nginx start
.
У С Т А Н О В К А И З И С Х О Д Н И К О В
Сборку провожу в /usr/local/src/
Скачиваем и разжимаем nginx (0.6.14)
wget
tar -zxf nginx-LAST.tar.gz
ln –s nginx-LAST nginx
Устанавливаем Perl Compatible Regular Expressions (на данный момент доступна версия 7.4)
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-LAST.tar.gz
tar -zxf pcre-LAST.tar.gz
ln –s pcre-LAST pcre
Удалим не нужные нам модули для реализации простого веб-сервера с поддержкой php.
cd nginx
./configure --prefix=/usr/local/nginx \
--with-http_stub_status_module \
--without-http_empty_gif_module \
--without-select_module \
--without-poll_module \
--without-http_userid_module \
--without-http_auth_basic_module \
--without-http_autoindex_module \
--without-http_map_module \
--without-http_referer_module \
--without-http_proxy_module \
--with-pcre=.../pcre
make && make install
Далее очередь php (5.2.4)
wget
tar -zxf php-LAST.tar.gz
ln –s php-LAST php
сd php
./configure \
--enable-fastcgi \
--enable-force-cgi-redirect \
--enable-discard-path
make && make intsall
Для запуска php я использую spawn-fcgi от lighttpd, на данный момент доступна 1.4.18. Так что пройдём к следующему шагу.
cd ...
wget
tar -zxf lighttpd-LAST.tar.gz
cd lighttpd-LAST
./configure
make
make install нам не требуется, так как нам потребуются только два файла из данного проекта.
cp src/spawn-fcgi /usr/local/bin/spawn-fcgi
cp doc/spawn-php.sh /usr/local/etc/rc.d/
слегка подредактируем /usr/local/etc/rc.d/spawn-php.sh
#!/usr/local/bin/bash
## ABSOLUTE path to the spawn-fcgi binary
SPAWNFCGI="/usr/local/bin/spawn-fcgi"
## ABSOLUTE path to the PHP binary
FCGIPROGRAM="/usr/local/bin/php-cgi"
## if this script is run as root, switch to the following user
USERID=nobody
GROUPID=nogroup
создаём запускной файл для nginx
touch /usr/local/etc/rc.d/nginx.sh
следующего содержания:
#!/bin/sh
nginx_enable=${nginx_enable-"NO"}
nginx_flags=${nginx_flags-"«}
nginx_pidfile=${nginx_pidfile-»/usr/local/nginx/logs/nginx.pid"}
. /etc/rc.subr
name="nginx"
rcvar=`set_rcvar`
command="/usr/local/nginx/sbin/nginx"
load_rc_config $name
pidfile="${nginx_pidfile}"
extra_commands="configtest reload"
configtest_cmd="configtest_cmd"
configtest_cmd () {
echo «Configuration syntax test for ${name}.»
if ${command} ${nginx_flags} -t; then
:
else
err 8 «FATAL: bad config for ${name}»
fi
}
start_cmd="echo \"Starting ${name}.\";
/usr/bin/limits -U www ${command} ${nginx_flags}"
run_rc_command «$1»
не забываем прописать в /etc/rc.conf
nginx_enable="YES"
Конфигурационный файл для nginx
/usr/local/nginx/conf/nginx.conf
user nobody;
worker_processes 1;
pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
server_names_hash_max_size 2048;
server_names_hash_bucket_size 128;
server {
listen 80;
server_name yoursite.com;
charset utf8;
location / {
root /path/yoursite.com;
index index.html index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:1026;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /path/yoursite.com$fastcgi_script_name;
include fastcgi_params;
}
}
}
Вот собственно и всё. Пробуем стартануть.
/usr/local/etc/rc.d/spawn-php.sh
/usr/local/etc/rc.d/nginx.sh