Как установить php5-memcached на Debian 7 с PHP 5.5?

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

Я настроил php страницу, подобную какой предложенное замешательство, с помощью shell_exec выполнить определенную команду через sudo:

  $output = shell_exec("/usr/local/bin/sudo /usr/local/etc/rc.d/sshd.sh restart");
  echo "<pre>$output</pre>";

Таким образом, я мог отредактировать локальное sudoers файл для предоставления моему апачскому пользователю соответствующего доступа к определенным командам. Я должен был предоставить ему полномочие корневого уровня запуска sshd; Вы могли ограничить его запуском/остановкой соответствующих сервисов как соответствующие пользователи.

3
23.07.2013, 22:09
5 ответов

Мне установили его. Так или иначе...

Я пытался установить libmemcached11. Начиная с установки с apt-get не работал, я установил его из источника:

root@devvm:~# wget http://ftp.de.debian.org/debian/pool/main/libm/libmemcached/libmemcached11_1.0.17-2_amd64.deb
...
2013-07-23 22:07:02 (713 KB/s) - `libmemcached11_1.0.17-2_amd64.deb' saved [112238/112238]

root@devvm:~# dpkg --install libmemcached11_1.0.17-2_amd64.deb 
Selecting previously unselected package libmemcached11:amd64.
(Reading database ... 149070 files and directories currently installed.)
Unpacking libmemcached11:amd64 (from libmemcached11_1.0.17-2_amd64.deb) ...
dpkg: dependency problems prevent configuration of libmemcached11:amd64:
 libmemcached11:amd64 depends on libc6 (>= 2.16); however:
  Version of libc6:amd64 on system is 2.13-38.

dpkg: error processing libmemcached11:amd64 (--install):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 libmemcached11:amd64

С ошибками, как Вы видите. Но теперь libmemcached11 был установлен.

Так как я думал, что установка перестала работать, я сначала решил удалить загруженный (поврежденный?) пакет, но прерванный процесс, для попытки php5-memcached установка с ним (возможно, это работало бы... так или иначе...):

root@devvm:~# apt-get remove libmemcached11
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
...
Use 'apt-get autoremove' to remove them.
The following packages will be REMOVED:
  libmemcached11
0 upgraded, 0 newly installed, 1 to remove and 3 not upgraded.
1 not fully installed or removed.
After this operation, 261 kB disk space will be freed.
Do you want to continue [Y/n]? n
Abort.

Затем я пытался установить php5-memcached снова - и на этот раз успешно:

root@devvm:~# apt-get -t stable install php5-memcached
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
...
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
  libmemcached11
The following NEW packages will be installed:
  libmemcached11 php5-memcached
0 upgraded, 2 newly installed, 0 to remove and 3 not upgraded.
Need to get 148 kB of archives.
After this operation, 397 kB of additional disk space will be used.
Do you want to continue [Y/n]? Y
Get:1 http://packages.dotdeb.org/ wheezy/all libmemcached11 amd64 1.0.16-1 [113 kB]
Get:2 http://packages.dotdeb.org/ wheezy-php55/all php5-memcached amd64 5.5.0-1~dotdeb.1 [34.9 kB]
Fetched 148 kB in 0s (328 kB/s)      
Selecting previously unselected package libmemcached11:amd64.
(Reading database ... 149070 files and directories currently installed.)
Unpacking libmemcached11:amd64 (from .../libmemcached11_1.0.16-1_amd64.deb) ...
Selecting previously unselected package php5-memcached.
Unpacking php5-memcached (from .../php5-memcached_5.5.0-1~dotdeb.1_amd64.deb) ...
Processing triggers for php5-fpm ...
[ ok ] Restarting PHP5 FastCGI Process Manager: php5-fpm.
Setting up libmemcached11:amd64 (1.0.16-1) ...
Setting up php5-memcached (5.5.0-1~dotdeb.1) ...

Creating config file /etc/php5/mods-available/memcached.ini with new version
Processing triggers for php5-fpm ...
[ ok ] Restarting PHP5 FastCGI Process Manager: php5-fpm.
0
27.01.2020, 21:10
  • 1
    Get:1 http://packages.dotdeb.org/ wheezy/all libmemcached11 amd64 1.0.16-1 [113 kB] Вы исследовались. Не знайте, почему это не было включено в репозиторий. –  Braiam 24.07.2013, 01:24
  • 2
    Вы могли объяснить, что Вы имеете в виду? Я исследовался? Что не было включено в репозиторий? –  automatix 24.07.2013, 01:39
  • 3
    libmemcached11 не был включен прежде в каком-либо из Ваших репозиториев, следовательно это было недавно добавлено, и Вы провели 2 дня, выясняя, 'что было неправильным'. –  Braiam 24.07.2013, 01:44

Попытка тегом версии

Так как у Вас есть репозитории, которые не имеют Debian, позволяет, указывают склонный - добираются от того, где Вы хотите пакет. Попытайтесь использовать:

sudo apt-get -t stable install php5-memcached

Это решит Ваши проблемы зависимости, так как это установит php5-memcached и libmemcached10 из стабильных репозиториев.

Прикрепление путь

С тех пор apt-get -t stable берет тот dotdeb.org в качестве последней стабильной версии пакета, также, отключая зеркало, apt-get update и установка пакета или использование прикрепления волшебства. Создайте файл /etc/apt/preferences.d/aptpinning с этим содержанием:

Package: php5-memcached
Pin: origin "ftp.de.debian.org"
Pin-Priority: 990

Package: php5-memcached
Pin: origin "packages.dotdeb.org"
Pin-Priority: 500

Это отдаст приоритет пакету от ftp.de.debian.org по тому от packages.dotdeb.org.

Снова, смешивание repos является плохой идеей, так как этот вид ситуаций может (и уже) происходят. Если не что-то критическое, Вы не должны смешивать repos, который может вызвать поврежденные зависимости.

Возможно, Вам нужен бэкпорт repo

Если причина, почему Вы используете PHP из другого источника, о "безопасности", Вы могли лучше использовать репозитории хрипящего бэкпорта. Просто добавьте deb http://YOURMIRROR.debian.org/debian wheezy-backports main к Вашему sources.list, выполненный apt-get update, затем установите использование пакета apt-get -t wheezy-backports install "package". При попытке этого вернитесь любое изменение использования других методов.

2
27.01.2020, 21:10
  • 1
    Просто обновленный вопрос с выводом apt-cache depends php5-memcached libmemcached10. –  automatix 23.07.2013, 22:10
  • 2
    @automatix я обновил свой ответ также. –  Braiam 24.07.2013, 00:16
  • 3
    за все Ваши усилия! Я не испытал Ваше последнее решение, так как я только что добрался php5-memcached установленный иначе. См. мой ответ. –  automatix 24.07.2013, 01:09

Версия php5-memcached в Хрипящем Debian имеет зависимость от libmemcached10.

Вы видите это на этой странице, http://packages.debian.org/wheezy/php5-memcached.

Вы пытаетесь установить php5-memcached, и это говорит Вам, Вам нужно libmemcached11. libmemcached11 не находится в Хрипящем Debian. Это также, очевидно, не в любом из других источников в Вашем sources.list, таким образом, apt не может найти его. Это вызвано тем, что Вы устанавливаете версию, которая является более новой, чем тот в Хрипящем Debian, и Вы устанавливаете его из non-Debian репозитория. Я не знаю, почему репозиторий не имеет корректных зависимостей.

Эти записи в Вашем sources.list вызывают, Вы выходите,

# nginx
deb http://packages.dotdeb.org squeeze all
deb-src http://packages.dotdeb.org squeeze all

# PHP 5.5
deb http://packages.dotdeb.org wheezy-php55 all
deb-src http://packages.dotdeb.org wheezy-php55 all

Вы уверены, что Вам нужны они - потому что они останавливают Вас устанавливающий материал.

Версия PHP5 в Хрипящем Debian 5.4.4-14+deb7u2. Если Вам будет нужно что-то выше, чем это, то да, Вам будут нужны другие репозитории, но необходимо будет также удостовериться, чтобы Вы установили любые недостающие зависимости. Debian - все об обеспечении стабильной серверной среды, что означает, что он часто выполняет немного более старые версии программного обеспечения. Если Вы хотите более новый материал,

  • Попробуйте тест Debian
  • Попробуйте Debian Нестабильный (не делайте, если Вы не хотите риски),
  • Используйте сервер Ubuntu
  • Поймите, как работают репозитории, и где получить зависимости

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

Вам нужны Debian и PHP5.5, или Вам просто нужен PHP5.5? Если бы Вам просто нужен PHP5.5 затем, Вы были бы более обеспеченным использованием распределения, которое уже имеет его в, или компиляция Вашего собственного (включая все зависимости и все другие пакеты, которые Вы хотите).

Вы не можете установить php5-memcached с Вашей текущей установкой, потому что Вы пропускаете зависимость.

0
27.01.2020, 21:10
  • 1
    Спасибо за Ваш ответ, но также и для комментариев! 1. libmemcached11 и нет libmemcached10 зависимость. Я вижу его теперь. У Вас есть идея, почему ей нужно 11 вместо 10 и как изменить это? 2. wheezy-php55 источники. Мне нужны (-редактор) они для установки PHP 5.5. Сделайте мне все еще нужны они теперь, когда PHP 5.5 уже установлен. 3. Попробовать Debian Test / Debian Unstable - что Вы имеете в виду? 4. Почему Ubuntu Server? 5. Спасибо за подсказку для понимания, как это работает. Да, я на самом деле имею к. Но теперь я должен добраться php5-memcached установленный сначала. –  automatix 23.07.2013, 01:04
  • 2
    Stackexchange не является местом для обширного обсуждения, я ответил на определенный запрос, который Вы имели и развернули его для покрытия некоторых вопросов здесь, но Вы кажетесь, что необходимо сделать намного больше чтения о Debian или использовать материал чат-комнаты StackExchange. –  EightBitTony 23.07.2013, 01:47
  • 3
    Вы правы, ТАК не место для обсуждений. Это - платформа ответа вопроса. Я задал вопрос (описание проблемы), Вы дали ответ. Проблема все еще не разрешена. Вот почему я задал дальнейшие вопросы для понимания ответа и достигнуть цели вопроса - проблемное решение. –  automatix 23.07.2013, 11:35

Для решения проблемы просто необходимо добавить следующее к sources.list:

# Wheezy
deb http://ftp.hosteurope.de/mirror/packages.dotdeb.org/ wheezy all
deb-src http://ftp.hosteurope.de/mirror/packages.dotdeb.org/ wheezy all

# Wheezy-php55
deb http://ftp.hosteurope.de/mirror/packages.dotdeb.org/ wheezy-php55 all
deb-src http://ftp.hosteurope.de/mirror/packages.dotdeb.org/ wheezy-php55 all

Действительно, недостающая зависимость (libmemcached11) присутствует в хрипящем распределении dotdeb репозитория.

6
27.01.2020, 21:10

Удостоверьтесь, что Вы имеете

deb http://packages.dotdeb.org wheezy all

в Ваших источниках! См. PHP 5.5.6 для “Хрипящего” Debian 7.0. Работавший для меня.

1
27.01.2020, 21:10

Теги

Похожие вопросы