Микроядро ограничивает время, система находится в привилегированном режиме, в противоположность пространству пользователя, к возможному абсолютному минимуму.
Если катастрофический отказ происходит в привилегированном режиме, все ядро понижается, и это означает, что вся система понижается. Если катастрофический отказ происходит в непривилегированном режиме, просто тот процесс понижается. Linux устойчив в этом отношении, но для любой подсистемы ядра все еще возможно переписать память любой другой подсистемы ядра, или целеустремленно или случайно.
Понятие микроядра помещает много материала, который является традиционно привилегированным режимом, таким как сети и драйверы устройств, в пространстве пользователя. Так как микроядро не действительно ответственно за много, который также означает, что это может быть более простым и более надежным. Думайте о способе, которым протокол IP, будучи простым и глупым, действительно приводит к устойчивым сетям путем продвижения сложности к краям и отъезда базового наклона и средний.
Используйте Dotdeb Debian стабильные пакеты. Хотя документация не отмечает это, стабильные пакеты в настоящее время хорошо работают с Хрипящим / тестированием. После следования инструкциям сделайте:
apt-get install php5-cli
как корень.
Как дополнение к ответу Gilles, кто предлагает перекомпилировать полный пакет PHP, можно также ожидать PHP 5.4. В 5,4 я реструктурировал readline функциональность, что все необходимые части находятся в readline модуле, таким образом, можно создать это одинокое.
$ wget ...php-5.4.0.tar.bz2
$ tar xjf php-5.4.0.tar.bz2
$ cd php-5.4.0/ext/readline
$ phpize && ./configure && make
Затем Вы закончите с a modules/readline.so
который может быть загружен из php.ini (make install
переместит его в extension_dir
)
Кроме того, дистрибьютор может поставить readline модуль (возможно, связанный против libedit, не readline), и интерактивный режим будет доступен.
Это все не поможет Вам теперь (как PHP 5.4. не отсутствует, еще), но мог бы помочь другим, находящим этот вопрос позже.
Еще некоторые детали о моем блоге: http://schlueters.de/blog/archives/133-Now-in-trunk-Improved-interactive-shell.html
Править: На самом деле сообщение в блоге является более старым, чем это изменение, но могло бы все еще быть интересным. Немного информации находится в отчете об ошибках № 53878, но не очень любой... после выпуска, http://php.net/commandline.interactive должен иметь больше.
Установка rlwrap
и выполненный rlwrap php5
. Rlwrap является универсальной readline оберткой, он обеспечивает выпуск командной строки и историю для любого read-eval-print цикла. Так как это - универсальная обертка, Вы не получите PHP-определенного завершения.
С другой стороны, получите исходный пакет и восстановите его с поддержкой readline. Поддержка Readline была только не учтена из-за лицензирования проблем, но эти проблемы только запрещают распределению PHP5, связанный с readline, они не запрещают Вам использование его.
apt-get source php5-cli
apt-get install build-essential fakeroot
apt-get build-dep php5-cli
cd php5-*/
# Edit debian/rules to configure with readline support
# Add an entry to debian/changelog to remember what you did
dpkg-buildpackage -rfakeroot -us -uc -b -nc
rlwrap
кажется, не помогает многому. Когда я работаю rlwrap php5
, войти echo 1;
, затем возврат хита затем Ctrl-D (конец входа), это производит вход echo 1;
вместо результата (1). Спасибо за замечание, что это - проблема лицензирования.
– Matthew Flaschen
10.04.2011, 00:05
rlwrap php5
и просто php5
, кроме бывшего выпуска командной строки разрешения. Если Вы входите <?php echo 1;?>
, вывод 1
, но это сразу не испущено ни в одном случае. Поиск с помощью Google предлагает это php5
просто не PHP REPL, и необходимо использовать что-то как phpsh вместо этого.
– Gilles 'SO- stop being evil'
10.04.2011, 00:42
<?php
или ?>
в интерактивной оболочке. Я соглашаюсь, что php не имеет полного REPL. Но с помощью версии, скомпилированной с с работой readline поддержка (например, dotdeb пакет я связался), он произведет 1 (или независимо от того, что реальный вывод), сразу после нажатия Enter. Я соглашаюсь, что нет никакой значительной разницы между rlwrap и никаким readline вообще (помимо редактирования строки и истории, которые хороши, но не так полезны как непосредственный вывод).
– Matthew Flaschen
10.04.2011, 00:49
Попробуйте это:
$ php -a
Interactive mode enabled
<?php echo "hi!"; ?>
Нажать Ctrl-d
<?php ?>
блоки. Я не знал об этом, и это показывает, что я неправильно понял Gilles ранее.
– Matthew Flaschen
24.05.2011, 21:39
Ни один из них не работал на меня. Используйте http://www.phpsh.org/ вместо этого.
После установки php5-cli от dotdeb, установите php5-readline пакет.
apt-get install php5-readline
php5-readline
доступно в основном архиве jessie и sid. И Вам не нужно php5-cli
от dotdeb.
– Ortomala Lokni
06.03.2015, 09:33
Для пользователей Ubuntu php5-readline - это дополнительный пакет, который необходимо установить, чтобы иметь удобную командную строку php:
sudo apt-get install php5-cli php5-readline
sudo php5enmod readline
Мне пришлось сделать это на моем Ubuntu 14.04.
В Debian Jessie и в использовании Debian Sid:
sudo apt-get install php5 php5-readline
тогда
php -a
Interactive mode enabled
php > echo 1+2;
3
php >
Простоsudo apt install php7.2-cli
[lucas:~] 20s 130 % sudo apt install php7.2-cli
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libavdevice57
libegl-mesa0:i386 libegl1:i386 libgbm1:i386 libgsasl7 libkyotocabinet16v5
libmailutils5 libmemcached11 libntlm0 libwayland-egl1-mesa:i386
libwayland-server0:i386 mailutils-common mysql-client-core-5.7 shim
ttf-dejavu-core webhttrack-common
Use 'sudo apt autoremove' to remove them.
Suggested packages:
php-pear
The following NEW packages will be installed:
php7.2-cli
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 1.407 kB of archives.
After this operation, 4.956 kB of additional disk space will be used.
Get:1 http://br.archive.ubuntu.com/ubuntu bionic-updates/main amd64 php7.2-cli amd64 7.2.24-0ubuntu0.18.04.4 [1.407 kB]
Fetched 1.407 kB in 0s (6.666 kB/s)
Selecting previously unselected package php7.2-cli.
(Reading database... 320578 files and directories currently installed.)
Preparing to unpack.../php7.2-cli_7.2.24-0ubuntu0.18.04.4_amd64.deb...
Unpacking php7.2-cli (7.2.24-0ubuntu0.18.04.4)...
Setting up php7.2-cli (7.2.24-0ubuntu0.18.04.4)...
update-alternatives: using /usr/bin/php7.2 to provide /usr/bin/php (php) in auto mode
update-alternatives: using /usr/bin/phar7.2 to provide /usr/bin/phar (phar) in auto mode
update-alternatives: using /usr/bin/phar.phar7.2 to provide /usr/bin/phar.phar (phar.phar) in auto mode
Processing triggers for man-db (2.8.3-2ubuntu0.1)...
[lucas:~] % php --version
PHP 7.2.24-0ubuntu0.18.04.4 (cli) (built: Apr 8 2020 15:45:57) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.2.24-0ubuntu0.18.04.4, Copyright (c) 1999-2018, by Zend Technologies
[lucas:~] % php -a
Interactive mode enabled
php >
Конечно, это только PHP CLI. Это позволяет вам запускать Composer и все, что связано с CLI. Он не включает веб-сервер, такой как Apache или Nginx.
php>
подсказка для меня :( – mulllhausen 12.10.2013, 11:57