<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>Аникин: заметки с тегом php7</title>
<link>https://anikin.pw/tags/php7/</link>
<description>Блог об администрировании Linux, BSD и не только</description>
<author></author>
<language>ru</language>
<generator>Aegea 11.3 (v4134)</generator>

<itunes:subtitle>Блог об администрировании Linux, BSD и не только</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>Супер дешевые VDS</title>
<guid isPermaLink="false">104</guid>
<link>https://anikin.pw/all/super-deshevye-vds/</link>
<pubDate>Wed, 10 Feb 2021 17:39:38 +0300</pubDate>
<author></author>
<comments>https://anikin.pw/all/super-deshevye-vds/</comments>
<description>
&lt;p&gt;Появился новый промо-тариф за 1 евро, на котором доступен мой образ vestacp-multiphp. А также новый шаблон Debian-10-HestiaCP с версиями php от 5.6 до 8.0. Заказать можно по &lt;a href="https://vps-server.ru/billing/pl.php?4330&amp;go=/billing/order.php?vid=vds&amp;tarif_id=73"&gt;ссылке&lt;/a&gt;. Количество ограничено.&lt;/p&gt;
&lt;p&gt;&lt;a href='https://vps-server.ru/billing/pl.php?4330&amp;go=/billing/order.php?vid=vds&amp;tarif_id=73' alt='VPS-server.ru' target='_blank'&gt;&lt;img src='https://vps-server.ru/billing/_rootimages/banners/server11.gif' border='0'&gt;&lt;/a&gt;&lt;/p&gt;
</description>
</item>

<item>
<title>Сборка php 7 на Centos 6</title>
<guid isPermaLink="false">98</guid>
<link>https://anikin.pw/all/sborka-php-7-na-centos-6/</link>
<pubDate>Mon, 03 Feb 2020 19:32:18 +0300</pubDate>
<author></author>
<comments>https://anikin.pw/all/sborka-php-7-na-centos-6/</comments>
<description>
&lt;p&gt;Пример configure&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;./configure  --prefix=/opt/php73 --with-config-file-path=/etc --with-mysql-sock=/var/lib/mysql/mysql.sock --with-mysqli=mysqlnd --with-pdo-mysql --with-pdo-sqlite --enable-calendar --enable-sysvsem --enable-sysvshm --enable-sysvmsg --enable-bcmath --with-bz2 --enable-ctype --enable-shmop --enable-soap --enable-mbstring --enable-soap --enable-sockets --enable-wddx --enable-exif --enable-ftp --enable-pdo --enable-pcntl --enable-mbregex --with-gettext --with-iconv --with-mhash --with-gd --with-curl --with-libxml-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-freetype-dir=/usr --with-zlib --without-libzip --enable-mbstring --with-xsl --with-openssl  --enable-ftp --enable-exif --enable-cgi --enable-zip --with-readline --enable-simplexml --enable-intl --with-pcre-regex=/opt/pcre2 --with-config-file-scan-dir=/opt/php73/etc&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Для его успешного выполнения ставим devel пакеты на основе получаемых ошибок.&lt;br /&gt;
Pcre2 собираем из исходников, т.к нужной версии в репах centos 6 нет.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# wget ftp://ftp.pcre.org/pub/pcre/pcre2-10.30.tar.gz
# tar -xf pcre2-10.30.tar.gz
# cd pcre2-10.30
# ./configure --prefix=/opt/pcre2                       \
            --docdir=/usr/share/doc/pcre2-10.30 \
            --enable-unicode                    \
            --enable-pcre2-16                   \
            --enable-pcre2-32                   \
            --enable-pcre2grep-libz             \
            --enable-pcre2grep-libbz2           \
            --enable-pcre2test-libreadline      \
            --disable-static    
# make
# make install&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;После успешного configure для php делаем make и make install&lt;/p&gt;
&lt;p&gt;&lt;b&gt;UPD:&lt;/b&gt; Если у вас в wordpress не отправляется почта через контактную форму функцией mail(), то pcre2 качаем версии 10.33.&lt;/p&gt;
</description>
</item>

<item>
<title>Мультиверсионность php c VestaCP на выделенных серверах и VDS</title>
<guid isPermaLink="false">97</guid>
<link>https://anikin.pw/all/multiversionnost-php-na-vydelennyh-serverah-i-vds/</link>
<pubDate>Tue, 22 Oct 2019 18:19:52 +0300</pubDate>
<author></author>
<comments>https://anikin.pw/all/multiversionnost-php-na-vydelennyh-serverah-i-vds/</comments>
<description>
&lt;p&gt;На наших выделенных серверах и VDS теперь доступен шаблон с VestaCP и версиями php от 5.3 до 7.3. Установка через техподдержку.&lt;br /&gt;
Проходите по &lt;a href="https://vps-server.ru/billing/pl.php?4330"&gt;ссылке&lt;/a&gt; или кликайте на баннер вверху страницы, в комментариях к заказу напишите что вам нужен шаблон с vestacp-multiphp.&lt;/p&gt;
</description>
</item>

<item>
<title>Менеджер версий php для Debian/Ubuntu.</title>
<guid isPermaLink="false">78</guid>
<link>https://anikin.pw/all/menedzher-versiy-php/</link>
<pubDate>Sat, 18 Mar 2017 17:46:31 +0300</pubDate>
<author></author>
<comments>https://anikin.pw/all/menedzher-versiy-php/</comments>
<description>
&lt;p&gt;&lt;b&gt;Скрипт мультиверсионности мной более не поддерживается, т.к в новых версиях дебиан все сложнее автоматизировать установку старых версий php. Поэтому php 5 собирайте руками. Либо проходите по &lt;a href="https://anikin.pw/all/virtualki-v-rf/"&gt;ссылке&lt;/a&gt;.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Выкладываю мой скрипт который поможет установить несколько версий php из исходных кодов на ваш сервер. Скрипт делался в первую очередь для Debian и проверялся на Debian 8 x64. Но работает и на Ubuntu. Удобно с помощью скрипта поддерживать актуальные версии php на сервере с вестой, т.к скрипт умеет автоматически обновлять шаблоны весты при сборке.&lt;br /&gt;
На debian 7/8 с моими флагами установки без проблем собираются php 5.2 и выше.&lt;br /&gt;
На ubuntu 14.04/16.04 по умолчанию собираются php 5.3 и выше. 5.2 при компиляции валится с ошибкой. Поэтому если нужен 5.2 юзайте дебиан.&lt;br /&gt;
Что делает скрипт:&lt;/p&gt;
&lt;ol start="1"&gt;
&lt;li&gt;При запуске спрашивает какие версии php требуется собрать(версию нужно вводить полностью. Например 7.1.2, а не 7.1. Можно ввести несколько версий через пробел), создавать ли на бинарник php-cgi симлинк в /usr/bin для быстрого доступа. Проверяет наличие на сервере панели vestacp. Если находит её, то спрашивает создавать ли шаблон web для каждой версии.&lt;/li&gt;
&lt;li&gt;При первом запуске спрашивает, нужно ли ставить зависимости. Если вы откажетесь от установки зависимостей, то вам нужно их установить самостоятельно. Иначе при сборке вы получите ошибки. При последующих запусках этот шаг пропускается. Нужно понимать что скрипт старается поставить все возможные зависимости, но в разных дистрибутивах могут использоваться разные пакеты или при использовании кастомных флагов компиляции может потребоваться что-то доустановить.&lt;/li&gt;
&lt;li&gt;Парсит &lt;a href="http://php.net/downloads.php"&gt;http://php.net/downloads.php&lt;/a&gt; и &lt;a href="http://php.net/releases/"&gt;http://php.net/releases/&lt;/a&gt; на наличие bz2 архива с исходниками указанной юзером версии php. Если находит, скачивает и распаковывает исходники в /opt/php/src.&lt;br /&gt;
&lt;details&gt;&lt;br /&gt;
&lt;summary&gt;&lt;/summary&gt;&lt;br /&gt;
Также можно положить архивы с иходниками в /opt/php/src/bzips, тогда скрипт не будет их скачивать.&lt;br /&gt;
&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;Конфигурит, по умолчанию с моими параметрами компиляции(подойдут для большинства пользователей). Собирает.&lt;br /&gt;
&lt;details&gt;&lt;br /&gt;
&lt;summary&gt;&lt;b&gt;Тем кто хочет использовать свои параметры компиляции обязательно кликнуть сюда&lt;/b&gt;&lt;/summary&gt;&lt;br /&gt;
Можно свои параметры конфигурирования положить в файл /opt/php/options. Если скрипт находит этот файл, то он использует его  для конфигурирования. Свой файл можно сделать на основе &lt;a href="https://anikin.pw/files/options"&gt;моего&lt;/a&gt;. Скрипт заменяет &lt;b&gt;version&lt;/b&gt; в файле конфигурирования на текущую собираемую версию. Это сделано для того чтобы скрипт автоматом создавал свой каталог для каждой версии. Если вы собираете например версию 5.3.29 и в вашем файле конфигурирования указано prefix=/opt/php/php-version, то это по сути равно prefix=/opt/php/php-5.3.29. При сборке нескольких версий одновременно эту фичу нужно использовать чтобы не собирать все версии в один каталог.&lt;br /&gt;
&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;При необходимости создает симлинк и шаблон для весты. Если создает темплейты для весты, то проверяет включен ли модуль cgi  в апаче. Если модуль не включен, то включает его.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Запустить скрипт очень просто&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# git clone https://github.com/petranikin/mgrvphp.git
# cd mgrvphp
# bash mgrvphp&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Немного скриншотов&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1068" data-ratio="1.5300859598854"&gt;
&lt;img src="https://anikin.pw/pictures/-_2017-03-18_16-15-49.png" width="1068" height="698" alt="" /&gt;
&lt;img src="https://anikin.pw/pictures/-_2017-03-18_16-16-20.png" width="1068" height="698" alt="" /&gt;
&lt;img src="https://anikin.pw/pictures/-_2017-03-18_16-17-12.png" width="1068" height="698" alt="" /&gt;
&lt;img src="https://anikin.pw/pictures/-_2017-03-18_16-18-08.png" width="1068" height="698" alt="" /&gt;
&lt;img src="https://anikin.pw/pictures/-_2017-03-18_17-38-08.png" width="1068" height="679" alt="" /&gt;
&lt;img src="https://anikin.pw/pictures/-_2017-03-18_17-41-27.png" width="952" height="525" alt="" /&gt;
&lt;/div&gt;
&lt;/div&gt;
</description>
</item>

<item>
<title>Шаблон VDS с VestaCP c мультиверсионностью PHP</title>
<guid isPermaLink="false">74</guid>
<link>https://anikin.pw/all/shablon-s-vestacp-c-multiversionnostyu-php/</link>
<pubDate>Fri, 03 Feb 2017 15:24:51 +0300</pubDate>
<author></author>
<comments>https://anikin.pw/all/shablon-s-vestacp-c-multiversionnostyu-php/</comments>
<description>
&lt;p&gt;На наших VDS теперь доступен готовый шаблон Debian 8 с предустановленной панелью VestaCP и уже собранными версиями PHP от 5.2 до 7.1 включительно. Версию PHP можно выбирать свою для каждого сайта. Заказать VDS можно по &lt;a href="https://vps-server.ru/billing/pl.php?4330&amp;go=/vps/6"&gt;этой ссылке&lt;/a&gt;. После выдачи VDS нужно зайти в панель управления VDS, кликнуть «Переустановка VDS» и выбрать шаблон «debian-8-X86_64-vestacp_multiphp»&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://anikin.pw/pictures/-_2017-02-03_15-22-58.png" width="1545" height="224" alt="" /&gt;
&lt;div class="e2-text-caption"&gt;Пароль пользователя admin в весте, совпадает с паролем root.&lt;/div&gt;
&lt;/div&gt;
</description>
</item>

<item>
<title>Мультиверсионность php на CentOS с VestaCP.</title>
<guid isPermaLink="false">66</guid>
<link>https://anikin.pw/all/multiversionnost-na-centos-s-vestacp/</link>
<pubDate>Wed, 01 Jun 2016 15:54:06 +0300</pubDate>
<author></author>
<comments>https://anikin.pw/all/multiversionnost-na-centos-s-vestacp/</comments>
<description>
&lt;p&gt;В комментариях к статье &lt;a href="http://anikin.pw/all/multiversionnost-php-na-servere-s-vestacp/"&gt;Мультиверсионность php на сервере с VestaCP&lt;/a&gt; один из читателей попросил написать статью как сделать тоже самое на CentOS. Я уже приготовился писать статью про компиляцию php из исходников, но почитав форум весты увидел что все уже сделано за меня.&lt;/p&gt;
&lt;p&gt;На &lt;a href="https://forum.vestacp.com/viewtopic.php?f=19&amp;t=10854"&gt;официальном форуме VestaCP&lt;/a&gt; есть скрипт, который добавляет репозиторий с уже собранными версиями php 5.5, 5.6 и 7.0. По умолчанию в CentOS 6.8 установлен php 5.4. В итоге после установки скрипта мы имеем все версии php начиная от 5.4.&lt;/p&gt;
&lt;p&gt;Установка супер простая&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# wget http://mirror.skamasle.com/vestacp/PHP/sk-phpinstaller_beta02_3.sh
# bash sk-phpinstaller_beta02_3.sh&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Вывод установщика не очень многословен&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://anikin.pw/pictures/---2016-06-01-15:44:04.png" width="446" height="362" alt="" /&gt;
&lt;div class="e2-text-caption"&gt;После установки при редактировании виртуального хоста в web-шаблонах мы видим что появились новые пункты с новыми версиями php.&lt;/div&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://anikin.pw/pictures/---2016-06-01-15:43:11.png" width="324" height="395" alt="" /&gt;
&lt;div class="e2-text-caption"&gt;Пробуем переключится и смотрим phpinfo&lt;/div&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1267" data-ratio="1.7308743169399"&gt;
&lt;img src="https://anikin.pw/pictures/---2016-06-01-15:47:34.png" width="1267" height="732" alt="" /&gt;
&lt;img src="https://anikin.pw/pictures/---2016-06-01-15:48:13.png" width="1270" height="848" alt="" /&gt;
&lt;img src="https://anikin.pw/pictures/---2016-06-01-15:48:41.png" width="1431" height="876" alt="" /&gt;
&lt;img src="https://anikin.pw/pictures/---2016-06-01-15:49:07.png" width="1429" height="922" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Как видим, все работает. За скрипт спасибо пользователю с ником &lt;a href="http://www.skamasle.com/"&gt;skamasle&lt;/a&gt;.&lt;/div&gt;
&lt;/div&gt;
</description>
</item>

<item>
<title>Мультиверсионность php на сервере с VestaCP.</title>
<guid isPermaLink="false">64</guid>
<link>https://anikin.pw/all/multiversionnost-php-na-servere-s-vestacp/</link>
<pubDate>Mon, 11 Apr 2016 13:59:31 +0300</pubDate>
<author></author>
<comments>https://anikin.pw/all/multiversionnost-php-na-servere-s-vestacp/</comments>
<description>
&lt;p&gt;&lt;a href="https://anikin.pw/all/menedzher-versiy-php/"&gt;Можно использовать скрипт который упрощает установку разных версий php&lt;/a&gt;&lt;br /&gt;
Сделаем возможность использовать несколько разных версий php на одном сервере c Ubuntu 14.04 и VestaCP. Возможность переключать версию php будет для каждого сайта отдельно. По умолчанию в ubuntu 14.04.4 с вестой установился php 5.5.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://anikin.pw/pictures/---2016-04-11-13:09:42.png" width="1255" height="533" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Все действия производятся под root’ом.&lt;br /&gt;
Соберем старый php 5.4.&lt;br /&gt;
Установим необходимые пакеты.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;apt-get build-dep -y php5
apt-get install libt1-dev libonig-dev libmcrypt-dev libreadline-dev&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Создаем каталог для исходников&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;mkdir /php/
mkdir /php/src&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Скачиваем туда сорцы с &lt;a href="http://php.net"&gt;http://php.net&lt;/a&gt;.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;wget -O /php/src/php-5.4.45.tar.bz2 http://de1.php.net/get/php-5.4.45.tar.bz2/from/this/mirror
cd /php/src/
tar -xjf php-5.4.45.tar.bz2
cd php-5.4.45&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;И создаем каталог куда будем собирать php&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;mkdir /php/php54&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Конфигурим(обратите внимание на переменную —prefix=, она указывает на каталог куда собираем php)&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;./configure \
--prefix=/php/php54 \
--with-config-file-path=/etc \
--with-regex=php \
--disable-rpath \
--disable-static \
--with-pic \
--with-layout=GNU \
--enable-calendar \
--enable-sysvsem \
--enable-sysvshm \
--enable-sysvmsg \
--enable-bcmath \
--with-bz2 \
--enable-ctype \
--with-cdb \
--with-iconv \
--enable-exif \
--enable-ftp \
--with-gettext \
--enable-mbstring \
--with-onig=/usr \
--with-pcre-regex=/usr \
--enable-shmop \
--enable-sockets \
--enable-wddx \
--with-libxml-dir=/usr \
--with-zlib \
--with-kerberos=/usr \
--with-openssl=/usr \
--enable-soap \
--enable-zip \
--with-mhash=yes \
--with-mysql-sock=/var/run/mysqld/mysqld.sock \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--enable-pdo \
--with-pdo-mysql=mysqlnd \
--enable-exif \
--with-jpeg-dir=/usr \
--with-png-dir=/usr \
--with-freetype-dir=/usr \
--with-t1lib \
--with-zlib-dir=/usr \
--with-mcrypt=/usr \
--with-mhash \
--with-xsl=/usr \
--enable-zip \
--enable-cgi \
--with-curl \
--with-gd \
--enable-pcntl \
--enable-mbregex \
--enable-gd-native-ttf \
--with-libdir=lib64 \
--enable-dba=shared \
--enable-intl \
--with-readline=/usr \
--enable-simplexml \
--with-libdir=/lib/x86_64-linux-gnu \
--with-config-file-scan-dir=&amp;quot;$instdir&amp;quot;/etc \
--with-pspell&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Компиляем&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;make
make install&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Включаем модуль cgi для апача&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;a2enmod cgi&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Переключать будем шаблонами apache. Скопируем существующий шаблон phpcgi&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;cp /usr/local/vesta/data/templates/web/apache2/phpcgi.sh /usr/local/vesta/data/templates/web/apache2/php54.sh
cp /usr/local/vesta/data/templates/web/apache2/phpcgi.stpl /usr/local/vesta/data/templates/web/apache2/php54.stpl
cp /usr/local/vesta/data/templates/web/apache2/phpcgi.tpl /usr/local/vesta/data/templates/web/apache2/php54.tpl&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Открываем файл /usr/local/vesta/data/templates/web/apache2/php54.sh и находим там строку&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;wrapper_script='#!/usr/bin/php-cgi -cphp5-cgi.ini'&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;заменяем на&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;wrapper_script='#!/php/php54/bin/php-cgi -cphp5-cgi.ini'&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;И перезапускаем весту&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;service vesta restart&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Теперь если зайти в весте в редактирование домена в web, то в шаблонах апача можно увидеть новый шаблон php54. Можно попробовать переключится.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://anikin.pw/pictures/---2016-04-11-13:08:59.png" width="386" height="405" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://anikin.pw/pictures/---2016-04-11-13:10:07.png" width="1283" height="733" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Аналогично собираем php 5.6 и php 7.0, в каталоги /php/php56 и /php/php70 соответсвенно. И создаем для них шаблоны php56 и php70. Конфигурирование для php7 несколько отличается от php5. Мои параметры для конфигурирования есть в &lt;a href="http://anikin.pw/all/sborka-php-7-na-debian-8-jessie/"&gt;этой статье&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;В результате этих манипуляций у нас появятся новые шаблоны php54, php56 и php70, с соответсвующими версиями php. Теперь для каждого домена мы можем выбрать любую версию php от 5.4 до 7.0. С выходом новых версий их можно добавлять к текущим таким же способом.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://anikin.pw/pictures/---2016-04-11-13:57:27.png" width="355" height="483" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1258" data-ratio="1.6444444444444"&gt;
&lt;img src="https://anikin.pw/pictures/---2016-04-11-13:58:11.png" width="1258" height="765" alt="" /&gt;
&lt;img src="https://anikin.pw/pictures/---2016-04-11-13:58:34.png" width="1257" height="620" alt="" /&gt;
&lt;img src="https://anikin.pw/pictures/---2016-04-11-13:58:55.png" width="1427" height="648" alt="" /&gt;
&lt;img src="https://anikin.pw/pictures/---2016-04-11-13:59:19.png" width="1430" height="648" alt="" /&gt;
&lt;/div&gt;
&lt;/div&gt;
</description>
</item>

<item>
<title>Переводим php движки с mysql на mysqli</title>
<guid isPermaLink="false">58</guid>
<link>https://anikin.pw/all/perevodim-php-dvizhki-s-mysql-na-mysqli/</link>
<pubDate>Fri, 17 Jul 2015 18:22:16 +0300</pubDate>
<author></author>
<comments>https://anikin.pw/all/perevodim-php-dvizhki-s-mysql-na-mysqli/</comments>
<description>
&lt;p&gt;Начиная с PHP 5.5.0 функции модуля mysql считаются устаревшими(deprecated), а в PHP 7 данный модуль вообще отсутствует, вместо него нужно использовать mysqli. Движки написаные с помощью функций модуля mysql не работают, т.к не могут подключится к базе данных и выдают в логе ошибки типа такой:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;PHP Fatal error:  Uncaught Error: Call to undefined function mysql_connect() in...&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;К счастью, исправить все функции mysql на mysqli можно автоматически, скриптом на любом сайте.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/philip/MySQLConverterTool"&gt;Вот здесь&lt;/a&gt; скачиваете zip архив. Создаете в каталоге домена подкаталог например convert и кладете туда содержимое архива.&lt;br /&gt;
Потом переходите по ссылке вида&lt;br /&gt;
&lt;a href="http://ваш_домен.ru/convert/GUI/index.php"&gt;http://ваш_домен.ru/convert/GUI/index.php&lt;/a&gt;&lt;br /&gt;
И видите&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://anikin.pw/pictures/---2015-07-17-18:19:36.png" width="682" height="456" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Тут я выбирал «Convert a file», т.к в ошибке указан файл в котором присутствует эта функция. Указываем путь к файлу примерно как на картинке. И выбираем сразу заменить старый файл и забекапить.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://anikin.pw/pictures/---2015-07-17-18:23:46.png" width="776" height="457" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Затем жмакаем «Start the conversion» и наслаждаемся результатом.&lt;/p&gt;
</description>
</item>

<item>
<title>Установка php 7 на Debian 8 «jessie» из исходных кодов</title>
<guid isPermaLink="false">56</guid>
<link>https://anikin.pw/all/sborka-php-7-na-debian-8-jessie/</link>
<pubDate>Sat, 23 May 2015 16:32:06 +0300</pubDate>
<author></author>
<comments>https://anikin.pw/all/sborka-php-7-na-debian-8-jessie/</comments>
<description>
&lt;p&gt;&lt;a href="https://anikin.pw/all/menedzher-versiy-php/"&gt;Можно использовать скрипт который упрощает установку разных версий php&lt;/a&gt;&lt;br /&gt;
Сегодня дождливый и пасмурный день. И нет ничего более уютного и расслабляющего чем попивая горячий чай собирать ПО из исходников. Поэтому самое время собрать php 7 на debian 8.&lt;br /&gt;
У нас есть тачка с debian 8, установленым с образа netinstall. Установка минимальная, кроме ssh ничего не ставилось.&lt;br /&gt;
Для установки php 7 нам нужно выполнить по ssh или в консоли тачки несколько ругательств из под рута.&lt;br /&gt;
Первым делом установим все необходимые для сборки пакеты:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# apt-get install git apache2 mysql-server make autoconf gcc bison libxml2 \
libxml2-dev libcurl4-openssl-dev pkg-config libssl-dev \
bzip2 libbz2-dev libjpeg-dev libpng-dev libxpm-dev libfreetype6-dev \
libgmp-dev libgmp3-dev libmcrypt-dev libmysqlclient-dev \
libpspell-dev librecode-dev&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Также нам нужен пакет libt1-dev, который отсутствует в репах debian 8, возьмем его из репов debian 7 wheezy, для этого добавим в /etc/apt/sources.list следующую строку&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;deb http://ftp.debian.org/debian wheezy main contrib non-free&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Затем выполняем:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# apt-get update
# apt-get install libt1-dev&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Затем убираем добавленную строку из /etc/apt/sources.list и затем выполняем&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# apt-get update&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Теперь сделаем симлинк gmp.h в /usr/include/&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Теперь все готово для сборки. Создадим папку для исходников и скачаем их туда.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# mkdir /root/php7
# cd /root/php7
# git clone https://git.php.net/repository/php-src.git&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Переходим к сырцам и конфигурим&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# cd php-src
# ./buildconf
# ./configure \
    --prefix=/usr \
    --with-config-file-path=/etc \
    --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&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Если все в порядке, то результатом выполнения предыдущей команды будет что-то типа:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;+--------------------------------------------------------------------+
| License:                                                           |
| This software is subject to the PHP License, available in this     |
| distribution in the file LICENSE.  By continuing this installation |
| process, you are bound by the terms of this license agreement.     |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point.                            |
+--------------------------------------------------------------------+

Thank you for using PHP.&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Далеее выполняем&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# make
# make install&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Проверяем, что установка прошла успешно&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;root@debian:~/php7/php-src# php -v
PHP 7.0.0-dev (cli) (built: May 23 2015 15:48:27) 
Copyright (c) 1997-2015 The PHP Group
Zend Engine v3.0.0-dev, Copyright (c) 1998-2015 Zend Technologies&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Вобщем то php7 установлен, но если мы хотим заставить веб-сервер обрабатывать php, то надо ещё настроить apache2.&lt;br /&gt;
Заставим apache2 обрабатывать php, с помощью php-cgi.&lt;br /&gt;
У меня в системе есть пользователь user, и я решил сделать для него виртуальный хост.&lt;br /&gt;
Создаем каталог cgi-bin у пользователя&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# mkdir /home/user/cgi-bin/&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Создаем файл /home/user/cgi-bin/php со следующим содержимым&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;#!/usr/bin/php-cgi&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;И выставляем права 555 на него&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# chmod 555 /home/user/cgi-bin/php&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Создаем файл /home/user/cgi-bin/php.ini со следующим содержимым&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;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.validate_timestamps=1
opcache.revalidate_freq=60
opcache.use_cwd=1
opcache.max_accelerated_files=100000
opcache.max_wasted_percentage=5
opcache.memory_consumption=128
opcache.consistency_checks=0&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Создаем каталог для виртуалхоста&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# mkdir /home/user/www&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;И кладем в него index.php со следующим содержимым&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;&amp;lt;?php
phpinfo();
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;И т.к мы все делали из под рута, то меняем владельца всех этих созданных файлов и каталогов на user&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# chown -R user:user /home/user/&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Теперь нужно настроить apache2. Добавим необходимые модули в apache2&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# a2enmod actions
# a2enmod cgi&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Заменим конфиг /etc/apache2/sites-enabled/000-default.conf на такой&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;&amp;lt;Directory /home/&amp;gt;
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
&amp;lt;/Directory&amp;gt;
&amp;lt;VirtualHost *:80&amp;gt;
DocumentRoot /home/user/www
ScriptAlias /cgi-bin/ &amp;quot;/home/user/cgi-bin/&amp;quot;
AddType application/x-httpd-php .php .php3
Action  application/x-httpd-php /cgi-bin/php
DirectoryIndex index.php
&amp;lt;/VirtualHost&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;И перезапустим apache2&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# service apache2 restart&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Теперь мы можем зайти браузером на ip тачки и увидеть страницу php info.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://anikin.pw/pictures/---2015-05-23-16:21:02.png" width="1916" height="1015" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Аналогично можно настроить другие виртуальные хосты.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Про настройку разных версий php для каждого сайта на одном сервере можно прочитать в &lt;a href="http://anikin.pw/all/multiversionnost-php-na-servere-s-vestacp/"&gt;статье про мультиверсионность php&lt;/a&gt;.&lt;/b&gt;&lt;/p&gt;
</description>
</item>


</channel>
</rss>