Установка площадки Apache 1.3+MySQL5+PHP5 в FreeBSD

02.11.2010 - 20:19

Данная связка просто необходима, как для вебмастера, так и для сисадмина. Многие CMS(системы управления сайтами) требуют ее, такие как Drupal, Joomla, Wordpress и другие.
Так как я больше привык к Apache 1.3.x, буду устанавливать именно его. Обновляем порты и начитаем установку.

1. Устанавливаем Apache 1.3.x:

[root@router /]#cd /usr/ports/www/apache13 && make install clean

Настроим немного конфиг Apache:
[root@router /]#cd /usr/local/etc/apache
[root@router /usr/local/etc/apache]#cat  httpd.conf

Приведу только часть конфига, там где я вносил изменения:
#Адрес администратора www серера, который будет отображаться в сообщениях об ошибках.
ServerAdmin admin@sh1

#Имя сервера, которое резолвится в hosts.
ServerName www.sh1

#Поменял с data, на www. Корневая директория нашего серера.
DocumentRoot "/usr/local/www"

#Ищет этот файл в каждой дириктории, для контроля доступа.
AccessFileName .htaccess

#На каком порту будет слушать
Listen 80
#Listen 8082

#Виртуалхосты у меня находятся в файлах, инклюдим:
NameVirtualHost *
Include /usr/local/etc/apache/vhosts/*.conf

Файл с виртуалхостами:
[root@router /]# cat /usr/local/etc/apache/vhosts/vsites.conf
<VirtualHost *>
ServerAdmin admin@sh1
ServerName www .sh1 #убрать пробел
DocumentRoot /usr/local/www/www.sh1
DirectoryIndex index.php index.php3 index.html
AddType application/x-httpd-php .php .php3
Action  application/x-httpd-php /cgi-bin/php-cgi
ErrorLog /var/log/www/www.sh1-error.log
CustomLog /var/log/www/www.sh1-custom.log combined
</VirtualHost>

<VirtualHost *>
ServerAdmin admin@sh1
ServerName noc.sh1
DocumentRoot /usr/local/www/data/mrtg
DirectoryIndex index.php index.php3 index.html
AddType application/x-httpd-php .php .php3
Action  application/x-httpd-php /cgi-bin/php-cgi
ErrorLog /var/log/www/noc.sh1-error.log
CustomLog /var/log/www/noc.sh1-custom.log combined
</VirtualHost>

<VirtualHost *>
ServerAdmin admin@sh1
ServerName webmail.sh1
DocumentRoot /usr/local/www/roundcube/
DirectoryIndex index.php index.php3 index.html
AddType application/x-httpd-php .php .php3
Action  application/x-httpd-php /cgi-bin/php-cgi
ErrorLog /var/log/www/webmail.sh1-error.log
CustomLog /var/log/www/webmail.sh1.log combined
</VirtualHost>

Файл с альясами (для примера):

[root@router /]#cat  /usr/local/etc/apache/vhosts/aliases.conf
Alias /sh1 "/usr/local/www/sh1"
<Directory "/usr/local/www/sh1">
    Options Indexes FollowSymlinks MultiViews
    AllowOverride All
     Order deny,allow
     Allow from all
</Directory>

Alias /roundcube/ "/usr/local/www/roundcube/"
<Directory "/usr/local/www/roundcube">
        Order deny,allow
        Allow from all
</Directory>

Добавляем в /etc/rc.conf:
[root@router /]# echo 'apache_enable="YES"' >> /etc/rc.conf

2. Устанавливаем php5:

[root@router /]#cd /usr/ports/lang/php52 && make config && make install clean

3. Устанавливаем расширения PHP5-extensions (выбираем необходимые модули):

[root@router /]#cd /usr/ports/lang/php52-extensions && make config  && make install clean
[X] BCMATH bc style precision math functions - математика
[X] BZ2 bzip2 library support - поддержка библиотеки архиватора Bzip2
[X] CALENDAR calendar conversion support
[X] CTYPE ctype functions
[X] CURL CURL support - библиотека,позволяющая отсылать HTTP запросы из php скриптов
[X] DBA dba support - поддержка базы формата dba
[ ] DBASE dBase library support - поддержка базы Формата Dbase
[X] DOM DOM support
[X] EXIF EXIF support
[X] FILEINFO fileinfo support
[X] FILTER input filter support - поддержка фильтров
[ ] FRIBIDI FriBidi support
[X] FTP FTP support - поддержка FTP
[X] GD GD library support - библиотека для работы с графикой
[X] GETTEXT gettext library support - библиотека для поддержки многоязычности в приложениях
[X] GMP GNU MP support
[X] HASH HASH Message Digest Framework
[X] ICONV iconv support - библиотека перекодировки текстов
[X] IMAP IMAP support - поддержка Imap и POP3
[ ] INTERBASE Interbase 6 database support (Firebird) - поддержка базы INTERBASE
[X] JSON JavaScript Object Serialization support
[ ] LDAP OpenLDAP support - поддержка LDAP
[X] MBSTRING multibyte string support
[ ] MCRYPT Encryption support - поддержка криптографии
[ ] MHASH Crypto-hashing support - поддержка Crypto-hashing
[X] MING ming shockwave flash support
[ ] MSSQL MS-SQL database support - поддержка базы данных Microsoft SQL
[X] MYSQL MySQL database support -поддержка базы данных MySQL
[ ] MYSQLI MySQLi database support - поддержка базы данных MySqli
[X] NCURSES ncurses support (CLI only)
[ ] ODBC unixODBC support
[X] OPENSSL OpenSSL support - поддержка OpenSSL
[X] PCNTL pcntl support (CLI only)
[X] PCRE Perl Compatible Regular Expression support - поддержка регулярных выражений,совместимых с PERL
[X] PDF PDFlib support (implies GD) - библиотека поддержки PDF
[X] PDO PHP Data Objects Interface (PDO)
[X] PDO_SQLITE PDO sqlite driver
[ ] PGSQL PostgreSQL database support - поддержка базы данных PostgreSQL
[X] POSIX POSIX-like functions
[X] PSPELL pspell support
[ ] READLINE readline support (CLI only)
[ ] RECODE recode support
[X] SESSION session support - поддержка сессий пользователя в PHP
[ ] SHMOP shmop support
[X] SIMPLEXML simplexml support
[X] SOAP SOAP support
[X] SOCKETS sockets support - позволяют php скриптам подключаться по сети к другим сервисам
[X] SPL Standard PHP Library
[ ] SQLITE sqlite support - поддержка базы данных SQLITE
[ ] SYBASE_CT Sybase database support - поддержка базы данных Sybase
[ ] SYSVMSG System V message support
[ ] SYSVSEM System V semaphore support
[ ] SYSVSHM System V shared memory support
[X] TIDY TIDY support
[X] TOKENIZER tokenizer support
[ ] WDDX WDDX support (implies XML)
[X] XML XML support - поддержка XML
[X] XMLREADER XMLReader support - поддержка XMLREADER
[ ] XMLRPC XMLRPC-EPI support
[X] XMLREADER XMLReader support
[X] XMLRPC XMLRPC-EPI support
[X] XMLWRITER XMLWriter support
[X] XSL XSL support (Implies DOM)
[X] YAZ YAZ support (ANSI/NISO Z39.50)
[X] ZIP ZIP support - поддержка архиватора ZIP
[X] ZLIB ZLIB support - поддержка Zlib (сжатие данных)

Файл конфигурации php, находится сдесь:

[root@router /]#cat /usr/local/etc/php.ini
Исправим временную зону под себя:
date.timezone = Europe/Kiev

Если его нет, создаем:

[root@router /]#cp /usr/local/etc/php.ini-recommended /usr/local/etc/php.ini

4. Устанавливаем MySQL:
Так как у порта mysql нет окна конфигурации(make config), все преднастройки необходимо внести в /etc/make.conf.
[root@srv /]#cat >> /etc/make.conf
#MySQL SERVER
.if ${.CURDIR} == ${PORTSDIR}/databases/mysql50-server
WITH_CHARSET=cp1251
WITH_COLLATION=cp1251_bin
BUILD_OPTIMIZED=yes
BUILD_STATIC=yes
.endif

#MySQL CLIENT
.if ${.CURDIR} == ${PORTSDIR}/databases/mysql50-client
WITH_CHARSET=cp1251
WITH_COLLATION=cp1251_bin
BUILD_OPTIMIZED=yes
.endif

Переходим к установке:
[root@srv /]# cd /usr/ports/databases/mysql50-server/
[root@srv /usr/ports/databases/mysql50-server]# make install clean

Добавим мускул в автозагрузку:
[root@router /]#echo 'mysql_enable="YES"' >> /etc/rc.conf

Запускаем сервер MySQL:
[root@srv /]#/usr/local/etc/rc.d/mysql-server  start
Starting mysql.
[root@srv /usr/local/etc/rc.d]#

Устанавливаем пароль для root-mysql, не бойтесь root в MySQL никак не связан с привилегированным пользователем root:
[root@srv /]#/usr/local/bin/mysqladmin -u root password newpassword

Теперь можна запускать и apache:
[root@srv /]#cd /usr/local/etc/rc.d
[root@srv /usr/local/etc/rc.d]# ./apache start
Starting apache.
Processing config directory: /usr/local/etc/apache/vhosts/*.conf
 Processing config file: /usr/local/etc/apache/vhosts/aliases.conf
 Processing config file: /usr/local/etc/apache/vhosts/vsites.conf
[root@srv /usr/local/etc/rc.d]#

Для проверки php в apache, создаем файл:
[root@srv /]#cat > /usr/local/www/info.php
<?php
phpinfo();
?>

Если в браузере вы увидете, что то похожее - значит вы все правильно настроили:
http://192.168.1.1/info.php

21_1.png

5. Для удобства использования MySQL, установим web-интерфейс phpMyAdmin:

[root@router /]#cd  /usr/ports/databases/phpmyadmin211 && make config && make install clean

В окне "Options for phpMyAdmin211 2.11.11" выбираем:
[X] BZ2       bzip2 library support
[X] GD        GD library support
[ ] OPENSSL   OpenSSL support
[X] PDF       PDFlib support (implies GD)
[X] ZLIB      ZLIB support
[X] MCRYPT    MCrypt library support
[X] MBSTRING  Multi-byte character-set string support

Порт установится в /usr/local/www/phpMyAdmin211. Добавляем альяс на папку phpMyAdmin в Apache:
[root@router /]#cat  /usr/local/etc/apache/vhosts/aliases.conf
Alias /phpMyAdmin/ "/usr/local/www/phpMyAdmin211/"
<Directory "/usr/local/www/phpMyAdmin211/">
   Options None
   AllowOverride None
   Order deny,allow
   Deny from all # Запрещаем всем.
   Allow from 192.168.1.5 # Указываем кому разрешен доступ через web.
</Directory>

После перезапуска Apache настроим конфиг phpMyAdmin:
[root@router /]#cat > /usr/local/www/phpMyAdmin211/config.inc.php
<?php
$i = 0;
$i++;
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['extension'] = 'mysql';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['blowfish_secret'] = '44d30a78ec7b34.18025827';
?>

Заходим через браузер в phpMyAdmin:
http://192.168.1.1/phpMyAdmin211/

59.png

Для заметки:
Исторически сложилось, что в FreeBSD базы MySQL находятся в /var/db/mysql, что не есть гуд, перенесем их например в /usr/local/mysql:

[root@router /]# mv /var/db/mysql /usr/local/
[root@router /]# ln -s /usr/local/mysql /var/db/mysql

Некоторые команды для работы с MySQL можно найти здесь.

Ваша оценка: Нет Средняя: 3.8 (6 votes)