Установка площадки Apache 1.3+MySQL5+PHP5 в FreeBSD
02.11.2010 - 20:19
Настроим немного конфиг Apache:
Приведу только часть конфига, там где я вносил изменения:
Файл с виртуалхостами:
Добавляем в /etc/rc.conf:
Исправим временную зону под себя:
4. Устанавливаем MySQL:
Так как у порта mysql нет окна конфигурации(make config), все преднастройки необходимо внести в /etc/make.conf.
Переходим к установке:
Добавим мускул в автозагрузку:
Запускаем сервер MySQL:
Устанавливаем пароль для root-mysql, не бойтесь root в MySQL никак не связан с привилегированным пользователем root:
Теперь можна запускать и apache:
Для проверки php в apache, создаем файл:
Если в браузере вы увидете, что то похожее - значит вы все правильно настроили:
В окне "Options for phpMyAdmin211 2.11.11" выбираем:
Порт установится в /usr/local/www/phpMyAdmin211. Добавляем альяс на папку phpMyAdmin в Apache:
После перезапуска Apache настроим конфиг phpMyAdmin:
Заходим через браузер в phpMyAdmin:
Некоторые команды для работы с MySQL можно найти здесь.
Данная связка просто необходима, как для вебмастера, так и для сисадмина. Многие 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
[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
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>
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>
<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 (сжатие данных)
[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
.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@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]#
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]#
[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
Если в браузере вы увидете, что то похожее - значит вы все правильно настроили:
http://192.168.1.1/info.php
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
[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>
<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';
?>
$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/
Для заметки:
Исторически сложилось, что в 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
[root@router /]# ln -s /usr/local/mysql /var/db/mysql
Некоторые команды для работы с MySQL можно найти здесь.
- Войдите на сайт для отправки комментариев
- Версия для печати