вводить
Стек LEMP-это серия наборов программного обеспечения, используемых для разработки динамических веб-страниц и веб-приложений. LEMP описывает операционную систему Linux, веб-сервер Nginx, базу данных MySQL/MariaDB и серверный язык динамических сценариев PHP.
В этом уроке мы продемонстрируем, как установить полный стек LEMP на сервер Ubuntu 16.04. Во-первых, вам нужна хорошо функционирующая операционная система Ubuntu. Я использовал систему Ubuntu 16.04 LTS, установленную в VirtualBox виртуальной машины. Далее я покажу вам, как устанавливать и настраивать другие компоненты.
Предварительное условие
Перед завершением этого урока у вас должны быть обычные учетные записи, не являющиеся корневыми, и разрешения “sudo” в вашей системе Ubuntu. Вы можете узнать, как настроить этот тип учетной записи, изучив, как использовать параметры инициализации сервера Ubuntu 16.04.
Используйте эту учетную запись для входа на свой сервер, когда доступна ваша обычная учетная запись пользователя. Теперь давайте начнем с шагов, описанных в этом руководстве.
Шаг 1: Установите веб-сервер Nginx
Чтобы показывать веб-страницы нашим посетителям, мы будем использовать Nginx, современный, эффективный веб-сервер. Все компоненты, которые мы используем при установке стека LEMP, взяты из репозитория пакетов Ubuntu по умолчанию. Это означает, что мы можем его использовать. apt Пакет управления программным обеспечением для завершения всей установки.
Поскольку мы впервые используем apt в этом сеансе, мы должны сначала обновить наш локальный индекс пакетов. Затем установите сервер:
sudo apt-get update sudo apt-get install nginx
В Ubuntu 16.04 Nginx начал запускать конфигурацию во время установки.
Если у вас есть что-то, работающее под управлением ufw брандмауэра, как мы говорили в нашем руководстве по начальной настройке, вы должны разрешить ему подключаться к Nginx. Поскольку Nginx регистрирует свой собственный во время установки ufw , программа установки довольно проста.
Рекомендуется включить самые строгие файлы конфигурации, необходимые для запуска. Поскольку мы еще не настроили SSL для нашего сервера, в этом руководстве нам нужно разрешить подключения только через порт 80.
Вы можете включить эту функцию, введя следующие команды:
sudo ufw allow 'Nginx HTTP'
Вы можете проверить изменения, введя следующие команды:
sudo ufw status
Вы должны увидеть разрешенные HTTP-соединения в выводе, отображаемом:
Output Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Nginx HTTP ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Nginx HTTP (v6) ALLOW Anywhere (v6)
После добавления новых правил брандмауэра вы можете проверить, работает ли сервер и работает ли он, получив доступ к доменному имени сервера или общедоступному IP-адресу в веб-браузере.
Если вы не указали доменное имя своего сервера и не знаете общедоступный IP-адрес своего сервера, вы можете найти его, введя одно из следующих действий в терминале:
ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'Это выведет несколько IP-адресов, и вы можете попробовать каждый IP-адрес по очереди в своем браузере. Кроме того, вы можете проверить, какой IP-адрес доступен из других мест в Интернете:
#eg. to access baidu.com curl -4 www.baidu.com
Введите свой общедоступный IP-адрес или доменное имя, которое должно привести вас на страницу входа в систему Nginx по умолчанию:
http://server_domain_or_IP // The following two addresses are running locally http://localhost/ http://127.0.0.1/
Если вы видите страницу, показанную выше, вы успешно установили сервер Nginx.
Шаг 2: Установите базу данных MySQL
Теперь, когда у нас есть веб-сервер, нам нужно установить MySQL, систему управления базами данных, для хранения и управления данными нашего веб-сайта. Вы можете легко установить его, введя следующие команды:
sudo apt-get install mysql-server
Вам будет предложено предоставить пароли root (администратора) для использования в системах MySQL. Программное обеспечение базы данных MySQL установлено, но его настройка еще не завершена. Чтобы обеспечить установку, мы можем запустить простой сценарий безопасности и спросить, хотим ли мы изменить некоторые небезопасные значения по умолчанию. Запустите сценарий, набрав:
sudo mysql_secure_installation
Затем вам будет предложено ввести пароль, установленный для корневой учетной записи MySQL. Затем вас спросят, хотите ли вы настроить ПЛАГИН ПРОВЕРКИ ПАРОЛЯ.
Предупреждение : Включение этой функции является чем-то вроде призыва к суждению. Если включено, пароли, которые не соответствуют указанным критериям, будут отклонены MySQL с ошибкой. Это вызовет проблемы, если вы используете слабый пароль в сочетании с программным обеспечением, которое автоматически настраивает учетные данные пользователя MySQL, такие как пакеты Ubuntu для php MyAdmin. Можно безопасно оставить проверку отключенной, но вы всегда должны использовать надежные, уникальные пароли для учетных данных базы данных.
Введите y, чтобы согласиться, или введите любую другую клавишу, чтобы отменить вызов.
VALIDATE PASSWORD PLUGIN can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD plugin? Press y|Y for Yes, any other key for No:
Если вы включите проверку, вам будет предложено выбрать уровень проверки пароля. Обратите внимание, что если вы введете 2, это будет самый сильный уровень. При попытке установить любые пароли, которые не содержат цифр, заглавных и строчных букв, специальных символов или основаны на часто используемых словарных словарях, вы получите ошибки.
There are three levels of password validation policy: LOW Length >= 8 MEDIUM Length >= 8, numeric, mixed case, and special characters STRONG Length >= 8, numeric, mixed case, special characters and dictionary file Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1
Если проверка пароля включена, отображается сила существующего пароля root, и вас спрашивают, хотите ли вы изменить пароль. Если вы не хотите изменять текущий пароль root, введите n в приглашении, чтобы указать “нет”:
Using existing password for root. Estimated strength of the password: 100 Change the password for root ? ((Press y|Y for Yes, any other key for No) : n
Для остальных вопросов просто нажмите Y и нажмите Enter в каждом приглашении. Это приведет к удалению анонимных пользователей и тестовых баз данных, отключению удаленного входа в систему root и загрузке этих новых правил, чтобы MySQL мог немедленно включить внесенные нами изменения.
На данный момент ваша система баз данных настроена.
Шаг 3: Установите PHP
Теперь у нас установлен Nginx для доступа к нашим страницам, установлен MySQL для хранения и управления нашими данными. Но у нас пока нет ничего для создания динамического контента. Мы можем использовать PHP для создания динамических страниц.
Поскольку Nginx не включает локальную обработку PHP, как некоторые другие веб-серверы, нам необходимо установить php-fpm, что означает “быстрый менеджер процессов CGI”. Мы настраиваем Nginx таким образом, чтобы он мог передавать PHP-запросы в php-fpm для обработки.
Мы устанавливаем php-fpm в качестве компонента и получим дополнительный пакет помощи, который позволит PHP взаимодействовать с нашей базой данных. Установка приведет к извлечению необходимых основных файлов PHP. Выполните эту установку, введя следующие команды:
sudo apt-get install php-fpm php-mysql
Настройка среды PHP
Теперь мы установили компоненты PHP, но нам нужно внести некоторые незначительные изменения в конфигурацию, чтобы сделать нашу среду более безопасной.
Откройте основной файл конфигурации php-fpm с правами суперпользователя:
sudo vim /etc/php/7.0/fpm/php.ini
То, что мы ищем в этом файле, – это конфигурация cgi. fix_pathinfo. Это будет закомментировано точкой с запятой (;), которая по умолчанию имеет значение “1” и закомментирована точкой с запятой (;).
Это очень небезопасная настройка, поскольку она сообщает PHP, что если PHP-запрос не сможет найти требуемый файл, он попытается выполнить ближайший файл. В принципе, это позволит пользователям каким-то образом имитировать PHP-запросы для выполнения PHP-скриптов, которые не должны были выполняться.
Мы изменим это условие, отменив строку комментария и установив ее на “0”, следующим образом:
/etc/php/7.0/fpm/php.ini
cgi.fix_pathinfo=0
Сохраните и закройте файл после завершения. Теперь нам просто нужно перезапустить PHP-процессор:
sudo systemctl restart php7.0-fpm
Служба PHP примет изменения, которые мы внесли после перезапуска.
Шаг 4. Настройте сервер Nginx для использования PHP
Теперь у нас установлены все необходимые компоненты. Единственная конфигурация, которая вам нужна, – это указать Nginx использовать службы PHP для обработки файлов PHP.
Мы делаем это на уровне серверного блока (серверный блок аналогичен виртуальному хосту Apache). Откройте файл конфигурации блока сервера Nginx по умолчанию, введя следующую команду:
sudo vim /etc/nginx/sites-available/default
В настоящее время после открытия файла по умолчанию все комментарии удаляются, и файл блока сервера Nginx по умолчанию выглядит следующим образом: /etc/nginx/сайты-доступны/по умолчанию
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
try_files $uri $uri/ =404;
}
}Нам нужно внести некоторые изменения в эти файлы.
- Во-первых, нам нужно добавить index.php Действуйте как индекс Первое значение инструкции, чтобы к ней можно было получить доступ при запросе каталога для установки index.php 。
- измените имя_сервера Директивы, чтобы указать доменное имя нашего сервера или общедоступный IP Адрес.
- Для обработки PHP Запроса нам просто нужно отменить местоположение местоположение ~.php$ На этом этапе можно использовать комментарий к разделу кода, который включает fastcgi-php.conf И, а также PHP-fpm Связанные интерфейсы.
- Мы также отменим комментарии к коду, используемые для обработки файлов *. htaccess. Сервер Nginx не несет ответственности за обработку этих файлов, и если они случайно попадут в корневой каталог документов, они не будут предоставлены посетителям.
Изменения, которые вам необходимо внести, расположены под кодом, завернутым в []: /etc/nginx/сайты-доступны/по умолчанию
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index [[index.php]] index.html index.htm index.nginx-debian.html;
server_name [[server_domain_or_IP]];
location / {
try_files $uri $uri/ =404;
}
[[location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}]]
[[location ~ /\.ht {
deny all;
}]]
}Когда вы внесете вышеуказанные изменения, вы сможете сохранить и закрыть файл.
Введите следующую команду, чтобы проверить, есть ли в файле конфигурации синтаксические ошибки:
sudo nginx -t
Если будут обнаружены какие-либо ошибки, пожалуйста, вернитесь и повторно изучите свой файл, прежде чем продолжить.
Когда вы будете готовы, перезагрузите Nginx, чтобы принять изменения, упомянутые выше:
sudo systemctl reload nginx
Шаг 5: Создайте конфигурацию теста PHP-файла
Теперь ваш стек ламп должен быть полностью настроен. Мы можем протестировать его, чтобы убедиться, что Nginx может правильно передавать данные. PHP-файлы в наш PHP-процессор для обработки.
Создайте имя в корневом каталоге документа info.php Тестовые файлы. Откройте новый файл с именем info.php в корневом каталоге документа текстового редактора:
cd /var/www/html/ sudo touch info.php
Введите или вставьте следующий код в новый файл, чтобы вернуть информацию о нашем сервере: /var/www/html/info.php
Когда закончите, сохраните и закройте файл.
Теперь вы можете получить доступ к нему в браузере info.php Просмотр информации о сервере.
http://server_domain_or_IP/info.php
Вы увидите страницу, сгенерированную PHP, которая содержит информацию о вашем сервере:
Если вы видите подобную страницу, значит, вы успешно настроили серверы PHP и Nginx.
Когда Nginx правильно отобразит эту страницу, лучше удалить этот файл, потому что он действительно может предоставить неавторизованным пользователям некоторые подсказки о вашей конфигурации, которые могут помочь им использовать незаконные ссылки. Вы можете восстановить этот файл в любое время, если он вам понадобится позже.
Введите следующую команду, чтобы удалить файл:
sudo rm /var/www/html/info.php
Конец
Теперь вы должны были настроить стек LEMP на своем сервере Ubuntu 16.04.