Шаг 1 — Установка phpMyAdmin
Во-первых, мы установим phpMyAdmin из репозиториев Ubuntu по умолчанию.
Это делается с помощью обновления индекса пакета вашего сервера, после чего с помощью системы управления пакетами загружаются файлы и устанавливаются в вашей системе.
На этом этапе вам потребуется ответить на несколько вопросов для корректной настройки установки.
Предупреждение. При появлении первого диалогового окна вариант «apache2» выделен, но не выбран. Если вы не нажмете для выбора Apache, установщик не будет перемещать необходимые файлы при установке. Нажмите а потом для выбора Apache.
- Для выбора сервера нажмите
- Выберите при ответе на вопрос о том, необходимо ли использовать для настройки базы данных.
- Затем вам будет предложено выбрать и подтвердить пароль приложения MySQL для phpMyAdmin
В процессе установки будет добавлен файл конфигурации phpMyAdmin в каталог , где он будет считываться автоматически. От вас потребуется только явным образом активировать PHP расширение , что можно сделать с помощью следующей команды:
Перезапустите Apache для вступления изменений в силу.
После этого phpMyAdmin будет установлен и настроен. Однако, прежде чем вы сможете войти и начать взаимодействие с базами данных MySQL, вам нужно убедиться, что у пользователей MySQL есть права, необходимые для взаимодействия с программой.
Шаг 4: Создание команд Apache a2eniste и a2diste
9. Теперь время создать скрипты Apache a2ensite и a2dissite, которые будут выполнять команды по включению и отключению файлов настроек виртуальных хостов. Наберите команду cd для возвращения в вашу домашнюю директорию и создайте a2eniste и a2dissite используя ваш любимый редактор.
sudo vim a2ensite
Добавьте следующие содержимое в этот файл.
#!/bin/bash if test -d /etc/httpd/conf/sites-available && test -d /etc/httpd/conf/sites-enabled ; then echo "-------------------------------" else mkdir /etc/httpd/conf/sites-available mkdir /etc/httpd/conf/sites-enabled fi avail=/etc/httpd/conf/sites-available/$1.conf enabled=/etc/httpd/conf/sites-enabled site=`ls /etc/httpd/conf/sites-available/` if ; then echo "Use script: n2ensite virtual_site" echo -e "\nAvailable virtual hosts:\n$site" exit 0 else if test -e $avail; then sudo ln -s $avail $enabled else echo -e "$avail virtual host does not exist! Please create one!\n$site" exit 0 fi if test -e $enabled/$1.conf; then echo "Success!! Now restart Apache server: sudo systemctl restart httpd" else echo -e "Virtual host $avail does not exist!\nPlease see avail virtual hosts:\n$site" exit 0 fi fi
Теперь создайте файл баш скрипта a2dissite.
sudo vim a2dissite
Добавьте следующее содержание.
#!/bin/bash avail=/etc/httpd/conf/sites-enabled/$1.conf enabled=/etc/httpd/conf/sites-enabled site=`ls /etc/httpd/conf/sites-enabled` if ; then echo "Use script: n2dissite virtual_site" echo -e "\nAvailable virtual hosts: \n$site" exit 0 else if test -e $avail; then sudo rm $avail else echo -e "$avail virtual host does not exist! Exiting" exit 0 fi if test -e $enabled/$1.conf; then echo "Error!! Could not remove $avail virtual host!" else echo -e "Success! $avail has been removed!\nsudo systemctl restart httpd" exit 0 fi fi
После того, как файлы были созданы, назначьте им права выполнения и скопируйте их в директорию для исполнимых файлов, чтобы они были доступны во всей системе.
sudo chmod +x a2ensite a2dissite sudo cp a2ensite a2dissite /usr/local/bin/
10. Установка ServerName для подавления предупреждения
Далее мы добавим одну строку в файл /etc/httpd/conf/httpd.conf чтобы убрать сообщение с предупреждением. Хотя это и безвредно, если вы не установили ServerName на глобальном уровне, вы будете получать следующее сообщение о синтаксической ошибке в конфигурации Apache:
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Откройте главный конфигурационный файл текстовым редактором:
sudo vim /etc/httpd/conf/httpd.conf
Внутри, в конце файла добавьте директиву ServerName, указывающую на ваше основное доменное имя. Если у вас нет связанного с вашим сервером доменного имени, вы можете использовать внешний IP сервера:
ServerName server_domain_или_IP
Если вы забыли внешний IP сервера, то проверить его можно так:
curl suip.biz/ip/
Для локального веб-сервера можно сделать следующую запись:
ServerName localhost
Когда закончите, сохраните и закройте файл.
Для того, чтобы изменения вступили в силу, перезапустите Apache:
sudo systemctl restart httpd
Установка Apache 2
Если требуется установить только веб-сервер Apache 2 используйте любой метод для того, чтобы установить пакет .
Для того, чтобы Apache заработал его следует перезапустить:
sudo etcinit.dapache2 restart
Возможные ошибки
Если при запуске появляется следующая ошибка
запустите свой любимй текстовый редактор (например или ) и создайте файл , со следующим содержанием:
ServerName localhost
Это так же можно сделать выполнив комманду:
echo "ServerName localhost" | sudo tee etcapache2conf.dfqdn
Виртуальные хосты
Директория для файлов сайта находится в /var/www. Необходимы права root для доступа к этой папке. Но вы можете изменить права на нее командой
sudo chown -R $USER:$USER varwww
Вы также можете создать собственные сайты.
Для примера мы создадим новый сайт в папке /home/user/public_html/ :
Создаем копию стандартного конфиг-файл сайта и переименуем его
sudo cp etcapache2sites-availabledefault etcapache2sites-availablemysite
- Отредактируем новый конфиг-файл в текстовом редакторе выполнив в консоли или , например:
gksudo gedit etcapache2sites-availablemysite
- Добавляем строчку с параметром ServerName. Для примера, ServerName mysite
- Добавляем строчку с параметром ServerAlias. Для примера, ServerAlias www.mysite
- Изменяем параметр DocumentRoot на новое месторасположение сайта. Для примера, /home/user/public_html/
- Изменяем параметр Directory, заменив на
- Вы можете иметь раздельные log-файлы для ваших сайтов. Для этого измените ErrorLog и CustomLog параметры.
- Сохраняем файл.
Теперь вы можете деактивировать ваш старый сайт и включить новый. Ubuntu содержит две маленькие утилиты для помощи в этом: (apache2enable site) и (apache2disable site).
sudo a2dissite default && sudo a2ensite mysite
Осталось только перезапустить Apache2:
sudo etcinit.dapache2 restart
Если вы не создали папку /home/user/public_html/, то получите сообщение с предупреждением об этом.
Внесем имя сайта в список хостов сервера:
sudo gedit etchosts
Дописать в строчку 127.0.0.1 localhost через пробел mysite www.mysite
Перезапустить Apache2
sudo etcinit.dapache2 restart
Для проверки вашего нового сайта создайте файл в папке /home/user/public_html:
echo 'Hello! It is working!' > homeuserpublic_htmlindex.html
Установка и настройка Ubuntu Server
Ubuntu Server создана на базе операционной системы Linux. Для её работы не нужен современный процессор, хорошая видеокарта или большой объём оперативной памяти. С Линукс можно развернуть сервер даже на старом ноутбуке. И в нём будут все нужные компоненты: почта, FTP, Web.
Скачать образ диска с Linux можно с сайта Ubuntu.ru. Выбирайте любую версию с Server (не Desktop!). Загрузка будет проходить через Torrent-клиент. Этот образ надо записать на болванку или флешку (с помощью LiveUSB). Также можно воспользоваться виртуальным приводом.
У Ubuntu упрощённый интерфейс. В нём нет никаких графических излишеств. Эта ОС прекрасно подходит, чтобы сделать Linux-сервер своими руками. С ней ресурсы компьютера будут использоваться для нужд домена. Ведь ей для работы нужно совсем немного.
Её установка проходит так:
- Выберите язык и регион, в котором проживаете.
- Придумайте имя администратора. Оно используется для управления сервером.
- Также задайте имя пользователя в поле «Username for your account». Под этим аккаунтом вы будете общаться с техподдержкой Ubuntu.
Указываем имя пользователя в Ubuntu
Введите пароль. Подтвердите его.
Вводим пароль учетной записи
- Укажите домен, если он есть. На нём будут находиться все сервисы: файловый (FTP), почтовый, хостинг для сайтов и так далее.
- Подождите, пока установится система.
- После этого она предложит дополнительные компоненты.
Вот список того, что необходимо для сервера Linux и его полноценной работы:
- Open SSh. Используется для удалённого администрирования. Пригодится, если вы решите управлять сервисом с другого компьютера. Тогда на ПК с Линуксом можно будет отключить монитор и видеоадаптер.
- LAMP. Комплекс утилит Linux, который включает Apache (Web-сервер). MySQL (базы данных) и PHP (язык программирования для CMS). Эти компоненты нужны для создания управляющего интерфейса.
Далее указано то, что устанавливать необязательно. Выбор дистрибутивов опционален и зависит от того, что вы хотите в итоге получить.
- Samba file server. Позволяет настроить обмен файлами между компьютерами. Если вам нужен FTP-сервер, выберите этот пункт.
- Virtual Machine host. Устанавливайте, если собираетесь пользоваться возможностями виртуализации.
- Print server. Сетевые принтеры.
- DNS server. Система доменных имён. С ней можно распознать IP-адрес по имени компьютера и наоборот.
- Mail server. Почтовый сервер.
- PostgreSQL database. Объектно-реляционные базы данных.
Выберите то, что вам нужно, и подтвердите установку. При первом запуске надо будет ввести логин администратора и пароль. Откроется консоль. Она похожа на командную строку Windows или интерфейс операционной системы MS DOS.
Консоль Ubuntu
Изначально вам надо будет проверить наличие обновлений. Введите команду «Sudo apt-get update» или «Sudo apt-get upgrade» без кавычек. После апдейта можно заняться настройкой всех компонентов серверов: FTP, почтового, Веб.
Для Ubuntu существует псевдографический интерфейс — Midnight Commander. Это аналог оболочки Norton Commander, которая разработана для системы MS DOS. С таким интерфейсом легче работать — всё нагляднее, чем в консоли.
Шаг 6: Включение SSL с виртуальным хостингом на LAMP (опционально)
Этот шаг можно пропустить. На локальном сервере (localhost) этот шаг рекомендуется пропустить.
SSL (Secure Sockets Layer) – это протокол, созданный для безопасных HTTP соединений по сети или в Интернете, который делает так, что поток данных переправляется через безопасный канал, используя симметричные/ассиметричные ключи шифрования, которые предоставляются в Arch Linux пакетом OpenSSL.
14. По умолчанию модоуль SSL на включен на Apache в Arch Linux и может быть активирован раскомментированием строки модуля mod_ssl.so в конфигурационном файле httpd.conf и Include httpd-ssl.conf файла, размещённом в директории httpd extra.
Но для упрощения, мы собираемся создать новый модульный файл для SSL в директории mods-enabled, главный конфигурационный файл Apache оставить нетронутым. Создайте следующий файл для модуля SSL и добавьте следующее содержимое.
sudo vim /etc/httpd/conf/mods-enabled/ssl.conf
Добавьте туда.
LoadModule ssl_module modules/mod_ssl.so LoadModule socache_shmcb_module modules/mod_socache_shmcb.so Listen 443 SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5 SSLPassPhraseDialog builtin SSLSessionCache "shmcb:/run/httpd/ssl_scache(512000)" SSLSessionCacheTimeout 300
15. Теперь создайте файл виртуального хоста, который указывает на то же самое имя localhost, но использует в это же время конфигурационный файл сервера SSL и слега измените его имя на то, которое бы напоминало вам, что он здесь для localhost с SSL.
sudo vim /etc/httpd/conf/sites-available/localhost-ssl.conf
Добавьте следующее содержимое в этот файл.
DocumentRoot "/srv/http" ServerName localhost ServerAdmin you@example.com ErrorLog "/var/log/httpd/localhost-ssl-error_log" TransferLog "/var/log/httpd/localhost-ssl-access_log" SSLEngine on SSLCertificateFile "/etc/httpd/conf/ssl/localhost.crt" SSLCertificateKeyFile "/etc/httpd/conf/ssl/localhost.key" SSLOptions +StdEnvVars SSLOptions +StdEnvVars BrowserMatch "MSIE " \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog "/var/log/httpd/ssl_request_log" \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" Options +Indexes +FollowSymLinks +ExecCGI AllowOverride All Order deny,allow Allow from all Require all granted
Кроме директив Port и ServerName, другие важные директивы это указание на файл сертификата SSL и файл ключей SSL, которые ещё не созданы, поэтому не перезапускайте веб-сервер Apache или вы получите ошибки.
16. Для создания требуемых файлов сертификата SSL установите пакет OpenSSL набрав нижеприведённую команду.
sudo pacman -S openssl
17. Затем создайте следующий баш скрипт, который автоматически создаёт и сохраняет все ваши сертификаты и ключи Apache в системной директории /etc/httpd/conf/ssl/.
vim apache_gen_ssl
Добавьте в этот файл следующий контент, сохраните его и сделайте исполнимым.
#!/bin/bash mkdir /etc/httpd/conf/ssl cd /etc/httpd/conf/ssl echo -e "Enter your virtual host FQDN: \nThis will generate the default name for Nginx SSL certificate!" read cert openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out $cert.key chmod 600 $cert.key openssl req -new -key $cert.key -out $cert.csr openssl x509 -req -days 365 -in $cert.csr -signkey $cert.key -out $cert.crt echo -e " The certificate "$cert" has been generated!\nPlease link it to Apache SSL available website!" ls -all /etc/httpd/conf/ssl exit 0
sudo chmod +x apache_gen_ssl
Если вы хотите, чтобы этот скрипт был доступен во всей системе по короткой команде, то сделайте так.
sudo cp ./apache_gen_ssl /usr/local/bin/
18. Теперь сгенерируйте ваш сертификат и ключи запустив этот скрипт. Предоставьте ваши SSL опции и не забудьте чтобы имя сертификата и общее имя соответствовали вашему официальному имени домена (FQDN).
sudo apache_gen_ssl
После того, как сертификат был создан, не забудьте изменить ваши настройки виртуального хоста для SSL: путь до сертификата и ключа, чтобы они соответствовали имени этого сертификата.
Для соответствия вышеприведённым настройкам, переименуем файлы сертификатов:
sudo mv /etc/httpd/conf/ssl/.crt /etc/httpd/conf/ssl/localhost.crt sudo mv /etc/httpd/conf/ssl/.key /etc/httpd/conf/ssl/localhost.key
19. Последний шаг – это активация нового виртуального хоста SSL и перезапуск сервера, чтобы изменения вступили в силу.
sudo a2ensite localhost-ssl sudo systemctl restart httpd
Вот оно! Для проверки откройте в вашем браузере адрес и добавьте HTTPS протокол: https://localhost или https://system_IP.
Шаг 3 — Установка PHP
PHP это компонент, который будет обрабатывать код для отображения динамического контента. Он может запускать скрипты, подключаться к нашим базам данных MySQL для получения информации и передавать обработанный контент в наш веб-сервер для отображения.
Мы можем вновь воспользоваться менеджером пакетов для установки компонентов. Мы также добавим некоторые вспомогательные пакеты, чтобы код на PHP мог работать с нашим сервером Apache, а также обращаться к базе данных MySQL:
Данная команда должна установить PHP без каких либо проблем. Вскоре мы это проверим.
В большинстве случаев, мы захотим изменить способ, который Apache использует для поиска файлов при запросе директории. На данный момент, если пользователь запрашивает директорию с сервера, Apache в первую очередь будет искать файл с названием . Мы хотим, чтобы наш веб-сервер отдавал предпочтение PHP файлам, так что мы настроим Apache таким образом, чтобы сначала он искал файлы .
Для этого введите следующую команду, чтобы открыть файл в текстовом редакторе с привилегиями пользователя root:
Содержимое файла будет выглядеть следующим образом:
/etc/apache2/mods-enabled/dir.conf
Мы хотим переместить индексный файл PHP , выделенный выше, на первое место после спецификации следующим образом:
/etc/apache2/mods-enabled/dir.conf
После внесения правок сохраните и закройте файл сочетанием клавиш . Вам придется подтвердить операцию вводом и затем нажатием клавиши для подтверждения места сохранения файла.
После этого нам необходимо перезапустить Apache для применения внесенных изменений. Вы можете сделать это при помощи команды:
Мы также можем проверить статус сервиса используя :
Чтобы расширить функциональность PHP, мы можем установить некоторые дополнительные модули. Для просмотра доступных опций для модулей и библиотек PHP вы можете передать результат в , которая позволит вам проматывать вывод:
Используйте клавиши стрелок вверх и вниз для проматывания списка, для выхода нажмите .
В результате вам будут показаны все опциональные компоненты, которые можно установить, сопровождаемые кратким описанием для каждого:
Чтобы получить больше информации по каждому модулю, вы можете поискать в Интернете или посмотреть полное описание пакета при помощи команды:
Ответ будет содержать много текста, среди которого есть поле . Именно оно и будет содержать расширенное описание функциональности, предоставляемой модулем.
Например, чтобы узнать назначение модуля , мы можем выполнить команду:
Помимо большого количества прочей информации, вы увидите следующее:
Если после изучение вы решили, что хотите установить пакет, вы можете сделать это используя команду как мы делали ранее при установке другого программного обеспечения.
Если мы решили, что хотим установить , мы можем ввести команду:
Для установки сразу нескольких модулей, вы можете перечислить их через пробелы следом за командой следующим образом:
Теперь ваш стек LAMP установлен и сконфигурирован. Однако перед внесением любых других изменений и перед установкой приложений нам ещё стоит протестировать настройку PHP на случай возможных проблем.
Шаг 3 – Установка PHP
Наша установка LAMP завершается очень важным компонентом – PHP, который необходим для запуска вашего приложения. Установить PHP и дополнительные модули можно командой:
sudo apt-get install php libapache2-mod-php php-mcrypt php-mysql php-cgi php-curl php-json
Этой командой будет установлена стабильна версия PHP с дополнительные модулями, которые необходимы для работы веб-приложения.
sudo nano /var/www/html/test.php
Эта команда откроет редактор nano с чистым файлом test.php для редактирования. Каталог /var/www/html, где мы создали тестовый файл PHP также известна как webroot. Это место, где Apache ищет запрашиваемые по URL файлы по умолчанию, если в настройках не указано другое место. Для информации о конфигурации Apache Ubuntu посмотрите документацию. Также вам понадобятся права root для записи в эту директорию. Мы используем sudo непосредственно перед командой. Теперь добавьте этот текст в открытом редакторе:
<?php phpinfo(); ?>
После этого нажмите Ctrl + X (или CMD + X, если вы работает на Mac) и затем нажмите Y и ENTER. Это приведёт к сохранению файла и закрытию его в редакторе. Теперь запустите этот адрес в своём браузере:
http:///test.php
Вы должны увидеть страницу подобную этой:
Функция phpinfo()f, которую мы вызываем в скрипте test.php отображает информацию об установке PHP и его конфигурации. Теперь удалите тестовый файл следующей командой:
sudo rm /var/www/html/test.php
Примечание: Очень важно удалить тестовый файл после проверки установки, так как он содержит критически важную информацию о настройках вашего сервера и она легко доступна для кого угодно, в том числе и возможных недоброжелателей, настроенных на аттаку.