Форум русскоязычного сообщества Ubuntu


Автор Тема: Быстрая установка и настройка веб-сервера (mysql + php + apache) в Ubuntu 8.10  (Прочитано 188273 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sdfsdfsdf

  • Автор темы
  • Участник
  • *
  • Сообщений: 143
    • Просмотр профиля
Сразу делаю оговорку. Это не для тех случаев, когда нужно организовать профессиональный хостинг. Для ситуаций попроще – изучение, разработка сайтов, веб-сервер для домашней или офисной сети.
Все делается очень просто и очень быстро. Никакой возни с настройками и курения манов.

Указанные ниже пакеты берутся строго из репозитария. Никакой отсебятины в виде установки из исходников с каких-то левых сайтов. Проверено на дистрибутиве 8.10, но должно работать и на ранних, ну как минимум на 8.04 должно.

1. Установить пакет mysql (либо мета пакет mysql, либо сразу пакет mysql-dfsg-5.0). Но можно этот шаг пропустить, поскольку при установке phpmyadmin будет установлен mysql, если его нет.

2. Установить пакет phpmyadmin. Почему именно его? Убиваем сразу двух зайцев – устанавливается apache уже с поддержкой php, и получаем хороший графический интерфейс для управления базами mysql.

3. Создать единую папку для всех сайтов, которые будут там размещаться, например /home/user/www. Лучшее место для такой папки это домашний каталог пользователя.
Почему именно туда? Это позволит работать с файлами сайтов (добавлять, удалять, изменять) не заморачиваясь с sudo или gksu.

4. Далее в этой папке создать папку сайта. Например, /home/user/www/site1. И в эту папку кинуть файлы сайта.

5. sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/site1
Команда создает новую запись виртуального хостинга копируя стандартную запись апаша.

6. sudo gedit /etc/apache2/sites-available/site1
и в этом файле:
1) заменить все /var/www/ на /home/user/www/site1/
2) перед строкой "DocumentRoot /home/user/www/site1/" добавить строку "ServerName site1"
То есть должно быть так:
ServerName   site1
DocumentRoot   /home/user/www/site1/

7. sudo a2ensite site1

8. sudo gedit /etc/hosts
и в этом файле добавить строку
127.0.1.2      site1

9. sudo /etc/init.d/apache2 reload

Готово. Новый сайт должен открываться по http://site1
Если нужно добавить еще сайт, просто повторяются шаги 4-9. Конечно с поправкой на то, что новый сайт не может иметь имя site1 и это должно быть site2 или что-то другое. Ну и в файле hosts увеличивать значение ip адреса - 127.0.1.3 и т.д.

Примерно за 20 минут получаем веб-сервер с поддержкой ssi, php и mysql. Ну, это конечно, если есть быстрый интернет или dvd диски с репозитариями. Если такового нет, тогда конечно придется где-то скачивать все эти пакеты, а это больше 60 мб. Пакеты apache2 и mysql-dfsg-5.0 есть на установочном dvd диске. А пакет phpmyadmin либо на диске «dvd 4» репозитариев, либо качать с packages.ubuntu.com.

*! Примечание относительно phpmyadmin.
Он запускается по адресу http://localhost/phpmyadmin
Но можно переделать на http://phpmyadmin, нужно выполнить шаги 5-9 только в шаге 6 использовать путь к папке phpmyadmin и соответственно использовать имя phpmyadmin где нужно.

*! Примечание относительно php.
По умолчанию параметр register_globals в настройках php отключен, а это значит, что переменные передаваемые в скрипты php через GET, POST будут пустыми (неопределенными).
Исправить эту ситуацию можно двумя путями.
1) sudo gedit /etc/php5/apache2/php.ini
и там изменить register_globals=off на register_globals=on.
2) Но лучше изменить подход к написанию скриптов и:
непосредственно в них инициализировать передаваемые переменные из массивов $_GET[], $_POST[] или $HTTP_GET_VARS[],$HTTP_POST_VARS[].
« Последнее редактирование: 19 Марта 2009, 21:24:05 от sdfsdfsdf »

Оффлайн vadim-nsk

  • Старожил
  • *
  • Сообщений: 1318
  • Жить надо так, как горит пламя!
    • Просмотр профиля
    • Linux в Новосибирске
если вы позиционируете для домашней сети, то все равно необходимо чтобы dns знал что на этом хосте есть site1 либо необходимо организовывать тиражирование файлика hosts и в том и другом случае, считаю надо обязательно дополнить и переработать инструкцию. Еще про права на директорию не сказано ни слово.

Оффлайн MooSE

  • Старожил
  • *
  • Сообщений: 1110
    • Просмотр профиля
1. sudo gedit /etc/php5/apache2/php.ini
и там изменить register_globals=off на register_globals=on.

Вот не надо так делать. Ой не надо:)

Там ведь даже в комментах в конфиге написано что так заметно повышается безопасность...

Оффлайн sansan2

  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Люди, хелп
не так давно начал осваивать ubuntu(не пинайте, новичек, туго с английскими, тд и тп...)
пытаюсь  настроить веб сервер(в домашней сети) делаю все по схемам написаным с этого форума, и то там не але то тут, пришол к тому что чем проще тем результативнее, и настроил по описаной выше схеме(это уже не первый вариант, и не первые сутки сижу)

собственно проблема - с самого сервера все нормально , с других машин захожу(по ip) и попадаю на страничку лежащую "/var/www" как исправить? или как зайти на "/home/юзер/www/site1"
или где почитать об этом, так чтоб для начинающих и на русском

может другой  вариант предложите, конечная задача веб сервер с доступом фтп как из локалки так из нета

заранее спасибо , надеюсь на понимание

Оффлайн sdfsdfsdf

  • Автор темы
  • Участник
  • *
  • Сообщений: 143
    • Просмотр профиля

sansan2
на других компах, как выше писал vadimka, нужно подправить файлы hosts.
как описано в шаге № 8. но только ип адрес писать не 127, а тот который у "сервера". например 192.168.0.1.

Оффлайн Strategist

  • Новичок
  • *
  • Сообщений: 28
    • Просмотр профиля
половина первого поста заменит команда: sudo chmod -R 777 /var/www
в крайнем слечае можно линк на эту папке в папку /home кинуть, чтобы удобней было

Оффлайн kherson

  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Добрый день!
Сделал как написано в 1 посте а теперь не могу добраться до веб морды phpmyadmin и надо ведь сделать пароль на базу данных и пользоватля подскажите как это сделать
Лучший мониторинг обменников, пользуюсь сам и другим рекомендую.

Оффлайн fucky

  • Новичок
  • *
  • Сообщений: 6
  • =)
    • Просмотр профиля
Скрипты не пашут.

Оффлайн fucky

  • Новичок
  • *
  • Сообщений: 6
  • =)
    • Просмотр профиля
Вместо исполнения выдает на скачку. Помогите.

Оффлайн uid0

  • Активист
  • *
  • Сообщений: 371
    • Просмотр профиля
    • hitetra.ru
Вместо исполнения выдает на скачку. Помогите.


установлен ли php подключен ли в апаче ? как устанавливали ?
Be root, be different...

Оффлайн uid0

  • Активист
  • *
  • Сообщений: 371
    • Просмотр профиля
    • hitetra.ru
Вообще если говорить о хостинге, то проще поставить панель типа ISPconfig собственно с неё можно будет управлять всем ! нежели делать всё руками ! Проверенно !
Be root, be different...

Оффлайн cratos

  • Новичок
  • *
  • Сообщений: 25
  • xubuntu 10.10
    • Просмотр профиля
crat0s@crat0s-desktop:~$ sudo /etc/init.d/apache2 reload
 * Reloading web server config apache2                                         
 Warning: DocumentRoot [/home/cRat0s/www/ro/] does not exist
apache2: Could not reliably determine the server's fully qualified domain name,
using 127.0.1.1 for ServerName
                                                                         [ OK ]

сопсно шо за фигня 8)

lichtenwald

  • Гость
я конешн извеняюсь)
но вас в гугле забанили?
если вы вобьёте в поиск ваши ошибки вы найдете все ответы) даже на форуме это уже обсуждалось

Byuik

  • Гость
У меня серьёзная проблема , собсна начну с конфигурации сервера (Апач + mysql + php5 + phpmyadmin) также установлен smtp + pop3 сервер.
Теперь о проблеме , php не конектится на локальный smtp сервер и не отсылает письма посылаемые сайтами . Смотрел лог сервера smtp  нет и признаков конекта.
php.ini
Цитировать
[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25

; For Win32 only.
;sendmail_from = me@example.com

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path =

; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =


Собственно как разрулить такую ситуёвину , может нужен какой пакет php или дополнительно чо настроить ?

Оффлайн 4ell

  • Участник
  • *
  • Сообщений: 103
    • Просмотр профиля
    • clubix.su, 13school.org.ua, 13blog.kilu.de
Статья оч полезная но про виртуалхосты не понятно написано. Или я не понял хотя я их сам делал незнаю. А так скажи куда плюсик влепить за хорошую статью. Чет не видно значка +1-

Кста про глобалсы:
Примечание относительно php.

По умолчанию параметр register_globals в настройках php отключен, а это значит, что переменные передаваемые в скрипты php через GET, POST будут пустыми (неопределенными).
Исправить эту ситуацию можно двумя путями.
1. sudo gedit /etc/php5/apache2/php.ini
и там изменить register_globals=off на register_globals=on.
Глобалс нужно отключать.
Эт такая дыра в безопасности что взломать можно за 5мин, например подделать переменную об авторизации.
Например у нас
$is_logged=false
globаl $is_logged
А мы
http://www.site.ru/login.php?is_logged=true
И вся защита!

 

Страница сгенерирована за 0.066 секунд. Запросов: 25.