백엔드 개발 PHP 튜토리얼 PHP安装攻略:PostgreSQL_PHP

PHP安装攻略:PostgreSQL_PHP

Jun 01, 2016 pm 12:35 PM
사용 설치하다 전략 데이터 베이스 문서 사용자

PostgreSQL

以下将说明使用Apache+PHP3+PostgreSQL作为基于Web的数据库平台的安装和配置方法。关于Apache、PHP3和PostgreSQL的更多内容可以从软件的附带文档、Linux的HOWTO文件以及以下站点处找到:
Apache: http://www.apache.org
PHP3: http://www.php.net
PostgreSQL: http://www.postgresql.org

1. PostgreSQL的安装和设置

1.1 获得源程序

  PostgreSQL最新版本的源程序可以在http://www.postgresql.org找到。目前的最新版本是6.5.X。以下以6.4版为例说明安装方法。

1.2 准备工作
  编译PostgreSQL需要3.75版以上的GNU make (用gmake -v检查版本号) ,2.7.2版以上的 GNU C(用gcc -v 检查版本号)以及bison和flex(通常这两种工具都已经安装) 。
  PostgreSQL的默认安装位置为/usr/local/pgsql/,系统文件约需3-10M空间。附带的测试程序在运行时需要约20M空间,所以安装时应注意预留足够的空间,建议/usr/local/pgsql/ 目录下保证有50M以上空间。另外展开和编译源程序约需30-60M空间。
  对多用户的应用环境,建议设置一个专用用户名,例如 postgres :
  $ su 首先登录为root
  # /usr/sbin/adduser postgres
  另外PostgreSQL使用了System V的共享内存机制。FreeBSD默认状态不支持该机制。如使用中的内核的设置文件中无以下项目则需追加后重新编译内核:
options SYSVSHM
options SYSVSEM
options SYSVMSG

  建保存源程序的目录/usr/local/src/pgsql和安装目录/usr/local/pgsql:
  #mkdir /usr/local/pgsql
  #chown postgres:postgres /usr/local/pgsql
  #mkdir /usr/local/src
  #mkdir /usr/local/src/pgsql
  #chown postgres:postgres /usr/local/src/pgsql

1.3 编译
  以postgres用户登录, 解压缩源程序:# su postgres
  $ tar -xzvf /tmp/postgresql-v6.4.tar.gz
  [假设下载文件保存在/tmp目录下]
  完成后应生成一个postgresql-v6.4目录,下面开始编译:
  $ cd /usr/local/src/pgsql/postgresql-v6.4/src
  $ ./configure --with-mb=EUC_CN

  其中,--with-mb=指定系统默认字符编码。除GB码(EUC_CN) 外,还可以指定为日语(EUC_JP)、韩语(EUC_KR) 、台湾(EUC_TW) 、UNICODE、MULE_INTERNAL、LATIN1等。
  注意,如使用6.3.2版需用--with-template=... 指定操作系统,具体内容见源程序附带的说明文件。
  configure如顺利完成,将生成GNUmakefile,Makefile.global和Makefile.port等文件。 $ gmake all在编译结束后将显示以下信息:All of PostgreSQL is successfully made. Ready to install。
  安装:$ gmake install
  正常完成后,PostgreSQl的执行文件和库文件等将被安装到/usr/local/pgsql目录下。
  安装附带文档:
  $ gmake install-man
  $ cd /usr/local/src/postgresql-v6.4/doc
  $ make install
  至此PostgreSQL的编译安装已经完成,下面开始初期设置。

1.4 初期设置
  设置环境变量:
  如使用的shell为bash, 则在.bashrc中添加以下命令:
  PATH="$PATH":/usr/local/pgsql/bin
  export POSTGRES_HOME=/usr/local/pgsql
  export PGLIB=$POSTGRES_HOME/lib
  export PGDATA=$POSTGRES_HOME/data
  export MANPATH="$MANPTH":$POSTGRES_HOME/man
  export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"$PGLIB"
  然后执行 source ~/.bashrc
  如使用的shell为csh/tcsh则在.cshrc中添加以下命令:
  setenv PATH="$PATH":/usr/local/pgsql/bin
  setenv POSTGRES_HOME=/usr/local/pgsql
  setenv PGLIB=$POSTGRES_HOME/lib
  setenv PGDATA=$POSTGRES_HOME/data
  setenv MANPATH="$MANPTH":$POSTGRES_HOME/man
  setenv LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"$PGLIB"
  然后执行 source ~/.cshrc
  以上环境变量是所有使用数据库的用户都需要设置的。
  
  数据库目录的初始化:
  $ initdb
  可以使用的参数:
  pgdata=/pgsql/db 指定数据库目录,默认使用环境变量PGDATA指定的位置
  pgencoding=EUC_CN 指定数据库的字符编码,默认使用configure时指定的编码。

  需要注意的是执行initdb的用户将拥有所建数据库目录的管理权。
  使用以下命令启动PostgreSQL:
  $ postmaster -S
  运行测试程序:
  $ cd test/regression
  $ gmake all runtest
  如测试程序能正常运行则说明PostgreSQL能正常运行。
  为了让 PostgreSQL在系统启动时能自动启动,需作以下变更:
  首先以root登录
  $ su
  Linux: 在/etc/rc.d/rc.local中追加以下内容:
  POSTGRESDIR=/usr/local/pgsql
  if [ -x $POSTGRESDIR/bin/postmaster -a
  d $POSTGRESDIR/data ];then
  rm -f /tmp/s.PGSQL.5432
  su - postgres -c "postmaster -S -i"
  echo -n 'postmaster'
  fi
  FreeBSD: 在/usr/local/etc/rc.d中建立名为
  pgsql.sh的文件,内容为:
  #! /bin/sh
  POSTGRESDIR=/usr/local/pgsql
  if [ -x $POSTGRESDIR/bin/postmaster
  -a -d $POSTGRESDIR/data ];then
  rm -f /tmp/s.PGSQL.5432
  su - postgres -c "postmaster -S -i"
  echo -n 'postmaster'
  fi
  修改pgsql.sh文件的权限:
  # chmod 755 pgsql.sh

  现在PostgreSQL的安装和设定基本已经完成了,但是目前为止能使用数据库的用户只有postgres。
  为使其他用户可以使用数据库,需要登录数据库用户和生成用户数据。
  如通过Web服务器Apache进行查询的用户,用户名为nobody:
  % createuser nobody
  Enter user's postgres ID or RETURN to use unix
  user ID: 1000 ->1000
  Is user "nobody" allowed to create dataase(y/n)n
  Is user "nobody" allowed to add users?(y/n)n
  createuser: nobody was successfully added

  删除用户可以使用命令destroyuser 用户名
  PostgreSQL可以同时管理多个数据库(但数据库之间不能进行join等操作)。新建数据库:
  $ createdb 数据库名
  新建的数据库将被放在/usr/local/pgsql/data/base的同名目录下(环境变量PGDATA指定路径的base目录下)。如省略数据库名参数,将自动以用户名作为数据库名。
  例如 名为db1的数据库将被保存在/usr/local/pgsql/data/base/db1目录下。也可使用initlocation命令指定其他位置:
  $ initlocation /pgsql/data
  $ export PGDATA2=/pgsql/data
  $ createdb -D PGDATA2 db2

  则数据库db2将被保存在/pgsql/data目录下。另外PostgreSQL 6.4版可以在建立数据库时指定文字编码:createdb -E “字符编码” “字符编码” 参见configure、initdb。
  删除数据库:destroydb 数据库名
  PostgreSQL最基本的数据库管理工具是
  pgsql. 基本使用方法:pgsql 数据库名

1.5 安全设置:
  PostgreSQL提供了基于主机的认证方式host based authentication(HBA) 、基于口令的用户身份认证和用户操作权限设置等安全机制。

1.5.1 HBA方式和基于口令的用户身份认证方式
  HBA方式的设置文件为pg_hba.conf。其格式为:
  host DBNAME IP_ADDRESS ADDRESS_MASK USRAUTH [AUTH_ARGUMENT]
  host: 固定标志,不能修改
  DBNAME: 数据库名,all代表所有数据库
  IP_ADDRESS,ADDRESS_MASK:指定IP地址,也可指定子网,如192.168.10.0/255.255.255.0
  USERAUTH: 对用户的认证方式,包括ident(RFC1413) 、trust(不进行认证) 、reject (拒绝符合条件的访问)、password [passwd_file](根据flat file口令文件进行认证) 、 crypt(使用PostgreSQL的系统数据库pg_shadow进行认证)、kbr4/kbr5(Kerberos V4/V5认证) 。如在作为Web 数据库使用, 使用passwd口令文件进行本地登录时可如下设置:
  Host all 127.0.0.1 255.255.255.255 password passwd
  passwd文件默认位置为/usr/local/pgsql/data, 有数据库管理权限的用户可以使用
  pg_passwd命令管理该文件(注意:flat file口令认证方式采用明文传送口令,故要从网络上其他主机登录,建议使用crypt认证方式)。

1.5.2 用户操作权限设置
  使用SQL命令grant/revoke可以设置用户/用户组可否使用select/insert/update/rule命令。

  根据SQL标准,一个数据表文件(table) 在刚建立时只有建立该表文件的用户有权访问。要分配给用户访问权限,可以使用grant命令:
  grant on to
  权限种类:all,select,insert,update,delete,rule
  table名:被设置用户访问权限的表文件
  用户/组:public(所有用户) 或用户名/组名
  revoke命令作用与grant命令相反,用法如下:
  revoke on from
  table已设置的用户权限可以使用pgsql的\z 命令查看。
2. Apache+PHP3的安装及设置
2.1 源程序
  Apache和PHP3的最新版本源程序可以从http://www.apache.org/和http://www.php.net/找到。
  以下以Apache 1.3.6和PHP3 3.0.5 为例。
2.2 编译
  假设Apache和PHP3的源程序都保存在/tmp目录下,首先登录为root:
  $ su
  # cd /usr/local/src
  # tar -xzvf /tmp/apache_1.3.6.tar.gz
  # ./configure
  # cd /usr/local/src
  # tar -xzvf /tmp/php3-3.0.5.tar.gz
  # cd php-3.0.5
  # ./configure --with-pgsql --with-apache=
  ../apache_1.3.6 --enable-track-vars
  # make
  # make install
  最后一步将建立/usr/local/src/apache_1.3.6/src/modules/php3目录,并将以下文件
  复制到该目录下:
  Makefile.libdir libmodphp3.a mod_php3.c php_version.h
  Makefile.tmpl libphp3.module mod_php3.h
  编译和安装Apache:

  设置环境变量LD_LIBRARY_PATH csh和tcsh shell使用以下命令:
  # setenv LD_LIBRARY_PATH /usr/local/pgsql/lib
  sh和bash使用如下命令:
  # LD_LIBRARY_PATH=/usr/local/pgsql/lib
  # export LD_LIBRARY_PATH
  然后
  # cd /usr/local/src/apache_1.3.6
  # ./configure --activate-module=src/modules/php3/libphp3.a
  # make
  # make install
2.3 修改设置文件
  # cd /usr/local/src/php-3.0.5
  # cp php3.ini-dist /usr/local/lib/php3.ini
  将/usr/local/apache/etc/srm.conf中以下两行内容前的#号删除,
  如果以.php3作为PHP3文件的扩展名,则将.phtml 更改为 .php3:
  #AddType application/x-httpd-php3 .php3
  #AddType application/x-httpd-php3-source .phps
  在srm.conf文件的DirectoryIndex下增加 index.php3:
  DirectoryIndex index.html index.php3
2.4 启动Apache
  # /usr/local/apache/sbin/apachectl start
  apachectl start: httpd started
  在本地机上启动网络浏览器,地址栏输入http://localhost/(或在其他计算机上的浏览器地址栏输入Apache服务器地址),如能显示出Apache的开始画面则说明Apache已经安装成功。下面测试PHP3模块工作是否正常:
  # cd /usr/local/apache/share/htdocs/
  # ln -s /usr/local/src/php-3.0.5 .
  然后在浏览器的地址栏输入
  http://localhost/php-3.0.5/examples/date.php3
  观察php3文件的运行结果是否正常。如日期函数能显示正确结果,则说明PHP3模块工作正常。
  至此,基于Apache Web服务器和服务器端脚本语言PHP3的PostgreSQL数据库系统的安装已经完成 :-)
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

BTCC 튜토리얼: BTCC 교환에서 MetaMask 지갑을 바인딩하고 사용하는 방법은 무엇입니까? BTCC 튜토리얼: BTCC 교환에서 MetaMask 지갑을 바인딩하고 사용하는 방법은 무엇입니까? Apr 26, 2024 am 09:40 AM

MetaMask(중국어로 Little Fox Wallet이라고도 함)는 무료이며 호평을 받는 암호화 지갑 소프트웨어입니다. 현재 BTCC는 MetaMask 지갑에 대한 바인딩을 지원합니다. 바인딩 후 MetaMask 지갑을 사용하여 빠르게 로그인하고 가치를 저장하고 코인을 구매할 수 있으며 첫 바인딩에는 20 USDT 평가판 보너스도 받을 수 있습니다. BTCCMetaMask 지갑 튜토리얼에서는 MetaMask 등록 및 사용 방법, BTCC에서 Little Fox 지갑을 바인딩하고 사용하는 방법을 자세히 소개합니다. MetaMask 지갑이란 무엇입니까? 3천만 명 이상의 사용자를 보유한 MetaMask Little Fox Wallet은 오늘날 가장 인기 있는 암호화폐 지갑 중 하나입니다. 무료로 사용할 수 있으며 확장으로 네트워크에 설치할 수 있습니다.

Xiaomi Auto 앱 사용 방법 Xiaomi Auto 앱 사용 방법 Apr 01, 2024 pm 09:19 PM

Xiaomi 자동차 소프트웨어는 원격 자동차 제어 기능을 제공하여 사용자가 휴대폰이나 컴퓨터를 통해 차량의 문과 창문을 열고 닫고, 엔진 시동을 걸고, 차량의 에어컨과 오디오를 제어하는 ​​등 차량을 원격으로 제어할 수 있습니다. 다음은 이 소프트웨어의 사용법과 내용에 대해 함께 알아봅시다. Xiaomi Auto 앱 기능 및 사용 방법의 전체 목록 1. Xiaomi Auto 앱은 3월 25일 Apple AppStore에 출시되었으며 이제 Android 휴대폰의 앱 스토어에서 다운로드할 수 있습니다. 자동차 구매: Xiaomi Auto의 핵심 특징과 기술 매개 변수를 이해합니다. , 시승 예약을 하고 Xiaomi 차량을 구성 및 주문하고 차량 픽업 작업 항목의 온라인 처리를 지원하세요. 3. 커뮤니티: Xiaomi Auto 브랜드 정보를 이해하고, 자동차 경험을 교환하고, 멋진 자동차 생활을 공유하세요. 4. 자동차 제어: 휴대폰은 원격 제어, 원격 제어, 실시간 보안, 간편함을 제공합니다.

Hibernate는 어떻게 다형성 매핑을 구현합니까? Hibernate는 어떻게 다형성 매핑을 구현합니까? Apr 17, 2024 pm 12:09 PM

Hibernate 다형성 매핑은 상속된 클래스를 데이터베이스에 매핑할 수 있으며 다음 매핑 유형을 제공합니다. Join-subclass: 상위 클래스의 모든 열을 포함하여 하위 클래스에 대한 별도의 테이블을 생성합니다. 클래스별 테이블: 하위 클래스별 열만 포함하는 하위 클래스에 대한 별도의 테이블을 만듭니다. Union-subclass: Joined-subclass와 유사하지만 상위 클래스 테이블이 모든 하위 클래스 열을 통합합니다.

iOS 18에는 손실되거나 손상된 사진을 검색할 수 있는 새로운 '복구된' 앨범 기능이 추가되었습니다. iOS 18에는 손실되거나 손상된 사진을 검색할 수 있는 새로운 '복구된' 앨범 기능이 추가되었습니다. Jul 18, 2024 am 05:48 AM

Apple의 최신 iOS18, iPadOS18 및 macOS Sequoia 시스템 릴리스에는 사진 애플리케이션에 중요한 기능이 추가되었습니다. 이 기능은 사용자가 다양한 이유로 손실되거나 손상된 사진과 비디오를 쉽게 복구할 수 있도록 설계되었습니다. 새로운 기능에는 사진 앱의 도구 섹션에 '복구됨'이라는 앨범이 도입되었습니다. 이 앨범은 사용자가 기기에 사진 라이브러리에 포함되지 않은 사진이나 비디오를 가지고 있을 때 자동으로 나타납니다. "복구된" 앨범의 출현은 데이터베이스 손상으로 인해 손실된 사진과 비디오, 사진 라이브러리에 올바르게 저장되지 않은 카메라 응용 프로그램 또는 사진 라이브러리를 관리하는 타사 응용 프로그램에 대한 솔루션을 제공합니다. 사용자는 몇 가지 간단한 단계만 거치면 됩니다.

HTML이 데이터베이스를 읽는 방법에 대한 심층 분석 HTML이 데이터베이스를 읽는 방법에 대한 심층 분석 Apr 09, 2024 pm 12:36 PM

HTML은 데이터베이스를 직접 읽을 수 없지만 JavaScript 및 AJAX를 통해 읽을 수 있습니다. 단계에는 데이터베이스 연결 설정, 쿼리 보내기, 응답 처리 및 페이지 업데이트가 포함됩니다. 이 기사에서는 JavaScript, AJAX 및 PHP를 사용하여 MySQL 데이터베이스에서 데이터를 읽는 실제 예제를 제공하고 쿼리 결과를 HTML 페이지에 동적으로 표시하는 방법을 보여줍니다. 이 예제에서는 XMLHttpRequest를 사용하여 데이터베이스 연결을 설정하고 쿼리를 보내고 응답을 처리함으로써 페이지 요소에 데이터를 채우고 데이터베이스를 읽는 HTML 기능을 실현합니다.

컴퓨터에 360 Secure Browser를 다운로드하는 방법 컴퓨터에 360 Secure Browser를 다운로드하는 방법 Apr 12, 2024 pm 01:52 PM

컴퓨터에 360 Secure Browser를 다운로드하는 방법은 무엇입니까? 매우 안전한 웹 브라우저 소프트웨어입니다. 이 브라우저는 기능이 매우 풍부하고 작동이 매우 간단합니다. 360 Secure Browser를 사용하여 웹을 탐색하면 많은 사람들이 이 브라우저를 사용하는 것을 좋아합니다. 하지만 아직도 많은 사람들이 자신의 컴퓨터에 360 Secure Browser를 다운로드하고 설치하는 방법을 모릅니다. 이 글에서는 문제 해결에 도움이 되기를 바라며 360 세이프 브라우저 PC 버전의 설치 과정을 자세히 소개하겠습니다. 360 Secure Browser 컴퓨터 버전에서의 설치 과정 개요 1. 컴퓨터 메인 페이지에서 “360 Software Manager”를 찾아 입력하세요(그림 참조). 2. 360 소프트웨어 관리자를 열고 검색 상자를 찾으세요(그림 참조). 3. 검색을 클릭하세요

PHP에서 MySQLi를 사용하여 데이터베이스 연결을 설정하는 방법에 대한 자세한 튜토리얼 PHP에서 MySQLi를 사용하여 데이터베이스 연결을 설정하는 방법에 대한 자세한 튜토리얼 Jun 04, 2024 pm 01:42 PM

MySQLi를 사용하여 PHP에서 데이터베이스 연결을 설정하는 방법: MySQLi 확장 포함(require_once) 연결 함수 생성(functionconnect_to_db) 연결 함수 호출($conn=connect_to_db()) 쿼리 실행($result=$conn->query()) 닫기 연결( $conn->close())

PHP에서 데이터베이스 연결 오류를 처리하는 방법 PHP에서 데이터베이스 연결 오류를 처리하는 방법 Jun 05, 2024 pm 02:16 PM

PHP에서 데이터베이스 연결 오류를 처리하려면 다음 단계를 사용할 수 있습니다. mysqli_connect_errno()를 사용하여 오류 코드를 얻습니다. 오류 메시지를 얻으려면 mysqli_connect_error()를 사용하십시오. 이러한 오류 메시지를 캡처하고 기록하면 데이터베이스 연결 문제를 쉽게 식별하고 해결할 수 있어 애플리케이션이 원활하게 실행될 수 있습니다.

See all articles