Простой сервер и неожиданные грабли

для отладки сайтов ставят, как правило, на одной из линуксовых тачек в студии.

Если делать всё как для хостинга — вопросов не возникнет, а вот если захотите открывать сервае по ip

то надо его же и прописывать, например в конфиге жумлы, иначе css не подгрузится.

И ещё: надо включить один мод.

sudo a2enmod rewrite

Это если делать виртуальные хостинги, в настайках вирттуальных хостов надо сделать следуюшее в директориях

AllowOverride All
ServerAlias www.Name.com # Что бы сайти был доступен и по www…, добавить  сразу после ServerName

в директории файлов создать .htaccess и добавить в него

ErrorDocument 404 /404.htmlи нет её — 404 стр

Запись опубликована в рубрике Новости. Добавьте в закладки постоянную ссылку.

1 комментарий: Простой сервер и неожиданные грабли

  1. root говорит:

    (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 www.sysoev.ru/nginx/nginx-LAST.tar.gz

    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 www.php.net/get/php-LAST...k.php.net/mirror

    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 www.lighttpd.net/download...ttpd-LAST.tar.gz

    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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>