Как установить PHP на Linux
Настроить рабочее окружение для разработки на PHP в Linux возможно несколькими способами. Рассмотрим один из наиболее быстрых: настройка связки PHP и nginx.
Запустите приложение «Терминал». Ярлык на запуск доступен в менеджере приложений. Сначала обновим локальный индекс пакетов APT.
Настройка веб-сервера
Для работы с PHP нам потребуется веб-сервер. В репозиториях доступно несколько популярных веб-серверов, мы отдадим предпочтение nginx. Он хорошо работает и легко настраивается.
sudo apt-get install nginx
Затем запустим nginx. Запомните эту команду. Она пригодится для добавления новых виртуальных хостов.
nginx установлен и теперь нам требуется выполнить базовое конфигурирование. Наша цель — создать новый виртуальный хост, который будет доступен по адресу yourproject.local , где вместо yourproject может быть название вашего проекта.
Например: doingsdone.local , yeticave.local .
Обратите внимание, имена доменов не могут содержать пробелы. Определитесь с именем домена (далее «имя хоста для проекта»). Мы будем ориентироваться на проект yeticave.local , поэтому именно так будем называть конфигурационный файл. Перейдите в директорию sites-available . В этой директории nginx хранит конфигурационные файлы всех виртуальных хостов.
cd /etc/nginx/sites-available
Чтобы увидеть список всех доступных виртуальных хостов, выведите содержимое каталога:
Название конфигурационного файла должно совпадать с именем хоста. Поскольку мы планируем сделать конфигурационный файл для хоста yeticave.local , нам потребуется создать файл yeticave.local . Сделаем это:
Файл готов, теперь откроем его в консольном редакторе nano (установлен по умолчанию в большинстве современных дистрибутивов) и опишем минимальную конфигурацию.
Скопируйте в открытый файл yeticave.local ниже приведённый конфигурационный файл. Информацию обо всех непонятных строках вы сможете почерпнуть из официальной документации к nginx.
server < # Наш проект будет доступен на 80 порту listen 80; # Имя виртуального хоста server_name yeticave.local; # Корневая директория проекта. root /home/administrator/www/yeticave.local; # Имя индексного файла. index index.php; # Настройки отдачи файлов location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ < access_log off; expires max; log_not_found off; >location / < try_files $uri $uri/ /index.php?$query_string; >location ~* \.php$ < try_files $uri = 404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; >location ~ /\.ht < deny all; >>
Обратите внимание на номер версии PHP. На момент написания статьи в репозиториях Ubuntu доступна версия 8.1. Если вы пользуетесь более старой версией ОС, то не забудьте обновить номер версии на свой.
Важно: в нашем конфиге файлы находятся в домашней директории пользователя Administrator . Ваше имя пользователя наверняка отличается, поэтому обратите на это внимание при написании пути.
Для сохранения изменений в файле нажмите комбинацию клавиш ctrl+o. Затем закройте редактор nano сочетанием клавиш ctrl+x.
Протестируем созданный конфигурационный файл на наличие ошибок:
Мы создали конфигурационный файл. Теперь активируем только что созданный виртуальный хост. Для этого перейдём в директорию sites-enabled и создадим в ней символическую ссылку на наш конфигурационный файл.
cd /etc/nginx/sites-enabled/ sudo ln -s /etc/nginx/sites-available/yeticave.local
Если на текущем шаге попытаться открыть браузер и ввести в адресной строке http://yeticave.local , то ничего, кроме ошибки «Сервер не найден», мы не увидим. Исправим проблему добавлением новой записи в hosts :
В самом начале файла добавьте строку:
Обратите внимание, мы пишем только доменное имя без указания протокола (http). Сохраняем изменения ctrl+o и закрываем редактор nano сочетанием клавиш ctrl+ x.
Установка PHP
Последним компонентом в настройке рабочего окружения станет PHP.
Для начала давайте добавим новый репозиторий, который понадобится для установки свежей версии PHP. Этот репозиторий является официальным источником PHP-пакетов для Debian и Ubuntu:
sudo add-apt-repository ppa:ondrej/php
В окне терминала введите команду для установки php-fpm из репозитория.
sudo apt install php-fpm php-cli php-common php-json php-mysql php-phpdbg php-mbstring php-imap php-dev php-curl php-xdebug
Важно: обязательно обратите внимание на версию PHP. В зависимости от дистрибутива она может отличаться. Если номер версии отличается от той, что мы указали в конфигурационном файле yeticave.local , то необходимо её исправить.
Настройка xdebug
Вводим команду редактирования файла:
sudo nano /etc/php/8.1/mods-available/xdebug.ini
Добавляем в файл конфигурацию для xdebug:
xdebug.remote_enable=1 xdebug.remote_handler=dbgp xdebug.remote_mode=req xdebug.remote_host=localhost xdebug.remote_port=9000 xdebug.var_display_max_depth = -1 xdebug.var_display_max_children = -1 xdebug.var_display_max_data = -1 xdebug.idekey = "PHPSTORM":
Сохраняем изменения ctrl+o и закрываем редактор nano ctrl+x.
Внесём изменения в конфигурационный файл php, чтобы он выводил все ошибки в браузер, а не только в лог-файл.
sudo nano /etc/php/8.1/fpm/php.ini
Найдём, раскомментируем (уберём знак «;» или исправим значение) и установим значения для строк:
display_errors = On display_startup_errors = On error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
Сохраняем изменения ctrl+o, закрываем редактор ctrl+x.
Запускаем php-fpm . Выполняем команды:
sudo service php8.1-fpm stop sudo service php8.1-fpm start
Размещаем файлы проекта в директорию проекта. Директорию проекта вы указали в секции root , конфигурационного файла yeticave.local . Выставляем права:
sudo chmod -R 755 /home/administrator/www/yeticave.local
Открываем браузер и пробуем обратиться к http://yeticave.local.
«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.
How to install and configure PHP
PHP is a general-purpose scripting language well-suited for Web development since PHP scripts can be embedded into HTML. This guide explains how to install and configure PHP in an Ubuntu System with Apache2 and MySQL.
Prerequisites
Before installing PHP you should install Apache (or a preferred web server) and a database service such as MySQL.
- To install the Apache package, please refer to our Apache guide.
- To install and configure a MySQL database service, refer to our MySQL guide.
Install PHP
PHP is available on Ubuntu Linux, but unlike Python (which comes pre-installed), must be manually installed.
To install PHP – and the Apache PHP module – you can enter the following command into a terminal prompt:
sudo apt install php libapache2-mod-php
Install optional packages
The following packages are optional, and can be installed if you need them for your setup.
- PHP-CLI
You can run PHP scripts via the Command Line Interface (CLI). To do this, you must first install the php-cli package. You can install it by running the following command:
sudo apt install php-mysql
sudo apt install php-pgsql
Configure PHP
If you have installed the libapache2-mod-php or php-cgi packages, you can run PHP scripts from your web browser. If you have installed the php-cli package, you can run PHP scripts at a terminal prompt.
By default, when libapache2-mod-php is installed, the Apache2 web server is configured to run PHP scripts using this module. First, verify if the files /etc/apache2/mods-enabled/php8.*.conf and /etc/apache2/mods-enabled/php8.*.load exist. If they do not exist, you can enable the module using the a2enmod command.
Once you have installed the PHP-related packages and enabled the Apache PHP module, you should restart the Apache2 web server to run PHP scripts, by running the following command:
sudo systemctl restart apache2.service
Test your setup
To verify your installation, you can run the following PHP phpinfo script:
You can save the content in a file – phpinfo.php for example – and place it under the DocumentRoot directory of the Apache2 web server. Pointing your browser to http://hostname/phpinfo.php will display the values of various PHP configuration parameters.
Further reading
- For more in depth information see the php.net documentation.
- There are a plethora of books on PHP 7 and PHP 8. A good book from O’Reilly is Learning PHP, which includes an exploration of PHP 7’s enhancements to the language.
- Also, see the Apache MySQL PHP Ubuntu Wiki page for more information.