Установка 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