Настройка php 7
PHP 7 – настройка файла PHP.INI
Конфигурационный файл php.ini является основным инструментом настройки ядра PHP . Он считается каждый раз при инициализации PHP . Если изменение не отображается, не забудьте остановить и перезапустить httpd . Если внесенные изменения до сих пор действуют, используйте функцию phpinfo() , чтобы проверить, php ini где лежит.
Файл конфигурации хорошо прокомментирован и подробно проработан. Параметры чувствительны к регистру, значения ключевых слов – нет; пробелы и строки, начинающиеся с точки с запятой, игнорируются. Логические значения могут быть представлены как 1/0 , Yes/No , On/Off или True/False . Значения по умолчанию в php.ini повлияют на установку PHP , которую позже можно будет настроить.
В этой статье мы рассмотрим важные настройки в файле php.ini , которые могут потребоваться для PHP парсера.
short_open_tag = Off
Короткие открытые теги выглядят так: . Для этого параметра должно быть установлено значение Off , если вы хотите использовать функции обработки XML .
safe_mode = Off
Если этот параметр имеет значение ON , вероятно, вы скомпилировали PHP с флагом enable-safe-mode . Безопасный режим наиболее важен для использования CGI .
safe_mode_exec_dir = [DIR]
Эта опция имеет значение только в том случае, если включен безопасный режим. Она также может быть установлена с флагом —with-exec-dir во время процесса сборки Unix . PHP в безопасном режиме выполняет внешние двоичные файлы только из этого каталога. По умолчанию используется каталог /usr/local/bin . Это не имеет ничего общего с обслуживанием обычной PHP/HTML веб-страницы.
safe_mode_allowed_env_vars = [PHP_]
Эта опция php ini задает, какие переменные окружения пользователи могут изменить в безопасном режиме. По умолчанию, только те переменные, к которым добавлено « PHP_ ». Если эта директива пуста, то большинство переменных можно изменять.
safe_mode_protected_env_vars = [LD_LIBRARY_PATH]
Параметр устанавливает, какие переменные окружения пользователи не могут изменить в безопасном режиме, даже если опция safe_mode_allowed_env_vars включена.
disable_functions = [function1, function2…]
Довольно полезным дополнением в конфигурации PHP4 , которое сохранилось и в версии PHP5 , является возможность отключения выбранных функций по соображениям безопасности. Раньше это требовало ручной правки кода на языке C , на котором был написан интерпретатор PHP . Функции файловой системы, операционной системы и сети должны быть первыми в этом списке, потому что возможность записи файлов и изменения системы через HTTP не является безопасным.
max_execution_time = 30
При настройке php ini нужно знать, что функция set_time_limit() не будет работать в безопасном режиме. Поэтому это основной способ реализовать задержку выполнения скрипта в безопасном режиме. В Windows вы должны выполнить принудительное завершение, основываясь на максимальном уровне потребляемой памяти, а не на времени. Также можно использовать настройку таймаута Apache для реализации задержки. Но она будет применена и к файлам сайта, не являющимся PHP .
error_reporting = E_ALL &
Значением по умолчанию является E_ALL &
E_NOTICE , все ошибки кроме уведомлений. Для серверов должно быть установлено, как минимум, значение по умолчанию. И только на основных серверах можно использовать меньшее значение.
error_prepend_string = [«»]
Вместе с error_append_string этот параметр позволяет выделить сообщения об ошибках другим цветом.
warn_plus_overloading = Off
Этот параметр выдает предупреждение, если оператор « + » используется со строками, как при формировании значения поля формы.
variables_order = EGPCS
Заменяет gpc_order . Обе версии устарели вместе с register_globals . Он устанавливает порядок различных переменных: Environment , GET , POST , COOKIE и SERVER ( или Built-in ). Вы можете изменить этот порядок. Переменные будут последовательно перезаписаны слева направо, при этом самый правый всегда « выигрывает ». Это означает, что если оставить значение по умолчанию и использовать одно имя для переменной среды, переменной POST и переменной COOKIE , то, в конце концов, имя будет принадлежать переменной COOKIE .
register_globals = Off
Этот параметр php ini set позволяет определить, нужно ли регистрировать переменные EGPCS как глобальные. В настоящее время этот способ устарел, и, начиная с PHP 4.2 , этот флаг по умолчанию установлен в значение Off . Вместо него используйте суперглобальные массивы.
gpc_order = GPC
Этот параметр устарел.
magic_quotes_gpc = On
Экранирует кавычки во входящих данных GET/POST/COOKIE . Если вы используете много форм, которые отправляют данные сами себе или другим формам, и отображают значения форм, нужно активировать эту директиву или использовать функции addslashes() для данных строкового типа.
magic_quotes_runtime = Off
Этот параметр экранирует кавычки во входящих строках базы данных и текстовых строках. Помните, что SQL добавляет слеш в одинарные кавычки и апострофы при сохранении строк и не убирает их при возвращении строк. Если этот параметр выключен, необходимо использовать функцию stripslashes() при выводе любых типов строковых данных из БД SQL . Если для magic_quotes_sybase установлено значение On , то этот параметр должен быть Off .
magic_quotes_sybase = Off
Экранирует одиночные кавычки во входящих строках базы данных и текстовых строках с одиночными кавычками в стиле Sybase , а не обратным слешем. Если для параметра magic_quotes_runtime установлено значение On , данный параметр должен быть отключен.
auto-prepend-file = [path/to/file]
Если в этом параметре php ini указан путь, PHP должен автоматически добавить конструкцию include() в начало каждого PHP-файла . Следует учитывать ограничения для путей включаемых файлов.
auto-append-file = [path/to/file]
Если в этом параметре указан путь, PHP должен автоматически ввести конструкцию include() в конец каждого PHP-файла , кроме случаев, когда осуществляется выход с помощью функции exit () . Следует учитывать ограничения для путей включаемых файлов.
include_path = [DIR]
Если установить это значение, вам будет разрешено включать или запрашивать файлы только из указанных каталогов. Каталог include обычно находится под корневым документом. Это необходимо, если вы работаете в безопасном режиме. Установите для параметра значение .in , чтобы включить файлы из каталога, в котором находится ваш скрипт. Несколько каталогов разделяются двоеточиями: .:/usr/local/apache/htdocs:/usr/local/lib .
doc_root = [DIR]
При настройке php ini если вы используете Apache , то в файле httpd.conf корневой каталог документа для этого сервера или виртуального хоста уже задан. Установите это значение здесь, если используете безопасный режим или хотите разрешить PHP только для части сайта ( например, только в одном подкаталоге ).
file_uploads = [on/off]
Активируйте этот флаг, если загружаете файлы с помощью PHP-скрипта .
upload_tmp_dir = [DIR]
Не удаляйте комментарии из этой строки, если не понимаете, что такое HTTP-загрузка !
session.save-handler = files
За исключением редких случаев изменять этот параметр не нужно.
ignore_user_abort = [On/Off]
Определяет, что произойдет, если посетитель сайта нажмет в своем браузере кнопку « Остановить ». По умолчанию установлено значение On , которое означает, что скрипт продолжит работать до завершения или таймаута. Если изменить значение данного параметра на Off , скрипт будет прерван. Этот параметр работает только в режиме модуля, а не в CGI .
mysql.default_host = hostname
Хост-сервер по умолчанию, используемый при подключении к серверу базы данных, если не указан другой узел.
mysql.default_user = username
Этот параметр php ini задает имя пользователя по умолчанию, используемое при подключении к серверу базы данных, если другое имя не указано.
mysql.default_password = password
Пароль по умолчанию, используемый при подключении к серверу базы данных, если не указан другой пароль.
PHP на Windows и IIS7
Установка и настройка PHP для использования с модулем FastCGI.
Установка и настройка модуля FastCGI на IIS7.
Если у вас у IIS7, то что-то мне подсказывает о названии вашей операционной
системы — Windows Vista? Не угадал, тогда Windows Server 2008! Либо вы хакер и
поставили IIS7 еще-куда-то, но это нестандартное решение и мы его не
поддерживаем ;).
Шаг 1. Установка FastCGI
Хочу обрадовать сразу — в IIS7, идущем с Windows Server 2008 и Windows Vista
Service Pack 1 модуль FastCGI уже включен. Его необходимо лишь подключить в
настройках. Для этого на Vista нужно открыть Control Panel -> Programs и выбрать
«Turn Windows Features On or Off»:
После этого необходимо установить фичу в IIS: Internet Information Services
-> World Wide Web Services -> Application Development Features -> CGI. При этом
будет установлена поддержка и CGI и FastCGI.
На Windows Server 2008 процесс аналогичен: Server Manager -> Roles -> Add
Role Services -> Web Server -> Application Development -> CGI.
Собственно все, что требуется для включения модуля FastCGI.
Шаг 2. Конфигурация IIS7
1. Открыть IIS Manager, выбрать узел (сервер) для которого нужно настроить
поддержку PHP. И далее выбрать Handler Mappings.
2. Выбираем на странице Handler Mappings ссылку Add Module Mapping и
заполняем окно следующими значениями:
Request path: *.php (обработка всех файлов с расширением .php)
Module: FastCgiModule (модуль FastCGI)
Executable: C:WebPHPphp-cgi.exe (путь к PHP)
Name: PHP (имя для удобства)
После добавления этой настройки появится окно с вопросом о регистрации
FastCGI приложения для этого обработчика. Подтверждаем.
Описанные выше действия привели к созданию в директории PhpSites следующего
web.config файла:
xml version =«1.0» encoding =«UTF-8» ? >
configuration >
system.webServer >
handlers >
add name =«PHP» path =»*.php» verb =»*»
modules =«FastCgiModule» scriptProcessor =»C:WebPHPphp-cgi.exe»
resourceType =«Unspecified» />
handlers >
system.webServer >
configuration >
* This source code was highlighted with Source Code Highlighter .
Теперь можно переходить к проверке работоспособности PHP.
Шаг 3. Проверяем корректность настройки
В директории узла для которого мы сконфигурировали PHP создаем файл
index.php:
И обращаемся к этому файлу через HTTP запрос. В результате, если все хорошо и
наша карма не испорчена, запрос будет корректно обработан:
Рекомендации по настройке PHP на
IIS7
Частота перезапуска процессов PHP
Поскольку при использовании PHP на
IIS7 с использованием FastCGI
модуля, сам модуль FastCGI берет на себя
управление процессами и ресурсами, необходимо убедится, что механизм перезапуска
процессов (recycling) в PHP
не будет мешать FastCGI. Это легко сделать, если
настроить FastCGI так, чтобы он всегда перезапускал
процессы раньше, чем это сделает PHP.
В настройках FastCGI существует настройка
instanceMaxRequests, определяющая после обработки какого количества запросов,
процесс будет перезапущен. В PHP аналогичный параметр
задается значением переменной PHP_FCGI_MAX_REQUESTS. Очевидно, чтобы дать
возможность FastCGI рулить процессом, достаточно
установить instanceMaxRequests fastCgi >
application fullPath =»C:inetpubphpphp-cgi.exe»
maxInstances =«4» instanceMaxRequests =«10000» >
environmentVariables >
environmentVariable name =«PHP_FCGI_MAX_REQUESTS» value =«10000» >
environmentVariables >
application >
fastCgi >
* This source code was highlighted with Source Code Highlighter .
Использование нескольких версий PHP
fastCgi >
application fullPath =«C:inetpubphpphp-cgi.exe» >
.
application >
application fullPath =«C:inetpubphp4php4.exe» >
.
application >
application fullPath =«C:inetpubphp41php41.exe» >
.
application >
fastCgi >
* This source code was highlighted with Source Code Highlighter .
handlers >
add name =«PHP4» path =»*.php» verb =»*» modules =«FastCgiModule»
scriptProcessor =»C:inetpubphpphp41.exe»
resourceType =«Unspecified» />
handlers >
* This source code was highlighted with Source Code Highlighter .
Установка php 7 в Linux
Php — популярный язык веб программирования и разработки сайтов. С каждой новой версией язык становился все интереснее и интереснее, начиналось все с простого функционально ориентированного языка программирования пригодного только для создания веб страничек, и наконец Php 5 сейчас позиционируется как полнофункциональный объективно ориентированный скриптовый язык. php 7 преподносит много интересных улучшений и исправлений таких как тотальная оптимизация производительности и добавление многопоточности но сегодня не об этом, обзоров возможностей php 7 вы можете найти вагон и маленькую тележку на просторах интернета.
В этой инструкции будет описана установка php 7 в Linux, она рассчитана в первую очередь на пользователей Ubuntu но подойдет и для других дистрибутивов. Мы рассмотрим установку из PPA в Ubuntu и сборку из исходников.
Установка php 7 из PPA в Ubuntu
Репозитории PPA позволяют сторонним разработчикам распространять пакеты своих программ в обход официальных репоизиториев Ubuntu. Обычно из PPA можно получить самые новые или даже бета версии программ. После официального релиза php 7 был сделан PPA для Ubuntu. Добавим его в систему:
$ sudo add-apt-repository ppa:ondrej/php-7.0
Дальше нужно обновить список пакетов:
sudo apt-get update
И можно устанавливать:
sudo apt-get install php7.0
Для поддержки mysql нужно установить библиотеку:
sudo apt-get install php7.0-mysql
Для установки php в виде модуля fpm выполните:
sudo apt-get install php7.0-fpm
Сборка php 7 из исходников
Сначала установим необходимые нам инструменты и библиотеки:
sudo apt-get install git autoconf bison libxml2 libxml2-dev opessllibcurl4-openssl-dev libbz2-dev libjpeg-dev libpng-dev libxpm-dev libfreetype6-dev libgmp-dev libmcrypt-dev libmysqld-dev libpspell-dev librecode-dev
Создадим рабочую папку:
Синхронизируем исходники php с репозитория git:
git clone https://git.php.net/repository/php-src.git
Переходим непосредственно к сборке и установке, программа будет установлена в текущую папку —
cd php-src
$ sudo ./buildconf
$ sudo ./configure
—enable-mbstring
—enable-zip
—enable-bcmath
—enable-pcntl
—enable-ftp
—enable-exif
—enable-calendar
—enable-sysvmsg
—enable-sysvsem
—enable-sysvshm
—enable-wddx
—with-curl
—with-mcrypt
—with-iconv
—with-gmp
—with-pspell
—with-gd
—with-jpeg-dir=/usr
—with-png-dir=/usr
—with-zlib-dir=/usr
—with-xpm-dir=/usr
—with-freetype-dir=/usr
—with-t1lib=/usr
—enable-gd-native-ttf
—enable-gd-jis-conv
—with-openssl
—with-mysql=/usr
—with-pdo-mysql=/usr
—with-gettext=/usr
—with-zlib=/usr
—with-bz2=/usr
—with-recode=/usr
—with-mysqli=/usr/bin/mysql_config
$ make
Создаем папку для конфигурационного файла:
Создаем конфигурационный файл php со следующим содержимым:
max_execution_time=600
memory_limit=128M
error_reporting=0
display_errors=0
log_errors=0
user_ini.filename=
realpath_cache_size=2M
cgi.check_shebang_line=0
zend_extension=opcache.so
opcache.enable_cli=1
opcache.save_comments=0
opcache.fast_shutdown=1
opcache.val > opcache.reval > opcache.use_cwd=1
opcache.max_accelerated_files=100000
opcache.max_wasted_percentage=5
opcache.memory_consumption=128
opcache.consistency_checks=0
Сохраните, и php 7 установлен и настроен, можно переходить к тестированию.
Установка PHP 7 в картинках и с подробным описанием
В предыдущих статьях мы писали о том, как создать локальный веб-сервер с помощью наборов инструментов Денвер и XAMPP. Эти инструменты позволяют превратить ваш домашний компьютер в веб-сервер и создавать сайты у себя дома. Рассмотренные приложения содержат в себе необходимый минимум программ, которые необходимы для работы в локальной среде разработки: сервер Apache, интерпретатор скриптов PHP, систему управления базами данных MySQL, интерпретатор языка Perl, и другие дополнительные библиотеки. Все эти компоненты вы можете установить и сами, главное знать, как это правильно сделать. И в сегодняшнем уроке мы рассмотрим установку интерпретатора PHP. Другими словами – мы установим PHP 7-й версии на свой компьютер. В качестве примера мы будем использовать операционную систему Windows 10.
Основные возможности PHP
Для начала рассмотрим то, что умеет PHP и для чего его можно использовать:
- Создание скриптов, которые выполняются на стороне сервера. В качестве сервера может использоваться удаленный сервер (например, на хостинге), либо локальный веб-сервер (например, ваш домашний компьютер). Последний вариант особенно полезен в процессе разработки и тестирования сайтов. Чтобы видеть результат выполнения PHP-скриптов, вам нужен браузер, веб-сервер и сам PHP.
- Создание скриптов, которые выполняются в командной строке. Этот вариант вам подойдет, если вам нужно запускать PHP-скрипт и видеть результат его обработки в командной строке (консоли). В этом случае вам не нужен веб-сервер и даже браузер. Главное, чтобы был установлен парсер PHP (программа, которая осуществляет разбор исходного кода языка программирования). Этот вариант используется довольно редко и мы не будем рассматривать его в данной статье.
Основные нововведения в PHP 7.х версиях:
- Поддержка 64-разрядной Windows
- Удаление устаревших функций и расширений
- Анонимные классы (классы без имени, которые могут ускорить процесс кодирования, а также время выполнения)
- Унифицированный синтаксис переменных
- Синтаксис Unicode Codepoint Escape. Новый escape-символ ( u ) дает возможность использовать код Unicode символа (в шестнадцатеричном виде) внутри строк.
- Общий родительский класс при обработке исключений ( BaseException )
- Декларация возвращаемого типа
- Абстрактное дерево синтаксиса. Это расширение позволяет получать промежуточное представление кода во время компиляции.
- Новый движок Zend Engine
- Производительность + Экономия памяти. PHP 7 работает в два раза быстрее, чем PHP 5.6 и использует значительно меньше памяти.
Процесс установки PHP 7 на свой компьютер
Шаг №1 – Загрузка дистрибутива PHP
Скачайте дистрибутив PHP на официальном сайте https://windows.php.net/download/. Выберите нужную версию и скачайте ZIP-архив для типа сборки Thread-Safe (чтобы он был совместим с сервером Apache) и подходящей разрядности. Например, для этого урока мы скачали архив с последней версией PHP (7.2.12) – VC15 x64 Thread Safe.
После того, как закончится загрузка, распакуйте архив в любую папку, например, в C:PHP7 .
На этом этапе уже можно сказать, что вы установили интерпретатор PHP на свой компьютер. Теперь пришла пора проверить, что он работает нормально.
Мы создадим небольшой PHP-скрипт для проверки:
- Создайте файл script_01.php в любой папке, например, в C:PHP7scripts .
- Откройте его любым текстовым редактором, например, Notepad++.
- И добавьте в него небольшой кусок php-кода:
Шаг №2 – Проверка работы PHP
Теперь проверим, что эта новая программа (скрипт) запускается.
Для проверки будем использовать командную строку (консоль).
Из консоли нам нужно выбрать обработчик (в данном случае это файл php.exe в папке C:PHP7 ).
Проще всего сделать это в Windows 10 так: откройте File Explorer и перейдите в нужную папку:
Затем в строке пути к папке наберите слово cmd и нажмите Enter:
Откроется командная строка (консоль; CLI).
Теперь нужно выбрать обработчик и скрипт для обработки, — для этого наберите следующую команду в консоли:
- php.exe – это обработчик. Поскольку мы запустили консоль из папки с этим файлом, путь к нему мы опустили. Если вы запускаете обработчик из другой папки, тогда указывайте полный путь к нему, например, в формате C:PHP7php.exe .
- Через пробел мы указываем скрипт для обработки (абсолютный путь к файлу скрипта) – C:PHP7scriptsscript_01.php . Если у вас другой путь – замените его здесь.
После того, как вы нажмете Enter, должна выполниться команда, и вы должны увидеть результат выполнения скрипта:
Если у вас возникают ошибки в консоли, скорее всего вы ошиблись в указании пути к файлам. Если в названии папки есть пробелы, тогда заключайте путь в двойные кавычки.
В нашем примере обошлось без ошибок, и мы видим, что интерпретатор PHP успешно установлен и работает корректно. Теперь вы можете использовать PHP 7 из командной строки.
Использование встроенного в PHP сервера
Если вы хотите запускать PHP-скрипты из браузера, тогда вам нужно установить дополнительно веб-сервер (например, Apache). Правда, для простой проверки можно обойтись и без Апача, а использовать встроенный в дистрибутив PHP сервер. И сейчас мы вкратце расскажем вам, как это сделать.
Откройте в File Explorer папку с установленным PHP и наберите в пути слово cmd , а затем нажмите Enter.
После этого наберите команду, которая переведет PHP в режим сервера:
- -S – эта часть команды обозначает, что PHP должен запуститься в режиме сервера
- localhost – эта часть команды обозначает, что сервер должен принимать соединения только со своего компьютера
- 6789 — это номер порта, на котором сервер будет ждать соединения от веб-браузера. При ошибке о занятости порта, используйте другой порт (от 1 до 65534)
После того как вы наберете команду и нажмете Enter, вы должны увидеть следующую информацию в консоли:
- Версию запущенного PHP и время запуска
- Порт, который слушает сервер
- Корневая папка сервера (в нашем примере это C:PHP7 )
- Чтобы завершить работу сервера, вы должны нажать в консоли Ctrl+C
Теперь вы можете открыть браузер и протестировать работу сервера и выполнение PHP-скриптов.
Напомним, что корневая папка сервера – это C:PHP7 . Поэтому, чтобы протестировать наш «подопытный» скрипт, нам нужно в браузере набрать следующий адрес:
Если вы используете другой порт, вы должны поменять его на свой. Также учитывайте корректность пути к скриптам (учитывайте корневую папку PHP-сервера).
Если все нормально, вы должны увидеть в браузере результат выполнения скрипта C:PHP7scriptsscript_01.php , а в консоли будет отображаться информация об использовании сервера.
После этого вы можете прекратить работу PHP сервера, для этого нажмите сочетание клавиш Ctrl+C в консоли.
Вот и все! Мы успешно установили и проверили работу PHP 7. Мы увидели, как можно работать с интерпретатором PHP в консоли, а также узнали, как легко использовать встроенный сервер в PHP для проверки работы PHP-скриптов в браузере.
Для более сложных задач вам может понадобиться веб-сервер Apache, инструмент для работы с базами данных MySQL и дополнительные библиотеки. Все эти компоненты вы можете установить сами (как и PHP в сегодняшнем уроке), либо же использовать готовые пакеты с необходимыми инструментами, такие как XAMPP, Wampserver и другие (Денвер не поддерживает PHP 7).
В последующих уроках мы постараемся подробно осветить процесс установки дополнительных компонентов.
Если у вас есть вопросы или замечания к сегодняшнему уроку, оставляйте их в разделе комментариев ниже.