php

php Как установить модуль PHP в Ubuntu Linux -- общая инструкция

В этой заметке рассмотрим как установить модуль (расширение) PHP (обычно их пишут на языке программирования C, а веб-проргаммисты просто пользуются существующим).

Узнаём какие модули уже установлены

В командной строке:

php -m

Как установить модуль php

Возможны два варианта:

  • Ваш php установлен из репозитория (чаще всего это так)

    -- тогда действуем так:

php Как определить версию интерпретатора -- разные способы для комадной строки (терминала) и веб-сервера

В общем случае в вашем терминале может работать один интерпретатор (именно он будет запускаться в ответ на команду php), а веб-сервер на той же машине будет работать с другой версией php.

Как точно определить версию PHP

Справедливо для разных ОС (Linux, Windows):

  • Если вам нужно опредлить версию для терминала (командой строки), то просто выполните команду с флагом:
    php -v

    -- именно с этой версии php работают консольные команды приложения (если таковые имеются).

php Краткий тэг -- что это, как использовать и стоит ли (short tag <? )

Что это

Краткий тэг (подразумевается именно открывающий тэг для php-кода), это возможность писать код так:

<?  $str = '123'; echo($str);  ?>

Вместо классического варианта:

<?php  $str = '123'; echo($str);  ?>

Рекомендуется ли использовать краткий тэг

Вообще говоря нет, хотя бы потому что по-умолчанию он выключен в конфигурации и его нужно включать (см. ниже) отдельно -- явно указывая, что вы этого хотите (а не на всех серверах у вас может быть доступ к этим настройкам)

php Call to undefined function json_decode()

php Call to undefined function json_decode()

-- нужен json модуль для вашей версии php.

sudo /etc/init.d/php55-fpm start не работает

Убедитесь что разреша служба:

sudo nano /etc/default/php55-fpm

Измените:

#ENABLE=true

на

ENABLE=true

php-fpm ERROR: failed to open configuration file -- Когда не видит путь к конфигу

Если запускать бинарник просто без опиций путей к конфигу, то можно получить ошибку:

ERROR: failed to open configuration file '/etc/php55/php-fpm.conf': No such file or directory (2)
ERROR: failed to load configuration file '/etc/php55/php-fpm.conf'
ERROR: FPM initialization failed

-- здесь можно использовать флаг с указаним пути, но если вы решаете проблему запуска php-fpm как службы, то лучше сразу переходите сюда.

php Не запускается fpm -- при NOTICE: configuration file ...conf test is successful -- ubuntu

В ответ на:

sudo systemctl start php55-fpm.service

Получаем ошибку типа:

Job for php55-fpm.service failed because the control process exited with error code. See "systemctl status php55-fpm.service" and "journalctl -xe" for details.

При этом в логах (у меня это /var/log/php55-fpm/daemon.log) всё ок:

NOTICE: configuration file /etc/php55/fpm/php-fpm.conf test is successful

Как выяснить причину

PHP5.5 5.3 5.4 для Ubuntu от sergey-dryabzhinsky. Установка из репозитория

Добавляем репозиторий и обновляем индекс пакетов:

sudo add-apt-repository ppa:sergey-dryabzhinsky/php55
sudo apt-get update

При этом искать нужные пакеты надо так:

sudo apt-cache search php55

-- т.е. они начинаются на "php55" (а не "php5.5").

Спасибо: https://launchpad.net/~sergey-dryabzhinsky

php ./configure options -- Опции (настройки) компляции PHP -- список модулей для linux

Эта заметка относится к установке PHP из исходников.

Возможный набор опций команды конфигурации (отсюда):

./configure \
--enable-pdo \
--with-pdo-mysql \
--with-mysql \
--with-mysqli \
--enable-mbstring \
--with-curl \
--with-gd \
--with-mcrypt \
--with-vpx-dir \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-xpm-dir \
--with-zlib-dir \
--with-openssl \
--with-pear    

-- возможный минимальный список.

Pages

Subscribe to RSS - php