У всех замечательных сайтов есть отличный сервер. В этом уроке я покажу вам, как настроить выделенный веб-сервер (с Apache, MySQL и PHP), используя тот старый компьютер, который у вас дома, и некоторое бесплатное программное обеспечение.
1. Краткий обзор
В этом уроке мы стремимся сделать несколько вещей:
- Мы собираемся установить операционную систему Ubuntu Server. Я обычно использую Ubuntu из-за его простоты использования и
простое администрирование. За ним также стоит довольно большое и чрезвычайно активное сообщество, что делает
поддерживать ветер. - Мы собираемся установить сервер OpenSSH. Это позволяет вам администрировать ваш сервер с удаленных компьютеров.
- Будет установлен стек LAMP (Linux, Apache, MySQL и PHP). Это обеспечивает основу, которая будет работать
Ваш сайт. Apache является стандартным веб-сервером в операционных системах на основе Unix; это то, что большинство веб-хостов
использовать (NETTUTS использует это прямо сейчас!) и это то, что мы собираемся использовать. - Мы собираемся установить брандмауэр для защиты вашего сервера от несанкционированного доступа.
Чтобы следовать этому уроку, вам понадобятся несколько предметов:
- Компьютер для использования в качестве вашего сервера. Это не должно быть сильным; пока это не древний, он будет работать нормально. пожалуйста
не делайте этого на своем настольном ПК; Ubuntu полностью уничтожит ваш компьютер. - CD-рекордер и чистый CD. Это сделано для того, чтобы вы могли записать Ubuntu на диск, чтобы установить его.
- Время. Серьезно, этот процесс занимает много времени, особенно если вы сталкиваетесь с проблемами. Попробуй выделить день
следовать этому уроку.
Вы можете спросить, почему вы хотите иметь свой собственный веб-сервер. Есть несколько причин, среди которых есть несколько: вы можете пройти собственное тестирование
площадка для ваших сайтов; с небольшими изменениями, вы можете разместить свой собственный сайт; и вы узнаете много нового о Linux / Unix.
С этим сказал, давайте начнем!
2. Скачать Ubuntu Server
Прежде всего, нам понадобится компакт-диск с Ubuntu. Направьте свой веб-браузер на http://www.ubuntu.com/ ,
и нажмите «Загрузить» из меню слева. Теперь у вас будет окно с двумя вкладками: «Desktop Edition» и
«Server Edition». Перейдите на вкладку «Server Edition» и выберите «Ubuntu 8.04 LTS». Затем выберите место загрузки из
выпадающий список. Наконец, нажмите кнопку «Начать загрузку».
Теперь вам нужно записать ISO (файл, который вы скачали) на чистый CD. Если вы не знаете, как это сделать, есть
отличный гид на https://help.ubuntu.com/community/BurningIsoHowto
3. Установите Ubuntu Server
Теперь, когда вы скачали и записали ISO, давайте установим Ubuntu на ваш сервер. Вставьте диск в дисковод и загрузитесь с компакт-диска. На большинстве современных компьютеров это происходит по умолчанию, если диск включен в дисковод при его включении. Если это не так, то вам нужно нажать клавишу на клавиатуре прямо при включении. Для моего ноутбука это F12, а для моего сервера это F2. Это зависит только от вашего компьютера. Вы можете найти его, посмотрев текст на экране прямо при включении компьютера во время BIOS. Вы увидите что-то вроде «Нажмите [KEY], чтобы изменить порядок загрузки». Нажмите эту клавишу и выберите свой CD-дисковод.
Все еще со мной? Хорошо. Теперь, когда вы загрузили Ubuntu, вы должны увидеть следующий экран:
Выберите ваш язык и нажмите ввод. Теперь вы увидите этот экран:
Выберите «Установить Ubuntu Server», и понеслось!
Теперь установщик спросит вас, хотите ли вы, чтобы он обнаружил раскладку клавиатуры. Лично я всегда выбираю нет, потому что
быстрее выбрать стандартную американскую клавиатуру из списка, чем устанавливать ее установщиком. Любой вариант в порядке,
просто следуйте инструкциям на экране.
После того, как вы это сделаете, вы увидите кучу загрузочных экранов с надписью «Определение дисководов CD-ROM» и тому подобным.
Они должны пройти быстро и без проблем. Однако на этих экранах установщик попытается автоматически настроить
Настройки сети. В большинстве случаев это будет работать без жалоб. Однако, если это не работает для вас, просто следуйте
инструкции на экране, чтобы заставить его работать.
После того, как все это будет сделано, вам будет предложено указать имя хоста. Обычно вы можете установить это на что-нибудь; Я всегда ставлю
мой «веб-серверу».
Теперь система попросит вас установить часовой пояс для ваших часов. Для меня это Тихий океан. Выберите тот, который относится к
вы.
Теперь система обнаружит больше оборудования, и вам будет предложено «разбить диск на диски». Выберите «Руководствуясь — использовать весь
диск».
Теперь вам нужно выбрать диск, который вы хотите разбить на разделы. Для большинства установок будет доступен только один диск; тем не мение,
для более специализированных систем здесь будет доступно больше опций. Выберите тот, который относится к вам.
Он спросит вас, хотите ли вы записать изменения на диск. Выберите «Да» и нажмите Enter. Установщик теперь продолжит
отформатировать диск и настроить разделы.
Теперь волшебство происходит. Система начнет установку. Пока это происходит, иди за чашкой кофе. Это может занять где угодно
от 10 минут до часа. Это зависит только от вашей системы. Могут быть времена, когда кажется, что он заморожен; не волнуйся,
это не так Просто позволь этому делать свое дело. Однако, если он застрял на чем-то более часа, то да, он заморожен.
Теперь, когда система установлена, необходимо настроить учетную запись, с которой вы собираетесь войти. Во-первых, дайте ему полное
имя и нажмите «Продолжить».
Теперь дайте ему свое имя пользователя. Как правило, это будет просто установить его как ваше имя,
но вы можете изменить это. Одно имя, которое вы не можете использовать, это «root».
Теперь вас попросят предоставить пароль. ВАЖНО, чтобы вы выбрали надежный пароль, иначе ваш сервер не будет
быть в безопасности на всех. Я рекомендую как минимум сочетание цифр, строчных и прописных букв. Однако для моих серверов
Я использую символы, а также смесь вышеперечисленного. НЕ используйте пароль длиной менее 7 символов.
Затем повторно введите свой пароль, чтобы убедиться, что вы ввели его правильно.
Теперь система попытается настроить «Диспетчер пакетов» (вскоре мы узнаем, что это). Обеспечьте это своим
информацию о прокси или оставьте поле пустым, если вы не используете прокси и выберите «Продолжить».
Теперь система будет сканировать несколько серверов в поисках обновлений и настроек конфигурации.
После этого вам будет предложено несколько вариантов установки серверного программного обеспечения. Теперь слушайте ОЧЕНЬ внимательно.
Выберите сервер OpenSSH и нажмите ПРОБЕЛ, а НЕ ВВОД. Если вы нажмете Enter, установка будет продолжена без установки сервера OpenSSH.
Вы также можете установить «сервер LAMP», но у меня нет опыта с этой опцией, поэтому мы собираемся установить все это с другой
Команда позже.
Теперь система установит выбранное вами программное обеспечение, а также другие компоненты системы.
Наконец установка закончится. Выньте компакт-диск и нажмите Enter. Компьютер перезагрузится. Если все будет хорошо, вы будете
представлен экран, который выглядит примерно так:
Поздравляем! Вы только что закончили самую сложную часть. Ubuntu теперь установлен, и пришло время превратить этот компьютер в
веб-сервер.
4. Обновите свой новый сервер
Прежде чем мы пойдем дальше, мы должны убедиться, что ваш сервер обновлен. Для этого вам необходимо авторизоваться. Сначала введите ваше имя пользователя
(тот, который вы выбрали ранее), нажмите клавишу ввода, а затем введите свой пароль. Когда вы вводите свой пароль, вы заметите, что ничего
кажется, что происходит. Не волнуйтесь, это так, как это было задумано для работы. После того, как вы закончили вводить пароль, нажмите Enter,
и ваш экран должен выглядеть примерно так, как показано ниже, если все прошло хорошо:
Теперь введите:
1
|
sudo aptitude update && sudo aptitude dist-upgrade
|
Он спросит у вас пароль, и опять же, вы ничего не увидите при наборе. После того, как вы это сделаете, он спросит вас,
Вы хотите продолжить. Введите «y» и нажмите ввод. Ваш экран будет выглядеть примерно так:
Ваша система теперь загрузит и установит все последние обновления. Это займет некоторое время в зависимости от вашего интернет-соединения. После
он завершен, ваш компьютер необходимо перезагрузить. Для этого введите:
1
|
sudo shutdown -r now
|
И пусть перезагрузится. Ваш сервер теперь полностью обновлен.
Краткое примечание о «Судо»
К настоящему времени вы, возможно, заметили, что все введенные вами команды начинаются с «sudo». Это потому, что они требуют
привилегии администратора, и это то, что делает «sudo». Он запускает команду (то есть «выключение») от имени администратора, позволяя ей работать
должным образом. По этой же причине запрашивается ваш пароль. Однако после того, как вы ввели «sudo» один раз и ввели свой пароль,
Вам не нужно вводить пароль снова в течение пяти минут. Не все команды требуют sudo, только те, которые изменяют части системы.
Есть все это? Хорошо.
5. Установите Apache, MySQL и PHP
Настало время установить некоторые программы. Чтобы получить доступ к вашим сайтам из Интернета, нам нужно установить веб-сервер (Apache). В дополнение к веб-серверу, мы будем
Также нам нужен сервер базы данных (MySQL) и серверный язык (PHP), чтобы мы могли запускать популярные приложения, такие как WordPress. Так,
давай к этому!
Установка программ в Ubuntu сильно отличается от установки программ в Windows или
OS X, в которой Ubuntu загрузит и установит программы для вас с помощью простой команды. Это потому, что в Ubuntu есть нечто, называемое
менеджер пакетов , который управляет почти всеми программами в вашей системе. Все, что нам нужно сделать, это сказать менеджеру пакетов
(называется «aptitude»), что мы хотим, чтобы он устанавливал Apache, MySQL и PHP. Для этого введите следующую команду:
1
|
sudo aptitude install apache2 php5-mysql libapache2-mod-php5 mysql-server
|
И нажмите ввод. Aptitude загрузит и установит указанные вами программы. Также будет загружен и установлен любой
зависимостей.
В процессе установки MySQL попросит вас ввести пароль root. Вы можете установить это на что угодно, просто убедитесь, что вы делаете это долго и безопасно.
Что бы вы ни делали, НЕ оставляйте это поле пустым.
После того, как все это закончится, у вас есть полностью работающий веб-сервер. Чтобы проверить это, сначала найдите IP вашего сервера, набрав:
1
|
ifconfig |
|
Обычно возвращается первый IP. В моем случае это 192.168.177.129. Теперь, когда вы знаете IP, откройте веб-браузер и укажите его
на ваш сервер IP. Если вы видите «Это работает!» сообщение, то поздравляю, все работает.
Тем не менее, мы еще не закончили. Мы не хотим, чтобы Apache или PHP раскрывали какую-либо информацию о себе, так как эта информация не нужна
вашими пользователями и могут представлять угрозу безопасности. Сначала создайте резервную копию исходного файла конфигурации Apache:
1
|
sudo cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf.bak
|
Теперь откройте файл конфигурации:
1
|
sudo nano /etc/apache2/apache2.conf
|
Прокрутите вниз (стрелка вниз), где написано «ServerTokens Full» и измените его на «ServerTokens Prod»
Теперь прокрутите немного дальше и измените «ServerSignature On» на «ServerSignature Off»
Наконец, нажмите Control-O, а затем Control-X. Это сохранит файл и выйдет из текстового редактора.
Теперь нам нужно сделать то же самое для PHP. Сначала создайте резервную копию исходного файла конфигурации PHP:
1
|
sudo cp /etc/php5/apache2/php.ini /etc/php5/apache2/php.ini.bak
|
Откройте файл конфигурации:
1
|
sudo nano /etc/php5/apache2/php.ini
|
Измените «expose_php = On» на «expose_php = Off»
Снова нажмите Control-O, а затем Control-X. Теперь, когда файлы конфигурации обновлены, перезапустите Apache:
1
|
sudo /etc/init.d/apache2 restart
|
Вы закончили настройку Apache, MySQL и PHP.
6. Установите брандмауэр
Теперь мы собираемся заблокировать наш сервер, установив Shorewall, брандмауэр командной строки. Чтобы установить это:
1
|
sudo aptitude install shorewall
|
По умолчанию Shorewall устанавливается без правил, позволяющих получить полный доступ. Тем не менее, это не то поведение, которое мы хотим.
Вместо этого мы собираемся заблокировать все подключения к чему-либо, кроме порта 80 (HTTP) и порта 22 (SSH). Сначала скопируйте конфигурацию
файлы в каталог Shorewall:
1
|
sudo cp /usr/share/doc/shorewall-common/examples/one-interface/* /etc/shorewall/
|
Теперь откройте файл «rules»:
1
|
sudo nano /etc/shorewall/rules
|
Добавьте эти строки выше, где написано «#LAST LINE»
HTTP / ACCEPT net $ FW SSH / ПРИНЯТЬ net $ FW
Затем нажмите Control-O и Control-X. Ваш брандмауэр теперь настроен на прием только трафика HTTP и SSH. Последнее, что нам нужно
сделать, это сказать Shorewall, чтобы начать при загрузке. Итак, откройте основной файл конфигурации Shorewall:
1
|
sudo nano /etc/shorewall/shorewall.conf
|
Прокрутите вниз до «STARTUP_ENABLED = Нет» и установите для него «STARTUP_ENABLED = Да»
Нажмите Control-O и Control-X. Теперь откройте файл конфигурации Shorewall по умолчанию:
1
|
sudo nano /etc/default/shorewall
|
И измените «запуск = 0» на «запуск = 1». Нажмите Control-O и Control-X. Наконец, запустите ваш брандмауэр:
1
|
sudo /etc/init.d/shorewall start
|
Поздравляем! Ваш брандмауэр теперь настроен и защищает ваш сервер.
7. Добавьте ваш сайт на ваш веб-сервер
Теперь, когда у вас все настроено, вы, вероятно, захотите добавить к нему веб-сайт. По умолчанию все файлы, которые обслуживает Apache
до интернета расположены по адресу «/ var / www /». Однако вы не можете писать в эту папку. Давайте сделаем так, чтобы вы могли:
1
2
3
|
sudo usermod -g www-data [YOUR USERNAME]
sudo chown -R www-data:www-data /var/www
sudo chmod -R 775 /var/www
|
Там произошло то, что вы добавили себя в группу «www-data» и сделали папку веб-сайта доступной для записи членам «www-data».
группа.
Теперь вы собираетесь войти на свой сервер с использованием SFTP (не путать с FTPS). Некоторые клиенты, которые поддерживают SFTP:
WinSCP (Windows, Free), FileZilla (Windows, Linux, OS X, Free),
Cyberduck (OS X, Free) и, мой личный фаворит, Transmit
(OS X, 30 долларов США)
Подключитесь к вашему серверу, используя ваше имя пользователя и пароль, и, если ваш клиент поддерживает его, путь по умолчанию «/ var / www» (если это не так,
просто зайдите в / var / www, как только вы вошли в систему): (Передача на фото)
Теперь вы можете добавить свои файлы в эту папку (/ var / www), и они будут отображаться на вашем сервере, когда вы перейдете к нему со своим
веб-браузер.
Теперь вы можете задаться вопросом, почему мы используем SFTP вместо FTP. Главным образом, потому что SFTP уже встроен в OpenSSH (который вы установили
ранее). Тем не менее, он также намного более безопасен, чем FTP, и затрудняет (если не делает невозможным) доступ злоумышленников
на ваши учетные данные для входа.
8. Сделайте свой сервер доступным для Интернета
В наши дни большинство современных домашних сетей находятся за маршрутизатором. Из-за этого ваш веб-сервер не будет виден в интернете без
немного работы Поскольку у меня не все маршрутизаторы доступны для тестирования, я могу дать вам только общие указания в этой области.
Существует два способа открыть ваш сервер до Интернета: DMZ или переадресация портов. Основное отличие, которое вы заметите, заключается в том, что с DMZ ваш сервер использует
Брандмауэр мы установили ранее, чтобы защитить себя. Однако с помощью переадресации портов ваш сервер будет защищен межсетевым экраном вашего маршрутизатора.
Однако, прежде чем мы продолжим, вы захотите дать вашему серверу статический адрес локальной сети. Для этого войдите в свой роутер и поищите что-нибудь
вдоль линий «Статические IP-адреса» или «Статическая маршрутизация». После того, как вы дали вашему серверу статический адрес локальной сети, вы можете выполнять следующие части. Помнить,
Google твой друг.
Чтобы портировать Foward, есть отличный сайт, PortForward.com , который, хотя и некрасиво, может
поможет вам выполнить работу практически для любого маршрутизатора. Порты, которые вы хотите переслать, это 22 и 80.
Чтобы создать DMZ, вам необходимо войти в свой маршрутизатор и найти что-то вроде «Настройки DMZ». Как только вы найдете его, добавьте свой сервер в
DMZ, и вы будете установлены. Опять же, Google полезен в подобных ситуациях.
Теперь найдите свой публичный IP и вуаля! Вы можете получить доступ к вашему серверу из любого места, пока
так как ваш IP не меняется.
9. Удаленное управление вашим сервером
Помимо возможности загрузки файлов, OpenSSH позволяет вам входить на ваш сервер из любой точки мира, если вы знаете, что это IP. Для Windows вы будете
нужен клиент SSH. Я рекомендую Putty . Для OS X SSH
уже установлено. Просто откройте терминал и введите «ssh you @ yourip ». Для Putty выберите SSH и введите свой IP, имя пользователя и пароль.
когда он просит об этом. Вы заметите, что после входа в систему он выглядит точно так же, как на экране сервера:
Отсюда вы можете делать все, что бы вы ни делали, сидя на сервере. Чтобы выйти с сервера, просто введите «выход» и нажмите Enter.
10. Вот и все!
Теперь у вас есть полностью работающий веб-сервер. Это делает его отличным полигоном для тестирования и даже подойдет для размещения сайтов с довольно низким трафиком. Очевидно, что многое еще предстоит изучить, но, надеюсь, вы немного поняли, как работают веб-серверы.
Если вы хотите прочитать больше по темам, которые я затронул, вот несколько отличных руководств:
- Установка программного обеспечения
- Настройка Apache, MySQL и PHP
- Руководство по настройке Shorewall
- Как перенести порт
Кроме того, обязательно ознакомьтесь с тысячами полезных PHP-скриптов на Envato Market. Со всем, от форм и корзин покупок до абстракций базы данных , обязательно найдется что-то, что поможет вам на следующем этапе вашей работы в качестве разработчика.