- Как установить PHP на Linux
- Настройка веб-сервера
- Установка PHP
- Настройка xdebug
- Php работа в linux
- Версии PHP в Ubuntu
- Варианты использования PHP
- Модуль для Apache
- Установка
- Настройка
- Проверка работы
- php-fpm
- Установка
- Настройка
- CLI
- Установка
- Настройка
- PHP расширения
- Установка
- Настройка
- Установка других версий PHP
- How to install and configure PHP
- Prerequisites
- Install PHP
- Install optional packages
- Configure PHP
- Test your setup
- Further reading
Как установить 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.
«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.
Php работа в linux
Начиная с версии Ubuntu 16.04 (Xenial Xerus) используется PHP версии 7. Информация о PHP версии 5 (в более ранних версиях Ubuntu) находится на странице PHP5.
PHP – скриптовый язык программирования общего назначения, интенсивно применяемый для разработки веб-приложений.
Версии PHP в Ubuntu
Ubuntu | PHP |
---|---|
12.04 LTS (Precise) | 5.3 |
14.04 LTS (Trusty) | 5.5 |
15.10 (Wily) | 5.6 |
16.04 LTS (Xenial) | 7.0 |
18.04 LTS | 7.2 |
Варианты использования PHP
Интерпретатор PHP поставляется в нескольких вариантах для разных способов запуска и использования PHP :
Модуль для Apache
Установка
sudo apt-get install libapache2-mod-php
Настройка
Файлы настройки PHP модуля для Apache располагаются в директории /etc/php/7.0/apache2 . Данная директория содержит:
После изменения файлов настройки PHP или изменения PHP -расширений требуется перезапуск сервера Apache:
sudo service apache2 reload
Проверка работы
В директории /var/www/html (или в корне любого другого виртуального хоста) создайте файл test.php и запишите в него следующую строку:
Теперь попробуйте в своем браузере перейти на созданную страницу http://localhost/test.php. Если вы видите описание установленного PHP , значит вы все настроили правильно.
php-fpm
FPM (менеджер процессов FastCGI) является альтернативной реализацией PHP FastCGI с несколькими дополнительными возможностями, обычно используемыми для высоконагруженных сайтов.
Установка
sudo apt-get install php-fpm sudo a2enmod proxy_fcgi sudo a2enconf php7.2-fpm.conf
Настройка
Файлы настройки PHP в виде модуля для Apache располагаются в директории /etc/php/7.0/fpm . Данная директория содержит:
После изменения файлов настройки PHP или изменения PHP -расширений требуется перезапуск FPM:
sudo service php7.0-fpm reload sudo systemctl restart apache2
CLI
CLI (интерпретатор командной строки) предоставляет возможность разрабатывать консольные приложения на PHP .
Установка
sudo apt-get install php-cli
Настройка
Файлы настройки CLI располагаются в директории /etc/php/7.0/cli . Данная директория содержит:
PHP расширения
Дополнительный функционал в PHP реализован с помощью расширений. Некоторые расширения могут сразу поставляться с интерпретатором, а некоторые расширения следует устанавливать дополнительно.
Установка
Для того, чтобы подключить к PHP необходимое расширение, надо установить его. Ниже показаны примеры установки некоторых расширений.
Подключение расширения GD:
sudo apt-get install php-gd
Подключение расширения MySQL:
sudo apt-get install php-mysql
Подключение расширения Mcrypt:
sudo apt-get install php-mcrypt
Настройка
Файлы настроек доступных расширений располагаются в директории /etc/php/7.0/mods-available . У каждого варианта запуска интерпретатора существует своя директория conf.d в которой находятся символьные ссылки на активные расширения.
Установка других версий PHP
Данный способ показывает, как установить версию PHP , не входящую в стандартные репозитории вашей версии Ubuntu. Для установки используются пакеты из PPA.
1. Посмотрите список установленных пакетов PHP для удаления ненужных:
dpkg -l | grep php| awk '' |tr "\n" " "
2. Добавьте PPA в список репозиториев:
sudo add-apt-repository ppa:ondrej/php sudo apt-get update
3. Установите вашу версию PHP .
Пример установки PHP версии 5.6:
sudo apt-get install php5.6
Пример установки некоторых модулей для PHP версии 5.6:
sudo apt-get install php5.6-mbstring php5.6-mcrypt php5.6-mysql php5.6-xml
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.