linux nginx postgresql php,常用Web环境架设手册PNP:Postgresql+Nginx+PHP
一 Postgresql
1.1 install
ready:
sudo apt-get update
sudo apt-get install libreadline6-dev
sudo apt-get install zlib1g zlib1g.dev
cd source
./configure
sudo make install
sudo adduser postgres
sudo mkdir /usr/local/pgsql/data
sudo chown postgres /usr/local/pgsql/data
su - postgres
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1 &
/usr/local/pgsql/bin/createdb test
/usr/local/pgsql/bin/psql test
1.2 tablefunc
cd source ... contrib/tablefunc/
make
sudo make install
su - postgres
psql dbname
create extension tablefunc;
1.3 replication
一:主庫
# 首先創建同步所需用戶和權限
postgres=# create user dbsr replication ;
# 編輯pg_hba.conf,允許用戶dbsr連接,并執行replication
host replication dbsr 192.168.8.201/32 trust # streaming replication primary
host replication dbsr 192.168.8.117/32 trust # streaming replication slave
# 編輯postgresql.conf,將所有配置的配置好后,重啟數據庫服務
listen_addresses = '*' #光設定pg_hba.conf沒有用,特別注意需要調整這個設定,
wal_level = replica# 9.6.3設定為replica
max_wal_senders = 10# 這個設置了可以最多有幾個流復制連接,差不多有幾個從,就設置幾個
wal_keep_segments = 256# 設置流復制保留的最多的xlog數目
wal_sender_timeout = 60s# 設置流復制主機發送數據的超時時間
max_connections = 1000# 這個設置要注意下,從庫的
max_wal_size = 5GB # in logfile segments, min 1, 16MB each
min_wal_size = 100MB # in logfile segments, min 1, 16MB each
hot_standby = on#
max_standby_archive_delay = 60s
max_standby_streaming_delay = 60s
hot_standby_feedback = on
wal_receiver_timeout = 60s
#restart PG server
sudo /etc/init.d/postgresql restart
二:從庫
# 建立備份
#從庫安裝完成后,不初始化,若已經初始化,刪除其data目錄
rm -rf data/
pg_basebackup -h 192.168.8.117 -U dbsr -F p -P -R -D /data/pg_rep -l /tmp/backup.log
# 修改recovery.conf
pg_basebackup的-R會自動產生此文件與內容
standby_mode = 'on'
primary_conninfo = 'user=rep host=192.168.8.117 port=5432 sslmode=disable sslcompression=1'
# 修改postgresql.conf
若用同一臺機器,可以改port,如54321
# chown
chown -R postgres:postgres data
# chmod
chmod -R 700 /data/pg_rep
#啟動備用庫
/usr/local/pgsql/bin/pg_ctl start -D /data/pg_rep
檢查
# 登入主庫
psql -U postgres -d postgres
postgres=# \x
Expanded display is on.
postgres=# select * from pg_stat_replication ;
二 Nginx
2.1.準備:
copy 安裝文件nginx-1.7.5.tar.gz到 /usr/local/
//需準備好Perl 5 兼容正則表達式庫(PCRE)與SSL 支持庫
sudo apt-get update
sudo apt-get g++
sudo apt-get install libpcre3 libpcre3-dev
sudo apt-get install openssl libssl-dev
Centos:
#yum -y install pcre-devel openssl openssl-devel
#yum install gcc-c++
并確認是否有安裝 gcc/g++
gcc -v
g++ -v
2.2.安裝
sudo mkdir /usr/local/nginx
tar -zxvf nginx-1.7.5.tar.gz
cd nginx-1.7.5
#./configure --prefix=/usr/local/nginx
sudo ./configure --with-http_ssl_module?--with-http_stub_status_module
sudo make
sudo make install
2.3.啟動
/usr/local/nginx/nginx
http://localhost/若可出現正常畫面表示成功。
或netstat –na|grep 80
nginx -s stop
nginx -s reload
2.4.移除
sudo rm -rf /etc/nginx/
sudo rm -rf /usr/sbin/nginx
sudo rm /usr/share/man/man1/nginx.1.gz
sudo apt-get purge nginx
2.5.管理
#查看安裝的模組
nginx -V
//清空LOG,若用刪除log的辦法,需要reload nginx
truncate -s access.log
三 PHP
3.1 編譯
#需要libxml2
sudo apt-get install libxml2 libxml2-dev
cd ../php-x.x.x
./configure --enable-fpm --with-pgsql
make
sudo make install
3.2?創建配置文件,并將其復制到正確的位置
cp php.ini-development /usr/local/lib/php.ini
cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf
cp sapi/fpm/php-fpm /usr/local/bin
3.3 php.ini
打開 php.ini:
vim /usr/local/lib/php.ini
定位到 cgi.fix_pathinfo= 并將其修改為如下所示:
cgi.fix_pathinfo=0
3.4 配置php-fpm
1.php-fmp.conf
vim /usr/local/etc/php-fpm.conf
更改最后一句為:
include=/usr/local/etc/php-fpm.d/www.conf
cp /usr/local/etc/php-fpm.d/www.conf.defaut /usr/local/etc/php-fpm.d/www.conf
vim /usr/local/etc/php-fpm.d/www.conf
找到以下內容并修改:
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
user = www-data
group = www-data
然后啟動 php-fpm 服務:
/usr/local/bin/php-fpm
1.重啟/
ps aux|grep php-fpm
sudo kill -USR2 42891(master pid)
或
sudo kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`
(注意上面執行cat命令是反引號[`],而不是單引號[']或雙引號["])
pid文件路徑應該位于/usr/local/php/var/run/php-fpm.pid(在上面ps命令會顯示配置文件中配置),把注釋去除.
kill 參數:
INT, TERM 立刻終止
QUIT 平滑終止
USR1 重新打開日志文件
USR2 平滑重載所有worker進程并重新載入配置和二進制模塊
3.5 配置nginx
修改默認的 location 塊,使其支持 .php 文件:
location / {
root html;
index index.php index.html index.htm;
}
下一步配置來保證對于 .php 文件的請求將被傳送到后端的 PHP-FPM 模塊, 取消默認的 PHP 配置塊的注釋,并修改為下面的內容:
location ~* \.php$ {
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
重啟 Nginx。
sudo /usr/local/nginx/sbin/nginx -s stop
sudo /usr/local/nginx/sbin/nginx
or
sudo /usr/local/nginx/sbin/nginx -s reload
3.6?測試
rm /usr/local/nginx/html/index.html
echo "<?php phpinfo(); ?>" >> /usr/local/nginx/html/index.php
打開瀏覽器,訪問 http://localhost,將會顯示 phpinfo()
3.7 安裝擴展庫
#需先安裝automake,不然不能生成.configure文件.
sudo apt-get install autoconf
$ cd extname
$ phpize
$ ./configure
$ make
# make install
總結
以上是生活随笔為你收集整理的linux nginx postgresql php,常用Web环境架设手册PNP:Postgresql+Nginx+PHP的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: lrtemplate如何导入pr_PR模
- 下一篇: minitab怎么算西格玛水平_六西格玛
