【问题标题】:Php websites don't work after changin php version更改php版本后php网站无法正常工作
【发布时间】:2013-06-05 09:35:40
【问题描述】:

我在 Ubuntu 13.04 环境中使用 php。 我已经配置了 apache,因此在我的主目录中有一个 public_html 目录,我在其中保存了我正在处理的所有网站,并且我可以使用 localhost/~homedir/website 访问它们。过去一切正常,但几天前我将 php 降级到 5.3 版以尝试解决问题(然后我没有解决),然后我又回到 php 5.4.9。这发生在几天前,我不记得我是否检查过我的任何网站。无论如何,今天我尝试访问一个,但它没有用。在 apache error.log 文件中我有这个:

File does not exist: /home/carlo/public_html/website/index.php/welcome
Negotiation: discovered file(s) matching request: /home/carlo/public_html/website/index (None could be negotiated).

我平时使用的.htaccess是这样的:

RewriteEngine on
RewriteBase /~carlo/website/

RewriteCond $1 !^(index\.php|cache|captcha|fonts|forum|media|img|min|css|js|scripts|images|uploads|docs|robots.txt|sitemap.xml|sitemap|public|tools|assets|xd_receiver.htm)

RewriteRule ^(.*)$ index.php/$1 [L]

附带说明,phpmyadmin 正在工作。我可以使用localhost/phpmyadmin 访问它。在/etc/apache2/conf.d/apache.conf 我有这个:

Alias /phpmyadmin /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin>
    Options FollowSymLinks
    DirectoryIndex index.php

<IfModule mod_php5.c>
        AddType application/x-httpd-php .php

        php_flag magic_quotes_gpc Off
        php_flag track_vars On
        php_flag register_globals Off
        php_admin_flag allow_url_fopen Off
        php_value include_path .
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
        php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/
</IfModule>

我认为降级和升级php的一些配置文件发生了变化,但我不知道是哪一个以及做什么。你能帮我弄清楚吗?我要发布一些其他信息吗?

编辑:

我想我已经找到了问题所在。 显然,升级 php 时重新激活了以下说明:

# To re-enable php in user directories comment the following lines
# (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
# prevents .htaccess files from disabling it.
<IfModule mod_userdir.c>
<Directory /home/*/public_html>
    php_admin_value engine Off
</Directory>
</IfModule>

所以,评论他们解决了这个问题(我希望)

【问题讨论】:

    标签: php apache2 localhost


    【解决方案1】:

    添加.htaccess文件并尝试

    Options +FollowSymLinks 
    

    【讨论】:

    • 这样它给了我一个内部服务器错误,并在日志中显示Options not allowed here
    • 反正我一直有相同的.htaccess 并且它有效,所以我认为问题应该出在其他地方
    • 我找到了问题所在。我用解决方案编辑了问题
    最近更新 更多