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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/504777.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php 利用个人邮箱,利用 Composer 完善自己的 PHP 框架(二)——发送邮件

利用 Composer 完善自己的 PHP 框架(二)——发送邮件2014-10-18 / 阅读数&#xff1a;23506 / 分类&#xff1a; PHP回顾上一篇文章中&#xff0c;我们手工建造了一个简易的视图加载器&#xff0c;顺便引入了错误处理包&#xff0c;让我们的 MFFC 框架在 M、V、C 三个方面都达到…

mysql安装被打断_MySQL安装未响应解决方法

安装MySQL出示未响应&#xff0c;一般显示在安装MySQL程序最后一步的2&#xff0c;3项就不动了。这种情况一般是你以前安装过MySQL数据库服务项被占用了。解决方法&#xff1a;一种方法&#xff1a;你可以安装MySQL的时候在这一步时它默认的服务名是“MySQL” 只需要把这个名字…

启动马达接线实物图_东元伺服驱动马达

东元伺服驱动马达&#xff0c;我公司主营德国SEW&#xff0c;德国法勒VAHLE, 德国UNING&#xff0c;德国同驰Tschan&#xff0c;意大利威卡WESTCAR&#xff0c;德国久茂JUMO&#xff0c;瑞士ABB等几大世界品牌产品。东元伺服驱动马达&#xff0c; 工业机器人电动伺服系统的一般…

php fast cgi nginx,通过fast-cgi连接php-fpm和nginx之间的连接是持...

PHP-FPM是fastCGI协议的一种实现,因此它遵守所有fastCGI规范要求.The Web server controls the lifetime of transport connections. The Web server can close a connection when no requests are active. Or the Web server can delegate close authority to the application…

jsp工程防止外部注入_防止 jsp被sql注入的五种方法

一、SQL注入简介SQL注入是比较常见的网络攻击方式之一&#xff0c;它不是利用操作系统的BUG来实现攻击&#xff0c;而是针对程序员编程时的疏忽&#xff0c;通过SQL语句&#xff0c;实现无帐号登录&#xff0c;甚至篡改数据库。二、SQL注入攻击的总体思路1.寻找到SQL注入的位置…

wordpress是用php几开发的,php-WordPress多个开发人员设置

是否可以让一个以上的人通过测试站点来开发Wordpress应用程序,这是一个很好的选择.我遇到的最大障碍是在本地开发和集成到测试环境时的路径问题.是否有人拥有维护开发人员环境,保持工作内容和链接的良好流程,并且代码在源代码管理中维护&#xff1f;为了澄清起见,我想在本地开发…

python分布式对象存储_推荐:一款分布式的对象存储服务

最近公司在准备内部数据上云&#xff0c;并且内部数据库每天的数据量很大&#xff0c;需要采用大数据存储的方案。方案调研每个程序技术在实现之前&#xff0c;需要进行开源产品的调研&#xff0c;适合自己产品的技术方案才是最好的。需求我们需要处理是图像信息&#xff0c;大…

php如何检测键盘按键,js键盘事件,判断按下的是哪个键

在写页面的时候&#xff0c;尤其是桌面端的时候&#xff0c;我们有时候要知道用户按下了那个按键&#xff0c;对于这个问题我们可以使用js提供的keyCode属性来操作&#xff0c;如&#xff1a;document.onkeydown function (e) {alert(e.keyCode)}这时你在页面上随意按键盘的按…

bch纠错码 码长8_BCH码-BCH码原理-BCH码分类-BCH码的应用-什么是BCH码-测控百科-CK365测控网...

1BCH码概述BCH码取自 Bose、Ray-Chaudhuri 与 Hocquenghem 的缩写&#xff0c;是自1959年发展起来的一种能纠正多位错误的循环码&#xff0c;是编码理论尤其是纠错码中研究得比较多的一种编码方法。用术语来说&#xff0c;BCH 码是用于校正多个随机错误模式的多级、循环、错误校…

oracle 左取,oracle 取子串(转)

SUBSTRING返回字符、binary、text 或 image 表达式的一部分。有关可与该函数一起使用的有效Microsoft SQL Server? 数据类型的更多信息&#xff0c;请参见数据类型。语法SUBSTRING ( expression , start , lengt…

js 中转换成list集合_js将类数组对象转换成数组对象

javascript与dom有许多瑕疵&#xff0c;如著名的类数组对象Arguments&#xff0c;其他诸如HTMLCollection,NodeList如果它们都是数组的子类&#xff0c;那多省时啊。在标准浏览器中&#xff0c;好像只要对象存在length属性&#xff0c;就能把它转换为数组&#xff0c;但IE就不尽…

oracle插入未调用并行,oracle并行之概念篇

概念 串行执行&#xff1a; 串行执行时候,sql语句由一个server process处理(既只运行在一个cpu上),所以sql语句所能使用的资源受cpu限制,除去异步i/o外server process 处理cpu操作时&#xff0c;不可访问disk。 并行处理&#xff1a; 就是多个slave process一起处理同一个sql语…

三维数据平滑处理_黑白象片的密度信息 卫星数据处理 遥感制图 三维建模 善图科技...

黑白象片的密度信息象片上的黑白变化&#xff0c;可划分为若干等级&#xff0c;此等级称之为灰阶。象片上的灰阶数受洗印技术及目视分辨能力的限制&#xff0c;一般不超过10个灰阶。灰阶较多时&#xff0c;象片上层次分明易于分辨一些细节。但灰阶的增多必导至对比度相对下降&a…

oracle左连接数据会对不上吗,一周工作总结–左连接造成的一些问题-Oracle

一周工作总结–左连接造成的一些问题今天有同事告诉我&#xff0c;有个SQL执行了好久好久执行不出来&#xff0c;我说好就是多久&#xff1f;她说一天左右了。真是令人咋舌的SQL。于是我要来了SQL看了看执行计划&#xff0c;确实让人咋舌。下图中就是执行计划的截图&#xff1a…

android开发 视图联动_新版首页技术设计和实现方案(Android)

动效设计1、两级吸顶CoordinatorLayoutAppBarLayout可以轻松的实现一级吸顶的功能&#xff0c;两级吸顶并不支持。要实现两级吸顶&#xff0c;可以有两种思考&#xff1a;一&#xff0c;在此基础之上再完成一次吸顶&#xff1b;二&#xff0c;直接重写两次吸顶的逻辑&#xff0…

oracle 获取一周七天,Oracle中求出本礼拜第一天和第七天的日期

<1>西方应用是周日是first day&#xff0c;中国人思维则为&#xff0c;周日是最后一天。其实&#xff0c;只需要计算到周一&#xff0c;就可直接获得周日。<2>应用实例--Sundayselect to_date(next_day(to_date(2015-02-09 22:00:00, yyyy-mm-dd hh24:mi:ss) - 7, …

网页设计上机考试原题_全国计算机三级信息安全考试 经验分享

为什么选择信息安全&#xff1f;误打误撞报的名&#xff0c;正好又听说是三级里面最好过的。1&#xff09;时间&#xff1a;九月份的考试&#xff0c;大概六月份报名。我在9月2日开学后&#xff0c;才开始准备的&#xff0c;也就二十几天的时间&#xff0c;而且我白天课不少&am…

oracle to_char 数值,oracle to_char格式数值

C:\Users\XXX>sqlplus / as sysdbaSQL*Plus: Release 10.2.0.5.0 - Production on 星期日 8月 28 15:51:42 2016Copyright (c) 1982, 2010, Oracle. All Rights Reserved.连接到:Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit ProductionWith the Par…

linux环境特性的文件夹,在Linux环境下如何消减可执行文件或者动态库的大小

为了简化描述&#xff0c;下文提到目标时&#xff0c;如无特殊说明&#xff0c;均指代目标可执行文件或者目标动态库。操作步骤如下&#xff1a;选型时&#xff0c;在同等功能时&#xff0c;尽量选择代码量少、占用空间小的开源的软件。控制C特性的使用&#xff0c;如无必要&am…

newifi mini固件_如何在vmware虚拟机中安装OpenWrt系统,含x86固件编译教程

"OpenWrt项目是针对嵌入式设备的Linux操作系统"&#xff0c; 这是官方给出的定义。OpenWrt确实是一个非常好的嵌入式学习系统&#xff0c;目前市面上上千款设备支持运行OpenWrt&#xff0c;如小米路由、newifi、netgear路由、360路由等。各大wifi芯片厂商sdk开始采用…