2016-09-02 5 views
0

Я провел последний день в Google, и у моего Google-Fu был плохой день, или никто раньше этого не спрашивал.CentOS 6.8 PHP-FPM не работает корректно с PHP CLI

Эти последние пару дней я настраивал Vagrant VM с CentOS 6.8 для меня, чтобы работать на нашем сайте. Я решил установить те же пакеты, которые находятся на нашем сервере: Nginx, PHP-FPM & Percona. Я удалил PHP 5.3 и 5.6 включена в Remi репо и в настоящее время установили:

  • php.x86_64 (5.6.25-1.el6.remi)
  • PHP-cli.x86_64 (5.6.25-1 .el6.remi)
  • PHP-common.x86_64 (5.6.25-1.el6.remi)
  • PHP-fpm.x86_64 (5.6.25-1.el6.remi)
  • PHP-MBstring. x86_64 (5.6.25-1.el6.remi)
  • php-mcrypt.x86_64 (5.6.25-1.el6.remi)
  • php-mssql.x 86_64 (5.6.25-1.el6.remi)
  • PHP-mysqlnd.x86_64 (5.6.25-1.el6.remi)
  • PHP-pdo.x86_64 (5.6.25-1.el6.remi)
  • PHP-PECL-jsonc.x86_64 (1.3.10-1.el6.remi.5.6)
  • PHP-PECL-zip.x86_64 (1.13.4-1.el6.remi.5.6)
  • PHP -xml.x86_64 (5.6.25-1.el6.remi)

Теперь я не знал о каких-либо проблемах, поскольку сайт работал отлично. Однако сегодня я пошел на переиндексацию сайта, мы используем Magento, поэтому я делаю это через CLI из предпочтения. Команда:

php indexer.php reindexall

Все это outputed было:

Usage: php [-n] [-e] [-h] [-i] [-m] [-v] [-t] [-p ] [-g ] [-c ] [-d foo[=bar]] [-y ] [-D] [-F [-O]] 
    -c | Look for php.ini file in this directory 
    -n    No php.ini file will be used 
    -d foo[=bar]  Define INI entry foo with value 'bar' 
    -e    Generate extended information for debugger/profiler 
    -h    This help 
    -i    PHP information 
    -m    Show compiled in modules 
    -v    Version number 
    -p, --prefix 
        Specify alternative prefix path to FastCGI process manager (default: /usr). 
    -g, --pid 
        Specify the PID file location. 
    -y, --fpm-config 
        Specify alternative path to FastCGI process manager config file. 
    -t, --test  Test FPM configuration and exit 
    -D, --daemonize force to run in background, and ignore daemonize option from config file 
    -F, --nodaemonize 
        force to stay in foreground, and ignore daemonize option from config file 
    -O, --force-stderr 
        force output to stderr in nodaemonize even if stderr is not a TTY 
    -R, --allow-to-run-as-root 
        Allow pool to run as root (disabled by default) 

Я никогда не видел этого. Не было ошибок в терминале или даже в журнале. Я пробовал другие скрипты php, которые у меня были, и даже создал действительно простой тест «hello world», который, как я знал, будет работать, но все же получил тот же результат. Так что я сделал рытье и через некоторое время заметил, что мой php -v показал PHP 5.6.25 (fpm-fcgi) вместо PHP 5.6.25 (cli).

Я попытался удалить пакет php-fpm, который затем зафиксировал вывод php -v и включил мой простой тестовый скрипт, однако это не совсем исправление, так как это оставляет меня без php-fpm.

Я действительно надеюсь, что это просто простая настройка, которую я пропустил, поскольку она, очевидно, отлично работает на нашем реальном сервере. Я просил поддержки у нашего хозяина, и они еще этого не видели.

Итак, после всего этого фона, я предполагаю, что короткий вопрос заключается в том, как установить php-fpm без конфликта с php-cli?

+0

, когда вы хотите увидеть, на что указывает псевдоним (программная ссылка): 'какой php' Я думаю, что вывод похож на'/usr/bin/php5-fpm' - это неправильный бинарный файл SAPI для клиента/консоль. – DanFromGermany

+0

@DanFromGermany выводится как '/ usr/sbin/php', но если я делаю'/usr/bin/php' и команду он работает –

ответ

1

Попробуйте использовать полный путь к исполняемому файлу PHP.Что-то вроде:

/usr/bin/php indexer.php reindexall

+0

Спасибо! Это заставило скрипт работать. Я попробовал '/ usr/sbin/php', потому что это то, что« php »дал мне, но не думал о'/usr/bin/php'. Есть ли способ заставить его работать с использованием 'php'? Если бы вы могли указать мне направление, я сначала увижу, что я могу найти в Google, но если нет, я полагаю, что всегда мог бы использовать псевдоним. –

+0

/usr/sbin обычно будет доступным только для root. Что вы видите, если вы наберете 'ls -l/usr/sbin/php'? Если это только символическая ссылка, то я думаю, что вы можете безопасно отсоединиться, а затем пересоединиться с 'ln -s/usr/bin/php/usr/sbin/php' Таким образом, все ваши предыдущие вызовы CLI должны по-прежнему работать! –

+0

вот что я получаю: 'lrwxrwxrwx. 1 корень root 17 авг. 24 16:05/usr/sbin/php ->/usr/sbin/php-fpm', должен ли он по-прежнему быть безопасным для повторного подключения? –

0

Я не понимаю, где вы/USR/SBIN/PHP происходит от

# rpm -q php-cli php-fpm 
php-cli-5.6.25-1.el6.remi.x86_64 
php-fpm-5.6.25-1.el6.remi.x86_64 

# which php 
/usr/bin/php 

# php -v 
PHP 5.6.25 (cli) (built: Aug 31 2016 19:26:19) 
Copyright (c) 1997-2016 The PHP Group 
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies 
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies 

# rpm -qf /usr/sbin/php 
error: file /usr/sbin/php: No such file or directory 

Таким образом, вы, вероятно, может просто удалить его.

Смежные вопросы