Вот решил написать небольшой "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): #!/bin/sh pkg_add mc-4.6.1_3.tbz pkg_add expat-2.0.0_1.tbz pkg_add libxml2-2.6.23_1.tbz tar -xjvf httpd-2.2.3.tar.bz2 tar -zxvf mysql-5.1.11-beta.tar.gz tar -xjvf php-5.2.0RC3.tar.bz2 cd httpd-2.2.3 ./configure --prefix=/usr/local/httpd --enable-so make make install cd ../mysql-5.1.11-beta ./configure -prefix=/usr/local/mysql make make install ./scripts/mysql_install_db --user=root cd ../php-5.2.0RC3 ./configure --with-apxs2=/usr/local/httpd/bin/apxs --with-bz2 --with-mysql=/usr/local/mysql --with-zlib make make install После его запуска (на медленных компах) можно идти спать ибо всё это будет длиться долго и мучительно Когда всё это закончится достаточно отредактировать файл httpd.conf c помощью команды Код (Text): edit /usr/local/httpd/conf/httpd.conf и там заменить строки Код (Text): <IfModule dir_module> DirectoryIndex index.html </IfModule> На Код (Text): <IfModule dir_module> DirectoryIndex index.html index.php </IfModule> а также после строчки Код (Text): <IfModule mime_module> Вставить ещё две строчки Код (Text): AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps После чего запустить Apache Код (Text): /usr/local/httpd/bin/httpd -k start и MySQL Код (Text): /usr/local/mysql/bin/mysqld_safe --user=root & Можно так-же запустить "Midnight Comander" Код (Text): /usr/local/bin/mc ибо очень удобная штука. Файлы где будет лежать страничка по умолчанию находятся в папке "/usr/local/httpd/htdocs" что можно в принципе изменить, но в чём в принципе нет смысла...
Vladson, определенно, очень интересный и ценный материал. Пытаюсь изучать FreeBSD. Как только чего-то научусь, так сразу по этому материалу буду php ставить.
Для каждой ОС установлен свой порядок инсталяции программ. В FreeBSD это ports. Для MySQL 5 больше подойдет --with-mysqli. Зачем perl, libiconv, ... котрые не ставятся.
TiGR Shtogrin Напишите свой рецепт если не нравится мой (я ставлю так и мне нравится, я не утверждаю что мой способ лучше всех, я утверждаю что он работает и работает нормально) Ставятся, их требует пакет mc-4.6.1_3.tbz который ставится просто для удобства Это на выбор Ports Packages или из "сырцов" а сам выбор исключительно на совести юзера !!! (и не надо делать вид будто я хенд-бук не читал)
Я просто не понимаю, зачем извращаться, когда в доке по апачу русским по белому написано, что правильнее всего запускать апач через apachectl. Вообще, это дурная привычка - делать не так, как правильно (как указано в мане), а "главное что работает". А тогда останавливать апач как? Через kill? Просто прежде чем давать советы как что-то делать, убедись, что они правильные.
apachectl это простой скрипт который практически ничего не делает только вызывает "httpd -k start" смысл запускать через него если можно и так ? (вы его хоть открывали этот apachectl то...) Одно и тоже что калькулятор в винде запускать через С:\Documents_and_Settings\All_Users\Start_Menu\Programs\Accessories\Calculator.lnk одним словом одни придирки а не замечания по делу... Дурная привычка не проверять $_GET на служебные символы, однако в мануале это в каждом втором примере. В моём случае я делаю не чтоб работало а чтоб меня устраивало и я мог бы знать что и почему я сделал. Тупо копируя то что в мане и не включая мозги и нифига не эксперементируя понять как и что работает не возможно. Тем более в случае с апачевским маном где одни примеры и ни одного объяснения почему.
Возможно, вы умнее тех, кто писал ман по апачу, и гораздо лучше их разбираетесь в том, как надо запускать апач, мне это не ведомо. Но даже если apachectl - это делегация, упрощение интерфейса, знаете чем грозит использование интерфейса отличного от рекомендованного разработчиками? К примеру, мои скрипты под php4/5 без особых проблем работают на php6, но не потому, что когда я писал их я знал про изменения в php6. Я просто "держу нос по ветру", и знаю, что разработчики php рекомендуют делать, а чего избегать. Те же, кто пишут скрипты небрежно, не учитывая этого столкнутся с тем, что их придётся ооочень сильно доробатывать. Что вы будете делать (а также все, кто воспользуются вашими советами), если в будущих версиях apachectl start будет выполнять больше, чем просто вызов httpd -k start? А что будете делать, если изменится интерфейс вызова httpd, причём интерфейс apachectl start останется прежним? Объясните мне: разработчики говорят "запускайте апач через apachectl start", вы говорите "запускайте апач через /usr/local/httpd/bin/httpd -k start". Почему я должен слушать вас, а не разработчиков? Что вообще побуждает вас так делать? Это проще? Отнюдь. Грамотнее? Вовсе нет. Надёжнее? Я уже показал, что тоже нет. Таким образом, ваш совет потенцеально очень вреден, эткакая медвежья услуга. Во-первых, это развивает дурную привычку делать "не как надо", а как "пятой ноге угодно, главное что работает", а во-вторых, может привести к проблемам в будущем. Как видите, моё замечание - это не просто "придирки".
Vladson, вы подло заставили его читать и внимать! Отсебятина: TiGR, вы переливаете из пустого в порожнее. А где гарантия, что apachectl будет все так же называтся?
Мои скрипты тоже работают, однако в отличии от мануала я не использую ряд конструкций которые там приведены потому что примеры там упрощены до ужаса Я не говорю что я умнее их, я говорю что они написали свою точку зрения и не чем её не мотивировали, я помимо того что надо делать и как хочу знать почему надо делать так а не иначе а не тупо следовать указаниям человека писавшего мануал... (те кто хотят тупо следовать будут ставить именно эти версии и у них всё будет работать)
Вот это неправда. Более того, вы говорите, что не нужно стоит "тупо следовать ману", а думать. Подумайте - и вы найдёте достаточную мотивировку (часть причин я уже привёл, часть указаны в мане).
На протижении ветки 2.х.х (кординально) не изменится ни apachectl ни httpd это я могу утверждать с уверенностью и даже готов поспорить на десятку баксов (правда ждать придётся долго) Всё что там указано что apachectl ставит ряд переменных окружения, однако мой беглый анализ показал что они не критично влияют на работу апача и не могут стать причиной его "незапуска" даже в будующих версиях..
TiGR Не в этом дело, просто вы верите что а я верю что в будующих версиях "httpd -k start" не изменится, а вот "apachectl start" может изменться более резко
Во-первых, вы вырвали мою фразу из контекста, перед процитированным вами фрагментом стояло одно важное слово. А во-вторых, при чём тут вера? А если при чём, тогда так и надо писать: мои религиозные убеждения не позволяют мне использовать apachectl start. И всё, больше никаких вопросов.
Не совсем конечно (использовать мне конечно мои убеждения позволяют, но моральное удовлетворение я от этого не получу) но в принципе давольно близко
Жуть какая-то вообще правильней будет ставить сначала cvsup потом цевесапить дерево портов, а уж потом с чисто совестью ставить из портов - апач, мускул и пхп. Это гарнтирует, что все зависимости правиьно будут собраны и для автозапуска все будет сделано корректно, останется только добавить в /etc/rc.conf соответственные директивы типа *_enable="YES" Под фрями самый правильный метод ставить все из портов.
я когда настраиваю сервера дделаю: 1. ставлю cvsup 2. обновляю исходники 3. обовляю ядро до стабильной ветки 4. обновляю порты 5. собираю все из портов p.s. собирать из пакетов можно, но ИМХО из портов надежнее, т.к. гарантировано будут собраты те версии которые соответствуют друг другу.
Вы пробовали делать это на медленных машинах ? (повеситься можно, даже по эстонским меркам это жутко медленно)
Vladson Хочешь быстрей, все равно правильней так: #pkg_add -r cvsup #cvsup -g -L 2 ports-supfile #pkg_add -r app_name итд в результате получишь правильно поставленный софт с правильными зависимостями и нормально проинсталенны софт с нормальнми стартап скриптами в /usr/local/etc/rc.d остается только немного рихтануть /etc/rc.conf и вуаля А изобретать велосипед и отходить от идеологии бзд по инсталу аппов, на мой взгляд, не совсем правильная практика.