我已经在网站上搜索答案,但没有找到解决我的问题的方法。
情况如下:
我全新安装了最新的 ubuntu:
Distributor ID: Ubuntu
Description: Ubuntu 16.04.1 LTS
Release: 16.04
Codename: xenial
安装并运行 apache2 和 php7。我已启用 php7.0 模块:
dpkg --get-selections | grep apache
apache2 install
apache2-bin install
apache2-data install
apache2-utils install
libapache2-mod-php install
libapache2-mod-php7.0 install
我的 apache2 站点可用配置:
DocumentRoot /opt/Test/Sources
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /opt/Test/Sources>
DirectoryIndex index.php
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
我的目录:
ll
total 12
drwxrwxrwx 3 root root 4096 Nov 14 16:41 ./
drwxr-xr-x 23 root root 4096 Nov 16 16:35 ../
drwxr-xr-x 4 www-data www-data 4096 Nov 14 16:42 Test/
cd Test/
ll
total 16
drwxr-xr-x 4 www-data www-data 4096 Nov 14 16:42 ./
drwxrwxrwx 3 root root 4096 Nov 14 16:41 ../
drwxr-xr-x 2 www-data www-data 4096 Nov 14 16:42 Images/
drwxr-xr-x 2 www-data www-data 4096 Nov 16 18:13 Sources/
cd Sources/
ll
total 12
drwxr-xr-x 2 www-data www-data 4096 Nov 27 18:22 ./
drwxr-xr-x 4 www-data www-data 4096 Nov 14 16:42 ../
-rwxr-xr-x 1 www-data www-data 19 Nov 16 18:07 index.php*
我在 index.php 中创建了一个简单的测试文件:
<?
phpinfo();
?>
但是当我浏览时,我得到的是空白页。当我在浏览器中检查源代码时,我得到了我的 index.php 的内容:
<?
phpinfo();
?>
看起来 apache 无法解释该文件。error.log 没有错误,access.log 看起来正常:
192.168.70.88 - - [27/Nov/2016:18:27:43 +0100] "GET / HTTP/1.1" 200 223 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"
192.168.70.88 - - [27/Nov/2016:18:27:43 +0100] "GET /favicon.ico HTTP/1.1" 404 504 "http://192.168.70.30/" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"
有人有想法吗?我已经很久没有使用过 apache 和 php 了,我可能忘记了一些东西。
非常感谢你的帮助
答案1
我发现了问题所在。
在此版本的 php 中,/etc/php/7.0/apache2/php.ini 中默认 short_open_tag = Off。这意味着以下行
<?
?>
无法识别为 php 代码,因此无法处理。您可以启用短标签或在第一行末尾添加“php”
并且它有效。