
Для запуска PHP на Linux, необходимо выполнить несколько важных шагов. В отличие от Windows, где установка зачастую проще, в Linux важно правильно настроить окружение для корректной работы скриптов. В этой статье мы рассмотрим, как установить PHP, настроить его для веб-сервера и решить возможные проблемы, которые могут возникнуть на разных дистрибутивах Linux.
Основной способ установки PHP на Linux – через пакетный менеджер. В зависимости от дистрибутива, это может быть apt для Ubuntu и Debian, dnf для Fedora, или yum для CentOS. Важно, чтобы версии PHP и установленные расширения соответствовали требованиям вашего проекта.
После установки PHP, следует настроить сервер для работы с ним. Если вы используете Apache, потребуется активировать модуль mod_php, а для Nginx – настроить обработку PHP через PHP-FPM. Подробное понимание этих настроек критично для стабильной работы сервера.
Установка PHP через пакетный менеджер в Ubuntu
Для установки PHP на Ubuntu используйте стандартный пакетный менеджер apt. Для этого выполните несколько простых шагов.
Сначала обновите списки пакетов с помощью команды:
sudo apt update
После этого установите PHP. Для стандартной установки последней стабильной версии PHP используйте команду:
sudo apt install php
Если нужно установить конкретную версию, например, PHP 7.4, выполните команду:
sudo apt install php7.4
После установки PHP вы можете проверить его версию командой:
php -v
Для работы с базами данных, например, MySQL, установите соответствующие расширения PHP:
sudo apt install php-mysql
Для работы с веб-серверами, такими как Apache, потребуется установить модуль PHP для Apache:
sudo apt install libapache2-mod-php
Если вы используете Nginx, то потребуется настроить PHP-FPM. Установите его командой:
sudo apt install php-fpm
После установки PHP и всех необходимых расширений перезапустите веб-сервер. Для Apache это будет:
sudo systemctl restart apache2
Для Nginx перезапустите PHP-FPM:
sudo systemctl restart php7.4-fpm
Теперь PHP установлено и настроено для работы на вашем сервере Ubuntu. Проверьте корректность установки, создав файл info.php в корневой директории вашего веб-сервера с содержимым:
<?php phpinfo(); ?>
Зайдите на ваш сервер через браузер, используя адрес http://localhost/info.php. Это покажет подробную информацию о конфигурации PHP.
Настройка конфигурации PHP для веб-сервера Apache

После установки PHP и Apache на Linux важно правильно настроить взаимодействие между ними. Это требует активации модуля mod_php и настройки конфигурации веб-сервера для работы с PHP.
Для начала убедитесь, что модуль mod_php установлен. Если он не был установлен автоматически, выполните команду:
sudo apt install libapache2-mod-php
После установки модуля активируйте его с помощью команды:
sudo a2enmod php7.4
Замените php7.4 на актуальную версию PHP, если она отличается. Чтобы изменения вступили в силу, перезапустите Apache:
sudo systemctl restart apache2
Теперь нужно настроить Apache для правильной обработки PHP-скриптов. Откройте файл конфигурации Apache:
sudo nano /etc/apache2/sites-available/000-default.conf
Убедитесь, что директива DocumentRoot указывает на правильную директорию, например, /var/www/html. Важно, чтобы все PHP-скрипты находились в этой директории или в подкаталогах.
Если вы хотите, чтобы Apache автоматически обрабатывал файлы с расширением .php, убедитесь, что в конфигурации есть строка:
DirectoryIndex index.php index.html
Далее настройте обработку PHP в конфигурации Apache. Проверьте, что директива SetHandler указана для обработки PHP, если необходимо:
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
После внесения изменений перезапустите Apache, чтобы настройки вступили в силу:
sudo systemctl restart apache2
Для проверки работы PHP создайте файл info.php в корневой директории веб-сервера (обычно это /var/www/html) с содержимым:
<?php phpinfo(); ?>
Откройте этот файл в браузере, введя http://localhost/info.php, чтобы убедиться, что PHP обрабатывается правильно.
Если все настроено верно, ваш веб-сервер Apache будет правильно обрабатывать PHP-скрипты. Не забудьте удалить файл info.php после проверки, так как он может содержать чувствительную информацию о конфигурации сервера.
Интеграция PHP с сервером Nginx

Для работы с PHP на сервере Nginx необходимо использовать PHP-FPM (FastCGI Process Manager), так как Nginx не поддерживает обработку PHP напрямую. Чтобы интегрировать PHP с Nginx, выполните следующие шаги.
1. Установите PHP-FPM:
sudo apt install php-fpm
2. Убедитесь, что PHP-FPM запущен. Для этого используйте команду:
sudo systemctl status php7.4-fpm
Замените php7.4-fpm на вашу версию PHP, если она отличается. Если PHP-FPM не запущен, активируйте его:
sudo systemctl start php7.4-fpm
3. Настройте Nginx для работы с PHP. Откройте конфигурационный файл Nginx для вашего сайта:
sudo nano /etc/nginx/sites-available/default
4. Добавьте или отредактируйте следующие строки в конфигурации Nginx для обработки PHP через PHP-FPM:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
Замените php7.4-fpm.sock на актуальную версию, если она отличается.
5. Проверьте конфигурацию Nginx на наличие ошибок:
sudo nginx -t
6. Перезапустите Nginx, чтобы применить изменения:
sudo systemctl restart nginx
7. Проверьте работу PHP, создав файл info.php в директории вашего сайта с содержимым:
<?php phpinfo(); ?>
Откройте файл в браузере, перейдя по адресу http://localhost/info.php. Если PHP настроен правильно, вы увидите страницу с информацией о конфигурации PHP.
8. После проверки работы удалите файл info.php, чтобы не раскрывать конфиденциальную информацию о сервере.
Теперь ваш сервер Nginx интегрирован с PHP через PHP-FPM, и вы можете запускать PHP-скрипты на своем сервере.
Проверка корректности установки PHP на Linux

После установки PHP на Linux важно убедиться, что система правильно распознает PHP и готова обрабатывать PHP-скрипты. Для этого выполните несколько простых проверок.
1. Проверьте версию PHP:
php -v
Эта команда покажет текущую версию PHP, установленную на вашем сервере. Убедитесь, что отображаемая версия соответствует ожидаемой.
2. Проверьте наличие PHP-расширений:
php -m
3. Создайте тестовый файл info.php для проверки работы PHP через веб-сервер. В корневой директории вашего веб-сервера (например, /var/www/html) создайте файл с содержимым:
<?php phpinfo(); ?>
Затем откройте этот файл в браузере, используя URL http://localhost/info.php или IP-адрес сервера. Если PHP настроен правильно, вы увидите страницу с подробной информацией о конфигурации PHP.
4. Проверьте настройку обработки PHP через веб-сервер. Если вы используете Apache, убедитесь, что модуль mod_php активирован. Для этого выполните команду:
sudo apache2ctl -M | grep php
Если вы используете Nginx, проверьте настройки PHP-FPM, открыв файл конфигурации Nginx и убедившись, что указан правильный путь к сокету PHP-FPM. Пример:
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
5. Проверка наличия ошибок в логах. Если PHP не работает как ожидается, просмотрите логи Apache или Nginx. Логи ошибок можно найти в следующих файлах:
- Для Apache: /var/log/apache2/error.log
- Для Nginx: /var/log/nginx/error.log
Появление ошибок может указать на проблемы с конфигурацией или отсутствующие зависимости.
Если все шаги выполнены без ошибок, ваша установка PHP должна быть корректной и готова к использованию.
Обновление версии PHP на Linux

Для обновления версии PHP на Linux можно использовать пакетный менеджер. Процесс обновления зависит от версии вашего дистрибутива и текущей установленной версии PHP.
1. Обновление через apt для Ubuntu/Debian:
- Добавьте репозиторий с новой версией PHP (например, для PHP 8.0):
- Обновите список пакетов:
- Установите нужную версию PHP (например, PHP 8.0):
- Для установки дополнительных расширений PHP 8.0 используйте:
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.0
sudo apt install php8.0-cli php8.0-fpm php8.0-mysql php8.0-xml
2. Обновление через dnf для Fedora:
- Обновите репозитории и установите новую версию PHP:
- Если новая версия PHP не установилась автоматически, добавьте репозиторий Remi:
- Включите репозиторий для PHP 8.0:
- Установите PHP 8.0:
sudo dnf install php
sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
sudo dnf module enable php:remi-8.0
sudo dnf install php
3. Переключение между версиями PHP:
После установки новой версии PHP, необходимо настроить систему на использование этой версии. Для этого используйте инструмент update-alternatives (для Ubuntu/Debian):
sudo update-alternatives --set php /usr/bin/php8.0
Для работы с PHP-FPM, если вы используете Nginx или Apache, перезапустите соответствующие сервисы:
sudo systemctl restart php8.0-fpm
4. Проверка версии PHP:
После обновления выполните команду, чтобы убедиться в установке новой версии:
php -v
Эти шаги помогут вам обновить PHP до нужной версии на большинстве дистрибутивов Linux. Убедитесь, что все необходимые расширения установлены, а конфигурация веб-сервера настроена на использование новой версии PHP.
Установка расширений PHP через командную строку

Для установки расширений PHP на Linux используется пакетный менеджер, такой как apt для Ubuntu/Debian или dnf для Fedora. Установив нужные расширения, вы сможете добавить функциональность для работы с базами данных, кешированием, обработкой изображений и другими задачами.
Для начала определите, какие расширения вам нужны. Ниже приведена таблица с наиболее часто используемыми расширениями и командами для их установки:
| Расширение | Команда для установки (Ubuntu/Debian) | Команда для установки (Fedora) |
|---|---|---|
| php-mysql |
|
|
| php-xml |
|
|
| php-gd |
|
|
| php-curl |
|
|
| php-mbstring |
|
|
| php-imagick |
|
|
После установки расширений перезапустите веб-сервер, чтобы изменения вступили в силу:
sudo systemctl restart apache2
или для Nginx:
sudo systemctl restart php7.4-fpm
Проверьте, что расширения успешно установлены, выполнив команду:
php -m
Это покажет список всех доступных расширений PHP, где вы можете проверить наличие установленных модулей. Убедитесь, что необходимые расширения присутствуют в списке.
Использование PHP с MySQL на Linux
Для работы с базой данных MySQL через PHP на Linux необходимо установить соответствующие расширения PHP и настроить соединение с сервером базы данных. Ниже приведены шаги для установки и настройки PHP для работы с MySQL.
1. Установите необходимые пакеты:
sudo apt install php-mysql
Для Fedora используйте команду:
sudo dnf install php-mysqlnd
2. После установки расширения для PHP, перезапустите веб-сервер для применения изменений:
sudo systemctl restart apache2
или для Nginx с PHP-FPM:
sudo systemctl restart php7.4-fpm
3. Настройка подключения PHP к MySQL. Для этого используйте встроенные функции PHP, такие как mysqli или PDO. Пример подключения через mysqli:
$servername = "localhost";
$username = "root";
$password = "your_password";
$dbname = "your_database";
// Создаем подключение
$conn = new mysqli($servername, $username, $password, $dbname);
// Проверяем подключение
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
4. Для выполнения SQL-запросов используйте функцию query. Пример выполнения простого запроса:
$sql = "SELECT id, name FROM users";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["name"]. "
";
}
} else {
echo "0 results";
}
$conn->close();
5. Важно также учитывать безопасность соединения с базой данных. Используйте подготовленные выражения с mysqli или PDO для защиты от SQL-инъекций. Пример использования подготовленного выражения с mysqli:
$stmt = $conn->prepare("SELECT id, name FROM users WHERE id = ?");
$stmt->bind_param("i", $id);
$id = 1;
$stmt->execute();
$stmt->close();
6. Если база данных MySQL еще не установлена, используйте команду для установки MySQL на Ubuntu/Debian:
sudo apt install mysql-server
Для Fedora:
sudo dnf install mysql-server
После установки MySQL, настройте сервер и создайте необходимую базу данных и пользователя для подключения.
Теперь PHP готов к взаимодействию с MySQL, и вы можете использовать его для работы с базами данных на вашем сервере Linux.
Решение проблем с запуском PHP на Linux

Если после установки PHP команда php -v не отображает версию, проверьте корректность пути к исполняемому файлу с помощью which php. Отсутствие результата указывает на неправильную установку или отсутствие символической ссылки в /usr/bin.
Ошибка «PHP module not found» при использовании веб-сервера Apache или Nginx обычно связана с отсутствием или некорректной конфигурацией модуля PHP. Для Apache выполните sudo a2enmod php8.2 (замените версию на установленную) и перезапустите сервер командой sudo systemctl restart apache2. Для Nginx проверьте блок fastcgi_pass в файле конфигурации и убедитесь, что путь к php-fpm.sock совпадает с реальным.
Если PHP не выполняет скрипты через CLI, убедитесь, что переменные окружения настроены правильно. Проверьте PATH и наличие необходимых расширений командой php -m. Отсутствующие расширения можно установить через пакетный менеджер: sudo apt install php8.2-mbstring php8.2-xml.
При ошибках типа «permission denied» для файлов скриптов проверьте права доступа: используйте chmod 644 filename.php и владельца веб-сервера через chown www-data:www-data filename.php. Для директорий корректные права – chmod 755.
Если PHP выдаёт синтаксические ошибки при запуске скриптов, проверьте версию PHP и используемые функции. Скрипты, написанные для PHP 8, могут не работать на версии 7.4. Для проверки используйте php -l filename.php, чтобы выявить точное место ошибки.
Проблемы с кэшированием опкодов (Opcache) решаются очисткой кеша командой php -r 'opcache_reset();' или временным отключением в конфигурации opcache.enable=0 в php.ini.
Для отладки ошибок включите отображение ошибок: в php.ini установите display_errors = On и error_reporting = E_ALL. После изменений перезапустите веб-сервер или php-fpm.
Вопрос-ответ:
Как проверить, установлена ли PHP на Linux?
Откройте терминал и выполните команду php -v. Если PHP установлен, команда покажет версию, дату сборки и конфигурацию. Если результат пустой, PHP либо не установлен, либо путь к исполняемому файлу не добавлен в переменную PATH. Для проверки пути используйте which php.
Как запустить PHP-скрипт через командную строку?
Чтобы выполнить PHP-скрипт в терминале, используйте команду php /путь/к/скрипту.php. Это позволит сразу увидеть результат выполнения или ошибки. Для интерактивного тестирования можно запустить php -a, что откроет интерактивный режим.
Что делать, если Apache не обрабатывает PHP-скрипты?
Проверьте, активирован ли модуль PHP для Apache с помощью sudo a2enmod php8.2 (замените версию на вашу). После этого перезапустите сервер: sudo systemctl restart apache2. Также убедитесь, что в файлах конфигурации указаны корректные директивы DirectoryIndex index.php и AddHandler application/x-httpd-php .php.
Почему PHP не видит установленные расширения?
Используйте команду php -m, чтобы проверить список активных модулей. Если нужное расширение отсутствует, установите его через пакетный менеджер, например: sudo apt install php8.2-mbstring php8.2-curl. После установки перезапустите веб-сервер или php-fpm.
Как исправить ошибки прав доступа при запуске PHP-скриптов?
Проверьте владельца и права на файлы и директории. Для скрипта используйте chmod 644 filename.php, а для папки chmod 755. Владельцем должен быть пользователь веб-сервера, например: chown www-data:www-data filename.php. Это устраняет ошибки типа «permission denied».
Как проверить, работает ли PHP на сервере Linux?
Откройте терминал и выполните команду php -v. Она покажет установленную версию PHP и дату сборки. Если вывод отсутствует, PHP не установлен или путь к исполняемому файлу не добавлен в переменную PATH. Для уточнения используйте which php, чтобы узнать, где находится исполняемый файл.
Что делать, если PHP-скрипты не запускаются через веб-сервер?
Для Apache проверьте, активирован ли модуль PHP: sudo a2enmod php8.2 (замените на установленную версию) и перезапустите сервер sudo systemctl restart apache2. Для Nginx убедитесь, что блок fastcgi_pass указывает на правильный сокет php-fpm.sock. Также проверьте права доступа к файлам и директориям: скрипты должны иметь chmod 644, директории — chmod 755, владелец — пользователь веб-сервера, например www-data.
