За последние 24 часа нас посетили 18254 программиста и 1637 роботов. Сейчас ищет 1571 программист ...

Apache+MySQL+PHP для FreeBSD 5.5

Тема в разделе "Установка PHP", создана пользователем Vladson, 24 сен 2006.

  1. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    Вот решил написать небольшой "help" по установке связки Apache+MySQL+PHP для FreeBSD 5.5 (дополнения, замечания, исправления принимаются)

    Делать это на сервере на котором будут лежать реальные сайты не желательно ибо безопасность у этого метода хромает и сильно (взять хотя бы то что MySQL зпускается из под рута, я уж не говорю что версии РНР и MySQL это беты) но для локальной (а ещё лучше вируальной типа MS-VirtualPC или VMware) машины в самый раз...

    Как это делаю я...

    Допустим есть комп с "голый" FreeBSD-5.5 (т.е без всего) по этому придётся устанавливать всё что потребуется (хотя на реальных машинах часть этого уже скорее всего стоит)

    Для этого подготавливаем папку с необходимыми файлами.

    expat-2.0.0_1.tbz
    gettext-0.14.5_2.tbz
    glib-2.8.6_1.tbz
    httpd-2.2.3.tar.bz2
    install.sh (* этот файл описан ниже)
    libiconv-1.9.2_2.tbz
    libxml2-2.6.23_1.tbz
    mc-4.6.1_3.tbz (* этот пакет просто для удобства)
    mysql-5.1.11-beta.tar.gz
    perl-5.8.8.tbz
    php-5.2.0RC3.tar.bz2
    pkgconfig-0.20.tbz

    файл install.sh собственно прост
    Код (Text):
    1. #!/bin/sh
    2. pkg_add mc-4.6.1_3.tbz
    3. pkg_add expat-2.0.0_1.tbz
    4. pkg_add libxml2-2.6.23_1.tbz
    5. tar -xjvf httpd-2.2.3.tar.bz2
    6. tar -zxvf mysql-5.1.11-beta.tar.gz
    7. tar -xjvf php-5.2.0RC3.tar.bz2
    8.  
    9. cd httpd-2.2.3
    10. ./configure --prefix=/usr/local/httpd --enable-so
    11. make
    12. make install
    13.  
    14. cd ../mysql-5.1.11-beta
    15. ./configure -prefix=/usr/local/mysql
    16. make
    17. make install
    18. ./scripts/mysql_install_db --user=root
    19.  
    20. cd ../php-5.2.0RC3
    21. ./configure --with-apxs2=/usr/local/httpd/bin/apxs --with-bz2 --with-mysql=/usr/local/mysql --with-zlib
    22. make
    23. make install
    После его запуска (на медленных компах) можно идти спать ибо всё это будет длиться долго и мучительно

    Когда всё это закончится достаточно отредактировать файл httpd.conf c помощью команды
    Код (Text):
    1. edit /usr/local/httpd/conf/httpd.conf
    и там заменить строки
    Код (Text):
    1. <IfModule dir_module>
    2.     DirectoryIndex index.html
    3. </IfModule>
    На
    Код (Text):
    1. <IfModule dir_module>
    2.     DirectoryIndex index.html index.php
    3. </IfModule>
    а также после строчки
    Код (Text):
    1. <IfModule mime_module>
    Вставить ещё две строчки
    Код (Text):
    1.    AddType application/x-httpd-php .php
    2.    AddType application/x-httpd-php-source .phps
    После чего запустить Apache
    Код (Text):
    1. /usr/local/httpd/bin/httpd -k start
    и MySQL
    Код (Text):
    1. /usr/local/mysql/bin/mysqld_safe --user=root &
    Можно так-же запустить "Midnight Comander"
    Код (Text):
    1. /usr/local/bin/mc
    ибо очень удобная штука.

    Файлы где будет лежать страничка по умолчанию находятся в папке "/usr/local/httpd/htdocs" что можно в принципе изменить, но в чём в принципе нет смысла...
     
  2. Danilevsky

    Danilevsky Активный пользователь

    С нами с:
    12 фев 2006
    Сообщения:
    286
    Симпатии:
    0
    Адрес:
    Киев
    Vladson, определенно, очень интересный и ценный материал. Пытаюсь изучать FreeBSD. Как только чего-то научусь, так сразу по этому материалу буду php ставить.
     
  3. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    Наконец-то хоть один отзыв :)
     
  4. TiGR

    TiGR Активный пользователь

    С нами с:
    3 сен 2006
    Сообщения:
    39
    Симпатии:
    0
    Адрес:
    Ижевск
    А почему апач запускается не через apachectl? Типа так круче?
     
  5. Shtogrin

    Shtogrin Активный пользователь

    С нами с:
    21 июн 2006
    Сообщения:
    25
    Симпатии:
    0
    Адрес:
    Kiev
    Для каждой ОС установлен свой порядок инсталяции программ. В FreeBSD это ports. Для MySQL 5 больше подойдет --with-mysqli. Зачем perl, libiconv, ... котрые не ставятся.
     
  6. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    TiGR
    Shtogrin
    Напишите свой рецепт если не нравится мой :)
    (я ставлю так и мне нравится, я не утверждаю что мой способ лучше всех, я утверждаю что он работает и работает нормально)
    Ставятся, их требует пакет mc-4.6.1_3.tbz который ставится просто для удобства
    Это на выбор Ports Packages или из "сырцов" а сам выбор исключительно на совести юзера !!!
    (и не надо делать вид будто я хенд-бук не читал) :)
     
  7. TiGR

    TiGR Активный пользователь

    С нами с:
    3 сен 2006
    Сообщения:
    39
    Симпатии:
    0
    Адрес:
    Ижевск
    Я просто не понимаю, зачем извращаться, когда в доке по апачу русским по белому написано, что правильнее всего запускать апач через apachectl.

    Вообще, это дурная привычка - делать не так, как правильно (как указано в мане), а "главное что работает".

    А тогда останавливать апач как? Через kill? ;)

    Просто прежде чем давать советы как что-то делать, убедись, что они правильные.
     
  8. TiGR

    TiGR Активный пользователь

    С нами с:
    3 сен 2006
    Сообщения:
    39
    Симпатии:
    0
    Адрес:
    Ижевск
    Кстати, всё это также относится и к запуску/останову mysql.
     
  9. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    apachectl это простой скрипт который практически ничего не делает только вызывает "httpd -k start" смысл запускать через него если можно и так ? (вы его хоть открывали этот apachectl то...)
    Одно и тоже что калькулятор в винде запускать через
    С:\Documents_and_Settings\All_Users\Start_Menu\Programs\Accessories\Calculator.lnk
    одним словом одни придирки а не замечания по делу...

    Дурная привычка не проверять $_GET на служебные символы, однако в мануале это в каждом втором примере. В моём случае я делаю не чтоб работало а чтоб меня устраивало и я мог бы знать что и почему я сделал.
    Тупо копируя то что в мане и не включая мозги и нифига не эксперементируя понять как и что работает не возможно.
    Тем более в случае с апачевским маном где одни примеры и ни одного объяснения почему.
     
  10. TiGR

    TiGR Активный пользователь

    С нами с:
    3 сен 2006
    Сообщения:
    39
    Симпатии:
    0
    Адрес:
    Ижевск
    Возможно, вы умнее тех, кто писал ман по апачу, и гораздо лучше их разбираетесь в том, как надо запускать апач, мне это не ведомо.

    Но даже если apachectl - это делегация, упрощение интерфейса, знаете чем грозит использование интерфейса отличного от рекомендованного разработчиками?

    К примеру, мои скрипты под php4/5 без особых проблем работают на php6, но не потому, что когда я писал их я знал про изменения в php6. Я просто "держу нос по ветру", и знаю, что разработчики php рекомендуют делать, а чего избегать. Те же, кто пишут скрипты небрежно, не учитывая этого столкнутся с тем, что их придётся ооочень сильно доробатывать.

    Что вы будете делать (а также все, кто воспользуются вашими советами), если в будущих версиях apachectl start будет выполнять больше, чем просто вызов httpd -k start? А что будете делать, если изменится интерфейс вызова httpd, причём интерфейс apachectl start останется прежним?

    Объясните мне: разработчики говорят "запускайте апач через apachectl start", вы говорите "запускайте апач через /usr/local/httpd/bin/httpd -k start". Почему я должен слушать вас, а не разработчиков? Что вообще побуждает вас так делать? Это проще? Отнюдь. Грамотнее? Вовсе нет. Надёжнее? Я уже показал, что тоже нет.

    Таким образом, ваш совет потенцеально очень вреден, эткакая медвежья услуга. Во-первых, это развивает дурную привычку делать "не как надо", а как "пятой ноге угодно, главное что работает", а во-вторых, может привести к проблемам в будущем.

    Как видите, моё замечание - это не просто "придирки".
     
  11. Anonymous

    Anonymous Guest

    Vladson, вы подло заставили его читать и внимать!
    Отсебятина: TiGR, вы переливаете из пустого в порожнее. А где гарантия, что apachectl будет все так же называтся?
     
  12. TiGR

    TiGR Активный пользователь

    С нами с:
    3 сен 2006
    Сообщения:
    39
    Симпатии:
    0
    Адрес:
    Ижевск
    В мане. Рекомендованное разработчиками поведение меняется гораздо реже, чем нерекомендованное.
     
  13. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    Мои скрипты тоже работают, однако в отличии от мануала я не использую ряд конструкций которые там приведены потому что примеры там упрощены до ужаса
    Я не говорю что я умнее их, я говорю что они написали свою точку зрения и не чем её не мотивировали, я помимо того что надо делать и как хочу знать почему надо делать так а не иначе а не тупо следовать указаниям человека писавшего мануал...
    (те кто хотят тупо следовать будут ставить именно эти версии и у них всё будет работать)
     
  14. TiGR

    TiGR Активный пользователь

    С нами с:
    3 сен 2006
    Сообщения:
    39
    Симпатии:
    0
    Адрес:
    Ижевск
    Вот это неправда. Более того, вы говорите, что не нужно стоит "тупо следовать ману", а думать. Подумайте - и вы найдёте достаточную мотивировку (часть причин я уже привёл, часть указаны в мане).
     
  15. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    На протижении ветки 2.х.х (кординально) не изменится ни apachectl ни httpd это я могу утверждать с уверенностью и даже готов поспорить на десятку баксов (правда ждать придётся долго)
    Всё что там указано что apachectl ставит ряд переменных окружения, однако мой беглый анализ показал что они не критично влияют на работу апача и не могут стать причиной его "незапуска" даже в будующих версиях..
     
  16. TiGR

    TiGR Активный пользователь

    С нами с:
    3 сен 2006
    Сообщения:
    39
    Симпатии:
    0
    Адрес:
    Ижевск
    Во-во, "главное, что работает". :)
     
  17. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    TiGR
    Не в этом дело, просто вы верите что
    а я верю что в будующих версиях "httpd -k start" не изменится, а вот "apachectl start" может изменться более резко :)
     
  18. TiGR

    TiGR Активный пользователь

    С нами с:
    3 сен 2006
    Сообщения:
    39
    Симпатии:
    0
    Адрес:
    Ижевск
    Во-первых, вы вырвали мою фразу из контекста, перед процитированным вами фрагментом стояло одно важное слово.

    А во-вторых, при чём тут вера? :) А если при чём, тогда так и надо писать: мои религиозные убеждения не позволяют мне использовать apachectl start. И всё, больше никаких вопросов. :)
     
  19. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    Не совсем конечно (использовать мне конечно мои убеждения позволяют, но моральное удовлетворение я от этого не получу) но в принципе давольно близко :)
     
  20. TiGR

    TiGR Активный пользователь

    С нами с:
    3 сен 2006
    Сообщения:
    39
    Симпатии:
    0
    Адрес:
    Ижевск
    Вот всё и выяснили, спасибо за честный ответ. :)
     
  21. forbidden

    forbidden Активный пользователь

    С нами с:
    27 сен 2006
    Сообщения:
    22
    Симпатии:
    0
    Адрес:
    Хабаровск
    Жуть какая-то :)

    вообще правильней будет ставить сначала cvsup
    потом цевесапить дерево портов, а уж потом с чисто совестью ставить из портов - апач, мускул и пхп. Это гарнтирует, что все зависимости правиьно будут собраны и для автозапуска все будет сделано корректно, останется только добавить в /etc/rc.conf соответственные директивы типа *_enable="YES"

    Под фрями самый правильный метод ставить все из портов.
     
  22. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    я когда настраиваю сервера дделаю:

    1. ставлю cvsup
    2. обновляю исходники
    3. обовляю ядро до стабильной ветки
    4. обновляю порты
    5. собираю все из портов

    p.s. собирать из пакетов можно, но ИМХО из портов надежнее, т.к. гарантировано будут собраты те версии которые соответствуют друг другу.
     
  23. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    Вы пробовали делать это на медленных машинах ?
    (повеситься можно, даже по эстонским меркам это жутко медленно)
     
  24. forbidden

    forbidden Активный пользователь

    С нами с:
    27 сен 2006
    Сообщения:
    22
    Симпатии:
    0
    Адрес:
    Хабаровск
    этим только и занимаюсь.

    медленные это какие?
     
  25. forbidden

    forbidden Активный пользователь

    С нами с:
    27 сен 2006
    Сообщения:
    22
    Симпатии:
    0
    Адрес:
    Хабаровск
    Vladson

    Хочешь быстрей, все равно правильней так:
    #pkg_add -r cvsup
    #cvsup -g -L 2 ports-supfile
    #pkg_add -r app_name
    итд

    в результате получишь правильно поставленный софт с правильными зависимостями и нормально проинсталенны софт с нормальнми стартап скриптами в /usr/local/etc/rc.d остается только немного рихтануть /etc/rc.conf и вуаля :)

    А изобретать велосипед и отходить от идеологии бзд по инсталу аппов, на мой взгляд, не совсем правильная практика.