Drupal7 Note-0: Ubuntu 下 LAPP(linux+apache+postgresql+php)環 境的配置與安裝

1 安裝 apache2

sudo apt-get install apache2

安裝完成,運行如下命令重啓下:

sudo /etc/init.d/apache2 restart

在瀏覽器裏輸入

http://localhost 或者是 http://127.0.0.1

如果看到了"It works!“,那就說明Apache 就成功的安裝了,Apache 的默認安裝,會在/var 下建立一個名爲 www 的目錄,這個就是

Web 目錄了,所有要能過瀏覽器訪問的 Web 文件都要放到這個目錄裏。

2 安裝 php

sudo apt-get install libapache2-mod-php5 php5

此外,建議安裝PDO(PHP Data Objects)擴展:

(1) 對於mySQL數據庫安裝擴展:sudo apt-get install php5-gd php5-mysql  /*GD庫,是php處理圖形的擴展庫*/

(2)對於PostgreSQL數據庫安裝擴展:sudo apt-get install php5-gd php5-pgsql


(注:PDO擴展爲PHP訪問數據庫定義了一個輕量級的、一致性的接口,它提供了一個數據訪問抽象層,這樣,無論使用什麼數據庫,都可以通過一致的函數執行查詢和獲取數據)


安裝完後,我們要重新啓動Apache,讓它加載 PHP 模塊:

sudo /etc/init.d/apache2 restart

接下來,我們就在Web 目錄下面新建一個 PHP 文件來測試 PHP 是否能正常的運行,鍵入命令:

sudo gedit /var/www/phpinfo.php

然後輸入:

<?php

phpinfo();

?>

接着保存文件,在瀏覽器裏輸入 http://127.0.0.1/phpinfo.php,如果出現了一個顯示 PHP 運行參數的頁面,那就說明PHP 已經正常運行了。

如果相查看相應數據庫的PDO擴展是否安裝成功,進入頁面:http://127.0.0.1/phpinfo.php,然後查找"pdo"如果顯示如下:

則說明PostgreSQL的PDO安裝成功!相應地如果有PDO drivers存在mysq則表明mySQL的PDO安裝成功!

3 安裝PostgreSQL

第一步:在Ubuntu下安裝Postgresql

sudo apt-get install postgresql-9.1 postgresql-client-9.1 postgresql-contrib-9.1
以上指令安裝服務端和命令行客戶端psql。

(注:卸載軟件$sudo apt-get purge XXX(XXX爲程序名稱),purge參數爲徹底刪除文件,然後sudo apt-get autoremove,sudo apt-get clean和dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P 兩條命令來清除殘餘的配置文件

/usr/lib/postgresql/9.1/              存放postgresql相關的二進制文件
/usr/lib/postgresql/9.1/bin/        可執行文件
/usr/lib/postgresql/9.1/lib/         共享庫文件
/etc/postgres/9.1/main/              存放postgresql配置文文件
/var/lib/postgresql/                    postgres用戶的主文件夾

第二步:修改PostgreSQL數據庫的默認用戶postgres的密碼

PostgreSQL 數據默認會創建一個postgres的帳號用戶作爲數據庫的管理員,密碼是隨機的,所以:
首先,我們需要重置“postgres”用戶的密碼

命令行如下:
sudo -u postgres psql(或者sudo su postgres -c psql)—>運行psql,psql是一個標準的postgressql客戶端
postgres=# ALTER USER postgres WITH PASSWORD ‘postgres’;—>修改postgres的密碼爲postgres,不要忘記添加分號(回車後分號之前的sql語句纔會立即執行)
postgres=# \q—>退出

/*修改了數據庫中的密碼之後,我們還需要修改linux下的用戶 “postgres”的密碼:設定成與數據庫中postgres帳號相同的密碼,即postgres。
sudo passwd -d postgres———>刪除密碼
sudo -u postgres passwd(或者 sudo su postgres -c passwd)—–>創建密碼
然後輸入跟之前一樣的密碼。*/

現在,我們就可以在數據庫服務器上用 postgres帳號通過psql或者pgAdmin等等客戶端操作數據庫了(暫時還不能遠程訪問)。

第三步:修改PostgresSQL數據庫配置實現遠程訪問

首先,我們需要編輯postgresql.conf
sudo gedit /etc/postgresql/9.1/main/postgresql.conf
現在,我們需要修改“連接和權 限”兩行。
改變行:#listen_addresses = ‘localhost’ 修改爲:listen_addresses = ‘*’
改變行:#password_encryption = on 修改爲:password_encryption = on
保存並關閉gedit。

最後一步,我們必須設置誰纔可以操作數據服務器,這一 切都是在pg_hba.conf中完成的。
sudo gedit /etc/postgresql/9.1/main/pg_hba.conf
把以下內容添加到 pg_hba.conf底部:
# to allow your client visiting postgresql server
host all all 0.0.0.0 0.0.0.0 md5

解釋一下最後一行:
host表示允許的類型是主機;
第一個all是允許的數據庫名字;
第二個all是允許的用戶;
第一個0.0.0.0是允許訪問的ip address;
第二個0.0.0.0是允許訪問的subnet mask;
最後的md5表示密碼的加密方式,如果將md5改成trust則可以讓指定範圍的主機數據庫的時候不需要提供密碼。
關於ip address和subnet mask,你也可以修改爲你的機器IP地址(如10.13.19.53)和子網掩碼(如 255.255.255.255),這樣就只有你自己的主機可以遠程訪問數據庫了。 如果要使用一個IP地址範圍,只需要把子網掩碼設置成合適的值,如果子網掩碼設置成0.0.0.0,則所有主機均可以訪問數據庫(IP可以任意設定),如 果將md5改成trust則可以讓指定範圍的主機訪問指定的數據庫的時候不需要提供密碼。

重啓服務器,以上的配置就生效了:sudo /etc/init.d/postgresql restart

第四步:創建用戶和數據庫

使用命令行創建用戶和數據庫
sudo -u postgres createuser -D -P mynewuser—->-D該用戶沒有創建數據庫的權利,-P提示輸入密碼,後面的選項都可以省略,命令執行的時候會提示用戶選擇yes或者no
sudo -u postgres createdb -O mynewuser mydatabase—>-O設定所有者爲mynewuser
或者使用psql創建用戶和數據庫
首先利用psql登錄postgresql服務器:sudo -u postgres psql[ -U postgres -h 127.0.0.1]—->運行psql,後面[]中的內容可選,用於登錄服務器,默認會登錄本機;
然後在psql程序中創建用戶和數據庫:用戶名和數據庫名稱加上引號後才區分大小寫,否則會自動轉換成小寫:
create user “mynewuser” with password ‘mynewuser nocreatedb;
create database “mydatabase” with owner=mynewuser;

第五步:如何安 裝和使用pgAdmin3客戶端操作 postgresql數據庫

首先安裝圖形客戶端pgAdmin3,安裝命令行:sudo apt-get install pgadmin3
然後運行客戶端並連接數據庫,直接上圖:


(注意port:5432 如果連接不上就到sudo gedit /etc/postgresql/9.1/main/postgresql.conf 找到port並修改一致!

4 設置 Apache 支持.htm .html .php

sudo gedit /etc/apache2/apache2.conf
在打開的文件中加上
AddType application/x-httpd-php .php .htm .html即可。


5 php連接PostgreSQL測試

$sudo gedit pgconnect.php(在目錄/var/www/下)

<?php
$conn_string  =  "host=127.0.0.1 port=5432 dbname=baihu user=baihu password=baihu" ;
$dbconn = pg_connect($conn_string);
if (!$dbconn)
    echo "\r\n\n\n\n\n\nConnection Failed!!!\r\n";
else
    echo "\r\n\n\n\n\n\nConnection Success!!!\r\n";
    pg_close($dbconn);
?>

在瀏覽器中瀏覽網頁:http://127.0.0.1/pgconnect.php


Good Luck!

發佈了31 篇原創文章 · 獲贊 8 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章