首先,我的虚拟主机示例无需嵌入即可<? php echo 'Hello World'; ?>
工作index.html
。
Apache
和我使用的机器上一样。PHP
这台机器上有两次可用时间。
$ which php
/usr/bin/php
$ which php7.0
/usr/bin/php7.0
此外:libapache2-mod-php7.0
已经安装。
到目前为止我所做的:
$ sudo mkdir /var/www/www.virtualhost.com/
$ cd /var/www/www.virtualhost.com/
$ sudo cat > index.html
<html>
<body>
<h1>My virtualhost</h1>
PHP Test:<br>
<?php echo "PHP"; ?>
</body>
</html>
ctrl+d
$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-availble/virtualhost.com.conf
编辑我的文件后virtualhost.com.conf
它看起来像:
<VirtualHost *:80>
ServerName www.virtualhost.com
ServerAlias virtualhost.com
ServerAdmin [email protected]
DocumentRoot /var/www/www.virtualhost.com
DirectoryIndex index.html index.php
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/www.virtualhost.com/>
Options +Indexes -FollowSymlinks
AllowOverride None
</Directory>
#Include conf-available/serve-cgi-bin.conf
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
/etc/hosts
然后我启用了我的网站,在我的文件中进行了输入,并apache2
使用以下命令重新启动:
$ sudo a2ensite virtualhost.com.conf
$ sudo apache2ctl restart
我的新条目/etc/hosts
有:
127.0.0.1 www.testhost.com
127.0.0.1 www.virtualhost.com
以下模块已激活:
$ a2query -m
authz_host (enabled by maintainer script)
proxy_fcgi (enabled by site administrator)
socache_shmcb (enabled by site administrator)
negotiation (enabled by maintainer script)
filter (enabled by maintainer script)
access_compat (enabled by maintainer script)
authz_core (enabled by maintainer script)
deflate (enabled by maintainer script)
authn_file (enabled by maintainer script)
php7.0 (enabled by maintainer script)
authz_user (enabled by maintainer script)
authnz_fcgi (enabled by site administrator)
mime (enabled by maintainer script)
proxy (enabled by site administrator)
mpm_prefork (enabled by site administrator)
dir (enabled by maintainer script)
alias (enabled by maintainer script)
auth_basic (enabled by maintainer script)
setenvif (enabled by maintainer script)
cgi (enabled by site administrator)
env (enabled by maintainer script)
autoindex (enabled by maintainer script)
authn_core (enabled by maintainer script)
status (enabled by maintainer script)
ssl (enabled by site administrator)
如果没有这行代码,<?php echo "PHP"; ?>
网站index.html
也可以正常工作。但如果我嵌入这行代码,php 的 echo 就不会回显。
我需要类似的东西吗
LoadModule php7_module modules/libphp7.so
在我的/etc/apache2/apache2.conf
?
欢迎任何有关解决此问题的提示。
答案1
为了执行文件中嵌入的 PHP 代码,该文件需要通过 PHP 解释器实际运行。默认情况下,只有以 结尾的文件.php
(以及几个其他文件扩展名)才会通过 PHP 解释器发送,因为默认情况下通过 PHP 解释器发送所有文件会降低性能,并且在某些情况下会导致安全或功能问题。
为了告诉您的网络服务器.html
通过 PHP 解释器发送所有以 结尾的文件,您应该将以下行添加到您的 vhost 配置中:
AddHandler application/x-httpd-php70 .html