我正在尝试使用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不接受相同的DB凭据。 错误是:我在'127.0.0.1:5432'上找不到数据库服务器:PostgreSQL需要有效的用户名和密码来确定服务器是否存在。
这真令人讨厌。
Postgres模块提供了运行说明: 开发/构建
不幸的是,这只会导致404错误。 http://silverstripe.localhost/dev/build只会返回404错误。 我还能做些什么或检查以改进它?
当然数据库确实存在且用户确实有效(请参阅我的测试脚本运行得很好)。
此dev / build事件根本不起作用,从文档中可以看出,如果打算在运行安装程序之前工作。 因为如果是这样...... Postgres模块告诉用户在前期安装时运行该脚本有点奇怪。
答案 0 :(得分:1)
mysite / _config.php中的以下配置应该有效(这会绕过安装程序中遵循的过程),并假定在_ss_environment.php中定义了postgresql常量SS_PGSQL_DATABASE_SERVER,SS_PGSQL_DATABASE_USERNAME和SS_PGSQL_DATABASE_PASSWORD:
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;