我在 Centos 虚拟机上无法让 CMS 的子页面正常工作。在 Web 浏览器中,如果我转到 localhost,我会看到“Apache 2 测试页面由 CentOS 提供支持”。如果我转到 localhost/index.php,我会看到我的 joomla 网站主页。如果我单击 localhost/contact 等菜单,我会看到一个看起来像未找到 apache 页面的内容。它说
“未找到 请求的 URL /contact 未在此服务器上找到。Apache/2.2.15 (CentOS) 服务器位于 localhost 端口 80”
我认为我的 apache 配置有误。我找到的所有教程都只是演示了如何工作,所以我不确定哪里出了问题。
我只是用它进行测试,所以我只对通过本地主机查看网站感兴趣
我通过 yum 安装了 apache 和 mySql。我想要一个特定的 php 版本,所以我从源代码安装了它。
我创建的内容如下:
<|?
phpinfo();
?|>
并且它按预期工作。注意:添加了 |,因此代码会显示出来。
我在 /var/www/html 安装了 Joomla。我使用备份实用程序来安装该软件,并用网站填充数据库。
以下是我设置 Centos 6.3 机器的概述。
yum install mysql-server mysql php-mysql
yum groupinstall 'Development Tools' -y
yum install httpd mysql-server httpd-devel libxml2-devel libcurl-devel libjpeg-devel libpng-devel gmp-devel mysql-devel libtool-ltdl-devel -y
wget http://museum.php.net/php5/php-5.3.6.tar.gz
tar -zxvf php-5.3.6.tar.gz
cd php-5.3.6
'./configure' '--with-mysqli' '--with-mysql' '--enable-bcmath' '--enable-mbstring' '--with-gmp' '--with-curl' '--with-gd' '--with-freetype' '--with-apxs2=/usr/sbin/apxs' '--with-zlib' '--with-jpeg-dir' '--with-png-dir' '--with-gif-dir'
make
make test
make install
chcon -t textrel_shlib_t '/usr/lib/httpd/modules/libphp5.so'
echo 0 >/selinux/enforce
在 /etc/httpd/conf/httpd.conf 底部添加:
<IfModule mod_php5.c>
AddType application/x-httpd-php .php .phtml .php3 .php5
AddType application/x-httpd-php-source .phps
php_admin_flag register_globals off
</IfModule>
答案1
这不是 Joomla 等 CMS 的工作方式。基本上,它的所有页面都是通过调用index.php
各种参数(例如要显示的页面 ID)生成的。Joomla 的标准 URL 类似于
http://www.example.com/index.php?option=com_content&task=view&id=1&Itemid=1
要使其显示“真实或 SEO 友好”的 URL(如http://example.com/contact
),您需要向 Apache 添加一些重写规则,然后配置 CMS 来处理这些重写的 URL,可能还需要使用扩展模块。有关更多信息,请参阅 Joomla 文档。