CentOS: установка Linux, Apache, MySQL, PHP (LAMP). Установка centos php
Установка PHP 5.6 на CentOS через Yum
PHP версии 5.6.2 была анонсирована на официальном сайте разработчика второго октября 2014 и уже доступна для CentOS/RHEL 6.5 или 7.0 на Webtatic, причём можно пользоваться Yum!
Уже была опубликована статья об установке свежей версии PHP, но сейчас мы поднимем версию ещё выше.
В PHP 5.6 добавлены следующие функции:
- Постоянные скалярные выражения
- Функции с переменным числом аргументов
- Распаковка независимых переменных
- Возведение в степень операторов
- Поддержка больших (>2ГБ) файлов загрузки
- Улучшения SSL/TLS, включая одноранговую проверку по умолчанию
- Новый отладчик командной строки, под названием phpdbg
Перед установкой нам понадобится добавить репозиторий (хранилище пакетов) WebtaticEL, соответствующее вашей версии CentOS/RHEL в yum:
CentOS/RHEL 7.x:
rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpmТеперь можно установить PHP 5.6 (вместе с кэшером операционного кода), для установки запустим yum со следующими параметрами:
yum install -y php56w php56w-opcacheЕсли вам нужно обновить php до данной версии, рекомендуется сначала проверить, поддерживает ли ваша система установку обновления, например попробовать запустить специализированное ПО типа CPanel после обновления.
Даже если вы отдаёте отчет своим действиям, рискованно обновлять существующую систему. Безопаснее будет установить обновление на чистый сервер.
Если вы уверены в том, что делаете, то можно обновить PHP, запустив yum со следующими параметрами:
yum install -y yum-plugin-replace yum replace --enablerepo=webtatic-testing php-common --replace-with=php56w-commonВероятнее всего у вас появится сообщение типа “WARNING: Unable to resolve all providers …”. Это нормально, продолжить можно нажав “y“. Затем вы увидите какие пакеты будут установлены и заменены перед тем, как подтвердить установку.
SAPIs – различные модули
- mod_php NTS (непотоковая безопасность) ‒ содержится в пакете php56w, данная SAPIвходит в состав ApacheHttpd 2.2 и представляет собой стандартное SAPI для использования с httpd prefork mpm (режим по умолчанию httpd). Данное SAPI не использует потоковую безопасность, так как здесь не применяются потоки. Адрес расположения: /usr/lib[64]/httpd/modules/libphp5.so
- cli ‒ Содержится в пакете php56w-cli, данное SAPI позволяет запускать скрипты с командной строки, так же в состав входит встроенный веб-сервер для расширенного использования. Адрес расположения: /usr/bin/php
- fpm ‒ содержится в пакете php56w-fpm, fpm (диспетчер процессов FastCGI) варьируемый процессFastCGI, работающий аналогично Httpd preforkmpm, который управляет разветвлением. Адрес расположения: /usr/sbin/php-fpm, контролируется с помощью служебного скрипта /etc/init.d/php-fpm
- phpdbg ‒ содержится в пакете php56w-phpdbg, phpdbg имеет возможность отладки скриптов, используя контрольные точки из командной строки, также phpdbg имеет возможность удалённой отладки при помощи внешнего Java-клиента для удалённой коммуникации.
- Embedded ‒ содержится в пакете php56w-embedded, данноеSAPIпозволяет встраивать PHPв другие приложения.Библиотека Embedded расположена по адресу:/usr/lib[64]/libphp5.so
- cgi, fastcgi ‒ содержится в пакете php56w-cli, данные SAPI не рекомендованы к использованию, но при необходимости могут быть использованы. Данные SAPI существуют в двоичном коде и находятся по адресу: /usr/bin/php-cgi.
- mod_phpTS (Потоковая безопасность) ‒ содержится в пакете php56w, данное SAPIвходит в состав ApacheHttpd 2.2. Это стандартноеSAPI для использования с httpdworkermpm. Предполагается, что данное SAPI поддерживает потоковую безопасность, но это необязательно так, особенно при использовании дополнительных расширений PHP. Лучше использовать FastCGISAPI. Адрес расположения: /usr/lib[64]/httpd/modules/libphp5-zts.so.
Opcode Cache
В дистрибутив PHP теперь входит opcode cache ZendOptimizer+, который теперь называется расширение ZendOPcache. Это дополнение необязательно, вы можете выбрать любое другое, на ваше усмотрение.
Поскольку данное дополнение входит в состав исходного дистрибутива PHP, то оно поддерживается разработчиком и удобно для использования, в отличии от других Opcodecache, обновляемых в течении ближайших месяцев.
Для установки запустим yum со следующими параметрами:
yum install -y php56w-opcacheСообщение об ошибке E_ALL теперь включает E_STRICT
Вы можете получить намного больше ошибок в протоколах ошибок, если по умолчанию error_reporting установлена E_ALL, без отключения отключения E_STRICT. По умолчаниюphp.ini, который поставляется в PHP-пакете отключает E_STRICT,но если вы обновляете существующую установку, ваш php.ini не может быть обновлен, а это означает, что вероятно E_STRICT будет включен.
Автоматизация обновления
Обновление в кратчайшие сроки путем запуска одной строчки:
service mysqld stop && service nginx stop && service httpd stop && yum erase php54 php54-gd php54-imap php54-pdo php54-mysql php54-xml php54-common php54-process php54-mbstring php54-cli php54-ldap -y && yum install php56w php56w-gd php56w-imap php56w-pdo php56w-mysql php56w-xml php56w-common php56w-process php56w-mbstring php56w-cli php56w-ldap php56w-devel -y && service mysqld start && service nginx start && service httpd startКак установить PHP 5.6 на CentOS 6.x
На голом сервере проблема решается в две строчки. Сначала подключаем репозиторий webtatic, где всегда есть самые свежие версии PHP (кстати, на момент написания этой заметки там есть и PHP 7 для CentOS 6). Потом ставим ряд нужных нам пакетов (php 5.6 и его популярные расширения) из нового репозитория.
rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm yum install -y php56w-common php56w-opcache php56w-cli php56w-fpm php56w-gd \ php56w-mbstring php56w-mcrypt php56w-mysql php56w-pdo php56w-xmlОбратите внимание, что пакеты в webtatic в названии содержат версию. Так что если захотите, то можете ставить, например, не php56*, а php55*.
ОК, с проблемой установки свежего php на голый сервер мы разобрались выше. Но ситуация немного усложняется, если у вас уже стоит php 5.3 из дефолтного репозитория. И вы хотите, не удаляя php, обновить его версию до php 5.6.
Стоп! А почему бы собственно сначала не удалить старый через yum remove? А потому что при удалении дефолтного php — у вас удалятся зависимые от него пакеты, типа phpMyAdmin. Нам этого не надо, поэтому действуем так:
В процессе установки вас могут напугать чем-то таким:WARNING: Unable to resolve all providers: ['config(php-common)', 'curl.so', 'fileinfo.so', 'json.so', 'phar.so', 'zip.so', 'config(php-mbstring)', 'mbstring.so', 'bcmath.so', 'config(php-bcmath)', 'config(php-pdo)', 'pdo.so', 'pdo_sqlite.so', 'sqlite3.so', 'config(php-mysql)', 'mysql.so', 'mysqli.so', 'pdo_mysql.so', 'config(php-process)', 'posix.so', 'sysvmsg.so', 'sysvsem.so', 'sysvshm.so', 'config(php-xml)', 'dom.so', 'wddx.so', 'xmlreader.so', 'xmlwriter.so', 'xsl.so', 'config(php-gd)', 'gd.so', 'config(php-tidy)', 'tidy.so', 'config(php)', 'libphp5.so']This may be normal depending on the package. Continue? [y/N]
Не бойтесь, это вас предупреждают, что могут быть проблемы с зависимыми расширениями. Но далее вы увидите, что умный yum-plugin-replace переставит сам все существующие библиотеки (удалив старые и поставив аналогичные новые). Соглашайтесь смелее! Проблем с расширениями при переезде с php 5.3 на php 5.6 не будет (за переезд на php 7.0 — не ручаюсь).
После обновления рекомендую доставить новомодный opcache (в 5.3 его не было, поэтому автоматически пакет не заменится). Делается это так:
yum install -y php56w-opcacheТакже обратите внимание, что при установке новых версий php будут сохранены старые существующие конфигурационные файлы. Например, /etc/php.ini останется старый, а новый (из пакета php 5.6) будет записан в /etc/php.ini.rpmnew. Соответственно, если вам хочется, чтобы у вас был новый дефолтный конфиг, то можно сделать как-то так (забэкапив предварительно старый конфиг, при надобности):
echo /etc/php.ini.rpmnew > /etc/php.iniwebdevil.ru
CentOS: установка Linux, Apache, MySQL, PHP (LAMP)
Продолжаем цикл статей по настройке вашего Linux сервера, начатой в посте Linux: Мои первые 15 минут на сервере
Сегодня поговорим о разворачивании Linux, Apache, MySQL, PHP или если говорить короче — LAMP.
Так как мы «ленивые» администраторы, то мы будем использовать только готовыми репозитариями — никакого сборного софта, make-ов и т.п.
Я предпочитаю писать проекты под относительно последние версии софта.Для этого подключаю Remi репозитарий:
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
«Frond end» для web у меня выступает nginx, естественно подключаем и его официальный репозитарий.
rpm -Uvh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpmМаленькое лирическое отступление…
Если так получилось, что вам необходимо мигрировать с другого сервера, то можно собрать список подключенных репозитариев и пакетов, и развернуть их на новом сервере. Примерно так я и делал. Через регулярное выражение, я выдернул список пакетов с нужными мне демонами и развернул на новом сервере:
yum list installed| egrep "mysql|php|httpd|nginx|memcach" | awk {'print $1'}Перед началом установки я запросил свободное место:
[@develop /]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/vda 20642428 1262624 18331228 7% / none 251228 0 251228 0% /- Шаг первый — установка Apache:
- Шаг второй — установка MySQL:
MySQL является стандартной системой управления базами данных, используется практически повсеместно, web проекты в этом списке, также не являются исключением.
yum --enablerepo=remi install mysql mysql-bench mysql-connector-java.noarch compat-mysql51 mysql-connector-odbc mysql-devel mysql-embedded mysql-embedded-devel mysql-libs mysql-server mysql-test- Шаг третий — установка PHP и модулей:
Устанавливаем непосредственно язык программирования и множество полезных библиотек и модулей, в частности для работы с базой данных, графикой, snmp, memcache и geoip
yum --enablerepo=remi install php php-bcmath php-cli php-common php-dba php-devel php-embedded php-enchant php-gd php-imap php-intl php-ldap php-mbstring yum --enablerepo=remi install php-mcrypt php-mysql php-odbc php-pdo php-pear.noarch php-pecl-geoip php-pecl-igbinary php-pecl-memcache php-pecl-memcached php-pgsql yum --enablerepo=remi install php-process php-pspell php-recode php-snmp php-soap php-tidy php-xml php-xmlrpc- Шаг четвертый — установка nginx:
- Шаг пятый — установка необходимых расширений
В моем случае это кешер — memcached и определение пользователей по IP — geoip.
yum --enablerepo=remi install libmemcached libmemcached-devel yum --enablerepo=remi install memcached memcached-devel php-pecl-memcache php-pecl-memcached python-memcached yum --enablerepo=remi install mod_geoip php-pecl-geoip
После установки, объем диска получился следующим:
[root@develop /]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/vda 20642428 1918760 17675092 10% / none 251228 0 251228 0% /dev/shm
Как видно, прирос по месту не такой уж и большой. Если брать безлимитный интернет канал, вся установка у вас займет примерно 10 минут.В следующий раз мы поговорим непосредственно о настройке установленных выше демонов.
Вы можете оставить комментарий ниже.
shurshun.ru
Установка PHP 5.4/PHP 5.5/PHP 5.6 на CentOS/RedHat/Fedora
В своей теме «Установка PHP 5.4/PHP 5.5/PHP 5.6 на CentOS/RedHat/Fedora» хочу рассказать как можно поставить себе на сервер PHP 5.4 или PHP 5.5 или PHP 5.6 на CentOS, RedHat, Fedora. Информация проверялась на моей тестовой машине CentOS 6 и 7.
Первое что необходимо сделать, так это подключить репозиторий EPEL, для этого у меня есть написанная статья:
Как включить EPEL репозиторий на CentOS
Чтобы начать установку PHP5.4, PHP5.5 или PHP5.6 стоит добавить еще один репозиторий:
Включить webtatic репозиторий на CentOS
Далее, выбираем необходимую версию для установки и следуем моим инструкциям.
Установка PHP 5.4 на CentOS/RedHat/Fedora
Для того чтобы установить PHP, используйте команду:
# yum install php54wЕсли вы хотели бы обновить PHP до этой версии рекомендуется проверить поддержку для вашей системы и убедиться что она будет поддерживать обновление.
Если вы не знаете, что вы делаете, это рискованная модернизации существующей системы. Гораздо безопаснее выполнить инициализацию на отдельном сервере и посмотреть работу.
Если вы знаете, что вы делаете, вы можете обновить PHP по данной команде:
# yum install yum-plugin-replaceи
#yum replace php-common --replace-with=php54w-commonСкорей всего, выдаст вам сообщение «WARNING: Unable to resolve all providers …». Это нормально, и вы можете продолжать, нажав «Y». Вам будет предоставлена возможность увидеть, какие пакеты будут установлены и удалены и у вас будет шанс отметить все или нажать «y» для продолжения.
Установка Opcode Caches
Скомпилированных пакет APC для PHP доступен в качестве кэш-памяти, которая рекомендуется для повышения производительности. Он может быть установлен с помощью:
# yum install php54w-pecl-apcZend уже выпустили Zend Optimizer Plus opcode cache с открытым исходным кодом, и в настоящее время известен как Zend OPcache. Он более активно поддерживается чем APC и его можно установить с помощью:
# yum install php54w-pecl-zendopcacheТак же, возможно вам пригодятся следующие модули:
# yum install php54w-common php54w-cli php54w-devel php54w-gd php54w-mbstring php54w-mcrypt php54w-mysql php54w-odbc php54w-pdo php54w-soap php54w-tidy php54w-xml php54w-xmlrpcУстановка PHP 5.5 на CentOS/RedHat/Fedora
я установлю PHP 5.5 с поддержкой opcode cache , выполнив:
# yum install php55w php55w-opcacheЕсли вы хотели бы обновить PHP до этой версии рекомендуется проверить поддержку для вашей системы и убедиться что она будет поддерживать обновление.
Если вы не знаете, что вы делаете, это рискованная модернизации существующей системы. Гораздо безопаснее выполнить инициализацию на отдельном сервере и посмотреть работу.
Если вы знаете, что вы делаете, вы можете обновить PHP по данной команде:
# yum install yum-plugin-replaceи
# yum replace php-common --replace-with=php55w-commonСкорей всего, выдаст вам сообщение «WARNING: Unable to resolve all providers …». Это нормально, и вы можете продолжать, нажав «Y». Вам будет предоставлена возможность увидеть, какие пакеты будут установлены и удалены и у вас будет шанс отметить все или нажать «y» для продолжения.
Так же, возможно вам пригодятся следующие модули:
# yum install php55w-cli php55w-common php55w-dba php55w-devel php55w-gd php55w-mbstring php55w-mcrypt php55w-mysql php55w-odbc php55w-pdo php55w-soap php55w-tidy php55w-xml php55w-xmlrpcУстановка PHP 5.6 на CentOS/RedHat/Fedora
я установлю PHP 5.6 с поддержкой opcode cache , выполнив:
# yum install php56w php56w-opcachePS: на CentOS 5 не проверялось, работет на CentOS 6/7.
Если вы хотели бы обновить PHP до этой версии рекомендуется проверить поддержку для вашей системы и убедиться что она будет поддерживать обновление.
Если вы не знаете, что вы делаете, это рискованная модернизации существующей системы. Гораздо безопаснее выполнить инициализацию на отдельном сервере и посмотреть работу.
Если вы знаете, что вы делаете, вы можете обновить PHP по данной команде:
# yum install yum-plugin-replaceи
# yum replace php-common --replace-with=php56w-commonСкорей всего, выдаст вам сообщение «WARNING: Unable to resolve all providers …». Это нормально, и вы можете продолжать, нажав «Y». Вам будет предоставлена возможность увидеть, какие пакеты будут установлены и удалены и у вас будет шанс отметить все или нажать «y» для продолжения.
Так же, возможно вам пригодятся следующие модули:
# yum install php56w-bcmath php56w-cli php56w-common php56w-dba php56w-devel php56w-gd php56w-mbstring php56w-mcrypt php56w-mysql php56w-pdo php56w-pear php56w-pecl-apcu php56w-soap php56w-tidy php56w-xml php56w-xmlrpcУстановка PHP 7.0 на CentOS/RedHat/Fedora
я установлю PHP 5.6 с поддержкой opcode cache , выполнив:
# yum install --enablerepo=webtatic-testing php70w php70w-opcacheЭта команда установит mod_php SAPI для PHP, однако есть и другие, такие как PHP-FPM и его можно установить используя пакет php70w-fpm.
PS: на CentOS 5 не проверялось, работет на CentOS 6/7.
Если вы хотели бы обновить PHP до этой версии рекомендуется проверить поддержку для вашей системы и убедиться что она будет поддерживать обновление.
Если вы не знаете, что вы делаете, это рискованная модернизации существующей системы. Гораздо безопаснее выполнить инициализацию на отдельном сервере и посмотреть работу.
Если вы знаете, что вы делаете, вы можете обновить PHP по данной команде:
#yum install yum-plugin-replaceи
# yum replace --enablerepo=webtatic-testing php-common --replace-with=php70w-commonСкорей всего, выдаст вам сообщение «WARNING: Unable to resolve all providers …». Это нормально, и вы можете продолжать, нажав «Y». Вам будет предоставлена возможность увидеть, какие пакеты будут установлены и удалены и у вас будет шанс отметить все или нажать «y» для продолжения.
ВНИМАЕНИЕ! Данная версия PHP находиться в разработке и на момент написание статьи я ставил в качестве ознакомления.
Так же, возможно вам пригодятся следующие модули:
# yum install php70w-bcmath php70w-cli php70w-common php70w-dba php70w-devel php70w-gd php70w-mbstring php70w-mcrypt php70w-mysql php70w-odbc php70w-pdo php70w-pdo_dblib php70w-soap php70w-tidy php70w-xml php70w-xmlrpcНа этом, тема «Установка PHP 5.4/PHP 5.5/PHP 5.6 на CentOS/RedHat/Fedora» завершена.
linux-notes.org