Установка расширений PHP в ОС Windows
После установки PHP и веб-сервера на ОС Windows может понадобиться установить некоторые расширения для добавления функционала. Вы можете выбрать, какие расширения будут загружаться при старте PHP, модификацией вашего файла php.ini . Также вы можете загружать расширения динамически в ваших скриптах, используя функцию dl() .
Библиотеки DLL расширений PHP имеют префикс php_.
Многие расширения встроены в Windows-версию PHP. Это значит, что дополнительные DLL-файлы и директива extension не используются для загрузки данных расширений. Таблица расширений PHP в Windows, содержащая список расширений, требующих (или обычно требующих) дополнительные DLL-файлы. Ниже приведен список встроенных расширений (обновлено PHP 5.0.4): BCMath, Caledar, COM, Ctype, DOM, FTP, LibXML, Iconv, ODBC, PCRE, Session, SimpleXML, SPL, SQLite, WDDX, XML и Zlib.
Место по умолчанию, в котором PHP ищет расширения — C:\php5 . Для изменения данной настройки согласно вашей установке PHP отредактируйте файл php.ini следующим образом:
измените опцию extension_dir так, чтобы она указывала на директорию, в которой расположены расширения или в которую вы поместили файлы php_*.dll . Например:
Включите одно или несколько расширений, которые вы хотите использовать, раскомментировав в файле php.ini строки вида extension=php_*.dll. Это делается удалением символа «;» в начале строки для каждого расширения, которое вы хотите включить.
Пример #1 Включение расширения Bzip2 в PHP-Windows
Некоторые расширения для своей работы требуют дополнительные библиотеки DLL. Несколько из них находятся в распространяемом дистрибутиве PHP, в в корневой директории, но некоторые расширения, например, Oracle ( php_oci8.dll ), требуют наличия библиотек DLL, не включаемых в дистрибутив PHP. Не забудьте включить директорию C:\php в системную переменную PATH (данный процесс описан в отдельном разделе помощи).
Некоторые из этих библиотек DLL не поставляются в дистрибутиве PHP. За деталями обратитесь к странице документации конкретного расширения. Также прочтите раздел руководства Установка расширений PECL, чтобы узнать дополнительную информацию о PECL . Все большее число расширений PHP можно найти в PECL , и данные расширения требуют отдельной загрузки.
Самые востребованные модули PHP для отличной работы сайта
В этой статьи пройдемся по нескольких модулях PHP, о которых часто спрашивают наши клиенты. Модули PHP позволяют оптимизировать и настроить работу PHP-скриптов на сервере. Каждый модуль несет свою функциональность и может значительно облегчить и ускорить задачи касательно php кода. О том как включить/отключить модули PHP можно ознакомиться в нашей статье здесь .
Начнем с модулей предназначенных для кэширования. С помощью кэширования памяти можно значительно улучшить производительность сервера . Это процесс хранения часто запрашиваемых объектов в памяти для более быстрого поиска и воспроизведения в дальнейшем . Существует два типа кэширования памяти :
- Кэш кода PHP (модульOPcache) : Кэш кода операции хранит скомпилированные сценарии PHP , сервер не компилирует и преобразовывает скрипт PHP в машинно-понятный код при каждом запросе . Эти скомпилированные сценарии PHP хранятся в памяти на сервере , на котором они скомпилированы . OPcache доступен с момента выпуска PHP 5.5 и является механизмом кэширования по умолчанию для кэширования кода на уровне байт-кода. С активированным OPcache есть возможность обрабатывать гораздо больше запросов. одновременно, это очень важное преимущество для работы крупных сайтов.
- Кэш данных . Кэш данных хранит копии данных , шаблонов и других типов информационных файлов . В зависимости от реализации кэша он может быть локальным для одного сервера или распределенным по нескольким серверам .
Модуль PHP APCu (APC User Cache) отвечает за локальный кеш для систем начиная с версии PHP 5 . 6 и выше . APCu является кэшем данных и доступен в большинстве дистрибутивов. APCu пришел на смену APC
Redis — это отличный современный кэш памяти, который можно использовать как для распределенного кэширования, так и в качестве локального кэша для блокировки транзакций файлов, поскольку он гарантирует, что кэшированные объекты доступны столько времени, сколько они необходимы. Модуль Redis идет от PHP версии 2.2.6 или выше.
Также в доступности есть два расширения PHP — это Memcache и Memcached. Memcached — PHP расширение для взаимодействия с memcached через библиотеку libmemcached. Библиотека libmemcached используется для предоставления API для связи с серверами memcached. А Memcache является расширением Memcached. Memcached разработанный специально для динамических веб-приложений, чтобы уменьшить нагрузку на базу данных путем хранения объектов в памяти, при этом используются специальные ключи для уменьшения количество запросов к серверу с БД. Это расширение позволяет работать с Memcached через удобный процедурный интерфейс.
Модуль APM (Application Performance Monitoring) — инструмент мониторинга производительности приложений. Существует множество инструментов мониторинга производительности приложений, например, как Pinpoint, New Relic, AppDynamics, Apache SkyWalking, Stagemonitor и д.р. Многие из них предлагают уменьшенные бесплатные версии своих продуктов.
Этот инструмент позволяет Вам эффективно измерять и рассчитывать статистику реальной работы вашего приложения в зависимости от его использования. С помощью APM можно просматривать подробные показатели производительности PHP — приложений такие как память, процессор, загрузка системы, дампы памяти и так далее, что полезно для выявления причин медленной работы системы, оптимизации производительности, анализа причин и потенциальных проблемах. Возможность быстро понять топологию и зависимости Вашего приложения Отклик строк кода на все Ваши транзакции для отслеживания самых мелких ошибок и сбоев.
Модуль cURL позволяет PHP-программам получать доступ к функциям curl в PHP. CURL расшифровывается как «Client for URLs». В проекте cURL есть два продукта libcurl и curl.
libcurl — это библиотека PHP и инструмент командной строки (например, wget), который помогает отправлять файлы, а также загружать данные через HTTP и FTP. Он поддерживает прокси, и передает данные через SSL-соединения, также есть возможность устанавливать куки и даже получать файлы, которые находятся за логином.
curl: инструмент командной строки для получения или отправки файлов с использованием синтаксиса URL. Поскольку curl использует libcurl, он поддерживает ряд общих внутренних протоколов, в том числе HTTP, HTTPS, FTP, FTPS, GOPHER, TELNET, DICT и FILE.
Модуль IMAP (доступен для PHP 5.6, 7.0, 7.1, 7.2 или 7.3.) представляет собой мощную библиотеку с открытым исходным кодом для подключения к почтовому ящику по протоколам POP3, IMAP и NNTP с использованием расширения PHP IMAP. Эта библиотека позволяет вам получать электронные письма с Вашего почтового сервера. Данные сообщений, считанные с почтового сервера, будут использоваться для составления списка электронных писем в почтовом ящике, создания уведомлений о непрочитанных сообщениях и для многих других целей. Используя IMAP можно создавать удобные приложения для обработки сообщений, так IMAP более функциональный и современней, протокола POP3.
IMAP работает по протоколу TCP / IP с защитой SSL, поэтому прежде чем мы сможем сделать какие-либо вызовы IMAP, мы должны открыть соединение. Перед этим нужно проверить в настройках почты включена ли возможность подключения по протоколу IMAP. Если отключена эта функция , ее нужно просто включить в настройках почты.
Далее для подключения нужно указать сервер входящей почты (IMAP), сервер исходящей почты (SMTP), при этом указываем порт подключения, почтовый ящик к которому желаете подключится, пароль и путь к папке где будут сохраняться почтовые сообщения. Если Вам нужна дополнительная информация об IMAP-доступе, ищите в справочном центре почты, где имеете почтовый ящик, они всегда выкладывают подробные инструкции и данные для подключении.
ionCube loader представляет собой расширение PHP , поставляется в виде .so или .dll библиотеки, необходим для использования и чтения декодирования исходного кода закодированного при помощи ionCube Encoder, которое в основном используется в коммерческих программных приложениях для защиты от нелицензионного использования исходного кода и предотвращения его видимости , кражи и изменения путем компиляции в байт-код.
PHP-кодер ionCube имеет 3 версии: Basic, Pro и Cerberus, также уже присутствует дополнительное шифрование файлов не с PHP разметкой. Эти версию отличаются друг от друга набором функций. Если Вам нужно просто шифрование Вам подойдет Basic, Pro или Cerberus снизят риск запуска любых украденных файлов на другом сервере, так как предоставляют возможность создавать файлы лицензий для ваших продуктов. Pro и Cerberus есть интересная функция полезна разработчикам, которая предоставляет доступ к защищенному коду в течение установленного времени для установленного количества пользователей. PHP Encoder доступен для Windows, Linux, FreeBSD и OS X. Поддержка для других платформ доступна по запросу.
Более детально ознакомиться с продуктом IonCube и использовании его на серверах можно в нашей статьи здесь.
Функции FTP модуля позволяют, если есть необходимость, использовать для php скриптов подключения и доступ к серверам по протоколу FTP (File Transfer Protocol). Больше информации об том протоколе, как подключиться и настроить можно почитать в нашей статье здесь .
Также для удаленного доступа можно использовать протокол SSH2 . SSH2 — это более безопасная, эффективная и портативная версия SSH, включающая SFTP, функционально аналогичная FTP, но с шифрованием SSH2. Для использования нужно наличие подключенных библиотек libssh2 и OpenSSL.
OpenSSL использует функциональность библиотеки OpenSSL для симметричных и асимметричных шифрования и дешифровки, PBKDF2, PKCS7, PKCS12, X509, криптографических операций и реализует потоки TLS.
Модуль PHP Zlib позволяет на ходу читать и записывать сжатые файлы gzip . Для использования модуля также нужно подключение библиотеки zlib начиная с версии 1 . 0 . 9 . Алгоритм сжатия, используемый в zlib, является методом deflate. Метод deflate кодирует входные данные в сжатые данные. Алгоритм распаковки, используемый в zlib — это метод inflate, который представляет собой процесс декодирования. Этот модуль используется для предоставления более быстрого вывода необходимой информации путем сжатия потока данных . В файле php . ini . можно настроить параметры сжатия .
Модуль ZIP для записи, чтения, модификации ZIP-архивов. Для работы нужна библиотека libzip. PHP модуль RAR предназначен для чтения архивов Rar-архивов используя библиотеки unRAR. Это расширение дает вам возможность читать архивы Rar, но не поддерживает возможность записывать Rar-архивы , так как эта функция не поддерживается библиотекой UnRar.
Если Вы хотите внедрять БД, то используйте для их подключения соответствующее модули: pgsq l — PostgreSQL , mongodb — MongoDB (модуль mongo считается устаревшим), mssql — MS SQL Server, mysql — MySQL (считается устаревшим, а с версии PHP 7.0.0 этот модуль удален, лучше использовать вместо этого модуля модули mysqli или pdo_mysql ).
Модуль mysqli — позволяет получить доступ к функциональности, предоставляемой СУБД MySQL. А Расширение PHP Data Objects (PDO) определяет легкий, согласованный интерфейс для доступа к базам данных в PHP. PDO поддерживает различные базы данных, что есть очень удобным, в том случаи, если нужно в проекте перейти с использования одной к другой, не нужно переписывать весь код и запросы как в случаи с mysqli.
Если Вас интересует функциональность и наличие других модулей PHP, то пишите, специалисты ГиперХост с радостью предоставят информацию и помогут включить и настроить необходимые модули для эффективной работы Вашего проекта.
Установка в системах Windows
Содержание
Установка PHP в современных операционных системах Microsoft Windows и рекомендуемая конфигурация под распространённые веб-серверы.
Если вы ищете информацию о старых версиях операционных систем: Windows XP, 2003, 98 или Apache 1.x, обратитесь к разделу руководства Установка на старых версиях ОС Windows.
Официальные релизы PHP для Windows рекомендованы для использования в промышленной эксплуатации. Однако, вы также можете собрать PHP из исходных кодов. Вам потребуется окружение Visual Studio. Обратитесь к разделу » Пошаговое руководство по сборке для получения более полной информации.
Установка PHP на Azure App Services (он же Microsoft Azure, Windows Azure, или (Windows) Azure Web Apps).
User Contributed Notes 12 notes
If you make changes to your PHP.ini file, consider the following.
(I’m running IIS5 on W2K server. I don’t know about 2K3)
PHP will not «take» the changes until the webserver is restarted, and that doesn’t mean through the MMC. Usually folks just reboot. But you can also use the following commands, for a much faster «turnaround». At a command line prompt, type:
and that will stop the webserver service. Then type:
net start w3svc
and that will start the webserver service again. MUCH faster than a reboot, and you can check your changes faster as a result with the old:
in your page somewhere.
I wish I could remember where I read this tip; it isn’t anything I came up with.
You can have multiple versions of PHP running on the same Apache server. I have seen many different solutions pointing at achieving this, but most of them required installing additional instances of Apache, redirecting ports/hosts, etc., which was not satisfying for me.
Finally, I have come up with the simplest solution I’ve seen so far, limited to reconfiguring Apache’s httpd.conf.
My goal is to have PHP5 as the default scripting language for .php files in my DocumentRoot (which is in my case d:/htdocs), and PHP4 for specified DocumentRoot subdirectories.
Here it is (Apache’s httpd.conf contents):
—————————
# replace with your PHP4 directory
ScriptAlias /php4/ «c:/usr/php4/»
# replace with your PHP5 directory
ScriptAlias /php5/ «c:/usr/php5/»
AddType application/x-httpd-php .php
Action application/x-httpd-php «/php5/php-cgi.exe»
# populate this for every directory with PHP4 code
Action application/x-httpd-php «/php4/php.exe»
# directory where your PHP4 php.ini file is located at
SetEnv PHPRC «c:/usr/php4»
# remember to put this section below the above
# directory where your PHP5 php.ini file is located at
SetEnv PHPRC «c:/usr/php5»
—————————
This solution is not limited to having only two parallel versions of PHP. You can play with httpd.conf contents to have as many PHP versions configured as you want.
You can also use multiple php.ini configuration files for the same PHP version (but for different DocumentRoot subfolders), which might be useful in some cases.
Remember to put your php.ini files in directories specified in lines «SetEnv PHPRC. «, and make sure that there’s no php.ini files in other directories (such as c:\windows in Windows).
And finally, as you can see, I run PHP in CGI mode. This has its advantages and limitations. If you have to run PHP as Apache module, then. sorry — you have to use other solution (the best advice as always is: Google it!).
Hope this helps someone.
If you are installing PHP on Vista just go to David Wang’s blog. http://blogs.msdn.com/david.wang/
archive/2006/06/21/HOWTO-Install-and-Run-PHP-on-IIS7-Part-2.aspx
I made the mistake of setting a ‘wildcard application map’ for PHP on a Windows 2003 / IIS 6.0 / PHP ISAPI installation.
This resulted in «No input file specified» errors whenever I tried to load the default page in my site’s directories. I don’t know why this broke things, but it did.
If anyone has the same problem, this may be the cause.
IIS setup: 403 forbidden error.
We had installed two separate different PHP versions — PHP 5.1.4 followed by 5.2.5.
We configured 5.2.5 php5isapi.dll to be loaded as the .php file type extension.
Despite this, php version 5.1.4 was being loaded. We renamed 5.1.4’s folder and then PHP was not loading at all.
There were no visible references to 5.1.4 in the IIS configuration, but in the file \webConfig.xml, there was a reference to 5.1.4’s isapi under IISFilters.
To fix this problem, we added version 5.2.5’s php5isapi.dll to the ISAPI Filter category for the web site, in the IIS control panel.
I installed by Microsoft Installer, manually, whatever I always received de same error from IIS7.
HTTP Error 404.3 — Not Found
The page you are requesting cannot be served because of the extension configuration. If the page is a script, add a handler. If the file should be downloaded, add a MIME map.
The IIS7 interface is quite diferent and are not all together like IIS6
The 5.3 version have not any of those files: php5stdll, php5isapi.dll. etc.
The installer puts others files in handlers and I decided to use them as substitutes. Nothing done!
After that, I discovered that installer do not install these files within the sites, but in the root default site configuration of IIS7.
So, I copied the root configuration to my site and them it worked (all others procedures were done e.g. copy php.ini to windows folder)
If you get 404 page not found on Windows/IIS5, have a look at C:\SYSTEM32\INETSRV\URLSCAN
There is a .ini file there that prevents some files from being served by IIS, even if they exist, instead IIS will give a 404. The urlscan logfile (same place) should give you some insight into what parameter is preventing a page from loading, if any.
Here’s how to run dual PHP instances with PHP 5.2 and any previous PHP on Windows 2003:
1. Right-click My Computer, go to Advanced tab, and click on Environment Variables.
Add the two installations and their EXT directories to the Path variable. For example, add:
c:\php;c:\php\ext;c:\TMAS\php;c:\tmas\php\ext;
Then, add the newer PHP version’s directory as a variable called PHPRC. For example:
Variable:PHPRC
Value: C:\PHP
Click OK to close the Environment Variables window, and click OK to close System Properties.
2. In registry, under HKEY_LOCAL_MACHINE>SOFTWARE>PHP, add a REG_SZ key called iniFilePath and give it a value
of the directory where the older PHP is installed. For example:
C:\TMAS\PHP
3. In IIS, go to the Web Service Extensions. Add both versions’ ISAPI module separately to the extensions
list, and allow both.
4. In IIS, go to each website utilizing the PHP versions. Set an ISAPI filter if needed. On the Home Directory
tab, click Configuration, and add .php, .php3, .phtml, and any other extensions needed (perhaps .html?) to
be filtered through PHP, and specify the ISAPI module version needed for each website.
You can now run two versions of PHP. This is because the order of where to look for the .ini file changed
between previous PHP versions and PHP 5.2, as documented at http://us2.php.net/ini:
* SAPI module specific location (PHPIniDir directive in Apache 2, -c command line option in CGI and CLI, php_ini parameter in NSAPI, PHP_INI_PATH environment variable in THTTPD)
* The PHPRC environment variable. Before PHP 5.2.0 this was checked after the registry key mentioned below.
* HKEY_LOCAL_MACHINE\SOFTWARE\PHP\IniFilePath (Windows Registry location)
* Current working directory (for CLI)
* The web server’s directory (for SAPI modules), or directory of PHP (otherwise in Windows)
* Windows directory (C:\windows or C:\winnt) (for Windows), or —with-config-file-path compile time option
—————————————————-
PHP 5.2.9.2 Install on XP Pro IIS 5.1 — phpinfo( ) results incorrect
Testing Date: 05.15.09
Background:
For several days now I, as a newbie, have been unsure if I had installed PHP correctly, or not. No matter what I did phpinfo( ) reported «Configuratin File Path» as: “C:\WINDOWS”. I was left to wonder what was wrong.
To help resolve the phpinfo() “issue”, I conducted a series of tests using two scripts:
The first is “test-php-ini-loaded.php”; it is stored in c:\inetpub\wwwroot, and has the following code:
if ( $inipath ) <
echo ‘Loaded php.ini: ‘ . $inipath ;
> else <
echo ‘A php.ini file is not loaded’ ;
>
?>
The second script is simply calls phpinfo( ). It is named test.php, is stored in “c:\inetpub\wwroot”, and has the following code:
( ); ?>
My Dev Environment:
1. Windows XP Pro SP3
2. IIS 5.1 / MMC 3.0
3. PHP 5.2.9.2 – phpMyAdmin not yet installed
4. (plus MySQL 5.1, etc.)
5. Install location is on my local E: drive