PHP 不在特定目录上运行

Mos*_*age 2 php debian selinux apache-2.2

好的。这是一个非常奇怪的错误:

hello/etc/apache2/sites-enabled/hello.php 中创建了一个名为“ ”的文件夹。然后我创建了一个别名,告诉/hello将转到/etc/apache2/sites-enabled/hello. 这解决了。

然后我尝试制作一个 VHost,它也能正常工作:

Alias /hello /etc/apache2/sites-enabled/hello
<VirtualHost *:80>
    ServerAdmin noobletadmin@YYYY.com
    DocumentRoot "/etc/apache2/sites-enabled/hello"
    ServerName comercial.YYYY.com
    ServerAlias ot.YYYY.com
    AddType application/x-httpd-php .php3 .php
    AddType application/x-httpd-php-source .phps
    <Directory /etc/apache2/sites-enabled/hello/>
        DirectoryIndex index.php
    </Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

但后来我读到这sites-enabled/仅适用于内部内容的 SymLink,sites-available所以我mv sites-*e/hello sites-available/hello制作了a2ensite hello,那时一切都崩溃了。

以前,PHP 运行良好,“hello”运行得非常好——现在就像没有 PHP 一样。PHP 很好,因为它是我拥有的本地文件的副本。没有错误出现.. 任何地方。我尝试过/var/log/apache/,但与我正在使用 spawns 的任何目录无关。

此外,在移动文件时(是的,我尝试了不同的位置),我注意到我public_html有以下权限方案:

drwxrwxr-x.  8 5500 www-data 4096 May  3 12:08 domain1_com
drwxrwxrwx   2 root root     4096 May  2 17:25 _cgi-bin
drwxr-xr-x   3 root root     4096 May 17 14:15 comercial_YYYY_com
drwxrwxr-x.  6 5500 www-data 4096 May  3 11:47 domain2_com
drwxrwxr-x.  6 5500 www-data 4096 May  2 17:25 domain3.pt
drwxr-xr-x   7 5500 www-data 4096 May  3 17:55 orcamento_YYYY_com
drwxrwxr-x.  6 5500 www-data 4096 May 13 18:48 domain4_pt
drwxr-xr-x   3 5500 www-data 4096 May 17 11:40 to_domain5_com
drwxrwxr-x.  8 5500 www-data 4096 May 13 18:03 YYYYY.com
drwxrwxr-x. 19 5500 www-data 4096 May  3 11:20 domain5.com
drwxrwxr-x.  6 5500 www-data 4096 May  2 17:25 domain6.pt
Run Code Online (Sandbox Code Playgroud)

但是我没有打开 SELinux。我知道这是因为答案sestatus-bash: sestatus: command not found——我在 Debian Squeeze 上——但是 php 不适用于没有点权限 (.)(SELinux 的东西)的文件夹。

而且,由于我似乎没有 SELinux,我真的不知道发生了什么。(我知道,我想,所有域都是我所在的另一台服务器的复制面食)

我在这里不知所措。请照亮我的道路?

Cra*_*son 5

这是设置 Apache 的错误方法。您的sites-availablesites-enabled目录仅用于虚拟主机配置,而不是您网站的内容文件。这些应该存储在/var/www或您选择的目录中。

您的AddTypeDirectoryIndex指令应该合并到您的主要 Apache 配置中/etc/apache2/apache2.conf

例子:

/etc/apache2/sites-available/mydomain.com

<VirtualHost *:80>
  ServerAdmin myadmin@mydomain.com
  DocumentRoot "/var/www/mydomain.com"
  ServerName mydomain.com
  <Directory /var/www/mydomain.com/>
    Options -Indexes
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

然后将该文件符号链接到/etc/apache2/sites-enabled/mydomain.com.

然后您的网站数据存储在/var/www/mydomain.com.