Установка и настройка Apache + PHP + MySQL на FreeBSD

Еще один вариант настройки Web-сервера теперь уже для FreeBSD.

Будем ставить из портов.

Apache:

cd /usr/ports/www/apache22
make&&make install&&make clean

PHP:

cd /usr/ports/lang/php5
make&&make install&&make clean

cd /usr/ports/lang/php5-extensions/
make&&make install&&make clean

MySQL:

cd /usr/ports/databases/mysql51-server
make&&make install&&make clean

Для запуска Apache и MySQL при старте системы добавим в файл /etc/rc.confстроки:

apache22_enable=”YES”
mysql_enable=”YES”

Запустим Apache и MySQL:

/usr/local/etc/rc.d/mysql-server start
apachectl start

Создадим пароль для пользователя root в базе данных:

mysqladmin -u root password ‘мегасложныйпароль’

Перейдем к настройке.

Открываем для редактирования файл конфигурации Apache/usr/local/etc/apache22/httpd.conf, ищем строки начинающиеся с AddType и дописываем туда:

AddType application/x-httpd-php    .php
AddType application/x-httpd-php-sourse    .phps

Это нужно что бы сервер знал что делать с файлами с расширениями php иphps.

Также добавляем имя нашего хоста:

ServerName localhost

Что бы проверить работоспособность Web-сервера отрываем браузер и в адресной строке набираем localhost, если появилась надпись “It works!”,значить все нормально.

Проверим работу php. В каталоге /usr/local/www/apache22/data/ создадим файл index.php со следующим содержимым:

<?phpinfo()?>

В адресной строке браузера набираем localhost/index.php, долна отобразится страница с информацией о php.

По умолчанию на нашем сервере лежит один сайт, файлы которого находятся в папке /usr/local/www/apache22/data/.  Если же вам мало одного то придется настроить добавление виртуальных хостов.

Наши сайты будут лежать в папке /usr/local/www/, поэтому нужно сделать доступной эту папку для нашего сервера. Для этого добавим в конец файлаhttp.conf следующие строки:

<Directory «/usr/local/www/*»>
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>

Также добавим строку:

NameVirtualHost *:80

и

Include etc/apache22/sites-enabled/*

Последняя нужна для того что бы указать серверу папку с настройками виртуальных хостов. Естественно эту папку нужно создать:

mkdir /usr/local/etc/apache22/sites-enabled

В ней создадим дефолтный файл настроек:

<VirtualHost *:80>
ServerName example.com
DocumentRoot /usr/local/www/example.com
</VirtualHost>

Для добавления нового хоста теперь достаточно лишь скопировать этот файл с именем нашего добавляемого сайта, заменить example.com на новое имя и создать директорию в которой будут лежать файлы сайта, с аналогичным именем в папке /usr/local/www/.

То есть если мы добавляем сайт bestsite.com то у нас должна появиться папка/usr/local/www/bestsite.com и файл /usr/local/etc/apache22/sites-enabled/bestsite.com следующего содержания:

<VirtualHost *:80>
ServerName bestsite.com
DocumentRoot /usr/local/www/bestsite.com
</VirtualHost>

После этого перезапускаем Apache:

apachectl restart

и можем заходить на bestsite.com.

Процесс добавления/удаления виртуальных хостов можно автоматизировать. Следующий скрипт предназначен для этого:

#!/bin/sh#Add function
add_site()
{
echo «Creating new site»
sleep 1
echo -n  «Please, enter the name of site:»

while read SITE
do
if
[ «$SITE» != «» ]
then
DIR=»/usr/local/www/$SITE»
FILE=»/usr/local/etc/apache22/sites-enabled/$SITE»
if
[ -d $DIR ]
then
echo  «Site with that name already exists»
echo  «Please try again with correct name»
exit 1
else
touch $FILE
echo  «Creating settings file $FILE»
sleep 1
echo «<VirtualHost *:80>
ServerName $SITE
DocumentRoot $DIR
</VirtualHost>» >>$FILE

                echo «Creating directory for site $DIR»
sleep 1
mkdir -p $DIR
chmod -R 777 $DIR
echo «127.0.0.1 $SITE» >> /etc/hosts
echo  «Restarting Apache»
sleep 1
apachectl restart
echo  «Congratulations, the site $SITE has been successfully added»
exit 0
fi
fi
echo «You have not entered a name»
echo -n «Please, enter the name of the site or CTRL+Z to exit:»
done
}

#function for removing
rm_site()
{
echo «Removing site»
echo -n «Please, enter the site name:»
while read SITE
do
if
[ «$SITE» != «» ]
then
DIR=»/usr/local/www/$SITE»
FILE=»/usr/local/etc/apache22/sites-enabled/$SITE»
if
[ -d $DIR ]
then
echo «Removing site $SITE»
sleep 1
rm -r $DIR
rm $FILE
sed -i «» ‘/127.0.0.1 $SITE/d’ /etc/hosts
echo  «Restarting Apache»
sleep 1
apachectl restart
echo «Congratulations, the site $SITE has been successfully removed»
exit 0
else
echo «Site $SITE not on the server»
fi
fi
echo «You have not entered a name»
echo -n «Please, enter the name of the site or CTRL+Z to exit:»
done
}

#check user rights
if
[ $(whoami) != «root» ]
then
echo ‘You must be root.’
exit 1
fi

#deletion-addition process
if
[ «$1» = «» ]
then
echo «Invalid option»
echo  «Use ‘add’ or ‘remove’ option»
exit 1
else
case $1 in
add)
add_site
;;
rm)
rm_site
;;
esac

Сохраняем его. Называем наш файл site, делаем исполняемым и помещаем в папку /usr/bin.

Запускать его нужно с параметрами:

site add – для добавления сайта;

site rm – для удаления.

http://materynko.blogspot.com/2011/06/apache-php-mysql-freebsd.html

Комментарии закрыты.