无法在 Xubuntu 16.04 上将 phpbrew 与 apache2 一起使用。 php 版本的安装正常,但打印了源代码并且没有执行 PHP
Can't use phpbrew with apache2 on Xubuntu 16.04. Installation of php versions are OK but source code printed and no PHP executed
我在 Xubuntu 16.04 x64 和 apache2 上使用 phpbrew 时遇到问题。我在 xubuntu 14.04 上使用它没有问题,但现在我真的卡住了:/
我会尝试用所有需要的信息来解释它。
在使用该命令行安装每个版本的过程中一切顺利
phpbrew install 7.0.16 +default +mysql +pdo +apxs2=/usr/bin/apxs2 +mb
当我切换 php 版本时没问题,当我切换时我看到了正确的版本
php -v
但我可以看到它只改变了 php
的 CLI 版本
PHP 7.0.16 (cli) (built: Feb 28 2017 17:25:51) ( NTS )
如果我查看 .phpbrew/php 我可以看到我安装的 php 每个版本的文件夹,当我查看 /etc/apache2/mods-available/ 我有phpX.X.load 指向文件夹 /usr/lib/apache2/modules/ 中对应的 libphpX.X.XX.so 。所有 libphpX.X.XX.so 都存在于该文件夹中。
当我重新启动 apache 时,我没有任何错误。
我准确地说我已经安装了 phpbrew 符合该要求 (https://coderwall.com/p/hguzxa/phpbrew-on-ubuntu-16-04-php7)
所以现在我只是在 index.html 文件中尝试简单的 php 行
<?php echo '<h1>Hello, world!</h1>';?>
但是 apache 似乎无法解释 php 因为它看起来像那样
Hello, world!';?>
最后,当我查看文件/var/log/apache2/error.log时,里面没有错误信息。
如果您能帮助我,在此先感谢您!
您的浏览器为您打印
Hello, world!';?>
因为您的 Apache 服务器配置错误,无法处理 PHP 脚本。浏览器的这种行为让您感到困惑,因为您在字符串中使用了有效的 HTML 标记。试着打印这个字符串
<?php echo 'Hello, world!';?>
浏览器中没有任何内容window。但是,如果您打开页面源代码,您会看到您的 PHP 字符串作为原始值进入 DOM 文档,没有经过处理的 PHP 标签。
要解决此信息,只需尝试为 Apache 添加缺少的配置:
touch /etc/apache2/conf-available/php.conf
将下一个内容放入此文件
<IfModule mod_php5.c>
<IfModule mod_mime.c>
AddType application/x-httpd-php .php
</IfModule>
<FilesMatch ".+\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
</IfModule>
<IfModule mod_php7.c>
<IfModule mod_mime.c>
AddType application/x-httpd-php .php
</IfModule>
<FilesMatch ".+\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
</IfModule>
<IfModule mod_php.c>
<IfModule mod_mime.c>
AddType application/x-httpd-php .php
</IfModule>
<FilesMatch ".+\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
</IfModule>
现在,您使用配置告诉 Apache 它如何处理 PHP 脚本。
所以,现在 运行
a2enconf php
systemctl restart apache2.service
您可以使用
查看 Apache 运行ning 状态
systemctl status apache2.service
现在,不要忘记检查您的测试脚本是否在您的浏览器中命名为 something-to-test.php
(而不是 html)和 运行。
享受您处理过的 PHP 脚本和愉快的编码 ;)
我在 Xubuntu 16.04 x64 和 apache2 上使用 phpbrew 时遇到问题。我在 xubuntu 14.04 上使用它没有问题,但现在我真的卡住了:/ 我会尝试用所有需要的信息来解释它。
在使用该命令行安装每个版本的过程中一切顺利
phpbrew install 7.0.16 +default +mysql +pdo +apxs2=/usr/bin/apxs2 +mb
当我切换 php 版本时没问题,当我切换时我看到了正确的版本
php -v
但我可以看到它只改变了 php
的 CLI 版本PHP 7.0.16 (cli) (built: Feb 28 2017 17:25:51) ( NTS )
如果我查看 .phpbrew/php 我可以看到我安装的 php 每个版本的文件夹,当我查看 /etc/apache2/mods-available/ 我有phpX.X.load 指向文件夹 /usr/lib/apache2/modules/ 中对应的 libphpX.X.XX.so 。所有 libphpX.X.XX.so 都存在于该文件夹中。 当我重新启动 apache 时,我没有任何错误。
我准确地说我已经安装了 phpbrew 符合该要求 (https://coderwall.com/p/hguzxa/phpbrew-on-ubuntu-16-04-php7)
所以现在我只是在 index.html 文件中尝试简单的 php 行
<?php echo '<h1>Hello, world!</h1>';?>
但是 apache 似乎无法解释 php 因为它看起来像那样
Hello, world!';?>
最后,当我查看文件/var/log/apache2/error.log时,里面没有错误信息。
如果您能帮助我,在此先感谢您!
您的浏览器为您打印
Hello, world!';?>
因为您的 Apache 服务器配置错误,无法处理 PHP 脚本。浏览器的这种行为让您感到困惑,因为您在字符串中使用了有效的 HTML 标记。试着打印这个字符串
<?php echo 'Hello, world!';?>
浏览器中没有任何内容window。但是,如果您打开页面源代码,您会看到您的 PHP 字符串作为原始值进入 DOM 文档,没有经过处理的 PHP 标签。
要解决此信息,只需尝试为 Apache 添加缺少的配置:
touch /etc/apache2/conf-available/php.conf
将下一个内容放入此文件
<IfModule mod_php5.c>
<IfModule mod_mime.c>
AddType application/x-httpd-php .php
</IfModule>
<FilesMatch ".+\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
</IfModule>
<IfModule mod_php7.c>
<IfModule mod_mime.c>
AddType application/x-httpd-php .php
</IfModule>
<FilesMatch ".+\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
</IfModule>
<IfModule mod_php.c>
<IfModule mod_mime.c>
AddType application/x-httpd-php .php
</IfModule>
<FilesMatch ".+\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
</IfModule>
现在,您使用配置告诉 Apache 它如何处理 PHP 脚本。 所以,现在 运行
a2enconf php
systemctl restart apache2.service
您可以使用
查看 Apache 运行ning 状态systemctl status apache2.service
现在,不要忘记检查您的测试脚本是否在您的浏览器中命名为 something-to-test.php
(而不是 html)和 运行。
享受您处理过的 PHP 脚本和愉快的编码 ;)