一 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