Как научится настраивать web-сервер под Linux?

Я лет 5 уже делаю сайты (html + php + js). Но совсем не бум-бум в установке и настройке Apache, nginx, php, mysql, когда есть root-доступ.


Вечно мне помогает суппорт хостинг-провайдера с этим. Максимум что могу — зайти в консоль по SSH, top посмотреть =)


Может есть какие видео-пособия? Или как вообще эффективнее разобраться? Мне хотя бы научится на чистую ОС поставить всё нужное + админ-панель.
  • Вопрос задан
  • 15360 просмотров
Решения вопроса 1
dinix
@dinix
Как научиться? Первые пару раз поставить по инструкциям из гугла. Даже если не все шаги будут понятны. Гуглить возникающие проблемы, они, в основном, у всех одинаковые. Потом читать комментарии внутри конфигурационных файлов, постепенно станет понятно, за что отвечают большинство опций в конфигах. Единственное, что — проверяйте, чтобы были закрыты индексы и не видны .htaccess файлы извне, чтобы по незнанию не напортачить с безопасностью.
Часть параметров в конфигах nginx, apache, mysql правятся под ваши потребности и под параметры сервера, вы поймёте, когда их нужно будет подкрутить(напр., MaxClients в aпаче, размеры кешей mysql).
А, и в админ. панели убирайте сразу дефолтный логин/пароль, не надейтесь, что никому нет дела и не будут ломать.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 6
AmdY
@AmdY
PHP и прочие вебштучки
Пособий куча, достаточно погуглить или почитать тот же хабр. Сейчас великолепный цикл статей публикуют прямо на хабре habrahabr.ru/post/147864/. Или совсем простое www.unixmen.com/install-lamp-with-1-command-in-ubuntu-1010-maverick-meerkat/

Вот только имеет ли смысл. Админы не зря едят свой хлеб с икоркой, к их уровню сложно приблизиться.
Ответ написан
nazarpc
@nazarpc
Open Source enthusiast
Конфигурирование немного, но зависит от дистрибутива.
К примеру, Ubuntu:
apt-get install apache2 php5 mysql-client mysql-server phpmyadmin libapache2-mod-php5 php5-mysql
Эта строчка установит Apache2, PHP5, клиент и сервер MySQL, модуль php5 для Apache2 и модуль MySQL для php5. Разобраться в строчке не сложно.
Чаще всего ещё нужны модули GD или Imagick (для изображений), Mcrypt и Mhash (для шифрования и хеширования), а также PhpMyAdmin:
apt-get install php5-gd php5-imagick php5-mcrypt php5-mhash phpmyadmin
Можно объединить вместе с предыдущими командами.
Если запускаете не из под root — добавляйте sudo в начало строки (для Ubuntu).
Для настройки самих сайтов — смотрите пример /etc/apache2/sites-available/default, копируете его с новым именем, и запускаете в консоли a2ensite название файла, потом service apache2 reload — загружаете новую конфигурацию.
В файл /etc/hosts добавляете строчку 127.0.0.1 название_домена и готово.

Для удобства можете установить файловый менеджер mc (название пакета и команда для запуска тоже mc, как устанавливать написано выше). На других дистрибутивах может меняться менеджер пакетов (тот, что apt-get) но в общем то же самое.

Для более сложных ситуаций читайте документацию/примеры конфигурационного файла apache. Для установки nginx в целом то же самое, просто немного иные пакеты, и другой конфигурационный файл.

Краткий мануал набросал в самом простом виде, ещё их много в сети. Попробуйте установить на локальную виртуальную машину Ubuntu Server (или даже Desktop для начала, чтобы было проще ориентироваться) и попробовать.
Ответ написан
Stdit
@Stdit
Эксперименты и обучение лучше всего проводить в виртуальной машине (я делал именно так). Поставьте например VirtualBox, установите туда CentOS (для этого надо скачать iso установочного диска, вставить его в виртуальный привод и загрузить виртуалку с него, установщик интерактивный и трудностей не вызывает, после установки обычно сразу всё работает. Возможно протребуется проброс портов, это делается через меню виртуалки по правому клику, например для работы через программу-терминал нужно пробросить порт 22, а для открытия сайта из виртуали в браузере — порт 80. Пробрасывать можно и на другой порт хоста, например 8080, если вдруг у вас например свой девелоперский апач там уже висит). Во время установки можно сразу выбрать пакеты софта, но чтобы научиться ставить софт и управлять сервером, лучше не выбирать ничего.

Установить всё веб-добро через yum не представляет никаких трудностей, начать можно с команды «yum help». Разве что, возможно, потребуется установка некоторых дополнительных репозиториев (epel, remi, centalt, об этом много написано и легко гуглится). В большинстве случаев хватает поиска по репозиториям (yum list php*) и установки того, что нужно через yum install, а так же запуска через «service название start». Автозапуском установленных служб можно управлять через chkconfig, например «chkconfig mysqld off». (конечно, базовые консольные команды, по управлению файлами и правами, такие как cat, cp, mv, rm, chmod, chown, ls, mkdir, find и т.д. — нужно знать, если этих знаний тоже нет лучше начать именно с них, ещё могут потребоваться знания в управлении фаерволлом iptables, но для начала его можно выключить,«service iptables stop»).

Конфиги установленных сервисов будут лежать в большинстве случаев в директории /etc/названиесофта. Конфигурирование каждого становленного пакета может оказаться уже не столь тривиальной задачей, у каждого будут свои нюансы, и потребуется поискать соответствующую информацию от комментариев в конфиге до тематических форумов. Модули для php ставятся через «yum php-pecl-название nistall» или через pecl (см «pecl help»). Соответственно, для pear — «pear help».

Это базовая информация, которой мне в своё время очень не хватало для облегчения «старта». Надеюсь, она вам пригодится.
Ответ написан
Stdit
@Stdit
hotfix: «yum install php-pecl-название»
Ответ написан
Комментировать
@olexande
Вариантов несколько.
Для начала желательно определиться с дистрибутивом. Это связано с тем, что одно и то же ПО под разными дистрибутивами может использоваться разное ПО.

Потом разбираться как устанавливать ПО под выбранный дистрибутив.

Веб серверов (популярных), которые можно для хостинга веб сайтов несколько.

Для связки "(html + php + js)" на серверной стороне устанавливать js не нужно, но программисту это объяснять не нужно ;)

Пробуйте просто ставить любое ПО.
Дальше я-бы порекомендовал просто поставить связку Apache + php. Или nginx + php.

И пробовать запускать. Как результат в процессах должен появиться соответствующий процесс. И сервер должен начать слушать "сетевой порт".

После удачной установки простой связки - уже можно будет переходить и на более сложные связки, просто дополнительно устанавливая недостающее ПО. И/или добавляя недостающие модули к существующему.

ЗЫЖ Так же рекомендую не забывать про возможность учиться на виртуальных машинах. Отдельный (железный сервер) выделять не обязательно. По крайней мере, по началу.
Ответ написан
Комментировать
Боже мой, только не Lamp, лучше сам ручками.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы