Я настроил что-то вроде этого на одном из моих веб-серверов, которые имели проблему 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; Вы могли ограничить его запуском/остановкой соответствующих сервисов как соответствующие пользователи.
Мне установили его. Так или иначе...
Я пытался установить 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.
Так как у Вас есть репозитории, которые не имеют 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, который может вызвать поврежденные зависимости.
Если причина, почему Вы используете PHP из другого источника, о "безопасности", Вы могли лучше использовать репозитории хрипящего бэкпорта. Просто добавьте deb http://YOURMIRROR.debian.org/debian wheezy-backports main
к Вашему sources.list
, выполненный apt-get update
, затем установите использование пакета apt-get -t wheezy-backports install "package"
. При попытке этого вернитесь любое изменение использования других методов.
apt-cache depends php5-memcached libmemcached10
.
– automatix
23.07.2013, 22:10
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, он мог бы хорошо понизить Вашу версию PHP в следующий раз, когда Вы пытаетесь сделать что-либо. Я действительно думаю, что необходимо подвергнуть сомнению, почему Вы используете Конюшню Debian.
Вам нужны Debian и PHP5.5, или Вам просто нужен PHP5.5? Если бы Вам просто нужен PHP5.5 затем, Вы были бы более обеспеченным использованием распределения, которое уже имеет его в, или компиляция Вашего собственного (включая все зависимости и все другие пакеты, которые Вы хотите).
Вы не можете установить php5-memcached
с Вашей текущей установкой, потому что Вы пропускаете зависимость.
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
Для решения проблемы просто необходимо добавить следующее к 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 репозитория.
Удостоверьтесь, что Вы имеете
deb http://packages.dotdeb.org wheezy all
в Ваших источниках! См. PHP 5.5.6 для “Хрипящего” Debian 7.0. Работавший для меня.
Get:1 http://packages.dotdeb.org/ wheezy/all libmemcached11 amd64 1.0.16-1 [113 kB]
Вы исследовались. Не знайте, почему это не было включено в репозиторий. – Braiam 24.07.2013, 01:24libmemcached11
не был включен прежде в каком-либо из Ваших репозиториев, следовательно это было недавно добавлено, и Вы провели 2 дня, выясняя, 'что было неправильным'. – Braiam 24.07.2013, 01:44