2013-02-21 1 views
0

Postgres와 함께 Red Hat에 Silverstripe 2.4.10을 설치하려고합니다. 나는 포스트 그레스 패키지를 다운로드의/var/www /에서 HTML/silverstripe/SilverStripe-CMS로 압축을 푼silverstripe 2.4.10을 Postgres에 설치하면 db 연결시 끊임없이 실패합니다.

<VirtualHost *:80> 
ServerName silverstripe.localhost 
ServerAlias silverstripe.localhost 
ServerAdmin [email protected] 
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> 

:

그래서 난 내 httpd.conf 파일에 새 가상 호스트를 추가, v2.4.10 다운로드 -v2.4.10.

은 내가 SilverStripe의 하위 도메인 URL로 이동합니다 http://silverstripe.localhost/

그것은 install.php 파일 저를 취할 것입니다, 나는 나의 포스트 그레스 데이터베이스 자격 증명을 추가하지만 데이터베이스에 연결할 수 없습니다 Silverstripe는 지속적으로 알려줍니다.

<?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 자격 증명을 허용하지 않습니다

나는 작은 PHP 스크립트를 만들어 내 DB 자격 증명을 확인했습니다. 오류 : '127.0.0.1:5432'에 데이터베이스 서버를 찾을 수 없습니다. PostgreSQL은 서버가 존재하는지 확인하기 위해 유효한 사용자 이름과 암호가 필요합니다.

그건 정말 짜증나.

포스트그레스 모듈은 실행 지침을 제공 : DEV는/

불행하게도이 단지 404 오류가 발생 구축 할 수 있습니다. http://silverstripe.localhost/dev/build은 단순히 404 오류를 반환합니다. 그 밖에 개선 할 점이 있습니까?

물론 데이터베이스가 존재하고 사용자가 작동합니다 (상당히 잘 실행되는 테스트 스크립트 참조).

또한이 dev/build 것은 전혀 작동하지 않습니다. 을 실행하기 전에 설명서에서 어떤 것이 확실하지 않습니다. 설치 프로그램을 전혀 실행하지 마십시오. 만약 그렇다면 ... Postgres 모듈이 스크립트 초기 설치를 실행하도록 사용자에게 알리는 것은 이상한 일입니다.

+1

'127.0.0.1'대신 'localhost'를 사용하려고 했습니까? Webroot에서 _ss_environment.php 파일을 사용하여 설치 프로그램을 무시하고 db 연결을 초기화하고 다음을 정의 할 수도 있습니다. define ('SS_PGSQL_DATABASE_SERVER', 'localhost'); define ('SS_PGSQL_DATABASE_USERNAME', 'postgres'); define ('SS_PGSQL_DATABASE_PASSWORD', 'postgres'); 'postgres'를 사용자 이름과 암호로 대체하는 곳 – jfbarrois

+1

암호가있는 postgres 사용자를 사용해 볼 수도 있습니다. 모듈의 코드를 보면 패스워드가없는 연결은 pg_connect ("host = 127.0.0.1 port = 5432 dbname = SS_mysite user = silverstripe");이므로 "password ="는 문제가 될 수 없습니다. – jfbarrois

답변

1

/_config.php가 (이 절차는 설치에 따라 생략)과 PostgreSQL이 _ss_environment.php에 정의 된 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; 
+0

내가 알지 못했던 SilverStripe API의 두 가지 추가 변경 사항 : 그들은 서버 구성 "포트"를 호스트 조건의 일부가 될 필요가 없도록 변경하여 내 구성이 잘못 정의 된 것으로 잘못 정의했습니다 ('SS_DATABASE_SERVER', '127.0.0.1:5432'); define ('SS_DATABASE_SERVER', '127.0.0.1') 대신. 그러나 귀하의 의견으로 나는 그것을 해결할 수있었습니다. –