Web-сервер на FreeBSD 9.0 (Apache + PHP + MySQL + phpMyAdmin) | OS CONFIG

Web-сервер на FreeBSD 9.0 (Apache + PHP + MySQL + phpMyAdmin)

Ни  для кого не секрет, что web-сервер на базе операционной системы FreeBSD является одним из самых быстрых, мощных, надёжных и защищённых серверов. Их используют не только для домашних страничек и сайтов-визиток, но и для крупных порталов и высоконагруженных проектов.

В данной статье рассмотрим развёртывание web-сервера на FreeBSD 9.0 x64 с параметрами по умолчанию.



Первым делом необходимо обновить дерево портов.

Если система была только что установлена, то вводим команду

portsnap fetch && portsnap extract

либо, если порты уже были обновлены ранее, то

portsnap fetch update

Устанавливаем Apache

cd /usr/ports/www/apache22

make all install clean

В “Options for apr” необходимо будет отметить MySQL database, как показано на скриншоте

Если нет необходимости в дополнительных опциях, то всё остальное оставляем по умолчанию.

Устанавливаем PHP

cd /usr/ports/lang/php5

make all install clean

В “Options for php5” необходимо будет отметить Build Apache module, как показано на скриншоте

Если нет необходимости в дополнительных опциях, то всё остальное оставляем по умолчанию.

Устанавливаем MySQL

cd /usr/ports/databases/mysql55-server

make all install clean

Если нет необходимости в дополнительных опциях, то всё остальное оставляем по умолчанию.

Устанавливаем PHP-Extensions

cd /usr/ports/lang/php5-extensions

make all install clean

В “Options for php5-extensions” необходимо будет отметить MBSTRING, MCRYPT, MySQL database support и MySQLi database support, как показано на скриншоте

Если нет необходимости в дополнительных опциях, то всё остальное оставляем по умолчанию.

Дальше, если ещё нет миднайт коммандера, устанавливаем:

cd /usr/ports/misc/mc

make all install clean

Он понадобится для быстрой навигации по папкам и файлам, а также для быстрого и простого редактирования файлов.

Затем вводим

rehash

и

mc

открываем файл /etc/rc.conf и дописываем в нём (после sshd_enable):

apache22_enable=”YES”

mysql_enable=”YES”

сохраняем и перезагружаем машину

shutdown –r now

После того, как перезагрузится машина, запустим mc.

Идём в /usr/local/etc/apache22 и находим файл httpd.conf

В него вносим следующие изменения:

1)      Закомментируем модуль unique

#LoadModule unique_id_module libexec/apache22/mod_unique_id.so

2)      Раскомментируем ServerAdmin и ServerName

ServerAdmin admin@test-webserver.com

ServerName www.test-webserver.com:80

3)      Раскомментируем DocumentRoot (если он закомментирован)

DocumentRoot /usr/local/www/apache22/data

4)      Находим DirectoryIndex и дописываем в него примерно следующее

DirectoryIndex index.html index.htm index.shtml index.php

Идём в /usr/local/etc/apache22/Includes и создаём там файл php-application.conf

touch /usr/local/etc/apache22/Includes/php-application.conf

Открываем и пишем в нём:

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phpsXsource

После этого идём в папку /usr/local/etc и создадим файл php.ini из файла php.ini-production

cp php.ini-production php.ini

и присвоим ему необходимые права

сhmod u+w php.ini

rehash

После этого для сервера MySQL выполняем скрипт в командной строке

cd /usr/local/bin

mysql_secure_installation

Там можно будет задать пароль суперпользователю root, а также необходимо будет ответить ещё на пару вопросов. 🙂

Снова перезагружаем машину

shutdown –r now

Устанавливаем phpMyAdmin

cd /usr/ports/databases/phpmyadmin

make all install clean

В “Options for phpMyAdmin” необходимо будет проверить, чтобы были отмечены параметры PHP MySQL support via mysql client (MYSQL) и PHP Improved MySQL client support (MYSQLI), как показано на скриншоте

Если нет необходимости в дополнительных опциях, то всё остальное оставляем по умолчанию.

Идём в /usr/local/etc/apache22, находим и открываем файл httpd.conf

В самом конце файла дописываем следующее

Alias /phpmyadmin/ “/usr/local/www/phpMyAdmin/”

<Directory “/usr/local/www/phpMyAdmin/”>

Options none

AllowOverride Limit

Order Deny,Allow

Deny from all

Allow from all

</Directory>

И последний раз перезагружаем машину

shutdown –r now

После загрузки сервера на другой машине (в этой же сети) в браузере вводим IP-адрес нашего сервера и /phpmyadmin/setup/ (например, если IP-адрес сервера 192.168.0.112, тогда http://192.168.0.112/phpmyadmin/setup/ )

Дальше можно произвести необходимые настройки MySQL-сервера (уже по вкусу)

Готово!

После всех вышеперечисленных действий имеем вот что:

1)      Путь до страниц и(или) скриптов: /usr/local/www/apache22/data. Обращаемся к нему через браузер: http://192.168.0.112/ и видим надпись «It Works!». Это страница по умолчанию. Сюда будем закидывать страницы, движок для сайта или скрипты.

2)      Путь до phpMyAdmin: /usr/local/www/phpMyAdmin. За счёт алиаса, который мы дописали в httpd.conf , к нему обращаемся через браузер так: http://192.168.0.112/phpmyadmin/.

3)      Путь к базам данных MySQL: /var/db/mysql

 


Если Вам помогла статья, вы можете отблагодарить автора:
перечислить на WMR кошелёк (WebMoney): R301575071888
перечислить на Яндекс.Кошелёк: 410011003938168
или на PayPal:

Вы можете оставить комментарий, или ссылку на Ваш сайт.
  • Сьюз

    Сделал все по гайду, получилось практически всё, затык случился на phpMyAdmin, никак не хочет он открываться а браузере по http://*Мой IP здесь*/phpmyadmin/., такое ощущение что не работает alias в httpd.conf. Попробовал поиграть с alias’ом (заключил /phpmyadmin/ в кавычки), в итоге добился 403-ей ошибки браузера при попытке открыть http://*Мой IP здесь*/phpmyadmin/ или http://*Мой IP здесь*/phpmyadmin/setup/.

    Что еще можно сделать чтобы phpmyadmin был доступен по нужному адресу? Может не хватает каких то прав на файлы для Apache24?

    • OSC_Evgeny

      ХЗ. С правами там вроде всё нормально, никаких проблем быть не должно… Неоднократно проверял.

      • Сергей

        Только у меня почему-то сразу скачивать пытается какой-то файл … )) видимо php не работает

        • OSC_Evgeny

          если не работает php, читайте с того места, где описывается создание файла php-application.conf 🙂

    • Витя

      уверены, что поставили слэш после адреса? без слэша не будет работать.

  • Алекс

    По этому пути /usr/local/www/phpMyAdmin папки phpMyAdmin вообще нет.Куда установился неясно.Поэтому и в браузере и у меня не открываеться.

    • OSC_Evgeny

      странно. а он вообще установился?

      лично у меня он именно по этому пути установился по умолчанию.

      попробуйте скачать c официального сайта http://www.phpmyadmin.net и скопируйте папку phpMyAdmin в /usr/local/www

  • люк

    а если хочется другой путь до папки сайтов?

    • OSC_Evgeny

      тогда поменяйте DocumentRoot с /usr/local/www/apache22/data на желаемый

  • Виталий

    Зачем ребут?
    service mysql-server start
    service apache22 start

    • OSC_Evgeny

      ребут — это на всякий случай… чтобы машина полноценно стартанула с нуля со всеми службами.

  • Андрей

    Сделал все по инструкции выдает:
    При получении URL http://100.0.0.2/phpmyadmin/setup/ произошла следующая ошибка

    Соединение с 100.0.0.2 не удалось

    Система вернула: (61) Connection refused

    Удаленный узел или сеть недоступен. Повторите запрос позднее

    Администратор Вашего кэша: webmaster.

    Создано Sun, 15 Sep 2013 16:00:29 GMT на gimnazia (squid/3.1.21)

    • OSC_Evgeny

      Если Апач запускается, и PHP-скрипты в нём тоже, то проверьте в файле httpd.conf
      Alias /phpmyadmin/ ….
      особенно наличие строчки Allow from all

  • Андрей

    При запуске апача выходит:

    Performing sanity check on apache22 configuration:

    Syntax error on line 1 of /usr/local/etc/apache22/Includes/php-application.conf:

    AddType requires at least two arguments, a mime type followed by one or more file extensions

    Starting apache22.

    Syntax error on line 1 of /usr/local/etc/apache22/Includes/php-application.conf:

    AddType requires at least two arguments, a mime type followed by one or more file extensions

    /usr/local/etc/rc.d/apache22: WARNING: failed to start apache22

    • OSC_Evgeny

      Пропишите в файл php-application.conf такие строчки:

      AddType application/x-httpd-php .php
      AddType application/x-httpd-php-source .phpsXsource

  • Андрей

    не поставил пробел AddType application/x-httpd-php .php
    спасибо заработало

    • OSC_Evgeny

      Пожалуйста. Обращайтесь, если что 😉

  • Андрей

    OSC_Evgeny как сделать что бы была авторизация привходе phpMyAdmin

    • OSC_Evgeny

      Она и должна там быть… А разве её там нет?

      А Вы скрипт /usr/local/bin/mysql_secure_installation запускали? Там вообще присваивается пароль администратора (root). А потом при входе через web-интерфейс появляется форма авторизации…

  • Андрей

    OSC_Evgeny подскажи закидываю в data разные движки сайтов только они отображаются с косяками. мож еще что-либо необходимо установить?

    • OSC_Evgeny

      что касается конкретного движка (SetCMS), то последнее его обновление было в 2007 году (не раньше). это значит, что версии PHP5 и MySQL 5.5 уже к нему не подходят. соответственно и phpMyAdmin будет слишком новый. 🙂
      надо их менять, либо доустанавливать…
      а вообще, читайте внимательно требования к подобным системам управления.
      если вдруг станете разбираться и всё получится — напишите 😉

  • Андрей

    к примеру

  • Valentin

    Установилось все, только в браузере не заходит в http://……/phpmyadmin/

    • OSC_Evgeny

      значит где-то Вы всё-таки ошиблись.
      думаю, что нужно выложить видеоинструкцию. постараюсь в течении октября…

  • Fget

    с freebsd впервые имел дело есть некоторый опыт в линуксах и дома практикую Mac Osx но по этой статье завелся сервер и запахал сайт. мне ваша статья реально помогла.

    • fget

      единственно не смог победить — после имени домена мне надо писать index.php — а все попадают на сайт просто набрав namesite.ru

      • OSC_Evgeny

        Спасибо за отзыв.
        А насчёт проблемы: создайте файл с именем .htaccess и в корень сайта положите (там где index.php), там пропишите так:

        DirectoryIndex index.php

        и всё будет нормально 😉

  • Андрей

    Два раза устанавливал и на одной ошибке меня тормозило.

    После этого для сервера MySQL выполняем скрипт в командной строке

    cd /usr/local/bin

    mysql_secure_installation
    После этого выдает ошибку что нет подключения к mysql
    Подскажите пожалуйста где копать?

    • OSC_Evgeny

      проверьте в /etc/rc.conf:
      mysql_enable=»YES»
      затем попробуйте запустить:
      service mysql-server start

  • radik

    Привет всем, все сделал по вышеописанному хелпу, все получилось, все работает. Спасибо автору. А не подскажите как теперь запустить (установить) вот это: http://opentest.com.ua/download/opentest_2.3.0._src.zip ?

  • Виталий

    у меня ошибка вида Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName статьи в интернете не помогают решить проблему. Ошибка вылазит уперто.



Яндекс.Метрика
Проверка ТИЦ Яндекс цитирования