digitorum.ru

Как меня найти

Профиль

icq: 4415944

apache + php + mysql под FreeBSD 9.0

Apache, MySQL, nix, php

Под новый год решил побаловаться с nix, для этого решил собрать себе виртуальный "тестовый стенд".

WARNING: Никсовый пользователь я "не вот тебе", поэтому знающим людям некоторые вещи могут показаться странными. А может быть и нет

Поехали.

  • Скачиваем vmware player c официального сайта (http://www.vmwa...).
  • Скачиваем FreeBSD 9.0 (http://www.free...). Я выбрал FreeBSD-9.0-RELEASE-i386.
  • Устанавливаем FreeBSD в виртуальной машине. Там ничего сложного нет, человек, который умеет читать, справится без проблем. Инсталлятор вполне себе удобный.

Итого: У нас есть голая фря под виртуальной машиной. Теперь нужно установить и настроить php + apache + mysql.

Немного меняем настройки виртуальной машины для того, чтобы к ней можно было обратиться по сети:

А вот и она, под ip 192.168.1.13:

 

Для начала хочу сказать, что я сразу поставил midnight commander, так как "бросал я vi в тартар" (с).

cd /usr/ports/misc/mc
make install
make clean

 

Ставим Apache 2x:

whereis apache22
cd /usr/ports/www/apache22
make config
make install
make clean

 

В /etc/rc.conf нужно добавить:

apache22_enable="YES"
hostname="192.168.1.13" #ip, который я выдал виртуальной машине

 

Устанавливаем php5. Ставить php как модуль апача или как cgi особо разницы в данном случае (для тестовой площадки) нет. Я решил поставить php как модуль для apache.

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

 

Создаем php.ini, так как при установке из портов он не создается.

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

 

Ставим mysql 5.0:

cd /usr/ports/databases/mysql50-server
make install
make clean

 

В  /etc/rc.conf нужно добавить строку:

mysql_enable="YES"

 

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

cp /usr/local/share/mysq/my-huge.cnf /etc/my.cnf

 

Запускаем сервер:

/usr/local/etc/rc.d/mysql-server start

 

Теперь нам нужно подружить apache и php. Для этого идем в /usr/local/etc/apache22/httpd.conf.

Тут как минимум нужно не забыть указать:

# по указанным выше причинам 
ServerName 192.168.1.13:80
# решил домик сделать тут, особо разницы где все это будет лежать нету.
DocumentRoot "/www/localhost/www"
# директория домика
<Directory "/www/localhost/www">
	Options Indexes FollowSymLinks
	AllowOverride None
	Order allow,deny
	Allow from all
</Directory>
# Заодно поправим настройки для раздела cgi-bin, хотя наверное он мне все равно не пригодится
<Directory "/www/localhost/cgi-bin/">
	Options None
	AllowOverride None
	Order allow,deny
	Allow from all
</Directory>

 

Дальше два варианта настройки.

Если  php был установлен как модуль апача, то нам нужно всего-лишь подключить модуль libphp5.so и прописать типы:

LoadModule php5_module libexec/apache22/libphp5.so
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

 

Если php установлен как cgi, настройки несколько иные:

<IfModule alias_module>
	AddHandler php-script .php .phtml
	ScriptAlias /cgi-bin/ "/www/localhost/cgi-bin"
	# Раздел, в котором лежит php-интерпритатор
	ScriptAlias /local-bin/ "/usr/local/bin/"
	# Говорим апачу, чтобы он скармливал все php-скрипты интерпритатору
	Action php-script /local-bin/php-cgi
</IfModule>
# Ну и говорим апачу, что есть таки директория, в которой лежит php-интерпритатор
<Directory "/usr/local/bin/">
	Options None
	AllowOverride None
	Order allow,deny
	Allow from all
</Directory>

 

Запускаем апач:

/usr/local/sbin/apachectl start

 

Собственно после этих махинаций у нас все долно работать

На сегодня хватит. Выключаем фрю.

shutdown -p now 

 

Возможно будет интересно: