Перейти на главную   
  helloworld.ru - документация и книги по программированию  
helloworld.ru - документация и книги по программированию    
    главная     хостинг     создание сайтов    
Поиск по сайту:  
Смотрите также
Языки программирования
C#
MS Visual C++
Borland C++
C++ Builder
Visual Basic
Quick Basic
Turbo Pascal
Delphi
JavaScript
Java
PHP
Perl
Assembler
AutoLisp
Fortran
Python
1C

Интернет-технологии
HTML
VRML
HTTP
CGI
FTP
Proxy
DNS
протоколы TCP/IP
Apache

Web-дизайн
HTML
Дизайн
VRML
PhotoShop
Cookie
CGI
SSI
CSS
ASP
PHP
Perl

Программирование игр
DirectDraw
DirectSound
Direct3D
OpenGL
3D-графика
Графика под DOS

Алгоритмы
Численные методы
Обработка данных

Системное программирование
Драйверы

Базы данных
MySQL
SQL

Другое

Хостинг


Друзья
demaker.ru
Реклама

Лучший хостинг. Аренда серверов




helloworld.ru

Установка Apache + PHP

Наверное, нет смысла ставить Apache без PHP. Поэтому мы этого делать не будем. Поставим все и сразу и грамотно :)

Скачать последнюю версию Apache всегда можно на http://httpd.apache.org/ , а PHP на http://www.php.net/

Помимо самих Apache + PHP нам еще нужна GD2. Это такая дурацкая графическая библиотека, которая много где используется, в том числе и в PHP.

Ставить ее на FreeBSD при наличии портов очень просто:
cd /usr/ports/graphics/gd2
make install


В новых версиях FreeBSD порт gd2 куда-то пропал. Теперь он называется просто gd
Так что если у вас нет директории /usr/ports/graphics/gd2 , то можете идти в /usr/ports/graphics/gd

Любители пингвинов узнают о том, как точно это делать под редхатом в следующем обновлении. Но если вы продвинутый джедай, то можно попробывать поставить самому вот отсюда http://www.boutell.com/gd/ Или вот отсюда http://www.rime.com.au/gd/ с поддержкой GIF.

Помимо GD очень желателен MySQL.

Начать установку стоит с этого:
mkdir /usr/local/distr
mkdir /usr/local/src

cd /usr/local/distr
wget ftp://ftp.aha.ru/pub/FreeBSD/ports/distfiles/apache_1.3.29.tar.gz
wget http://ru.php.net/distributions/php-4.3.4.tar.gz

tar -zxvf apache_1.3.29.tar.gz -C /usr/local/src
tar -zxvf php-4.3.4.tar.gz -C /usr/local/src


Добавляем пользователя и группу apache, под которой будет работать сервер. Это всегда полезно.

Для RedHat:
groupadd apache
useradd -M -s /dev/null -g apache -d /usr/local/apache apache


Для FreeBSD:
pw groupadd apache
pw useradd apache -g apache -d /usr/local/apache -s /dev/null


Конфигурируем.
cd /usr/local/src/apache_1.3.29/
./configure --prefix=/usr/local/apache --enable-shared=max --enable-module=rewrite --enable-shared=rewrite


Этим мы сказали, что хотим скомпилировать все модули динамическими. Это значит, что в любой момент можно отключить любой из них. Разницы по скорости между встроеными и динамичкскими модулями практически нет, особенно учитывая современные мощьности. И еще попросили Apache подключить модуль mor_rewrite. Почему-то по дефолту его не ставят.

Компилируем.
make
make install


Делаем полезные ссылки:
ln -s /usr/local/apache/bin/apachectl /usr/local/bin

Эта ссылка заставить Apache запускаться во время загрузки.

Для FreeBSD:
ln -s /usr/local/apache/bin/apachectl /usr/local/etc/rc.d/apache.sh

Для Linux:
ln -s /usr/local/apache/bin/apachectl /etc/rc.d/rc3.d/S95apache
(В какой именно rd?.d нужно класть ссылку можно узнать из файла /etc/inittab , из строки inittab)

Настраиваем Apache.
Этот конфиг с некоторыми изменеинями, которые значительно облегчат вам жизнь. Он name-based. Это значит, что вам не нужно будет беспокоится о том, какие IP адреса назначены вашим доменам. Apache будет ориентироваться только по названию домена.
cd /usr/local/apache/conf/
mv httpd.conf old.httpd.conf
wget http://tutorial.ru/files/apache/httpd.conf

mkdir /usr/local/apache/conf/srm/
cd /usr/local/apache/conf/srm/
wget http://tutorial.ru/files/apache/tutorial.ru.conf


В конфиге /usr/local/apache/conf/httpd.conf вам нужно исправить всего два параметра:
1. ServerAdmin - здесь нужно написать свой email
2. Заменить все yourhost.com на ваш домен.

А вот что было изменено в конфиге в отличии от того, который пишет Apache по дефолту:
ResourceConfig /usr/local/apache/conf/srm/ - Apache будет читать все конфиги в этой директории.
KeepAlive Off - При большой загрузке это поможет избежать мертвых коннектов.
BindAddress * - Слушать все IP адреса.
User apache - Пользователь
Group apache - Группа
ServerAdmin admin@yourhost.com - Почта администратора.
ServerName default.yourhost.com - Просто название вашего сервера.
AllowOverride All - .htaccess файлы будут работать рекурсивно.
LogFormat "%v %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined - Этот формат логов нужен для Webalizer-а.
CustomLog /usr/local/apache/logs/access_log combined - Включаем наш формат логов.
AddHandler cgi-script .cgi - Включаем .cgi (совсем не обязательно, чтобы это был Perl)
AddHandler cgi-script .pl - Включаем .pl
AddType text/html .shtml - Включаем SSI
AddHandler server-parsed .shtml
DirectoryIndex index.html index.htm index.php index.php3 index.phtml index.cgi index.pl index.shtml default.htm default.html - Индексные файлы в порядке приоритета.
NameVirtualHost *:80 - Этим мы говорим, что Apache наш будет name-based
< VirtualHost *:80> - Сампый первый виртуальный хост. В нем будет редирект.
   DocumentRoot /usr/local/apache/htdocs
   ServerName default.yourhost.com
< /VirtualHost>


А скачаный файл tutorial.ru.conf это просто пример конфига. Таким образом вы можете хранить отдельный конфиг для каждого нового домена в отдельном файле. И если при этом они будут находится в директории /usr/local/apache/conf/srm , то Apache включит их в свою конфигурацию.

Если вы заметили, в httpd.conf у нас есть один виртуальный хост из двух строчек. Он там не просто так. Поскольку сервер у нас name-based, а этот виртуальный хост находится прямо в httpd.conf, то все запросы, пришедшие на IP сервера, но не относящееся ни к одному из остальных виртуальных хостов будут попадать туда. Поэтому в директорию этого виртуального хоста по дефолту ставим редирект.

cd /usr/local/apache/htdocs/
wget http://tutorial.ru/files/apache/dot.htaccess
mv dot.htaccess .htaccess

И не забудьте поменять http://www.yourhost.com/ на то, что вам нужно.

Говорим, что отныне каталог /usr/local/apache пренадлежит пользователю apache
chown -R apache /usr/local/apache
chgrp -R apache /usr/local/apache


Тестовый старт.
/usr/local/apache/bin/apachectl start

Теоретически, Apache уже должен работать...

Теперь попробуем поставить PHP.

cd /usr/local/src/php-4.3.4/
./configure --prefix=/usr/local --with-apxs=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql --with-gd=/usr/local --with-config-file-path=/usr/local/etc

Этой длинной телегой мы пытаемся донести до PHP то что он будет модулем динамическим, будет использывать MySQL, а так же GD и конфиг у него будет лежать в директории /usr/local/etc .
Если вдруг у вас GD поставить не получилось или он вам не нужен, можно просто убрать соответствующие параметры из строки. То же касается и MySQL.

Компилируем.
make
make install


Операция прошла без потерь? Тогда можно продолжать...
В файл /usr/local/apache/conf/httpd.conf нужно раскомментировать вот эти строки:
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php3
AddType application/x-httpd-php .php4
AddType application/x-httpd-php .phtml


Продолжаем хулиганить.

cd /usr/local/etc/
wget http://tutorial.ru/files/apache/php.ini


Это дефолтный php.ini . Единственное, что было в нем исправлено, так это register_globals = On
Можете заменить на Off. А можете переписать совсем дефолтный файл из дистрибутива PHP (cp /usr/local/src/php-4.3.4/php.ini-dist /usr/local/etc/php.ini) . А можете вообще ничего не переписывать. Дело ваше.

Собственно, все.
Говорим
/usr/local/apache/bin/apachectl restart

Теперь можно настроить свой виртуальный хост по примеру файла /usr/local/apache/conf/srm/tutorial.ru.conf и положить туда вот это: http://tutorial.ru/files/apache/phpinfo.phpz . Только переименуйте файл phpinfo.phpz в phpinfo.php . Этот маленький скрипт расскажет вам все о настройках вашего PHP.











helloworld.ru © 2001-2016
Все права защищены
Rambler's Top100 TopList Rambler's Top100