PHP, Apache и MySQL являются одними из самых популярных технологий для построения веб-приложений. Тем не менее, Apache является большим веб-сервером, который потребляет много ресурсов, а также для тех, кто ищет бюджетный хостинг могли бы заменить его более легким Nginx.
Для завершения этого руководства, вам потребуется следующее:
• 1 выделенный сервер с чистой установкой Ubuntu 16.04.
Ubuntu 16.04 LTS является долгосрочным выпуском с поддержкой, а это означает Canonical будет предоставлять обновления в течение 5 лет, а не 9 месяцев как обычно.
Давайте начнем. Когда закончите, вы будете иметь серверную платформу, способную эффективно работать с любым количеством PHP и MySQL веб-приложениями.
Давайте начнем с применением всех последних обновлений. Это не только повысит уровень безопасности, но он также даст возможность избежать возможных сбоев пакетов при загрузки на последующих этапах.
apt-get update && apt-get upgrade -y reboot
Теперь мы установим базу данных MySQL, где веб-приложение будет держать все свои данные.
apt-get -y install mysql-server mysql-client
Вам будет предложено установить пароль администратора. Сделать этот пароль сильным и запомните его для последующего использования. Любой человек с этим паролем может получить доступ и изменять все содержимое базы данных.
Необходимы несколько дополнительных шагов, чтобы дополнительно защитить сервер базы данных. Давайте позаботимся об этом.
mysql_secure_installation
Сейчас настало время установить веб-сервер Nginx. Давайте его установим.
apt-get install nginx -y
Демон Nginx Теперь должен теперь быть запущен и добавлен а автозагрузку.
systemctl start nginx.service systemctl enable nginx.service
В то время как Apache работает с PHP скриптами непосредственно, Nginx должен подключаться к внешнему FPM демону, чтобы интерпретировать скрипты. Этот демон должен быть установлен, прежде чем он может быть использован. Давайте установим необходимые пакеты.
apt-get -y install php7.0-fpm php7.0-mysql
Теперь, когда установлен и запущен демон, виртуальные хосты Nginx должны быть настроены, чтобы знать, как получить к нему доступ, и какие пути и файлы должны проходить через интерпретатор FPM.
nano /etc/nginx/sites-available/default [...] # Добавить index.php в список, если вы используете PHP index index.php index.html index.htm index.nginx-debian.html; имя_сервера, [...] # передайте скрипты PHP в fastcgi-сервер слушает на сокете 127.0.0.1:9000 # location ~ \.php$ { include snippets/fastcgi-php.conf; # # With php7.0-cgi alone: fastcgi_pass 127.0.0.1:9000; # # With php7.0-fpm: # fastcgi_pass unix:/run/php/php7.0-fpm.sock; } # запретить доступ к файлам .htaccess, если Apache документ root совпадает с nginx # location ~ /\.ht { deny all; } } [...]
Сохраните конфигурацию виртуального хоста, и перезапустите Nginx, чтобы воспользоваться изменениями.
systemctl restart nginx.service systemctl enable nginx.service
Php.ini файл, где PHP и его модули настроены. Необходимо изменить одну строку, чтобы успешно выполнять скрипты в демоне FPM.
nano /etc/php/7.0/fpm/php.ini
Найти этот блок в конфигурационном файле:
; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. ; http://php.net/cgi.fix-pathinfo ; cgi.fix_pathinfo=1
Измените последнюю строку следующим образом:
; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. ; http://php.net/cgi.fix-pathinfo cgi.fix_pathinfo=0
Сохраните и выйдите. Как и с Nginx, теперь необходимо перезапустить и включить демон FPM, чтобы изменения конфигурации вступили в силу.
systemctl restart php7.0-fpm.service systemctl enable php7.0-fpm.service
Наконец, мы создадим простую страницу phpinfo, которая обеспечивает диагностическую информацию об установке. Эта страница будет позже заменена реальным приложением.
Введите корень документа виртуального хоста Nginx.
cd /var/www/html/
Создайте файл index.php
nano index.php
Теперь вставьте следующий код:
<?php phpinfo(); ?>
И, наконец, посетите страницу, которую вы только что создали, посетив http://your_main_ip. Вы должны увидеть много диагностических деталей о вашей установке PHP.
В то время как этот учебник только устанавливает диагностическую страницу, теперь вы можете заменить его либо сайтом, который вы разработали самостоятельно, или любое количество приложений сторонних разработчиков скачанные в Интернете. PHP является простой платформой для работы, и эти инструкции могут легко применить к десяткам или сотням PHP инструментов. Если это руководство было полезным для Вас, любезно поделиться ею с другими, которые также могут быть заинтересованы в нем.