Чтобы Apache2 мог обрабатывать запросы php, вам необходимо установить php. Поскольку вы используете Ubuntu, вы можете установить, введя следующие команды:
sudo apt-get install php5
... и:
sudo apt-get install libapache2-mod-php5
Затем вам необходимо включить модуль apache с помощью:
sudo a2enmod php5
Вы, конечно, можете установить более поздние версии php, если хотите, и если они доступны для вашей версии Ubuntu.
Когда вы закончите с описанным выше, перезапустите apache с помощью:
sudo service apache2 restart
Когда вы выполнили все вышеперечисленное, попробуйте, правильно ли ваш веб-сервер обрабатывает php, поместив что-нибудь действительно простое * в корневой каталог вашего веб-сервера, например :
<?php
echo "<h3>Hello!</h3>";
echo "<p>This is printed from a php script</p>";
?>
Предполагая, что приведенный выше сценарий находится в файле с именем hello.php
, укажите его в браузере:
<ваш-IP-адрес> /hello.php
] {{1} } Если это сработает, это должно выглядеть так:
Это напечатано из сценария php
* Я обычно не поддерживаю размещение phpinfo ()
на тестовой странице.
Это не соответствует руководству по команде, но сам человек утверждает пункт 1:
printf
it. echo
решение echo -e "a \ na \ ta"
(двойные кавычки, прочтите, что они делают, хотя, если вы хотите расширить этот код для чего-то большего) и тесты: `
➜ ~ echo -e a \n a \ta
a n a ta
➜ ~ echo -e "a \n a \ta"
a
a a
➜ ~ echo -e "a\na\ta"
a
a a
➜ ~ bash
T420s:~$ echo -e "a\na\ta"
a
a a
T420s:~$ echo -e a\na\ta
anata
T420s:~$ echo a\na\ta
anata
T420s:~$ echo "a\na\ta"
a\na\ta
T420s:~$
Первая оболочка - ZSH.
Фрагмент оболочки «test \ n \\ test»
расширяется до строки test \ n \ test
, поскольку обратная косая черта внутри двойных кавычек приводит к тому, что следующий символ интерпретируется буквально, если следующий символ является одним из "$ \`
, а в противном случае сама обратная косая черта интерпретируется буквально. Тогда echo -e
] заменяет \ n
на новую строку и \ t
на табуляцию.
Избегайте двойных кавычек для цитирования буквального текста. Вместо этого используйте одинарные кавычки: у них более простые правила - все внутри одинарного кавычки интерпретируются буквально как одинарные кавычки. Если вы решите использовать двойные кавычки, не используйте обратную косую черту, за которой не следует символ, который будет заключаться в кавычки - если вы хотите использовать обратную косую черту внутри двойных кавычек, используйте \\
.
echo -e 'test\n\\test'
echo -e "test\\n\\\\test"
echo -e "\\t"
передает \ t
в echo
, потому что обратная косая черта является специальной внутри двойных кавычек в bash
. Он служит оператором экранирования (цитирования). В \\
он убегает сам.
Вы можете сделать следующее:
echo -e "\\\\t"
для передачи echo
\\ t
( echo -e "\\\ t"
также подойдет ), или вы можете использовать одинарные кавычки, в которых \
не является особенным:
echo -e '\t'
Итак, echo
- очень непереносимая команда . Даже в bash
его поведение может зависеть от окружения.Я бы посоветовал избежать этого и использовать вместо него printf
, с помощью которого вы можете сделать:
printf 'test\n\\test\n'
Или даже решить, какие части подвергаются этим расширениям escape-последовательности:
printf 'test\n%s\n' '\test'
Или:
printf '%b%s\n' 'test\n' '\test'
% b
понимает те же escape-последовательности, что и echo
(некоторые echo
s), в то время как первый аргумент printf
, формат, также понимает последовательности, но в немного иначе, чем echo
(больше похоже на то, что сделано на других языках). В любом случае \ n
понимают оба.