-
Доступные статьи
-
Операционные системы
-
FreeBSD
-
Установка PHP6 девелоперсокй сборки на FreeBSD 7.2
Как я ставил ПХП6
------------------ I. Настройка FreeBSD -----------------
Версия системы
zg# uname -r
7.2-RELEASE
Пакеты
zg# pkg_info
pkg_info: no packages installed
Монтируем установочный диск
zg# mount /cdrom/
Ставим тяжёлые пакеты
zg# cd /cdrom/packages/All/
zg# pkg_add perl-5.8.9_2.tbz gettext-0.17_1.tbz python25-2.5.4_1.tbz
Ставим порты (если они уже есть, то можно пропустить)
zg# cd /cdrom/7.2-RELEASE/ports/
zg# ./install.sh
Синхронизируем время
zg# ntpdate ntp.ru
26 Jun 23:06:07 ntpdate[887]: step time server 193.124.11.11 offset 3740.968741 sec
Обновляем порты
zg# csup -h cvsup6.ru.freebsd.org /usr/share/examples/cvsup/ports-supfile
Ставим консольный браузер, чтобы тестировать веб-сервер
zg# make -C/usr/ports/www/links1/ install clean
------------------ II. Установка MySQL -----------------
Устанавливаем MySQL
zg# pkg_add -r mysql60-server
Обновление системных команд
zg# rehash
Устанавливаем базы MySQL
zg# mysql_install_db
Меняем владельца баз на mysql, чтобы не было проблем с правами
zg# chown -R mysql:mysql /var/db/mysql/
------------------ III. Установка апача -----------------
Устанавливаем апач (все опции по умолчанию)
zg# cd /usr/ports/www/apache22/
zg# make install clean
------------------ IV. Установка библиотек для пхп -----------------
Библиотека для работы с XML
zg# make -C/usr/ports/textproc/libxml2 install clean
Библиотека для работы с XSLT
zg# make -C/usr/ports/textproc/libxslt install clean
Библиотека для работы кодировками
zg# make -C/usr/ports/converters/iconv install clean
Графика в пхп
zg# make -C/usr/ports/graphics/gd install clean
Модуль для работы с UTF
zg# make -C/usr/ports/devel/icu install clean
------------------ V. Сборка и установка пхп -----------------
Создаём каталог для пхп и переходим в него
zg# mkdir /usr/local/php6
zg# cd /usr/local/php6/
Выгружаем девелоперскую сборку
zg# fetch http://snaps.php.net/php6.0-200906261630.tar.bz2
Распаковываем архив
zg# tar xf php6.0-200906261630.tar.bz2
Переходим в папку с сырцами пхп
zg# cd php6.0-200906261630
Изучаем опции, с которыми можно конфигурировать пхп
zg# ./configure --help | more
Конфигурируем пхп
zg# ./configure --prefix=/usr/local/php6 --with-apxs2=/usr/local/sbin/apxs \
--with-config-file-scan-dir=/usr/local/php6/ \
--with-gd --enable-mbstring --with-mysql \
--with-pdo-mysql --with-xsl
Собираем сырцы
zg# make
Ставим пхп6
zg# make install
Проверяем, что получилось
zg# rehash
zg# /usr/local/php6/bin/php -i | more
------------------ VI. Настройка апача -----------------
Определяем имя хоста
zg# hostname
zg.test.local
Создаём домашнюю папку для хоста по умолчанию
zg# mkdir -p /usr/local/www/zg.test.local/docs
Создаём индексный файл с информацией о пхп
zg# echo '<? phpinfo(); ?>' > /usr/local/www/zg.test.local/docs/index.php
Создаём папку для логов хоста
zg# mkdir -p /usr/local/www/zg.test.local/logs
Создаём конфиг для виртуального хоста
zg# ee /usr/local/etc/apache22/Includes/0-zg.test.local.conf
<VirtualHost *:80>
<IfModule mod_php6.c>
AddType application/x-httpd-php .php
DirectoryIndex index.php index.html index.htm
</IfModule>
ServerAdmin some@admin
DocumentRoot "/usr/local/www/zg.test.local/docs"
<Directory "/usr/local/www/zg.test.local/docs">
AllowOverride All
Order Deny,Allow
Allow from all
</Directory>
ServerName zg.test.local
ServerAlias www.zg.test.local
# ErrorLog /usr/local/www/zg.test.local/logs/error.log
# CustomLog /usr/local/www/zg.test.local/logs/access.log common
</VirtualHost>
Выставляем правильные права
zg# chown -R www:www /usr/local/www/zg.test.local/
Проверяем конфиг
zg# apachectl configtest
Syntax OK
Проверяем подгрузился ли наш виртуалхост
zg# apachectl -S
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80 zg.test.local (/usr/local/etc/apache22/Includes/0-zg.test.local.conf:1)
Syntax OK
------------------ VII. Запуск MySQL и Apache -----------------
Добавляем запуск демонов апача и мускуля
zg# echo '' >> /etc/rc.conf
zg# echo 'apache22_enable="YES"' >> /etc/rc.conf
zg# echo 'mysql_enable="YES"' >> /etc/rc.conf
Запускаем мускул и апач
zg# /usr/local/etc/rc.d/mysql-server start
Starting mysql.
zg# /usr/local/etc/rc.d/apache22 start
Performing sanity check on apache22 configuration:
Syntax OK
Starting apache22.
Проверяем работоспособность мускула
zg# sockstat | grep mysql
mysql mysqld 24782 19 tcp46 *:3306 *:*
mysql mysqld 24782 20 stream /tmp/mysql.sock
Проверяем работоспособность апача
zg# sockstat | grep http
www httpd 24799 3 tcp46 *:80 *:*
www httpd 24799 4 tcp4 *:* *:*
www httpd 24798 3 tcp46 *:80 *:*
www httpd 24798 4 tcp4 *:* *:*
www httpd 24797 3 tcp46 *:80 *:*
www httpd 24797 4 tcp4 *:* *:*
www httpd 24796 3 tcp46 *:80 *:*
www httpd 24796 4 tcp4 *:* *:*
www httpd 24795 3 tcp46 *:80 *:*
www httpd 24795 4 tcp4 *:* *:*
root httpd 24794 3 tcp46 *:80 *:*
root httpd 24794 4 tcp4 *:* *:*
------------------ VIII. Проверка работоспособности пхп6 -----------------
Проверяем работоспособность пхп6 и виртуалхоста
zg# links -dump http://zg.test.local | head
PHP Logo
PHP Version 6.0.0-dev
FreeBSD zg.test.local 7.2-RELEASE FreeBSD 7.2-RELEASE #0:
System Fri May 1 08:49:13 UTC 2009
root@walker.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC
i386
Build Date Jun 27 2009 00:26:32
'./configure' '--prefix=/usr/local/php6'
Всё работает :)