Установка Web-сервера Apache, PHP 5 и MySQL под управлением freeBSDНачнём с установки MySQL: Распаковываем MySQL в: #cd /usr/ports/distfiles Конфигурируем MySQL: cd /usr/ports/distfiles/mysql-5.0.67/ #./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock --with-charset=cp1251 --with-extra-charset=all #make #make install При выполнении команды make могут возникать ошибки, если это произошло сделайте, make clean, повторите конфигурирование и снова запустите make, затем make install. --prefix - директория, в которую будет устанавливаться MySQL; --localstatedir - директория, в которой будут находиться файлы баз данных; --with-unix-socket-path - где будет располагаться файл сокета, необходимый для соединения с сервером MySQL. По причинам безопасности и сохранности этого файла не рекомендуется оставлять это значение по умолчанию, которое обычно равно /tmp; -- with-charset - кодировка, принятая по умолчанию (может принимать значения - big5, cp1251, cp1257, czech, danish, dec8, dos, euc_kr, gb2312, gbk, german1, hebrew, hp8, hungarian, koi8_ru, koi8_ukr, latin1, latin2, sjis, swe7, tis620, ujis, usa7 win1251ukr) - нужно выбрать ту кодировку, которая вам больше всего подходит. Это необходимо для правильной сортировки данных; -- with-extra-charsets - поддержка других кодировок, в предыдущем параметре может быть указана только одна кодировка, а этого может оказаться недостаточно, поэтому используем еще и этот параметр. Кодировки здесь можно перечислять через запятую, а можно и просто - all (все). Создаём пользователя MySQL #pw adduser mysql Теперь необходимо проинициализировать таблицы привилегий с помощью скрипта mysql_install_db. Расположен этот скрипт в директории: #cd /usr/ports/distfiles/mysql-5.0.67/scripts/ Набираем в командной строке: #./mysql_install_db В результате в каталоге /usr/local/mysql/data создастся база данных mysql с таблицами columns_priv, db, func, host, tables_priv, user и база данных test без таблиц. Присваиваем папку /usr/local/mysql/data пользователю mysql. Именно туда он будет писать всю информацию. #chown -R mysql /usr/local/mysql/data #chgrp -R mysql /usr/local/mysql/data Теперь необходимо создать папку tmp в директории /usr/local/mysql/ для файла mysql.sock иначе сервер не запустится и также присваиваем папку пользователю mysql #chown -R mysql /usr/local/mysql/tmp/ #chgrp -R mysql /usr/local/mysql/tmp/ Дальше выбираем файл my-***.cnf из директорий /usr/local/mysql/share/mysql/ под объем оперативной памяти на сервере (my-huge.cnf, my-large.cnf, my-medium.cnf, my-small.cnf) и копируем в директорию /etc/ затем переименовываем его в mysql5.cnf Теперь качаем файл mysql5-server.zip [523 b] (cкачиваний: 1) и распаковываем его в директорию /usr/local/etc/rc.d/ следующий этап - задаём атрибут файла # chmod 555 /usr/local/etc/rc.d/mysql5-server.sh Теперь запускаем MySQL командой # /usr/local/etc/rc.d/mysql5-server.sh start Устанавливаем пароль для Пользователя root #/usr/local/mysql/bin/mysqladmin -u root password 'рутовый_пароль_здесь' #/usr/local/mysql/bin/mysqladmin -u root -p flush-privileges #/usr/local/mysql/bin/mysqladmin -u root -h serv.domain.com password 'рутовый_пароль_здесь' #/usr/local/mysql/bin/mysqladmin -u root -h serv.domain.com -p flush-privileges Можно сделать несколько нужных линков. Это необязательно, но очень желательно. Для того, чтобы другие программы видели MySQL в вашей системе без дополнительных указаний при компиляции и работе. #ln -s /usr/local/mysql/include/mysql /usr/include #ln -s /usr/local/mysql/lib/mysql /usr/lib #ln -s /usr/local/mysql/bin/mysql /usr/local/bin #ln -s /usr/local/mysql/bin/mysqldump /usr/local/bin #ln -s /usr/local/mysql/bin/mysqladmin /usr/local/bin #ln -s /usr/local/mysql/lib/mysql/libmysqlclient.so.12 /usr/local/lib Вход в MySQL осуществляется командой: #/usr/local/mysql/bin/mysql -u root -p Основные MySQL Команды: status; select * from mysql .user; Показать базы данных – show databases; Создание базы данных – create database forum; Удаление базы данных – drop database forum; Теперь переходим к установке Apache и PHP: Распаковываем Apache и PHP в: #cd /usr/ports/distfiles Конфигурируем Apache: #cd /usr/ports/distfiles/httpd-2.2.11/ #./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite=shared #make #make install В файле httpd.conf (/usr/local/apache2/conf/httpd.conf): ищем: # # Possible values for the Options directive are "None", "All", # or any combination of: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # Note that "MultiViews" must be named *explicitly* --- "Options All" # doesn't give it to you. # # The Options directive is both complicated and important. Please see # http://httpd.apache.org/docs/2.2/mod/core.html#options # for more information. # Options Indexes FollowSymLinks # # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit # AllowOverride None # # Controls who can get stuff from this server. # Order allow,deny Allow from all исправляем на: # # Possible values for the Options directive are "None", "All", # or any combination of: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # Note that "MultiViews" must be named *explicitly* --- "Options All" # doesn't give it to you. # # The Options directive is both complicated and important. Please see # http://httpd.apache.org/docs/2.2/mod/core.html#options # for more information. # Options Indexes FollowSymLinks MultiViews # # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit # AllowOverride All # # Controls who can get stuff from this server. # Order allow,deny Allow from all Снимаем комментарий: Include conf/extra/httpd-vhosts.conf Запуск или остановка Apache выполняется командой: #/usr/local/apache2/bin/apachectl start #/usr/local/apache2/bin/apachectl stop После внесения любых изменений в файл настроек, вам потребуется перезапустить сервер: #/usr/local/apache2/bin/apachectl restart Для перезапуска Apache без прерывания имеющихся соединений, выполняется: #/usr/local/apache2/bin/apachectl graceful Для запуска Apache при старте системы, добавьте в /etc/rc.conf следующую строку: /usr/local/apache2/bin/apachectl start Переходим к PHP: Примечание: перед началом запустите Apache #/usr/local/apache2/bin/apachectl start теперь начнём :) Подключаем графику gd2 #cd /usr/ports/graphics/jpeg #make #make install Устанавливаем поддержку zlib #cd /usr/ports/archivers/php5-zlib #make не делать #make install Подключаем функции шифровки Mcrypt #cd /usr/ports/security/libmcrypt #make #cd /usr/ports/security/libmcrypt/work/libmcrypt-2.5.8/ #./configure --disable-posix-threads #make install #rehash Конфигурируем PHP: #cd /usr/ports/distfiles/php-5.2.10/ #./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-mcrypt --enable-mbstring --enable-memory-limit --with-gd --with-jpeg-dir=/usr/ports/graphics/jpeg/work/jpeg-6b --with-zlib-dir=/usr/ports/archivers/php5-zlib/work/php-5.2.10/ext/zlib/modules -- './configure' '--with-apxs2=/usr/local/apache/bin/apxs' '--with-mysql=/usr/local/mysql' '--with-mcrypt' '--enable-mbstring' '--enable-bcmath' '--enable-calendar' '--enable-memory-limit' '--with-gd' '--with-jpeg-dir=/usr/ports/graphics/jpeg/work/jpeg-6b' '--with-zlib-dir=/usr/ports/archivers/php5-zlib/work/php-5.2.9/ext/zlib/modules' -- #make #make install В файле httpd.conf (/usr/local/apache2/conf/httpd.conf) дописываем следующие строки: AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps ищем: DirectoryIndex index.html исправляем на: DirectoryIndex index.html index.php Переходим к файлу настройки PHP он находится в директории /usr/ports/distfiles/php-5.2.10/php.ini-dist переименовать в php.ini и кладем /usr/local/lib/ Перезапускаем Apache #/usr/local/apache2/bin/apachectl restart Вот и всё. ДОП!!! (--enable-bcmath --enable-calendar) ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-mcrypt --enable-mbstring --enable-bcmath --enable-calendar --enable-memory-limit --with-gd --with-jpeg-dir=/usr/ports/graphics/jpeg/work/jpeg-6b --with-zlib-dir=/usr/ports/archivers/php5-zlib/work/php-5.3.8/ext/zlib/modules