Документация по ОС FreeBSD Суббота, 18.01.2025, 20:42
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Мои статьи [0]
Установка и настройка [281]
X Window [25]
Man pages [30]
Ports & Packages [26]
cvs [18]
Multimedia [20]
Нововсти в мире Unix [0]
RFC [4]
RFC (Request for Comments, Запрос на комментарии) - серия документов, публикуемая сообществом исследователей и разработчиков, руководствующихся практическими интересами, в которой описывается набор протоколов и обобщается опыт функционирования Интернет.
Безопасность [52]
Работа с железом [58]
Книги по FreeBSD [17]
Сеть [505]
Программирование [40]
FireWall [58]
Темы экзамена BSDA [14]
Официальные темы экзамена BSDA, включая подробноые описания и советы по обучению.

Главная » Статьи » Установка и настройка

php4 и php5 на freebsd одновременно, используя suphp
Как заставить работать обе версии php на одном сервере freebsd?
Я сделал это используя suphp

Устанавливаем php4 с поддержкой CGI:

        cd /usr/ports/lang/php4
        make install clean

Устанавливаем необходимые модули:

        cd /usr/ports/lang/php4-extensions
        make config
        make install clean

Устанавливем php5 с поддержкой CGI:

        cd /usr/ports/lang/php5
        make config
        make PREFIX=/usr/local/php5 install

Открываем /usr/ports/Mk/bsd.php.mk и заменяем ${LOCALBASE} на ${PREFIX} исключая этот блок:

        HTTPD?=         ${LOCALBASE}/sbin/httpd
        .if exists(${HTTPD})
        APACHE_VERSION!=        ${HTTPD} -V | ${SED} -ne 's/^Server version: Apache\/\([0-9]\)\.\([0-9]*\).*/\1\2/p'
        .       if ${APACHE_VERSION} > 13
        APXS?=          ${LOCALBASE}/sbin/apxs
        APACHE_MPM!=    ${APXS} -q MPM_NAME
        .               if ${APACHE_MPM} == "worker"
        PHP_EXT_DIR:=   ${PHP_EXT_DIR}-zts
        .               endif


Мой bsd.php.mk

Устанавливаем необходимые модули для php5:

        cd /usr/ports/lang/php5-extensions
        make config
        make PREFIX=/usr/local/php5 install

Собираем suphp:

        cd /usr/src && wget http://www.suphp.org/download/suphp-0.6.2.tar.gz && tar xzf suphp-0.6.2.tar.gz && cd suphp-0.6.2

Открываем src/apache/mod_suphp.c на строчке 252 и заменяем
"ACCESS_CONF" на "RSRC_CONF|ACCESS_CONF":


        /* Command table */

        static const command_rec suphp_cmds[] = {
            {"suPHP_Engine", suphp_handle_cmd_engine, NULL, RSRC_CONF|ACCESS_CONF,
             FLAG, "Whether suPHP is on or off, default is off"},
            {"suPHP_ConfigPath", suphp_handle_cmd_config, NULL, OR_OPTIONS, TAKE1,
             "Where the php.ini resides, default is the PHP default"},
        #ifdef SUPHP_USE_USERGROUP
            {"suPHP_UserGroup", suphp_handle_cmd_user_group, NULL,
             RSRC_CONF|ACCESS_CONF, TAKE2, "User and group scripts shall be run as"},
        #endif
            {"suPHP_AddHandler", suphp_handle_cmd_add_handler, NULL, RSRC_CONF|ACCESS_CONF,
             ITERATE, "Tells mod_suphp to handle these MIME-types"},
            {"suphp_RemoveHandler", suphp_handle_cmd_remove_handler, NULL, RSRC_CONF|ACCESS_CONF,
             ITERATE, "Tells mod_suphp not to handle these MIME-types"},
            {NULL}
        };

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

        ./configure --with-apxs=/usr/local/sbin/apxs --with-apache-user=www --with-logfile=/var/logs/suphp_log --prefix=/usr/local

В моём случае apache работает от пользователя www

Рихтуем /usr/local/etc/suphp.conf :

        [global]
        ;Path to logfile
        logfile=/var/log/suphp.log

        ;Loglevel
        loglevel=info

        ;User Apache is running as
        webserver_user=www

        ;Path all scripts have to be in
        docroot=/

        ;Path to chroot() to before executing script
        ;chroot=/

        ; Security options
        allow_file_group_writeable=false
        allow_file_others_writeable=false
        allow_directory_group_writeable=true
        allow_directory_others_writeable=false
   
        ;Check wheter script is within DOCUMENT_ROOT
        check_vhost_docroot=true

        ;Send minor error messages to browser
        errors_to_browser=false

        ;PATH environment variable
        env_path=/bin:/usr/bin

        ;Umask to set, specify in octal notation
        umask=0077

        ; Minimum UID
        min_uid=100

        ; Minimum GID
        min_gid=100

        [handlers]
        ;Handler for php-scripts
        x-httpd-php=php:/usr/local/bin/php-cgi
        x-httpd-php5=php:/usr/local/php5/bin/php-cgi

        ;Handler for CGI-scripts
        ;x-suphp-cgi=execute:!self

Добавляем в /usr/local/etc/apache/httpd.conf

        LoadModule suphp_module libexec/apache/mod_suphp.so
        AddModule mod_suphp.c

        <IfModule mod_suphp.c>
            suPHP_Engine on
            suPHP_UserGroup www www
            suPHP_AddHandler x-httpd-php
            suPHP_AddHandler x-httpd-php5

            AddHandler x-httpd-php .php
            AddHandler x-httpd-php5 .php5
            AddType application/x-httpd-php .php
            AddType application/x-httpd-php5 .php5
        </IfModule>
        <IfModule mod_php4.c>
            AddType application/x-httpd-php .php
            AddType application/x-httpd-php .php4
            AddType application/x-httpd-php .php3
            AddType application/x-httpd-php-source .phps
            AddType application/x-httpd-php .phtml
        </IfModule>

Настраиваем VHosts:

        <VirtualHost 10.10.10.114>
                ServerName test2.com
            DocumentRoot /home/www/test2.com
            <IfModule mod_suphp.c>
                suPHP_UserGroup test2.com test2.com
            </IfModule>
        </VirtualHost>


В этом случае по умолчанию будет использваться php4.

Если необходим php5 по умолчанию:

        <VirtualHost 10.10.10.114>
            ServerName test1.com
            DocumentRoot /home/www/test1.com
            <IfModule mod_suphp.c>
                suPHP_UserGroup test1.com test1.com
                AddHandler x-httpd-php5 .php
                #AddType application/x-httpd-php5 .php
            </IfModule>
        </VirtualHost>

Если есть вопросы, комментируйте.
Категория: Установка и настройка | Добавил: oleg (03.01.2008) | Автор: daiver
Просмотров: 1936 | Рейтинг: 5.0/1 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2025