Как я могу запустить apache при загрузке в linux?

Тюнинг веб-сервера

PHP

Открываем на редактирование следующий файл:

vi /etc/php/7.2/apache2/php.ini

И правим следующее:

post_max_size = 1G

upload_max_filesize = 512M

short_open_tag = On

date.timezone = «Europe/Moscow»

* где post_max_size — максимальный объем отправляемых на сервер данных; upload_max_filesize — максимально допустимый размер одного загружаемого файла; short_open_tag — разрешение использования короткого способа открытия php (); date.timezone — временная зона, которая будет использоваться веб-сервером, если ее не переопределить настройками в коде php или в файле .htaccess.

Теже настройки применяем для php-fpm:

vi /etc/php/7.2/fpm/php.ini

post_max_size = 1G

upload_max_filesize = 512M

short_open_tag = On

date.timezone = «Europe/Moscow»

Перезапускаем php-fpm и apache:

systemctl restart php7.2-fpm

systemctl restart apache2

NGINX

Открываем на редактирование следующий файл:

vi /etc/nginx/nginx.conf

И внутри секции http добавляем:

client_max_body_size 512M;

После перезапускаем nginx:

systemctl restart nginx

PHP Modules

PHP also has a variety of useful libraries and modules that you can add onto your virtual server. You can see the libraries that are available.

apt-cache search php5-

Terminal will then display the list of possible modules. The beginning looks like this:

php5-cgi - server-side, HTML-embedded scripting language (CGI binary)
php5-cli - command-line interpreter for the php5 scripting language
php5-common - Common files for packages built from the php5 source
php5-curl - CURL module for php5
php5-dbg - Debug symbols for PHP5
php5-dev - Files for PHP5 module development
php5-gd - GD module for php5
php5-gmp - GMP module for php5
php5-ldap - LDAP module for php5
php5-mysql - MySQL module for php5
php5-odbc - ODBC module for php5
php5-pgsql - PostgreSQL module for php5
php5-pspell - pspell module for php5
php5-recode - recode module for php5
php5-snmp - SNMP module for php5
php5-sqlite - SQLite module for php5
php5-tidy - tidy module for php5
php5-xmlrpc - XML-RPC module for php5
php5-xsl - XSL module for php5
php5-adodb - Extension optimising the ADOdb database abstraction library
php5-auth-pam - A PHP5 extension for PAM authentication

Once you decide to install the module, type:

sudo apt-get install name of the module

You can install multiple libraries at once by separating the name of each module with a space.

Congratulations! You now have LAMP stack on your droplet!

Решение проблем

Текущее состояние службы вы можете вывести командой .

Лог-файлы Apache вы найдете в каталоге .

PID file /run/httpd/httpd.pid not readable (yet?) after start

Если вы получаете такую ошибку, закомментируйте строку:

LoadModule unique_id_module modules/mod_unique_id.so

в файле настроек Apache.

Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe

Если не удалось запустить при старте и вы получаете следующее сообщение об ошибке:

Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe.  You need to recompile PHP.

Это значит, что Apache работает c поточным MPM, но используется не потокобезопасная версия PHP. В этом случае, следует заменить на :

/etc/httpd/conf/httpd.conf
# LoadModule mpm_event_module modules/mod_mpm_event.so
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

и перезапустить .

Step 1: Install Apache

The Apache web server is currently the most popular web server in the world, which makes it a great default choice for hosting a website.

We can install Apache easily using Ubuntu’s package manager, . A package manager allows us to install most software pain-free from a repository maintained by Ubuntu. You can learn more about how to use here.

For our purposes, we can get started by typing these commands:

Since we are using a command, these operations get executed with root privileges. It will ask you for your regular user’s password to verify your intentions.

Afterwards, your web server is installed.

You can do a spot check right away to verify that everything went as planned by visiting your server’s public IP address in your web browser (see the note under the next heading to find out what your public IP address is if you do not have this information already):

http://your_server_IP_address

You will see the default Ubuntu 14.04 Apache web page, which is there for informational and testing purposes. It should look something like this:

If you see this page, then your web server is now correctly installed.

How To Find your Server’s Public IP Address

If you do not know what your server’s public IP address is, there are a number of ways you can find it. Usually, this is the address you use to connect to your server through SSH.

From the command line, you can find this a few ways. First, you can use the tools to get your address by typing this:

This will give you one or two lines back. They are both correct addresses, but your computer may only be able to use one of them, so feel free to try each one.

An alternative method is to use an outside party to tell you how it sees your server. You can do this by asking a specific server what your IP address is:

Regardless of the method you use to get your IP address, you can type it into your web browser’s address bar to get to your server.

Шаг 2 — Установка MySQL

Теперь, когда наш веб-сервер установлен и запущен, пора установить MySQL. MySQL это система управления базами данных. Она организует и обеспечит доступ к базам данных, в которых ваш сайт может хранить информацию.

Мы можем вновь использовать для загрузки и установки программного обеспечения:

Обратите внимание: В данном случае вам нет необходимости предварительно выполнять команду , т.к. мы выполняли ее недавно при установке Apache, и индекс пакетов на вашем компьютере уже должен быть обновлен

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

После завершения установки нам потребуется выполнить некоторые дополнительные команды, чтобы наше окружение MySQL было настроено безопасным образом. Введите следующую команду:

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

Внимание: Решение включать плагин валидации паролей или нет носит субъективный характер. При включении все пароли, которые не удовлетворяют определённым критериям безопасности, будут отвергаться MySQL с сообщением об ошибке

Это может вызывать проблемы, если вы используете “слабые” пароли совместно с программным обеспечением, которое конфигурирует профили пользователей MySQL, например, пакеты Ubuntu для phpMyAdmin. Вы можете оставить валидацию паролей отключенной, но в этом случае вам следует всегда использовать “сильные” уникальные пароли для пользователей базы данных.

Введите для включения плагина или что-нибудь другое для продолжения без его включения:

Если вы включили валидацию паролей, вам будет предложено установить уровень надёжности паролей при валидации. Имейте в виду, что при выборе значения (самый строгий уровень валидации), вы будете получать ошибки при попытке задать пароль без цифр, букв в верхнем и нижнем регистре, а также без специальных символов, а также при попытке использовать пароль, основанный на распространённых словах, которые уязвимы для подбора паролей по словарю.

Вне зависимости от того, включили вы плагин валидации паролей или нет, далее вам будет предложено задать пароль для пользователя root для MySQL. Это административный аккаунт пользователя в MySQL, который имеет повышенные привилегии. Вы можете рассматривать его, как аналог пользователя root для самого сервера (с той лишь разницей, что это аккаунт для MySQL). Задайте сильный уникальный пароль, не оставляйте пароль пустым.

Если вы включили валидацию паролей, вам будет показан уровень надёжности заданного вами ранее пароля root пользователя, а также вам будет предложено изменить этот пароль. Если вы не хотите менять пароль, введите или “no”:

На все последующие вопросы просто вводите и нажимайте клавишу для выбора настроек по умолчанию. При этом удалятся некоторые тестовые пользователи и базы данных, будет отключена возможность удаленного доступа с учетной записью root-пользователя, и все изменения будут немедленно применены в MySQL.

Обратите внимание на то, что на серверах Ubuntu, использующих MySQL 5.7 (и более поздние версии), root пользователь в MySQL настроен таким образом, что его аутентификация по умолчанию происходит с помощью плагина , а не с помощью пароля. Это во многих случаях повышает безопасность, но, в то же время, может усложнить настройку доступа к root пользователю для некоторых программ (например, phpMyAdmin)

Если вы хотите настроить root пользователя на использование пароля, вам необходимо изменить метод аутентификации с на . Для того, чтобы это сделать, войдите в оболочку MySQL в терминале:

Далее просмотрите метод аутентификации для каждого из ваших пользователей MySQL с помощью следующей команды:

В этом примере ваш пользователь root использует аутентификацию с помощью плагина . Для изменения этой настройки на использование пароля используйте следующую команду . Не забудьте изменить на ваш сильный пароль:

Далее выполните команду , которая применит внесённые изменения:

Проверьте методы авторизации для пользователей ещё раз для того, чтобы убедиться, что пользователь root более не использует плагин для авторизации:

Как можно видеть на представленном выводе теперь root пользователь MySQL аутентифицируется с использованием пароля. После того, как мы в этом убедились, можно выйти из оболочки MySQL:

Теперь ваша система управления базами данных установлена и мы можем двигаться дальше и установить PHP, последний компонент LAMP.

Установка MySQL

Установка сервера БД MySQL:

$ sudo apt install mysql-server

Эта команда установит MySQL, но при этом не предложит задать пароль или внести какие-либо правки в конфигурацию. Далее запускаем скрипт безопасности, который изменит некоторые настройки по умолчанию на более безопасные:

$ sudo mysql_secure_installation

Надо ответить на вопросы:

  • Установить плагин проверки надежности паролей?
  • Пароль для пользователя ?
  • Подтверждение пароля для ?
  • Удалить анонимного пользователя?
  • Запретить подключаться удаленно?
  • Удалить тестовую базу данных?

По умолчанию пользователь может подключаться только локально, т.е. с хоста .

Начиная с версии 5.7 пользователь подключается с помощью плагина , а не по паролю:

$ sudo mysql
> SELECT user, authentication_string, plugin, host FROM mysql.user;
+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             |                                           | auth_socket           | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *76370DCD37985A94742AE45C0F4C890251AB21FA | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

Изменим это:

> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'qwerty';
Query OK, 0 rows affected (0.00 sec)
> SELECT user, authentication_string, plugin, host FROM mysql.user;
+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             | *AA1420F182E88B9E5F874F6FBE7459291E8F4601 | mysql_native_password | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *76370DCD37985A94742AE45C0F4C890251AB21FA | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)
> FLUSH PRIVILEGES;
> exit

Проверим вход по паролю:

$ mysql -uroot -pqwerty
mysql:  Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.27-0ubuntu0.18.04.1 (Ubuntu)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
> exit

Остановка сервера:

$ sudo systemctl stop mysql

Запуск сервера:

$ sudo systemctl start mysql

Перезагрузить конфигурацию:

$ sudo systemctl reload mysql

Перезагрузить сервер:

$ sudo systemctl restart mysql

Проверить состояние:

$ systemctl is-active mysql

Включить автозапуск:

$ sudo systemctl enable mysql

Отключить автозапуск:

$ sudo systemctl disable mysql

Посмотреть информацию о версии:

$ mysql -V
mysql Ver 14.14 Distrib 5.7.27, for Linux (x86_64) using  EditLine wrapper

Шаг 4 — Создание файлов нового виртуального хоста

Файлы виртуальных хостов задают их конфигурацию, и определяют, как именно веб-сервер Apache будет отвечать на запросы к разным доменам.

Apache имеет файл виртуального хоста по умолчанию , который мы можем использовать в качестве отправной точки. Мы собираемся скопировать его, чтобы создать файлы виртуального хоста для каждого из наших доменов.

Мы начнем с одного домена, сконфигурируем его, скопируем для другого домена, и затем снова сделаем необходимые правки. Конфигурация Ubuntu по умолчанию требует, чтобы каждый файл виртуального хоста заканчивался расширением .

Создание файла первого виртуального хоста

Начнем с копирования файла для первого домена:

Откройте новый файл в редакторе с root-правами:

Файл будет похож на этот (мы удалили комментарии, чтобы сделать его более читабельным):

/etc/apache2/sites-available/example.com.conf

Как видите, файл совсем небольшой. Мы поправим его для нашего первого домена и добавим некоторые новые директивы. Эта секция конфигурации виртуального хоста относится к любом запросам, которые сделаны по 80 порту (порт по умолчанию для HTTP).

Прежде всего, мы должны изменить директиву на адрес электронной почты, на который администратор сайта будет получать электронные письма.

Затем мы должны добавить две новые директивы. Первая, , устанавливает основной домен, который должен соответствовать названию виртуального хоста. Это должно быть ваше доменное имя. Вторая, , определяет другие имена, которые должны интерпретироваться так, как будто это основной домен. Это удобно для использования дополнительных доменных имен, например, с использованием :

Единственная вещь, которую нам осталось изменить в базовом файле виртуального хоста, это расположение корневого каталога этого домена. Мы уже создали нужную директорию, так что нам осталось изменить директиву так, чтобы она ссылалась на созданную нами директорию:

Теперь наш файл виртуального хоста должен выглядеть следующим образом:

/etc/apache2/sites-available/example.com.conf

Сохраните и закройте файл.

Копирование первого виртуального хоста и настройка для второго домена

Теперь, когда у нас есть готовый первый виртуальный хост, мы можем создать второй, скопировав файл и поправив его там, где это необходимо.

Начните с копирования:

Откройте новый файл в редакторе с правами root-пользователя:

Теперь вам нужно поправить всю необходимую информацию для второго домена. Когда вы закончите, файл должен выглядеть похожим образом:

/etc/apache2/sites-available/test.com.conf

Сохраните и закройте файл после внесения правок.

Варианты включения модуля[править]

На примере модуля dir.

Быстрыйправить

$ sudo -H a2enmod dir

Возможно отключение при выполнении /usr/sbin/a2chkconfig, если требование отключить его будет присутствовать в каком либо из /etc/httpd2/conf/mods-start.d/*.conf (a2chkconfig может вызываться при установке/обновлении/удалении связанных с apache2 пакетов).

Важно! По умолчанию в дистрибутивах ALT Linux утилита sudo не настроена.

Надёжныйправить

$ sudo -H sh -с 'еcho "dir=yes" >> /etc/httpd2/conf/mods-start.d/900-local.conf'
$ sudo -H a2chkconfig

Важно! По умолчанию в дистрибутивах ALT Linux утилита sudo не настроена.

Apache

Для поддержки файла .htaccess, который используется многими сайтами, необходимо установить и настроить веб-сервер Apache.

Устанавливаем apache и модуль для php:

apt-get install apache2 libapache2-mod-php

Заходим в настройки портов:

vi /etc/apache2/ports.conf

И редактируем следующее:

Listen 8080
#
#       Listen 443
#
#
#       Listen 443
#

* мы настроили прослушивание на порту 8080, так как на 80 уже работает NGINX. Также мы закомментировали прослушивание по 443, так как и он будет слушаться NGINX.

Теперь открываем настройку следующего модуля:

vi /etc/apache2/mods-available/dir.conf

И добавляем впереди индексных файлов index.php:

    DirectoryIndex index.php index.html …

* если не указан конкретный скрипт, сначала веб-сервер пытается найти и запустить index.php, затем index.html и так далее.

Открываем основной конфигурационный файл для apache:

vi /etc/apache2/apache2.conf

Рядом с опциями Directory дописываем:

    AllowOverride All
    Options Indexes ExecCGI FollowSymLinks
    Require all granted

* где Directory указывает на путь, для которого мы хотим задать настройки; AllowOverride — позволит переопределить все настройки с помощью файла .htaccess; Options задает некоторые настройки: Indexes разрешает списки каталогов, ExecCGI разрешает запуск cgi скриптов, Require all granted — предоставляет всем доступ к сайтам в данном каталоге.

Ниже допишем:

    SetEnvIf X-Forwarded-Proto https HTTPS=on

* этой настройкой мы при получении заголовка X-Forwarded-Proto со значением https задаем переменную $_SERVER равную on. Данная настройки критична для функционирования некоторых CMS.

Запрещаем mpm_event:

a2dismod mpm_event

* по умолчанию, apache2 может быть установлен с модулем мультипроцессовой обработки mpm_event. Данный модуль не поддерживает php 7 и выше.

Разрешаем модуль мультипроцессовой обработки mpm_prefork:

a2enmod mpm_prefork

Разрешаем модуль php:

a2enmod php7.2

* в данном примере установлен php версии 7.2.

Разрешаем модуль setenvif:

a2enmod setenvif

Разрешаем автозапуск и запускаем службу:

systemctl enable apache2

systemctl start apache2

Открываем браузер и вводим в адресную строку http://:8080. Мы должны увидеть привычную страницу:

* в разделе Server API мы должны увидеть Apache.

NGINX + Apache

Ранее мы настроили связку nginx + php-fpm. Теперь настроим nginx + apache. Открываем конфигурационный файл nginx для сайта по умолчанию:

vi /etc/nginx/sites-enabled/default

Находим наш настроенный location для php-fpm:


        location ~ \.php$ {
            set $root_path /var/www/html;
            fastcgi_pass unix:/run/php/php7.2-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $root_path$fastcgi_script_name;
            include fastcgi_params;
            fastcgi_param DOCUMENT_ROOT $root_path;
        }

и меняем на:


        location ~ \.php$ {
            proxy_pass http://127.0.0.1:8080;
            proxy_redirect     off;
            proxy_set_header   Host             $host;
            proxy_set_header   X-Forwarded-Proto $scheme;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        }

Проверяем и перезапускаем nginx:

nginx -t

systemctl restart nginx

Пробуем открыть в браузере http:// — должна открыться та же страница, что при проверке Apache (с добавлением 8080):

Apache Real IP

Запросы на apache приходят от NGINX, и они воспринимаются первым как от IP-адреса 127.0.0.1. На практике, это может привести к проблемам, так как некоторым сайтам необходимы реальные адреса посетителей. Для решения проблемы будем использовать модуль remoteip.

Создаем конфигурационный файл со следующим содержимым:

vi /etc/apache2/mods-available/remoteip.conf

  RemoteIPHeader X-Forwarded-For
  RemoteIPTrustedProxy 127.0.0.1/8

Активируем модуль:

a2enmod remoteip

Перезапускаем apache:

systemctl restart apache2

Для проверки настройки открываем браузер и вводим в адресную строку http://, где откроется наша страница phpinfo. В разделе Apache Environment мы должны увидеть внешний адрес компьютера, с которого обращаемся к серверу в опции REMOTE_ADDR.

Настройка виртуальных хостов

Перейдем в директорию , которая содержит внутри себя директорию с файлом . И создадим еще две директории и . И внутри каждой директории создадим файл :

$ cd /var/www
$ sudo su
# mkdir host1.loc
# mkdir host2.loc
# cd host1.loc
# nano index.php

Сайт host1.loc
<?php phpinfo(); ?>

# cd host2.loc
# nano index.php

Сайт host2.loc
<?php phpinfo(); ?>

Теперь перейдем в директорию с настройками Apache:

# cd /etc/apache2
# ls -l
-rw-r--r-- 1 root root  7224 сен 16 15:58 apache2.conf
drwxr-xr-x 2 root root  4096 ноя 11 09:32 conf-available
drwxr-xr-x 2 root root  4096 ноя 11 09:32 conf-enabled
-rw-r--r-- 1 root root  1782 июл 16 21:14 envvars
-rw-r--r-- 1 root root 31063 июл 16 21:14 magic
drwxr-xr-x 2 root root 12288 ноя 11 12:29 mods-available
drwxr-xr-x 2 root root  4096 ноя 11 12:29 mods-enabled
-rw-r--r-- 1 root root   320 июл 16 21:14 ports.conf
drwxr-xr-x 2 root root  4096 ноя 11 09:32 sites-available
drwxr-xr-x 2 root root  4096 ноя 11 09:32 sites-enabled
  • : главный конфигурационный файл Apache. Изменения в этом файле влияют на глобальную конфигурацию Apache. Этот файл отвечает за загрузку многих других файлов из конфигурационной директории.
  • : этот файл определяет порты, которые Apache будет слушать. По умолчанию Apache слушает порт 80, а также порт 443 при условии, что модуль для работы с SSL включен.
  • : в этой директории хранятся файлы виртуальных хостов. Apache не использует файлы из этой директории, если ссылки на них нет в директории . Обычно настройка всех файлов виртуальных хостов осуществляется в этой директории, а активация хоста происходит путём создания ссылки в другой директории командой .
  • : директория, в которой хранятся активированные виртуальные хосты. Обычно это делается путём создания ссылки на файл конфигурации хоста из директории с помощью команды . Apache читает конфигурационный файлы и ссылки из этой директории при запуске или перезапуске.
  • , : эти директории связаны друг с другом так же, как и и связаны друг с другом, но используются для хранения фрагментов конфигурации, которые не принадлежат виртуальным хостам. Файлы в директории могут быть включены командой и выключены командой .
  • , : эти директории содержат, соответственно, доступные и активные модули. Файлы, оканчивающиеся на , содержат фрагменты для загрузки конкретных модулей, а файлы, оканчивающиеся на , содержат настройки этих модулей. Модули можно активировать командой и деактивировать командой .

Посмотрим, какие сайты могут быть активированы командой :

# cd /etc/apache2/sites-available
# ls -l
-rw-r--r-- 1 root root 1332 июл 16 21:14 000-default.conf
-rw-r--r-- 1 root root 6338 июл 16 21:14 default-ssl.conf

И какие сайты сейчас доступны, т.е. были активированы командой :

# cd /etc/apache2/sites-enabled
# ls -l
lrwxrwxrwx 1 root root 35 ноя 11 09:32 000-default.conf -> ../sites-available/000-default.conf

В директории только одна ссылка, значит доступен только один сайт по адресу . Создадим два файла конфигурации виртуальных хостов:

# cd /etc/apache2/sites-available
# cp 000-default.conf host1.loc.conf
# cp 000-default.conf host2.loc.conf

И отредактируем эти файлы:

# nano host1.loc.conf
    ServerName host1.loc
    ServerAdmin webmaster@host1.loc
    DocumentRoot /var/www/host1.loc
    ServerAlias www.host1.loc
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
# nano host2.loc.conf
    ServerName host2.loc
    ServerAdmin webmaster@host2.loc
    DocumentRoot /var/www/host2.loc
    ServerAlias www.host1.loc
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

Активируем два наших сайта:

# a2ensite host1.loc
Enabling site host1.loc.
To activate the new configuration, you need to run:
  systemctl reload apache2
# a2ensite host2.loc
Enabling site host2.loc.
To activate the new configuration, you need to run:
  systemctl reload apache2

Перед тем, как перезагрузить Apache, отредактируем файл :

# nano /etc/hosts
127.0.0.1   localhost
127.0.1.1   ubuntu-lamp

127.0.0.1   host1.loc www.host1.loc
127.0.0.1   host2.loc www.host2.loc

Перезагружаем Apache:

# systemctl reload apache2

И проверяем работу сайтов:

Шаг 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

Примечание: Очень важно удалить тестовый файл после проверки установки, так как он содержит критически важную информацию о настройках вашего сервера и она легко доступна для кого угодно, в том числе и возможных недоброжелателей, настроенных на аттаку

Ссылка на основную публикацию