PHP: Инструкции по установке на Debian GNU/Linux
Change language: EnglishBrazilian PortugueseChinese (Simplified)FrenchGermanJapaneseRussianSpanishTurkishOther
Submit a Pull Request Report a Bug
Раздел содержит информацию и подсказки, относящиеся к установке PHP на » Debian GNU/Linux.
Внимание
Неофициальные сборки от третьих лиц не поддерживаются. О любых ошибках следует сообщать разработчикам Debian, но перед этим стоит проверить, возможно они уже исправлены в новых релизах, которые можно скачать на » странице загрузки.
Хотя и существует универсальная инструкция по установке PHP на Unix/Linux,
в этом разделе мы рассмотрим особенности специфичные для Debian,
такие как использование команд apt
или aptitude
.
В рамках этого руководства обе эти команды рассматриваются как взаимозаменяемые.
Использование APT
Во первых, обратите внимание на то, что некоторые пакеты связаны:
нужен для интеграции с Apache 2, и php-pear
с PEAR.
Во-вторых, перед установкой убедитесь, что список пакетов находится в актуальном состоянии. Как правило, это делается с помощью команды apt update.
Пример #1 Пример установки Apache 2 на Debian
# apt install php-common libapache2-mod-php php-cli
APT автоматически установит модуль PHP для Apache 2 и все их зависимости и, затем, активирует их. Apache должен быть перезапущен для того, чтобы изменения вступили в силу. Например:
Пример #2 Остановка и запуск Apache после установки PHP
# /etc/init.d/apache2 stop # /etc/init.d/apache2 start
Контроль конфигурации
Изначально, PHP устанавливается только с основными модулями ядра.
Если вы хотите установить дополнительные модули, такие как
MySQL,
cURL,
GD и т.д., это также можно сделать с помощью
команды apt
.
Пример #3 Способы получить список дополнительных пакетов PHP
# apt-cache search php # apt search php | grep -i mysql # aptitude search php
Будет выведен список большого числа пакетов, включая несколько
специфичных, таких как php-cgi, php-cli and php-dev. Определите, какие вам нужны
и установите с помощью
или aptitude
.
И, так как Debian производит проверку зависимостей, вам будет выведен запрос
на их установку.
Пример #4 Установка PHP с MySQL и cURL
# apt install php-mysql php-curl
APT автоматически добавит необходимые строки в соответствующие php.ini, /etc/php/7.4/php.ini, /etc/php/7.4/conf.d/*.ini, и т.д. В зависимости от модуля, будут
внесены записи типа extension=foo.so
.
В любом случае, чтобы эти изменения вступили в силу, необходимо будет перезапустить
сервер веб-сервер.
Стандартные проблемы
- Если скрипты PHP не разбираются веб-сервером, то скорее всего это означает,
что PHP не был добавлен в конфигурацию веб-сервера. На Debian это
обычно
- Модуль, по-видимому, установлен, а его функции всё равно не распознаются. В таком случае убедитесь, что соответствующий ini-файл был загружен и/или веб-сервер был перезагружен после установки модуля.
- Для установки пакетов в Debian существуют две основных команды (не считая стандартных
вариантов Linux):
иaptitude
. Объяснения их синтаксиса, особенностей и отличий друг от друга выходит за рамки данного руководства.
+add a note
User Contributed Notes 6 notes
up
down
61
thumbs at apache dot org ¶
9 years ago
Specifically, the preferred method is now fastcgi, using either of those recipes: (mod_fastcgi, httpd 2. To refresh this document, perhaps it would be worth mentioning more modern methods to serve php content under apache httpd.
http://wiki.apache.org/httpd/php-fastcgi
(mod_fcgid, httpd 2.2)
http://wiki.apache.org/httpd/php-fcgid
(mod_proxy_fcgi, httpd 2.4)
http://wiki.apache.org/httpd/PHP-FPM
While the legacy mod_php approach is still applicable for some older installations, the fastcgi method is much faster, and require much less RAM to operate, based on similar traffic patterns.
Thank you!
up
down
38
kearney dot taaffe at gmail dot com ¶
4 years ago
If you would like to compile PHP from source as opposed to relying on package maintainers, here's a list of packages, and commands you can run STEP 1: So you don't overwrite any existing PHP installs on your system, install PHP in your home directory. Create a directory for the PHP binaries to live mkdir -p ~/bin/php7-latest/ STEP 2: STEP 3: ./configure --prefix=$HOME/bin/php-latest \ Compiling PHP on Ubuntu boxes.
sudo apt-get install autoconf build-essential curl libtool \
libssl-dev libcurl4-openssl-dev libxml2-dev libreadline7 \
libreadline-dev libzip-dev libzip4 nginx openssl \
pkg-config zlib1g-dev
# download the latest PHP tarball, decompress it, then cd to the new directory.
Configure PHP. Remove any options you don't need (like MySQL or Postgres (--with-pdo-pgsql))
--enable-mysqlnd \
--with-pdo-mysql \
--with-pdo-mysql=mysqlnd \
--with-pdo-pgsql=/usr/bin/pg_config \
--enable-bcmath \
--enable-fpm \
--with-fpm-user=www-data \
--with-fpm-group=www-data \
--enable-mbstring \
--enable-phpdbg \
--enable-shmop \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-zip \
--with-libzip=/usr/lib/x86_64-linux-gnu \
--with-zlib \
--with-curl \
--with-openssl \
--enable-pcntl \
--with-readline
STEP 4:
compile the binaries by typing: make
If no errors, install by typing: make install
STEP 5:
Copy the PHP. ini file to the install directory
cp php.ini-development ~/bin/php-latest/lib/
STEP 6:
cd ~/bin/php-latest/etc;
mv php-fpm.conf.default php-fpm.conf
mv php-fpm.d/www.conf.default php-fpm.d/www.conf
STEP 7:
create symbolic links for your for your binary files
cd ~/bin
ln -s php-latest/bin/php php
ln -s php-latest/bin/php-cgi php-cgi
ln -s php-latest/bin/phpize phpize
ln -s php-latest/bin/phar.phar phar
ln -s php-latest/bin/pear pear
ln -s php-latest/bin/phpdbg phpdbg
ln -s php-latest/sbin/php-fpm php-fpm
STEP 8: link your local PHP to the php command. You will need to logout then log back in for php to switch to the local version instead of the installed version
# add this to .bashrc
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
STEP 9: Start PHP-FPM
sudo ~/bin/php7/sbin/php-fpm
up
down
-16
marin at sagovac dot com
8 years ago
Install taskel, follow terminal guides: Install LAMP stack package from Ubuntu repository: To install LAMP stack on Ubuntu (+Server) from 10. 04 you need first install taskel and then lamp-server for example:
sudo apt-get install tasksel
sudo tasksel install lamp-server
up
down
-24
juraj at jurajsplayground dot com ¶
13 years ago
On Ubuntu (since 7.04), rather do:
sudo tasksel install lamp-server
https://help.ubuntu.com/community/ApacheMySQLPHP
up
down
-27
John Fisher ¶
15 years ago
It overrides the conf file in the way you expect the /etc/apache2/conf. d/apache2-doc to do according to the README. Add ExecCGI to it to get rid of "Options ExecCGI is off in this directory" errors. With Apache2 and Php4 under Debian Sarge there is an extra configuration file : /etc/apache2/sites-available/default
This file is not clearly documented, at least not for noobs, in Apache docs.
up
down
-41
tranzbit at yahoo dot com ¶
13 years ago
sudo apt-get install apache2 php5 mysql-client-5.0 mysql-server-5.0 phpmyadmin libapache2-mod-php5 libapache2-mod-auth-mysql php5-mysql then restart the computer/start mysql manually On Ubuntu:
From:
http://ubuntuforums.org/showthread.php?t=186492
+add a note
Настройка PHP
Значения переменных выделены цветами:
- Красный — параметры, значения которых не определены в конфигурационном файле PHP и получены непосредственно от самого интерпретатора PHP.
- Зелёный — параметры, значения которых определены в глобальном конфигурационном файле PHP для администратора и в пользовательском для пользователя.
- Синий — параметры, значения которых не определены.
- Жёлтый — параметры, значения которых доступны пользователю только для чтения.
Изменение значений переменных
Чтобы изменить значение переменной:
Под администратором перейдите в Настройки → Настройки PHP → Расширенные настройки. Под пользователем перейдите в WWW → PHP → Расширенные настройки.
- Выделите переменную и нажмите Изменить.
- Укажите новое Значение переменной.
Глобальный конфигурационный файл настроек хранится в:
- CentOS: /etc/php.ini для нативной версии PHP и в /opt/<версия PHP>/etc/php.ini для альтернативных версий.
- Debian: для каждого режима работы PHP индивидуальный файл. /etc/php5/apache2/php.ini, /etc/php5/cgi/php.ini и/etc/php5/fpm/php.ini.
Пользовательские конфигурационные файлы хранятся в /var/www/<директория php-bin версии PHP>/<владелец WWW-домена>/php.ini. Настройки, которые изменял пользователь, хранятся в этой же директории в конфигурационном файле изменённых параметров .php.ini.
Чтобы изменить пользовательские конфигурационные файлы вручную, отредактируйте файл php.ini и продублируйте изменения в файле /var/www/<владелец WWW-домена>/data/<директория php-bin версии PHP>/.php.ini.
Шаблон создания конфигурационных файлов
Файл /usr/local/mgr5/etc/templates/php.ini используется как шаблон создания пользовательских конфигурационных файлов. При создании нового пользователя настройки PHP для него изменяются в соответствии с шаблоном. По умолчанию шаблон содержит строки:
Шаблон пользовательских конфигурационных файлов
session.save_path = "$HOMEDIR/bin-tmp/" upload_tmp_dir = "$HOMEDIR/bin-tmp/" sendmail_path = /usr/sbin/sendmail -t -i -f webmaster@example. com
BASH
Пояснения
$HOMEDIR — макрос, который при создании пользователя заменяется на его домашнюю директорию.
Применение настроек для режимов работы PHP «CGI» и «FastCGI (Apache)»
Если пользователь ISPmanager сохраняет изменения настроек PHP:
- Изменённые значения переменных записываются в конфигурационный файл изменённых параметров.
- Содержимое пользовательского конфигурационного файла полностью заменяется на содержимое глобального файла.
- Значения из конфигурационного файла изменённых параметров заменяют соответствующие значения в пользовательском конфигурационном файле.
Если администратор ISPmanager сохраняет изменения настроек PHP:
- Значения записываются в глобальный конфигурационный файл.
- Для каждого пользователя ISPmanager:
- Содержимое пользовательского конфигурационного файла полностью заменяется на содержимое глобального файла.
- Значения из конфигурационного файла изменённых параметров пользователя заменяют соответствующие значения в пользовательском конфигурационном файле.
Применение настроек для режима работы PHP «FastCGI (Nginx + PHP-FPM)»
Если пользователь ISPmanager сохраняет изменения настроек PHP, изменённые значения переменных записываются в конфигурационный файл PHP-FPM пользователя соответствующей версии PHP.
Если администратор ISPmanager сохраняет изменения настроек PHP, изменённые значения переменных записываются в глобальный конфигурационный файл PHP-FPM соответствующей версии PHP.
Если настройки PHP изменены для конкретного сайта, изменённые значения переменных сохраняются в директории:
для альтернативных версий PHP —/opt/php<version>/etc/php-fpm.d/;
Пояснения
<version> — версия PHP. Например, для PHP 5.4 конфигурационные файлы сайта находится в директории /opt/php54/etc/php-fpm.d/.
для нативных версий PHP в ОС CentOS — /etc/php-fpm.d/;
для нативных версий PHP в ОС Ubuntu, Debian — /etc/php/<version>/fpm/.
Пояснения
<version> — версия PHP. Например, для PHP 7.0 конфигурационные файлы сайта находится в директории /etc/php/7.0/fpm/.
Чтобы сохранить настройки PHP для конкретного сайта, панель управления создаёт поддиректории:
/user.d — содержит конфигурационные файлы PHP с настройками пользователя;
/site.d — содержит конфигурационные файлы PHP с настройками для сайта;
/pool.d — содержит конфигурационные файлы пула PHP-FPM.
Чтобы панель управления не создавала отдельные настройки PHP-FPM для каждого сайта, добавьте в конфигурационный файл ISPmanager строку:
Option DisableFpmPerSite
CODE
Применение настроек для режима работы PHP «модуль Apache»
Пользователь не имеет доступа к изменению настроек PHP для этого режима.
Если администратор ISPmanager сохраняет изменения настроек PHP, изменённые значения переменных записываются в глобальный конфигурационный файл модуля Apache соответствующей версии PHP.
Первоначальная настройка PHP
Чтобы упростить первоначальную настройку PHP основные параметры сгруппированы:
- Перейдите в Настройки → Настройки PHP → Расширенные настройки → Основные.
- Выберите Временную зону, которая будет использоваться по умолчанию всеми функциями даты и времени. Указывается в переменной «date.timezone».
- Укажите Время выполнения PHP-скрипта в секундах. Если за это время загрузка скрипта не происходит, его работа завершается. Указывается в переменной «max_execution_time».
- Укажите ограничение на Макс. размер запроса в МиБ. Оно определяет максимально допустимый размер данных, отправляемых методом POST. Указывается в переменной «post_max_size».
- Укажите ограничение на Макс. размер файлов в МиБ. Оно определяет максимальный размер загружаемых с помощью PHP-скриптов файлов. Указывается в переменной «upload_max_filesize».
- Укажите Лимит памяти в МиБ. Он определяет максимальный объём оперативной памяти, который может использовать PHP-скрипт. Указывается в переменной «memory_limit».
- Чтобы выводить сообщения об ошибках вместе с остальным выводом PHP-скрипта, включите опцию display_errors. Рекомендуем использовать эту опцию только для отладки скриптов и отключать её после завершения работы.
Чтобы ISPmanager вёл журнал работы PHP-скриптов, включите опцию log_errors. Настройте список ошибок, записываемых в журнал. Для этого включите опцию Вывод всех ошибок и в поле Выбор флагов для игнорирования при выводе ошибок выберите исключения, которые не будут записываться.
Пояснения
В конфигурационный файл php.ini добавляются строки вида:
Конфигурационный файл php.ini
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT.
BASH
Пояснения
E_ALL — включает вывод всех ошибок.
& ~E_DEPRECATED & ~E_STRICT — исключаемые ошибки, указанные через «& ~».
Или отключите опцию Вывод всех ошибок и в поле Выбор флагов для вывода ошибок выберите ошибки, которые будут записываться в журнал.
Пояснения
В конфигурационный файл php.ini добавятся строки вида:
Конфигурационный файл php.ini
error_reporting = E_ERROR | E_NOTIC
BASH
Пояснения
E_ERROR | E_NOTIC — журналируемые ошибки, указанные через » | «.
Восстановление значения переменной
Чтобы восстановить значение переменной под администратором:
- Нажмите Настройки → Настройки PHP → Расширенные настройки → Восстановить.
- Изменённое значение удаляется из глобального конфигурационного файла PHP.
- Для каждого пользователя ISPmanager:
- Содержимое пользовательского конфигурационного файла полностью заменяется на содержимое глобального файла.
- Значения из конфигурационного файла изменённых параметров пользователя заменяют соответствующие значения в пользовательском конфигурационном файле.
Чтобы восстановить значение переменной под пользователем:
- Нажмите WWW → PHP → Расширенные настройки → Восстановить.
- Изменённое значение удаляется из пользовательского конфигурационного файла PHP.
Как установить PHP на Linux — Блог HTML Academy
Настроить рабочее окружение для разработки на PHP в Linux возможно несколькими способами. Рассмотрим один из наиболее быстрых: настройка связки PHP и nginx.
Запустите приложение «Терминал». Ярлык на запуск доступен в менеджере приложений. Сначала обновим локальный индекс пакетов APT.
sudo apt-get update
Настройка веб-сервера
Для работы с PHP нам потребуется веб-сервер. В репозиториях доступно несколько популярных веб-серверов, мы отдадим предпочтение nginx. Он хорошо работает и легко настраивается.
sudo apt-get install nginx
Затем запустим nginx. Запомните эту команду. Она пригодится для добавления новых виртуальных хостов.
sudo service nginx start
nginx установлен и теперь нам требуется выполнить базовое конфигурирование. Наша цель — создать новый виртуальный хост, который будет доступен по адресу yourproject.local
, где вместо yourproject
может быть название вашего проекта.
Например: doingsdone.local
, yeticave.local
.
Обратите внимание, имена доменов не могут содержать пробелы. Определитесь с именем домена (далее «имя хоста для проекта»). Мы будем ориентироваться на проект yeticave.local
, поэтому именно так будем называть конфигурационный файл. Перейдите в директорию sites-available
. В этой директории nginx хранит конфигурационные файлы всех виртуальных хостов.
cd /etc/nginx/sites-available
Чтобы увидеть список всех доступных виртуальных хостов, выведите содержимое каталога:
ls -all
Название конфигурационного файла должно совпадать с именем хоста. Поскольку мы планируем сделать конфигурационный файл для хоста yeticave.local
, нам потребуется создать файл yeticave.local
. Сделаем это:
sudo touch yeticave.local
Файл готов, теперь откроем его в консольном редакторе nano (установлен по умолчанию в большинстве современных дистрибутивов) и опишем минимальную конфигурацию.
sudo nano yeticave.local
Скопируйте в открытый файл yeticave.local
ниже приведённый конфигурационный файл. Информацию обо всех непонятных строках вы сможете почерпнуть из официальной документации к nginx.
server { # Наш проект будет доступен на 80 порту listen 80; # Имя виртуального хоста server_name yeticave.local; # Корневая директория проекта. root /home/administrator/www/yeticave.local; # Имя индексного файла. index index.php; # Настройки отдачи файлов location ~* \. (.+\.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.
Протестируем созданный конфигурационный файл на наличие ошибок:
sudo nginx -t
Мы создали конфигурационный файл. Теперь активируем только что созданный виртуальный хост. Для этого перейдём в директорию sites-enabled
и создадим в ней символическую ссылку на наш конфигурационный файл.
cd /etc/nginx/sites-enabled/ sudo ln -s /etc/nginx/sites-available/yeticave.local
Если на текущем шаге попытаться открыть браузер и ввести в адресной строке http://yeticave.local
, то ничего, кроме ошибки «Сервер не найден», мы не увидим. Исправим проблему добавлением новой записи в hosts
:
sudo nano /etc/hosts
В самом начале файла добавьте строку:
127.0.0.1 yeticave.local
Обратите внимание, мы пишем только доменное имя без указания протокола (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 на интерактивном тренажёре.
Попробовать
Тюнинг PHP-FPM. Введение / Хабр
БОНУС: в нашем подкасте мы обсудили эту тему с экспертом, членом сообщества PHP программистов: https://share.transistor.fm/s/6a8637ba
PHP-FPM (или FastCGI Process Manager) имеет по сравнению с mod_php несколько преимуществ, из которых самые очевидные — он более гибок в настройке, и в настоящее время сообщество отдает предпочтение именно этому режиму работы PHP. Однако, если вы используете дефолтную конфигурацию от вашего диспетчера пакетов, то, скорее всего, вы не получите максимум выгоды от его использования.
В этой статье я представлю краткий обзор того, как улучшить производительность PHP-FPM, сконцентрировав ваше внимание на трех типах менеджеров процессов PHP-FPM и том, какой и когда лучше использовать.
PHP-FPM может использовать один из трех режимов управления процессами:
static
dynamic
ondemand
Сейчас мы подробнее рассмотрим, что представляет собой каждый из них.
Static
Static гарантирует, что обработка пользовательских запросов всегда доступна фиксированному количеству дочерних процессов. Оно устанавливается с помощью pm.max_children. В этом режиме запросам не нужно ждать запуска новых процессов, что делает его самым быстрым подходом.
Предположим, что вы выбрали static конфигурацию с постоянно доступными 10 дочерними процессами, тогда вам нужно настроить ее в /etc/php/7.2/fpm/pool.d/www.conf
(при условии, что вы используете дефолтную конфигурацию Debian/Ubunut для PHP-FPM) следующим образом:
pm = static pm.max_children = 10
Чтобы проверить результат внесенных изменений запустите pstree -c -H <PHP-FPM process id> -S <PHP-FPM process id>
после перезапуска PHP-FPM. Вы увидите, как в примере ниже, что доступно десять процессов.
php-fpm7.2-+-php-fpm7.2 |-php-fpm7.2
|-php-fpm7.2 |-php-fpm7.2 |-php-fpm7.2 |-php-fpm7.2 |-php-fpm7.2 |-php-fpm7.2 |-php-fpm7.2 `-php-fpm7.2
Dynamic
В этом режиме PHP-FPM динамически регулирует количество доступных дочерних процессов и гарантирует постоянную доступность хотя бы одного из них.
Данная конфигурация задействует пять параметров:
pm.min_spare_servers
: минимальное количество бездействующих дочерних процессов, которые создает PHP-FPM. Если доступно меньше, чем это число, то создаются другие процессы.
pm.max_spare_servers
: максимальное количество бездействующих дочерних процессов, которые создает PHP-FPM. Если доступно больше дочерних процессов, чем здесь указано, некоторые из них будут “убиты”.
Теперь самое интересное; как рассчитать значения для каждой настройки? Sebastian Buckpesch, предлагает следующую формулу:
Настройка | Значение |
max_children | (Общий объем оперативной памяти — Память используемая для Linux, базы данных и т.д.) / Размер процесса |
start_servers | Количество ядер процессора х 4 |
min_spare_servers | Количество ядер процессора х 2 |
max_spare_servers | То же, что и для start_servers |
Мы также должны установить параметр pm.process_idle_timeout
— количество секунд, по истечении которых бездействующий процесс будет убит.
Допустим, у нашего сервера два процессора, каждый по четыре ядра, и 8 ГБ оперативной памяти. Если предположить, что Linux и связанные с ним демоны используют около 2 ГБ (для получения более конкретного значения можно использовать free -hl
), то у нас останется около 6192 МБ.
Как узнать, сколько памяти использует каждый процесс? Чтобы вычислить это, есть скрипт Python под названием ps_mem.py. После его запуска с помощью sudo python ps_mem.py | grep php-fpm
, вы получите следующий результат:
28.4 MiB + 33.8 MiB = 62.2 MiB php-fpm7.2 (11)
Первый столбец — это собственная память. Второй столбец — общая память. Третий столбец — это общий объем используемой оперативной памяти. Четвертый столбец — это наименование процесса.
Исходя из вышеизложенного, понятно, что размер процесса составляет 62,2 МБ. Итак, введя все эти значения в нашу формулу, мы получим следующий результат:
# Round the result up. (8192 - 2000) / 62.2
Исходя из этого, мы получаем следующие значения для наших настроек:
Настройка | Значение |
max_children | 100 |
start_servers | 32 |
min_spare_servers | 16 |
max_spare_servers | 32 |
Мы оставим pm. process_idle_timeout
равным значению по умолчанию в 10s. Предположим, что нас устраивают эти настройки. Мы бы выполнили их конфигурацию следующим образом:
pm = dynamic pm.max_children = 100 pm.start_servers = 32 pm.min_spare_servers = 16 pm.max_spare_servers = 32 pm.max_requests = 200
Для отслеживания количества памяти, которое использует ваше приложение, вы можете регулярно использовать инструменты мониторинга памяти. Для PHP доступно несколько опций, включая php-memprof и Tideways.
ondemand
ondemand заставляет PHP-FPM форкать процессы при получении запросов. Чтобы настроить PHP-FPM для его использования, нам нужно установить pm
в режим dynamic
и предоставить значения для следующих настроек:
max_requests
устанавливает количество запросов, которые каждый дочерний процесс должен выполнить перед респауном. В документации говорится, что эта настройка нужна для решения проблем с утечками памяти.
Предположим, что мы берем те же настройки, что и для режима dynamic
. Конфигурация выглядела бы следующим образом:
pm = ondemand pm.max_children = 100 pm.process_idle_timeout = 10s pm.max_requests = 200
Какая конфигурация подойдет вам?
Если честно, ответ на этот вопрос: «смотреть надо по ситуации», поскольку это всегда зависит от типа приложений, которые вы запускаете. Однако все же есть несколько рекомендаций относительно того, какую конфигурацию выбрать.
Сайт с низким трафиком
Если у вас сайт с низким трафиком, например такой, который содержит бэкендскую панель управления хостингом, скажем cPanel, используйте ondemand. Таким образом, вы выиграете в памяти, поскольку дочерние процессы будут создаваться только по необходимости, и завершаться, когда они больше не нужны. Поскольку это бэкенд, пользователи могут подождать на пару секунд дольше, пока не появится поток для обработки их запроса.
Сайт с высоким трафиком
Если у вашего сайта высокая посещаемость, используйте static и выставляйте настройки в зависимости от ваших потребностей и имеющихся аппаратных ресурсов. Может показаться, что ни к чему такое большое количество дочерних процессов готовых к приему запросов.
Однако сайты с высоким трафиком должны иметь как можно меньшее время ответа, поэтому использование режима static крайне важно для наличия достаточного количества готовых к работе дочерних процессов.
В режиме ondemand дочерние процессы, скорее всего, будут расходовать слишком много памяти, порождая и убивая потоки, и задержка запуска снизит производительность.
В режиме dynamic все может быть не так плохо, все зависит от конфигурации. Однако вы можете в итоге получить конфигурацию, которая по сути копирует static.
Использование нескольких пулов для фронтенда/бэкенда
И последняя рекомендация: обслуживайте фронтенд и бэкенд вашего сайта, используя разные пулы. Допустим, у вас есть интернет-магазин, например, на платформе Magento. Вы можете рассматривать приложение как состоящее из двух частей:
Бэкенд, где администраторы управляют магазином (например, добавляют/удаляют продукты, категории и теги, а также проверяют рейтинги).
При таком подходе, целесообразно иметь один пул, который обслуживает фронтенд, а другой — бэкенд, и настраивать каждый соответствующим образом.
Как бы то ни было, вы можете разделить любое приложение на несколько частей, используя эту стратегию, если это имеет смысл. Вот как это сделать.
Добавьте в /etc/php/7.2/fpm/pool.d/www.conf
следующую конфигурацию:
; frontend [frontend] listen = /var/run/php-fpm-frontend.sock user = www-data group = www-data listen.owner = www-data listen.group = www-data pm = static pm.max_children = 5 ; backend [backend] listen = /var/run/php-fpm-backend.sock user = www-data group = www-data listen.owner = www-data listen.group = www-data pm = ondemand pm.max_children = 5 pm.process_idle_timeout = 10s
Это создаст два пула: один для фронтенда, а другой — для бэкенда. Оба имеют одного и того же пользователя и группу, но имеют разные конфигурации менеджера процессов и подключены через разные сокеты.
Пул фронтенда использует static
конфигурацию с небольшим максимальным количеством дочерних процессов. (.+.php)(/.+)$; fastcgi_pass $fpm_socket; fastcgi_index index.php; include fastcgi.conf; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } } }
Это создаст конфигурацию виртуального хоста, которая отправляет запросы в пул фронтенда или бэкенда в зависимости от запрошенной локации. Любые запросы к /api отправляются в пул бэкенда, а все остальные запросы направляются во фронтенд.
В заключение
Что ж, это было быстрое введение в тюнинг PHP-FPM в целях повышения производительности. Мы рассмотрели три различных режима работы менеджера процессов, их настройки и обсудили, когда использование каждого из режимов уместно. Мы закончили рассмотрением юзкейса с пулами. Спасибо за внимание!
Материал подготовлен в рамках курса «PHP Developer. Professional». Если вам интересно узнать подробнее о формате обучения и программе, познакомиться с преподавателем курса — приглашаем на день открытых дверей онлайн. Регистрация здесь.
Можно ли устанавливать собственные настройки php.ini? — Вопросы и ответы — Джино
Можно ли устанавливать собственные настройки php.ini? — Вопросы и ответы — ДжиноУ нас PHP работает как модуль Apache, и поэтому невозможно использовать свой php.ini. Для использования собственного php.ini вы можете запустить PHP в режиме CGI.
Однако большую часть настроек можно изменить, не запуская PHP в режиме CGI — с помощью .htaccess и через раздел «Хостинг / Управление / Настройки веб сервера / Настройки PHP» в контрольной панели вашего аккаунта.
- Что такое PHP?
- Какая версия PHP работает на хостинге?
- Можно ли на разных сайтах использовать PHP разных версий?
- Как узнать текущие установки PHP?
- Какой путь к исполняемому файлу интерпретатора PHP?
- PHP установлен как модуль Apache или как CGI?
- PHP на вашем хостинге работает в режиме Safe Mode?
- Как заставить html-страницы обрабатывать PHP код?
- Установлен ли у вас модуль РНР сURL?
- Как выключить отображение ошибок PHP?
- Какой размер оперативной памяти используется под PHP-приложения?
- Как увеличить объем загружаемого файла через скрипты?
- Почему вместо результатов работы PHP-скрипта я вижу лишь пустую белую страницу?
- Почему вместо результатов работы PHP-скрипта скачивается файл index. php?
- Какие директивы php.ini можно настроить с помощью .htaccess?
- Как включить параметр allow_call_time_pass_reference?
- Как включить параметр register_globals?
- Возможно ли использовать функции для работы с IMAP в PHP?
- У вас установлен модуль ionCube?
- Как изменить часовой пояс на сайте?
- Как запустить PHP в режиме CGI?
Пример: Как подключить SSH
Нашли ошибку в тексте? Выделите ее и нажмите Ctrl + Enter
+7 495 229-30-31 Москва
+7 812 407-17-11 Санкт-Петербург
+7 343 288-50-31 Екатеринбург
Показать все
© Джино, 2003–2022. «Джино» является зарегистрированным товарным знаком.
Лицензия на телематические услуги связи № 150549 от 09.03.2017.
Правовая информацияПолитика конфиденциальности
Карта сайта
PHP: введение и настройка среды
PHP (препроцессор гипертекста) — это язык программирования, который позволяет веб-разработчикам создавать динамический контент, взаимодействующий с базами данных. PHP в основном используется для разработки веб-приложений.
Зачем изучать PHP?
PHP возник как небольшой проект с открытым исходным кодом. Он развивался по мере того, как все больше людей понимали, насколько он полезен. Расмус Лердорф выпустил первую версию PHP еще в 1994 году.
PHP необходим студентам и начинающим программистам. Особенно он полезен специалистам, занятым в сфере веб-разработки. Перечислим ключевые преимущества изучения PHP:
- PHP — это серверный язык скриптов, встроенный в HTML. Он используется для управления динамическим контентом, базами данных, отслеживания сеансов и даже создания целых сайтов электронной коммерции.
- PHP интегрирован с рядом популярных баз данных, включая MySQL, PostgreSQL, Oracle, Sybase, Informix и Microsoft SQL Server.
- PHP поразительно оперативен в своем исполнении, особенно когда скомпилирован как модуль Apache на стороне Unix. Сервер MySQL после запуска выполняет за рекордно короткое время даже очень сложные запросы с огромными наборами результатов.
- PHP поддерживает большое количество основных протоколов, таких как POP3, IMAP и LDAP. В PHP4 добавлена поддержка Java и архитектуры распределенных объектов (COM и CORBA), что впервые сделало возможным многоуровневую разработку.
- PHP лоялен: этот язык отличается большой степенью снисходительности к погрешностям пользователей.
- Синтаксис PHP похож на C.
Характеристики PHP
Широкое практическое применение PHP обусловили пять важных характеристик этого языка:
- простота;
- эффективность;
- безопасность;
- гибкость;
- доступность.
Скрипт “Hello, World” на PHP
Чтобы получить представление о PHP, начнем с простых PHP-скриптов. Создадим “Hello, World!”.
Как упоминалось ранее, PHP встроен в HTML. Это означает, что в стандартном HTML (или XHTML, если вы продвинутый программист) будут такие операторы PHP:
<html> <head> <title>Hello World</title> </head> <body> <?php echo "Hello, World!";?> </body> </html>
Результат:
Hello, World!
Если вы внимательно изучите HTML-вывод приведенного выше примера, вы заметите, что PHP-код отсутствует в файле, отправленном с сервера в браузер. Весь PHP, присутствующий на веб-странице, обрабатывается и удаляется со страницы. Единственное, что возвращается клиенту с веб-сервера, — это чистый вывод HTML.
Весь PHP-код должен быть включен в один из трех специальных тегов разметки, которые распознаются парсером PHP:
<?php PHP code goes here ?>
<? PHP code goes here ?>
<script language = "php"> Здесь помещается PHP-код </script>
Наиболее распространенным тегом является <?php…?>
, поэтому мы использовали его в нашем руководстве.
Возможности PHP
Как упоминалось ранее, PHP является одним из наиболее широко используемых языков в Интернете. Вот основные сферы его применения:
- Выполняет системные функции, т.е. может создавать, открывать, читать, записывать и закрывать файлы в системе.
- Может обрабатывать формы, т. е. собирать данные из файлов, сохранять их в файле, пересылать по электронной почте, возвращать пользователю.
- С помощью PHP можно добавлять, удалять и изменять элементы в базе данных.
- Обеспечивает доступ к переменным файлов cookie и настройку файлов cookie.
- Используя PHP, владелец сайта может ограничить доступ пользователей к некоторым страницам.
- Позволяет шифровать данные.
Предварительные условия
Прежде чем приступить к изучению данного руководства, вы должны получить хотя бы базовое представление о компьютерном программировании, Интернете, базах данных, MySQL и т. д.
Настройка среды PHP
Чтобы разрабатывать и запускать веб-страницы на PHP, убедитесь в том, что на вашем компьютере установлены три основных компонента:
- Веб-сервер: PHP работает практически со всеми веб-серверами, включая Internet Information Server (IIS) от Microsoft, но чаще всего используется свободно распространяемый сервер Apache. Скачать Apache бесплатно можно здесь — https://httpd.apache.org/download.cgi.
- База данных: PHP работает практически со всеми базами данных, включая Oracle и Sybase, но чаще всего используется свободно распространяемая база данных MySQL. Скачать MySQL бесплатно можно здесь — https://www.mysql.com/downloads/.
- Парсер PHP: для обработки инструкций PHP-скрипта необходимо установить парсер для генерации HTML-вывода, который может быть передан в веб-браузер. В этом руководстве вы узнаете, как установить парсер PHP на свой компьютер.
Установка парсера PHP
Прежде чем приступить к работе, необходимо убедиться, что на вашем компьютере настроена соответствующая среда для разработки веб-программ на PHP.
Введите следующий адрес в адресную строку браузера: http://127.0.0.1/info.php
Если откроется страница с информацией об установке PHP, значит, PHP и веб-сервер установлены правильно. Иначе вам необходимо установить PHP на компьютер, следуя инструкции на сайте https://www. php.net/manual/ru/install.php
Настройка Apache
Если вы используете Apache в качестве веб-сервера, то этот раздел поможет вам отредактировать файлы конфигурации Apache.
Конфигурация файла PHP.INI
Файл конфигурации PHP — php.ini — является завершающим и наиболее действенным шагом для настройки функциональности PHP.
Конфигурация IIS для Windows
Для настройки IIS на компьютере с установленной системой Windows обратитесь к справочному руководству по IIS, поставляемому вместе с IIS: https://docs.microsoft.com/ru-ru/iis-administration/getting-started
Читайте также:
- Основы синтаксиса PHP
- Как находить уязвимости в коде на PHP?
- PHP 8.1 уже обещает стать одним из лучших релизов
Читайте нас в Telegram, VK и Яндекс.Дзен
Читайте также
Установка — 4.x
У CakePHP есть несколько системных требований:
HTTP-сервер. Например: Апач. Наличие mod_rewrite предпочтительнее, но ни в коем случае не требуется. Вы также можете использовать nginx или Microsoft IIS, если хотите.
Минимум PHP 7.4 (поддерживается 8.1 ).
mbstring Расширение PHP
международное расширение PHP
PHP-расширение SimpleXML
Расширение PDO PHP
Примечание
В XAMPP включено расширение intl, но вы должны раскомментировать extension=php_intl.dll
(или extension=intl
) в php.ini и перезапустить сервер через
панель управления XAMPP.
В WAMP расширение intl по умолчанию «активировано», но не работает. Чтобы это работало, вам нужно перейти в папку php (по умолчанию) C:\wamp\bin\php\php{version} , скопируйте все файлы, которые выглядят как icu*.dll и вставьте их в каталог apache bin C:\wamp\bin\apache\apache{версия}\bin . Затем перезапустите все службы и должно быть нормально.
Хотя ядро базы данных не требуется, мы полагаем, что большинство приложений использовать один. CakePHP поддерживает различные механизмы хранения баз данных:
MySQL (5.6 или выше)
MariaDB (5.6 или выше)
PostgreSQL (9.4 или выше)
Microsoft SQL Server (2012 или выше)
SQLite 3
База данных Oracle поддерживается через Драйвер для базы данных Oracle плагин сообщества.
Примечание
Все встроенные драйверы требуют PDO. Вы должны убедиться, что у вас есть правильный Установлены расширения PDO.
Установка CakePHP
Перед запуском убедитесь, что ваша версия PHP обновлена:
php -v
У вас должен быть PHP 7.4 (CLI) или выше. Версия PHP вашего веб-сервера также должна быть 7.4 или выше. та же версия, которую использует ваш интерфейс командной строки (CLI).
Установка Композитора
CakePHP использует Composer, инструмент управления зависимостями, как официально поддерживаемый метод установки.
Установка Composer на Linux и macOS
Запустите сценарий установки, как описано в официальная документация Composer и следуйте инструкциям по установке Composer.
Выполните следующую команду, чтобы переместить composer.phar в каталог что на вашем пути:
мв composer.phar /usr/local/bin/composer
Установка Composer в Windows
Для систем Windows можно загрузить установщик Composer для Windows. здесь. Дальше Инструкции по установке Composer для Windows можно найти в README здесь.
Создать проект CakePHP
Вы можете создать новое приложение CakePHP, используя композитор create-project
команда:
composer create-project --prefer-dist cakephp/app:~4.0 my_app_name
После того, как Composer завершит загрузку скелета приложения и ядра CakePHP библиотеку, у вас должно быть работающее приложение CakePHP, установленное через Композитор. Не забудьте сохранить файлы composer.json и composer.lock вместе с остальная часть вашего исходного кода.
Теперь вы можете посетить путь, по которому вы установили приложение CakePHP, и см. домашнюю страницу по умолчанию. Чтобы изменить содержимое этой страницы, отредактируйте шаблонов/страниц/home.php .
Несмотря на то, что Composer является рекомендуемым методом установки, существуют
предустановленные загрузки доступны на
Гитхаб.
Эти загрузки содержат скелет приложения со всеми установленными пакетами поставщиков.
Также он включает в себя 94.0 до
также получите последние стабильные второстепенные выпуски ветки 4.x
.
Установка с использованием печи
Еще один быстрый способ установить CakePHP — через Oven. Это небольшой PHP-скрипт, который проверяет необходимые системные требования, и создает новое приложение CakePHP.
Примечание
ВАЖНО! Это не сценарий развертывания. Он призван помочь разработчикам установите CakePHP в первый раз и настройте среду разработки быстро. В производственной среде следует учитывать несколько других факторов, таких как права доступа к файлам, конфигурация виртуального хоста и т. д.
Разрешения
CakePHP использует каталог tmp для ряда различных операций.
Описания моделей, кешированные представления и информация о сеансе — это лишь некоторые из них.
Примеры. Каталог logs используется для записи файлов журнала по умолчанию. FileLog
движок.
Таким образом, убедитесь, что каталоги регистрируют , tmp и все его подкаталоги. в вашей установке CakePHP доступны для записи пользователю веб-сервера. Композитор процесс установки составляет tmp и его подпапки доступны для глобальной записи для получения все работает быстро, но вы можете обновить разрешения для лучшего безопасности и сделать их доступными для записи только пользователю веб-сервера.
Одна из распространенных проблем заключается в том, что регистрирует и tmp каталогов и подкаталогов. должен быть доступен для записи как веб-серверу, так и пользователю командной строки. В UNIX системе, если пользователь вашего веб-сервера отличается от пользователя вашей командной строки, вы может запускать следующие команды из каталога вашего приложения только один раз в вашем project, чтобы убедиться, что разрешения будут настроены правильно:
HTTPDUSER=`ps вспомогательный | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v корень | голова -1 | вырезать -d\ -f1` setfacl -R -m u:${HTTPDUSER}:rwx tmp setfacl -R -d -m u:${HTTPDUSER}:rwx tmp setfacl -R -m u:${HTTPDUSER}: журналы rwx setfacl -R -d -m u:${HTTPDUSER}: журналы rwx
Чтобы использовать инструменты консоли CakePHP, вам необходимо убедиться, что
Файл bin/cake
является исполняемым. В *nix или macOS вы можете
выполнить:
chmod +x корзина/торт
В Windows Файл .bat уже должен быть исполняемым. Если вы используете Vagrant или любой другой виртуализированной среде любые общие каталоги должны совместно использовать с разрешениями на выполнение (пожалуйста, обратитесь к вашему виртуализированному документацию среды о том, как это сделать).
Если по какой-либо причине вы не можете изменить разрешения bin/cake
файл, вы можете запустить консоль CakePHP с:
php-bin/cake.php
Сервер разработки
Установка для разработки — это самый быстрый способ установить CakePHP. В этом Например, мы используем консоль CakePHP для запуска встроенного веб-сервера PHP, который сделает ваше приложение доступным в http://хост:порт . Из приложения каталог, выполнить:
сервер корзин/тортов
По умолчанию, без каких-либо аргументов, это будет обслуживать ваше приложение в http://локальный:8765/.
Если есть конфликт с localhost или портом 8765, вы можете сказать консоль CakePHP для запуска веб-сервера на определенном хосте и/или порту используя следующие аргументы:
сервер корзины/торта -H 192.168.13.37 -p 5673
Это будет обслуживать ваше приложение в http://192.168.13.37:5673/ .
Вот оно! Ваше приложение CakePHP запущено и работает без необходимости настроить веб-сервер.
Примечание
Попробуйте bin/cake server -H 0.0.0.0
, если сервер недоступен с других хостов.
Предупреждение
Сервер разработки никогда не должен использоваться в производственной среде. Он предназначен только в качестве базового сервера разработки.
Если вы предпочитаете использовать настоящий веб-сервер, у вас должна быть возможность переместить ваш CakePHP install (включая скрытые файлы) внутри корневого каталога вашего веб-сервера. Ты затем вы сможете указать веб-браузеру каталог, в который вы переместили файлы в и увидеть ваше приложение в действии.
Производство
Производственная установка — это более гибкий способ настройки CakePHP. Используя это
Метод позволяет всему домену действовать как единое приложение CakePHP. Этот
пример поможет вам установить CakePHP в любом месте вашей файловой системы и сделать его
доступен на http://www. example.com. Обратите внимание, что для этой установки может потребоваться
права на изменение DocumentRoot
на веб-серверах Apache.
После установки приложения одним из указанных выше способов в каталог по вашему выбору — мы предполагаем, что вы выбрали /cake_install — ваш производственная установка будет выглядеть в файловой системе так:
/cake_install/ мусорное ведро / конфиг/ журналы/ плагины/ Ресурсы/ источник/ шаблоны/ тесты/ температура/ продавец/ webroot/ (этот каталог установлен как DocumentRoot) .gitignore .htaccess .travis.yml композитор.json index.php phpunit.xml.dist README.md
Разработчики, использующие Apache, должны установить директиву DocumentRoot
для домена.
до:
DocumentRoot /cake_install/webroot
Если ваш веб-сервер настроен правильно, теперь вы должны найти свой CakePHP Приложение доступно по адресу http://www.example. com.
Зажги это
Хорошо, давайте посмотрим на CakePHP в действии. В зависимости от того, какую установку вы использовали, должен указывать ваш браузер на http://example.com/ или http://localhost:8765/. В на этом этапе вам будет представлен домашний каталог CakePHP по умолчанию и сообщение о том, что сообщает вам статус вашего текущего подключения к базе данных.
Поздравляем! Вы готовы создать свое первое приложение CakePHP.
Перезапись URL
Апач
В то время как CakePHP создан для работы с mod_rewrite из коробки — и обычно делает — мы заметили, что некоторым пользователям трудно заставить все играть хорошо на их системах.
Вот несколько вещей, которые вы можете попробовать, чтобы заставить его работать правильно. Первый взгляд на ваш httpd.conf. (Убедитесь, что вы редактируете системный httpd.conf, а не httpd.conf для конкретного пользователя или сайта)
Эти файлы могут различаться в разных дистрибутивах и версиях Apache. Ты также можете взглянуть на https://cwiki.apache.org/confluence/display/httpd/DistrosDefaultLayout для дальнейшая информация.
Убедитесь, что разрешено переопределение .htaccess и установлен параметр AllowOverride to All для правильного DocumentRoot. Вы должны увидеть что-то похожее на:
# Каждый каталог, к которому имеет доступ Apache, может быть настроен с учетом # для каких сервисов и функций разрешены и/или отключены в этом # каталог (и его подкаталоги). # # Во-первых, мы настраиваем «по умолчанию» на очень ограниченный набор # Особенности. <Каталог /> Параметры Разрешить переопределить все # Отказать в заказе, разрешить # Запретить от всех Каталог>
Убедитесь, что вы правильно загружаете mod_rewrite. Вы должны увидеть что-то нравится:
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
Во многих системах они будут закомментированы по умолчанию, поэтому вам может понадобиться чтобы удалить ведущие символы #.
После внесения изменений перезапустите Apache, чтобы убедиться, что настройки активны.
Убедитесь, что ваши файлы .htaccess действительно находятся в правильных каталогах. Немного операционные системы рассматривают файлы, начинающиеся с «.», как скрытые и, следовательно, не будет их копировать.
Убедитесь, что ваша копия CakePHP получена из раздела загрузок на сайте. или наш репозиторий Git, и был правильно распакован, проверив наличие файлы .htaccess. 9index.php [Л] ЕслиМодуль>
Если на вашем сайте CakePHP все еще есть проблемы с mod_rewrite, вы можете попробуйте изменить настройки виртуальных хостов. В Ubuntu отредактируйте файл /etc/apache2/sites-available/default (расположение зависит от дистрибутива). В этом файле убедитесь, что
AllowOverride None
изменено наAllowOverride All
, поэтому у вас есть:<Каталог /> Параметры Разрешить переопределить все Каталог> <Каталог /var/www> Параметры Разрешить переопределить все Заказать Разрешить, Запретить Разрешить от всех Каталог>
В macOS другим решением является использование инструмента virtualhostx для создания виртуала Host, чтобы указать на вашу папку.
Для многих хостинговых служб (GoDaddy, 1and1) ваш веб-сервер обслуживается из пользовательского каталога, который уже использует mod_rewrite. Если ты установка CakePHP в каталог пользователя (http://example.com/~username/cakephp/) или любая другая структура URL, уже использует mod_rewrite, вам нужно добавить операторы RewriteBase в файлы .htaccess, которые использует CakePHP (.htaccess, webroot/.htaccess). 9index.php [Л] ЕслиМодуль>
Детали этих изменений будут зависеть от вашей настройки и могут включать дополнительные вещи, не относящиеся к CakePHP. Пожалуйста, обратитесь к Apache онлайн-документацию для получения дополнительной информации.
(необязательно) Чтобы улучшить производственную настройку, следует предотвратить недопустимые активы. от анализа CakePHP. Измените свой webroot .htaccess на что-нибудь как:
RewriteEngine включен RewriteBase /путь/к/приложению/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !^/(webroot/)?(img|css|js)/(. index.php [L] ЕслиМодуль> Приведенное выше предотвратит отправку неверных ресурсов в index.php. и вместо этого отображать страницу 404 вашего веб-сервера.
Кроме того, вы можете создать соответствующую страницу HTML 404 или использовать страницу по умолчанию. встроенный CakePHP 404, добавив директиву
ErrorDocument
:ErrorDocument 404/404-не найден
нгинкс
nginx не использует файлы .htaccess, такие как Apache, поэтому необходимо
создайте эти переписанные URL-адреса в доступной для сайта конфигурации. Обычно это
найдено в /etc/nginx/sites-available/your_virtual_host_conf_file
. В зависимости
в вашей настройке вам придется изменить это, но, по крайней мере, вы
нужен PHP, работающий как экземпляр FastCGI.
Следующая конфигурация перенаправляет запрос на webroot/index.php
:
местоположение / { try_files $uri $uri/ /index.php?$args; }
Образец директивы сервера выглядит следующим образом:
сервер { слушать 80; слушать [::]:80; имя_сервера www. example.com; вернуть 301 http://example.com$request_uri; } сервер { слушать 80; слушать [::]:80; имя_сервера пример.com; корень /var/www/example.com/public/webroot; индекс index.php; журнал_доступа /var/www/example.com/log/access.log; журнал_ошибок /var/www/example.com/log/error.log; расположение / { try_files $uri $uri/ /index.php?$args; } расположение ~ \.php$ { try_files $uri = 404; включить fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_intercept_errors включен; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
Примечание
Последние конфигурации PHP-FPM настроены на прослушивание unix php-fpm
сокет вместо TCP-порта 9000 на адресе 127.0.0.1. Если вы получили 502 плохо
ошибки шлюза из приведенной выше конфигурации, попробуйте обновить fastcgi_pass
до
используйте путь сокета unix (например: fastcgi_pass
unix:/var/run/php/php7. 1-fpm.sock;) вместо порта TCP.
Блок NGINX
Модуль NGINX динамически настраивается во время выполнения;
следующая конфигурация зависит от webroot/index.php
, а также обслуживает другие .php
скриптов, если они присутствуют через cakephp_direct
:
{ "слушатели": { "*:80": { "проход": "маршруты/cakephp" } }, "маршруты": { "пирожное": [ { "соответствие": { "ури": [ "*.php", "*.php/*" ] }, "действие": { "проход": "приложения/cakephp_direct" } }, { "действие": { "share": "/path/to/cakephp/webroot/", "отступать": { "проход": "приложения/cakephp_index" } } } ] }, "Приложения": { "cakephp_direct": { "тип": "php", "root": "/path/to/cakephp/webroot/", "пользователь": "www-данные" }, "тортphp_index": { "тип": "php", "root": "/path/to/cakephp/webroot/", "пользователь": "www-данные", "скрипт": "index. php" } } }
Чтобы включить эту конфигурацию (при условии, что она сохранена как cakephp.json
):
# curl -X PUT --data-binary @cakephp.json --unix-socket \ /путь/к/control.unit.sock http://localhost/config
IIS7 (хосты Windows)
IIS7 изначально не поддерживает файлы .htaccess. Пока есть надстройки, которые могут добавить эту поддержку, вы также можете импортировать htaccess правила в IIS, чтобы использовать родную перезапись CakePHP. Для этого следуйте эти шаги:
Используйте установщик веб-платформы Microsoft для установки модуля перезаписи URL 2.0 или загрузите его напрямую (32-разрядная / 64-разрядная версия).
Создайте новый файл с именем web.config в корневой папке CakePHP.
Используя Блокнот или любой XML-безопасный редактор, скопируйте следующее код в ваш новый файл web.config:
<конфигурация> <системный. (.*)$" ignoreCase="false" />правило> правила> переписать> конфигурация>
После создания файла web.config с правильными правилами перезаписи, удобными для IIS, Ссылки CakePHP, CSS, JavaScript и перенаправление должны работать правильно.
Lighttpd
Lighttpd не использует файлы .htaccess , такие как Apache, поэтому
необходимо добавить конфигурацию url.rewrite-once
в conf/lighttpd.conf .
Убедитесь, что в вашей конфигурации lighthttpd присутствует следующее:
сервер.модули += ( "мод_алиас", "мод_cgi", "мод_переписать" ) # Псевдоним каталога alias.url = ( "/TestCake" => "C:/Users/Nicola/Documents/TestCake" ) # CGI Php cgi.assign = ( ".php" => "c:/php/php-cgi.exe" ) # Переписать Cake Php (по пути /TestCake) url. /TestCake/(.*)$" => "/TestCake/webroot/index.php/$1" )
Приведенные выше строки включают конфигурацию PHP CGI и пример приложения.
конфигурация для приложения по пути /TestCake
.
Я не могу использовать перезапись URL
Если вы не хотите или не можете получить mod_rewrite (или другой совместимый модуль) работая на вашем сервере, вам нужно будет использовать встроенные красивые URL-адреса CakePHP. В config/app.php раскомментируйте строку, которая выглядит так:
'Приложение' => [ // ... // 'baseUrl' => env('SCRIPT_NAME'), ]
Также удалите следующие файлы .htaccess:
/.htaccess вебрут/.htaccess
Это сделает ваши URL-адреса похожими на www.example.com/index.php/controllername/actionname/param, а не www.example.com/controllername/actionname/param.
Настройка локальных интерпретаторов PHP | PhpStorm
Локальный интерпретатор PHP — это механизм PHP, установленный на вашем компьютере напротив удаленного интерпретатора PHP, который может быть установлен на удаленном хосте или в виртуальной среде, настроенной в экземпляре Vagrant, см. Настройка удаленных интерпретаторов PHP.
Прежде чем начать, установите механизм PHP либо как часть пакета AMP, либо отдельно.
Нажмите Ctrl+Alt+S , чтобы открыть настройки IDE и выбрать PHP.
На открывшейся странице PHP щелкните рядом со списком CLI Interpreter.
В открывшемся диалоговом окне CLI Interpreters щелкните на левой панели, затем выберите Local во всплывающем меню.
Если у вас уже есть локальный интерпретатор, настроенный в PhpStorm, он также отображается в меню, а пункт меню меняется на Other Local.
В правой части диалогового окна укажите параметры интерпретатора PHP.
В поле Имя введите идентификатор, чтобы отличить интерпретатор от других, например,
php_installation_<версия>
.Укажите каталог установки механизма PHP в поле исполняемого файла PHP. Введите путь вручную или нажмите и выберите соответствующую папку в открывшемся диалоговом окне.
PhpStorm отображает версию механизма PHP, обнаруженную в указанной папке, и отладчик, связанный с этим механизмом PHP, в файле php.ini.
В дополнительной области диалогового окна CLI Interpreters можно дополнительно настроить параметры конфигурации установки PHP.
В поле Расширение отладчика укажите путь к Xdebug. Это позволяет PhpStorm активировать Xdebug, когда это необходимо, если вы отключили его в файле php.ini, см. Настройка Xdebug для использования в режиме по требованию.
В поле Параметры конфигурации составьте строку директив конфигурации, которые будут передаваться через параметр командной строки -d и, таким образом, добавлять новые записи в файл php. ini. Директивы, указанные в этом поле, переопределяют директивы по умолчанию, сгенерированные PhpStorm, такие как
-dxdebug.remote_enable=1
,-dxdebug.remote_host=127.0.0.1
,-dxdebug.remote_port=9001
,-dxdebug.remote_mode=req
.Например, если вы укажете директиву
-dxdebug.remote_mode=jit
, она переопределит директиву по умолчанию-dxdebug.remote_mode=req
и, таким образом, переключит Xdebug в режим Just-In-Time (JIT), см. Отладка в режиме Just-In-Time для получения подробной информации.Для этого щелкните рядом с полем Параметры конфигурации, а затем создайте список записей в открывшемся диалоговом окне Параметры конфигурации.
Чтобы добавить новую запись, щелкните . В новой строке, добавленной в список, укажите имя новой записи и ее значение в полях Имя и Значение соответственно.
Вы можете добавить столько записей, сколько вам нужно, только учтите, что они будут преобразованы в командную строку, длина которой ограничена 256 символами.
Чтобы удалить запись, выберите ее в списке и нажмите .
Чтобы изменить порядок записей, нажмите или .
После нажатия OK вы вернетесь в диалоговое окно CLI Interpreters, где записи будут преобразованы в командную строку.
Нажмите, чтобы PhpStorm отобразил отдельное информационное окно с подробностями установки и списком загруженных расширений и настроенных параметров. Обратите внимание, что дополнительные параметры, указанные в поле «Параметры конфигурации» диалогового окна «Интерпретаторы PHP», не перечислены.
Мгновенное переключение между настроенными интерпретаторами PHP
Нажмите Ctrl+Shift+A и начните вводить
Изменить интерпретатор PHP
. В списке предложений выберите действие Изменить интерпретатор PHP.При необходимости вы можете назначить сочетание клавиш для этого действия либо непосредственно в списке предложений, нажав Alt+Enter , либо позднее, как описано в разделе Настройка сочетаний клавиш.
В открывшемся всплывающем меню выберите один из настроенных локальных или удаленных интерпретаторов PHP.
Выбранный интерпретатор будет установлен в качестве интерпретатора проекта по умолчанию на странице PHP диалогового окна «Настройки/Настройки» ( Ctrl+Alt+S ). Это также повлияет на конфигурации запуска/отладки, среды тестирования и конфигурации инструментов контроля качества, которые настроены на использование интерпретатора проекта по умолчанию.
Последнее изменение: 01 августа 2022 г.
Встроенный веб-сервер Настройка удаленных интерпретаторов PHP
1. Установка PHPUnit — Руководство по PHPUnit 9.5
Требования
PHPUnit 9.5 требует PHP 7.3; использование последней версии PHP очень рекомендуемые.
PHPUnit требует dom и json расширения, которые обычно включены по умолчанию.
PHPUnit также требует пкре, отражение, и спл расширения. Эти стандартные расширения включены по умолчанию и не могут быть отключен без исправления системы сборки PHP и/или исходников C.
Для функции отчета о покрытии кода требуется Xdebug (2.7.0 или новее) и токенизатор расширения. Для создания XML-отчетов требуется xmlwriter расширение.
Prophecy
PHPUnit имеет встроенную поддержку использования Prophecy
для создания тестовых двойников. Однако, начиная с PHPUnit 9.5.23, вы должны добавить зависимость от phpspec/prophecy
в файл composer.json
вашего проекта, если вы устанавливаете PHPUnit с помощью
Composer и хотите использовать Prophecy через метод PHPUnit TestCase::prophesize()
.
Обратите внимание, что стандартная поддержка PHPUnit для Prophecy устарела с PHPUnit 9.1.0 и будет удален в PHPUnit 10. Также обратите внимание, что Prophecy не поддержка PHP 8.2 по состоянию на август 2022 г.
Более подробная информация о том, почему вы должны добавить зависимость от phpspec/prophecy
в свой
доступен проект composer.json
, а также поддержка PHP 8.2
здесь.
Архив PHP (PHAR)
Самый простой способ получить PHPUnit — загрузить Архив PHP (PHAR), в котором есть все необходимые (а также некоторые необязательные) зависимости PHPUnit, объединенные в один файл.
Фар расширение требуется для использования архивов PHP (PHAR).
Если расширение Suhosin
включен, вам необходимо разрешить выполнение PHAR в вашем php.ini
:
suhosin.executor.include.whitelist = phar
PHPUnit PHAR можно использовать сразу после загрузки:
$ curl -LO https://phar.phpunit.de/phpunit-9.5.phar $ php phpunit-9.5.phar --версия PHPUnit x.y.z Себастьяна Бергманна и соавторов.
Общепринято делать исполняемый файл PHAR:
$ curl -LO https://phar.phpunit.de/phpunit-9.5.phar $ chmod +x phpunit-9.5.phar $ ./phpunit-9.5.phar --версия PHPUnit x.y.z Себастьяна Бергманна и соавторов.
Сведения о реализации PHAR
Чтобы избежать проблем, возникающих, когда тестируемый код использует общие зависимости с PHPUnit, но требует версий, отличных от тех, что включены в PHAR, были реализованы следующие меры.
За исключением таких классов, как PHPUnit\Framework\TestCase , которые являются частью общедоступного API PHPUnit, все единицы кода, включенные в дистрибутив PHPUnit PHAR, включая все зависимости, такие как каталоги поставщиков, перемещаются в новое и отдельное пространство имен. .
Все блоки кода, включенные в PHAR, загружаются при запуске с использованием комбинации статической предварительной загрузки и динамической автоматической загрузки.
Проверка выпусков PHPUnit PHAR
Все официальные выпуски кода, распространяемые проектом PHPUnit, подписан менеджером по выпуску для выпуска. Подписи PGP и SHA256 хэши доступны для проверки на phar.phpunit.de.
В следующем примере показано, как работает проверка выпуска. Мы начинаем
скачав phpunit.phar
, а также его
отдельная подпись PGP phpunit.phar.asc
:
$ curl -LO https://phar.phpunit.de/phpunit-9.5.phar $ curl -LO https://phar.phpunit.de/phpunit-9.5.phar.asc
Мы хотим проверить PHP-архив PHPUnit ( phpunit-x.y.phar
)
против его отдельной подписи ( phpunit-x.y.phar.asc
):
$ gpg --проверить phpunit-9.5.phar.asc gpg: предполагается подписанные данные в «phpunit-9.5.phar» gpg: Подпись сделана Пн 19 июля 06:13:42 2021 UTC gpg: с использованием ключа RSA D8406D0D82947747293778314AA394086372C20A gpg: эмитент "sb@sebastian-bergmann. de" gpg: не могу проверить подпись: нет открытого ключа
В нашей локальной системе нет открытого ключа менеджера выпуска. Чтобы продолжить проверку, нам нужно импортировать этот ключ:
$ curl --silent https://sebastian-bergmann.de/gpg.asc | gpg --импорт gpg: ключ 4AA394086372C20A: 452 подписи не проверены из-за отсутствия ключей gpg: ключ 4AA394086372C20A: открытый ключ «Себастьян Бергманн», импортированный gpg: Всего обработано: 1 gpg: импортировано: 1 gpg: окончательно доверенные ключи не найдены
Теперь мы импортировали открытый ключ для объекта, известного как «Себастьян
Бергманн
$ gpg --проверить phpunit-9.5.phar.asc gpg: предполагается подписанные данные в «phpunit-9.5.phar» gpg: Подпись сделана Пн 19 июля 06:13:42 2021 UTC gpg: с использованием ключа RSA D8406D0D82947747293778314AA394086372C20A gpg: эмитент "sb@sebastian-bergmann. de" gpg: Хорошая подпись от "Sebastian Bergmann" [неизвестно] gpg: он же "Себастьян Бергманн " [неизвестно] gpg: он же "Себастьян Бергманн " [неизвестно] gpg: он же "Себастьян Бергманн " [неизвестно] gpg: он же "Себастьян Бергманн " [неизвестно] gpg: ака "[изображение в формате jpeg размером 40635]" [неизвестно] gpg: ПРЕДУПРЕЖДЕНИЕ: Этот ключ не сертифицирован надежной подписью! gpg: Нет указания на то, что подпись принадлежит владельцу. Отпечаток первичного ключа: D840 6D0D 8294 7747 2937 7831 4AA3 9408 6372 C20A
На данный момент подпись хорошая, но мы не доверяем этому ключу. А хорошая подпись означает, что файл не был подделан. Однако из-за к характеру криптографии с открытым ключом, вам необходимо дополнительно убедитесь, что ключ, который вы только что импортировали, был создан настоящим Себастьян Бергманн.
Любой злоумышленник может создать открытый ключ и загрузить его в открытый ключ серверы. Затем они могут создать вредоносный релиз, подписанный этой подделкой. ключ. Затем, если вы попытаетесь проверить подпись этого поврежденного выпуска, это было бы успешно, потому что ключ не был «настоящим». Следовательно, вы необходимо проверить подлинность этого ключа. Проверка однако подлинность открытого ключа выходит за рамки этого документация. 99,5
Глобальная установка
Обратите внимание, что не рекомендуется устанавливать PHPUnit глобально, как /usr/bin/phpunit
или /usr/local/bin/phpunit
, например.
Вместо этого PHPUnit должен управляться как локальная зависимость проекта.
Либо поместите PHAR конкретной версии PHPUnit, которая вам нужна, в файл вашего проекта. tools
каталог (который должен управляться PHIVE) или зависит от конкретной версии PHPUnit
вам нужно в вашем проекте composer.json
, если вы используете Composer.
Веб-сервер
PHPUnit — это фреймворк для написания, а также инструмент командной строки для запуска тестов. Написание и запуск тестов — это деятельность во время разработки. Нет причин, по которым PHPUnit должен быть установлен на веб-сервере.
Если вы загружаете PHPUnit на веб-сервер, процесс развертывания прерывается. В более общем плане, если ваш каталог поставщика
общедоступен на вашем веб-сервере, то процесс развертывания также нарушен.
Обратите внимание, что если вы загрузите PHPUnit на веб-сервер, могут произойти «плохие вещи». Вы были предупреждены.
Aprelium — Добавление поддержки PHP
- Домашняя страница
- загрузок
- Купить онлайн
- Справка и поддержка
- Форум
- » В Windows
- » В macOS
- » В Linux
- » Добавление поддержки PHP 8 в Windows
- » Добавление поддержки PHP 7 в Windows
- » веб-сайт PHP
Обзор
Веб-сервер Abyss поддерживает все выпуски PHP, включая все версии PHP 4, PHP 5, PHP 7 и PHP 8.
В Windows
Важное примечание
Если вы планируете установить PHP 7 или 8 в Windows, мы настоятельно рекомендуем использовать наши предварительно настроенные пакеты PHP 7 или PHP 8 вместо того, чтобы следовать приведенным ниже общим инструкциям по установке PHP. Это проще, быстрее и менее подвержено ошибкам.
Загрузите и установите PHP
- Загрузите PHP для Windows с https://windows.php.net/download/ и установите или скопируйте его файлы на свой жесткий диск.
- Если вы используете старую версию PHP и в процессе установки вас спрашивают о типе вашего веб-сервера, выберите Нет (или другой веб-сервер), я настрою веб-сервер вручную и продолжу.
Объявить переводчика
- Откройте консоль веб-сервера Abyss. В Hosts table, нажмите Настройте в строке, соответствующей хосту, для которого вы хотите добавить поддержку PHP.
Если на главном экране вашей консоли нет таблицы Hosts , это означает, что вы используете старую версию Abyss Web Server. Пожалуйста, обновитесь до последней версии, прежде чем продолжить. Обновление бесплатное, простое и сохраняет текущую конфигурацию сервера. Нажмите здесь, чтобы загрузить последнюю версию.
- Выберите Параметры сценария .
- Установите флажок Включить выполнение сценариев .
- Нажмите Добавить в таблицу интерпретаторов .
- Установите для интерфейса значение FastCGI (локальный — каналы).
- В поле Interpreter нажмите Browse… , перейдите в каталог, в котором установлен PHP, и щелкните php-cgi.exe.
- Комплект Тип по стандарту.
- Проверить . Использовать соответствующие расширения для автоматического обновления путей к сценариям .
- Нажмите Добавить в таблицу Associated Extensions .
- Введите php в поле Extension и нажмите OK .
- Нажмите ОК
- Нажмите OK в диалоговом окне Параметры сценария .
Объявить новые индексные файлы
- Выберите Индексные файлы .
- Нажмите Добавить в таблицу Индексные файлы .
- Введите index.php в поле Имя файла и нажмите OK .
Применить модификации
- Нажмите Restart , чтобы перезапустить сервер.
В macOS
Загрузите и установите PHP
- Загрузите пакет PHP 8.1.7 для macOS (~53 МБ).
Это нотариально заверенный пакет, содержащий интерпретатор FastCGI/CGI версии 9.0702 PHP 8.1.7 со следующими встроенными расширениями: bcmath, calendar, ctype, date, dom, filter, hash, intl, json, libxml, odbc, pcre, Reflection, session, SimpleXML, SPL, SQLite, standard, tidy, токенизатор, wddx, xml, xmlreader, xmlwriter и zlib. Поддержка ftp, iconv, mbstring, GD, PDO, SQLite, MySQL и MySQLi также включена по умолчанию.
Пакет предназначен как для 64-разрядных компьютеров Intel, так и для компьютеров Macintosh на базе ARM под управлением macOS 10. 9 и более поздних версий (включая Catalina 10.15, Big Sur 11 и Monterey 12). Он также будет изначально работать на недавно выпущенных компьютерах под управлением Apple M1.
Пакет был собран для вашего удобства компанией Aprelium и по умолчанию использует /Applications/PHP8/lib/php.ini в качестве файла конфигурации. Пользовательские дополнительные файлы конфигурации также могут быть помещены в подпапку /Applications/PHP8/etc/php.d/. - Дважды щелкните загруженный файл пакета и следуйте инструкциям на экране, чтобы установить его на жесткий диск. Это установит или обновит PHP внутри папки PHP8, расположенной в папке «Приложения».
- Если у вас старая версия Mac OS X или вам нужна старая версия PHP по соображениям совместимости, вы все равно можете использовать устаревшие версии из нашего раздела «Загрузки». Инструкции по установке и настройке аналогичны последней версии PHP.
Объявить переводчика
- Откройте консоль веб-сервера Abyss. В таблице Hosts нажмите Configure в строке, соответствующей хосту, для которого вы хотите добавить поддержку PHP.
Если на главном экране вашей консоли нет таблицы Hosts , это означает, что вы используете старую версию Abyss Web Server. Пожалуйста, обновитесь до последней версии, прежде чем продолжить. Обновление бесплатное, простое и сохраняет текущую конфигурацию сервера. Нажмите здесь, чтобы загрузить последнюю версию.
- Выберите Параметры сценария .
- Установите флажок Включить выполнение сценариев .
- Нажмите Добавить в таблицу интерпретаторов .
- Установите для интерфейса значение FastCGI (локальный — каналы).
- Введите /Applications/PHP8/bin/php-cgi в поле Interpreter . Если вы используете версию PHP 7, вместо этого введите /Applications/PHP7/bin/php-cgi. Для устаревших версий PHP 5 вам может потребоваться ввести /Applications/PHP5/bin/php в качестве интерпретатора.
- Установите Тип на Стандарт.
- Проверить . Использовать соответствующие расширения для автоматического обновления путей к сценариям .
- Нажмите Добавить в таблицу Associated Extensions .
- Введите php в поле Extension и нажмите OK .
- Нажмите ОК
- Нажмите OK в параметрах сценариев 9.0703 диалог.
Объявить новый индексный файл
- Выберите Индексные файлы .
- Нажмите Добавить в таблицу Индексные файлы .
- Введите index.php в поле Имя файла и нажмите OK .
Применить модификации
- Нажмите Restart , чтобы перезапустить сервер.
В Linux
Загрузите и установите PHP
- Большинство дистрибутивов Linux поставляются с PHP. Чтобы проверить, установлен ли он, запустите какой php-cgi или какой php. Если он не установлен, настройте его следующим образом:
- В Ubuntu/Debian выполните в командной строке sudo apt-get install php8.0-cgi или sudo apt-get install php7.4-cgi.
- В Red Hat/RHEL/Fedora/CentOS выполните в командной строке sudo yum install php-cli.
- В других дистрибутивах используйте диспетчер пакетов вашей системы для установки пакета с именем 9.0702 php8-cgi , php7-cgi , php-cgi , php-cli или аналогичный.
- Чтобы определить, какая версия PHP установлена, выполните php-cgi -v или php -v.
Объявить переводчика
- Откройте консоль веб-сервера Abyss. В таблице Hosts нажмите Configure в строке, соответствующей хосту, для которого вы хотите добавить поддержку PHP.
Если нет 9Таблица 0702 Hosts на главном экране вашей консоли означает, что вы используете старую версию веб-сервера Abyss. Пожалуйста, обновитесь до последней версии, прежде чем продолжить. Обновление бесплатное, простое и сохраняет текущую конфигурацию сервера. Нажмите здесь, чтобы загрузить последнюю версию.
- Выберите Параметры сценария .
- Установите флажок Включить выполнение сценариев .
- Нажмите Добавить в таблице интерпретаторов .
- Установите для интерфейса значение FastCGI (локальный — каналы).
- В поле Interpreter нажмите Browse… , перейдите в /usr/bin или в каталог, где вы установили PHP, и щелкните файл с именем php-cgi. Если такого файла не существует, щелкните файл с именем php.
- Установите Тип на Стандарт.
- Проверить Использовать соответствующие расширения для автоматического обновления путей к сценариям .
- Нажмите Добавить в таблицу Associated Extensions .
- Введите php в поле Extension и нажмите OK .
- Нажмите ОК
Объявить новый индексный файл
- Выберите Индексные файлы .
- Нажмите Добавить в таблицу Индексные файлы .
- Введите index.php в поле имени файла 9.0703 и нажмите OK .
Применить модификации
- Нажмите Restart , чтобы перезапустить сервер.
Оставайтесь на связи с нами
Подпишитесь на нашу небольшую рассылку, чтобы получать объявления о продуктах, статьи и полезные советы.
или Подпишитесь на @abyssws в ТвиттереУстановите gRPC для PHP | Google Cloud
gRPC — это современная высокопроизводительная платформа удаленного вызова процедур с открытым исходным кодом. Если вы хотите использовать клиентские библиотеки PHP для API с поддержкой gRPC, вы должны установить gRPC для PHP. В этом руководстве объясняется, как установить и включить gRPC.
Цели
- Установить расширение gRPC для PHP.
- Включить расширение gRPC для PHP.
Требования
- PHP 7. 0 или выше
- PECL (если вы не строите из исходников)
- Композитор
Установка PECL
Ubuntu / Debian
sudo apt-get install autoconf zlib1g-dev php-dev php-pear
При использовании PHP 7.4+, PHP должен быть установлен с версией 9.1115 —с грушей флаг.
CentOS / RHEL 7
sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm sudo yum установить php-devel php-pear gcc zlib-devel
macOS
завиток -O https://pear.php.net/go-pear.phar sudo php -d detect_unicode = 0 go-pear.phar
Windows
Windows не требует PECL.
Установка Composer
Linux
curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer
macOS
curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer
Windows
Следуйте официальным инструкциям по установке Composer для Windows.
Установка расширения gRPC
Использование PECL
sudo pecl install grpc
Это компилирует и устанавливает расширение gRPC PHP в стандартный пакет PHP. каталог расширения.
Примечание: Для пользователей CentOS/RHEL 6, к сожалению, этот шаг не сработает. Следовать инструкции на вкладке Сборка из исходного кода для компиляции расширение из исходников.Сборка из исходного кода
Следуйте этим инструкциям, чтобы скомпилировать основную библиотеку gRPC и расширение PHP. из источника.
Клонируйте репозиторий gRPC из GitHub.
клонgit https://github.com/grpc/grpc
Создайте и установите основную библиотеку gRPC C.
компакт-диск grpc обновление подмодуля git --init делать судо сделать установить Загрузка и выполнение библиотеки может занять несколько минут. Если у вас есть git версии 1.8.4 или выше, вы можете ускорить команду `git submodule update --init`, добавив `--depth=1` флаг.
Скомпилируйте PHP-расширение gRPC.
компакт-диск src/php/ext/grpc phpize ./настроить делать судо сделать установить
Windows
Пользователи Windows могут загрузить предварительно скомпилированный gRPC непосредственно с Сайт ПЕКЛ.
Прочтите документацию по PHP для установки расширений в Windows.
Включить расширение gRPC в php.ini
Linux/macOS
Добавьте эту строку в любом месте вашего файла php.ini
, например, /etc/php7/cli/php.ini
.
Вы можете найти этот файл, запустив php --ini
.
расширение=grpc.so
Windows
Добавьте эту строку в любом месте файла Вы можете выбрать одну из двух библиотек времени выполнения protobuf. API, которые они предлагают,
идентичный. Реализация C работает лучше, чем PHP (собственная)
реализация, в то время как нативная реализация устанавливается проще, чем
реализация С. Для повышения производительности gRPC включите расширение protobuf C. Linux/macOS Установите Теперь добавьте эту строку в файл Windows Загрузите предварительно скомпилированное расширение protobuf непосредственно с
Сайт ПЕКЛ. Теперь добавьте эту строку в файл Теперь, когда вы установили gRPC и расширение PHP gRPC, попробуйте gRPC-enabled
API, такие как
Облачный гаечный ключ. В этом разделе обсуждается установка необходимых параметров PHP. См. системные требования для поддерживаемых версий PHP. В большинстве разновидностей Linux по умолчанию установлен PHP.
В этом разделе предполагается, что вы уже установили PHP.
Чтобы убедиться, что PHP уже установлен, в командной строке введите: Если PHP установлен, отображается сообщение, подобное следующему: Magento 2.4 совместим с PHP 7.3, но мы тестируем и рекомендуем использовать PHP 7.4. Если PHP не установлен или требуется обновление версии, установите его, следуя инструкциям для вашей конкретной версии Linux.
В CentOS могут потребоваться дополнительные шаги. Magento требует установки набора расширений. Magento с открытым исходным кодом и Adobe Commerce: Дополнительно для Adobe Commerce требуется: Для проверки установленных расширений: Список установленных модулей. Добавьте все отсутствующие модули, используя тот же рабочий процесс, что и для установки PHP. Например, если вы используете Если вы используете PHP 7.4.20, установите Установите лимит памяти PHP. Наши подробные рекомендации: Увеличьте значения для PHP Эти настройки позволяют процессам PHP кэшировать пути к файлам вместо того, чтобы искать их каждый раз при загрузке страницы. См. Настройка производительности в документации по PHP. Включить Мы рекомендуем включить PHP OPcache из соображений производительности. OPcache включен во многих дистрибутивах PHP. Magento 2.1 и более поздние версии используют комментарии кода PHP для генерации кода. Чтобы избежать проблем во время установки и обновления, мы настоятельно рекомендуем применить одни и те же параметры PHP как к конфигурации командной строки PHP, так и к конфигурации подключаемого модуля веб-сервера PHP. Дополнительные сведения см. в следующем разделе. В этом разделе обсуждается, как найти файлы конфигурации, необходимые для обновления требуемых параметров. Чтобы найти конфигурацию веб-сервера, запустите файл Чтобы найти конфигурацию командной строки PHP, введите Если у вас есть только один файл Настройки PHP OPcache обычно находятся в Используйте следующие рекомендации, чтобы найти его: Веб-сервер Apache: Для Ubuntu с Apache настройки OPcache обычно находятся в Для CentOS с Apache или nginx настройки OPcache обычно находятся в Если нет, используйте следующую команду, чтобы найти его: веб-сервер nginx с PHP-FPM: Если у вас есть несколько Чтобы установить параметры PHP: Найдите следующий параметр и при необходимости раскомментируйте его: Добавьте настройку часового пояса, найденную на шаге 2. Измените значение Например, Добавьте или обновите конфигурацию Сохраните изменения и выйдите из текстового редактора. Для установки Откройте файл конфигурации OPcache в текстовом редакторе: Перезапустите веб-сервер: Дополнительные сведения об устранении неполадок PHP см. php.ini
, например, C:\Program Files\PHP\7.3\php.ini 91,38 дюйма
Установка библиотеки времени выполнения protobuf
Реализация C
protobuf.so
расширение с помощью PECL. sudo pecl установить protobuf
php.ini
, например, /etc/php5/cli/php.ini
. расширение = protobuf.so
php.ini
, например, C:\Program Files\PHP\7. 3\php.ini
. расширение = php_protobuf.dll
93,17 дюйма
Что дальше
Необходимые настройки PHP | Руководство разработчика Adobe Commerce
Убедитесь, что PHP установлен
1
php -v
1
2
3
PHP 7. 4.0 (кли) (построено: 14 августа 2019 г., 16:42:46) ( НТС )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, авторское право (c), 1998–2018 гг. Zend Technologies с Zend OPcache v7.1.6, авторское право (c), 1999–2018 гг., Zend Technologies
Проверить установленные расширения
1
php -м
yum
для установки PHP, модули PHP 7.4 можно добавить с помощью:
1
yum -y установить php74u-pdo php74u-mysqlnd php74u-opcache php74u-xml php74u-gd php74u-devel php74u-mysql php74u-intl php74u-mbstring php74u-bcmath php74u-json php74u
Проверить настройки PHP
pcre.jit=0
в файле php.ini
. Это позволит обойти ошибку PHP, которая препятствует загрузке CSS.
1
Предупреждение PHP: date(): небезопасно полагаться на системные настройки часового пояса. [следует больше сообщений]
1G
2G
~3-4G
realpath_cache_size
и realpath_cache_ttl
до рекомендуемых настроек:
1
2
realpath_cache_size=10M
realpath_cache_ttl=7200
opcache.save_comments
, который требуется для Magento 2.1 и более поздних версий. Шаг 1: Найдите файлы конфигурации PHP
Найти
файл конфигурации php.ini
phpinfo.php
в веб-браузере и найдите загруженный файл конфигурации
следующим образом:
1
php --ini | grep "Загруженный файл конфигурации"
php. ini
, внесите изменения в этот файл. Если у вас есть два файла php.ini
, внесите изменения в все файлы . Невыполнение этого требования может привести к непредсказуемой производительности. Найти параметры конфигурации OPcache
php.ini
или opcache.ini
. Расположение может зависеть от вашей операционной системы и версии PHP. Файл конфигурации OPcache может иметь раздел opcache
или такие параметры, как opcache.enable
. php.ini
. /etc/php.d/opcache.ini
1
sudo find / -name 'opcache. ini'
/etc/php/7.2/fpm/php.ini
opcache.ini
, измените их все. Шаг 2. Как установить параметры PHP
php.ini
в текстовом редакторе.
1
дата.часовой пояс =
memory_limit
на одно из значений, рекомендованных в начале этого раздела.
1
memory_limit=2G
realpath_cache
, чтобы она соответствовала следующим значениям:
1
2
3
4
5
6
7
8
9
;
; Увеличьте размер кеша реального пути
;
realpath_cache_size = 10M
;
; Увеличить ttl кеша реального пути
;
realpath_cache_ttl = 7200
php.ini
(если они разные) и внесите в него такие же изменения. Шаг 3. Установите параметры OPcache
opcache.ini
вариантов: opcache.ini
(CentOS) php.ini
(Убунту) /etc/php/7.2/fpm/php.ini
(веб-сервер nginx (CentOS или Ubuntu)) opcache.save_comments
и при необходимости раскомментируйте его. 1
. перезапуск службы apache2
служба httpd перезапуск
перезапуск службы nginx
Поиск и устранение неисправностей