0

我正在尝试使用 Postgres 在 Red Hat 上安装 Silverstripe 2.4.10。

所以我下载了 v2.4.10,我在我的 httpd.conf 中添加了一个新的 vHost:

<VirtualHost *:80> 
ServerName silverstripe.localhost 
ServerAlias silverstripe.localhost 
ServerAdmin root@silverstripe.localhost 
DocumentRoot /var/www/html/SilverStripe-cms-v2.4.10 
ErrorLog /var/www/html/silverstripe/silverstripe.com-error_log 
CustomLog /var/www/html/silverstripe/silverstripe.com-access_log common 
<Directory "/var/www/html/silverstripe/SilverStripe-cms-v2.4.10"> 
Options Indexes FollowSymLinks 
AllowOverride All 
Order allow,deny 
Allow from all 
</Directory> 
</VirtualHost>

我下载了 postgres 包并将其解压到 /var/www/html/silverstripe/SilverStripe-cms-v2.4.10 中。

我导航到 SilverStripe 的子域 URL: http://silverstripe.localhost/

我需要安装.php,我添加了我的 Postgres 数据库凭据,但 Silverstripe 不断告诉我它无法连接到数据库。

我通过创建一个小的 PHP 脚本验证了我的数据库凭据:

<?php 
$db = pg_connect("host=127.0.0.1 port=5432 dbname=SS_mysite user=silverstripe password="); 
$result = pg_query($db, "SELECT * FROM test_table_pgtest");

while ($row = pg_fetch_row($result)) { 
echo "Id: $row[0] Name: $row[1]"; 
echo "<br />\n"; 
} 
?>

该脚本执行良好,但 silverstripe 不接受相同的数据库凭据。错误是:我在“127.0.0.1:5432”上找不到数据库服务器:PostgreSQL 需要有效的用户名和密码才能确定服务器是否存在。

这真的很烦人。

Postgres 模块给出了运行指令:dev/build

不幸的是,这也只会导致 404 错误。http://silverstripe.localhost/dev/build只会返回 404 错误。我还能做些什么或检查以改进它?

当然,数据库确实存在并且用户确实可以工作(请参阅我的运行良好的测试脚本)。

此外,这个开发/构建的东西根本不起作用,从文档中不清楚这是否打算在您运行安装程序之前起作用。原因如果是这样...... Postgres 模块告诉用户预先运行该脚本安装有点奇怪。

4

1 回答 1

1

mysite/_config.php 中的以下配置应该可以工作(这绕过了安装程序中遵循的过程),并假设 postgresql 常量 SS_PGSQL_DATABASE_SERVER、SS_PGSQL_DATABASE_USERNAME 和 SS_PGSQL_DATABASE_PASSWORD 已在 _ss_environment.php 中定义:

global $database;
$database = 'SS_mysite';
require_once('conf/ConfigureFromEnv.php');
global $databaseConfig;
$databaseConfig['type'] = 'PostgreSQLDatabase';
$databaseConfig['server'] = SS_PGSQL_DATABASE_SERVER;
$databaseConfig['username'] = SS_PGSQL_DATABASE_USERNAME;
$databaseConfig['password'] = SS_PGSQL_DATABASE_PASSWORD;
于 2013-02-22T00:12:38.743 回答