如何在CentOS 76.56.4 下安装PostgreSQL 9.3 与 phpPgAdmin
1安装PostgreSQL
首先根据你的服务器架构添加PostgreSQL库:
使用以下命令来更新库:
yum update
使用以下命令来安装PostgreSQL:
yum install postgresql93-server postgresql93-contrib
使用以下命令来初始化PostgreSQL数据库:
在CentOS 6x 系统中:
service postgresql-93 initdb
在CentOS 7系统中:
/usr/pgsql-93/bin/postgresql93-setup initdb
然后启动PostgreSQL服务并使之开机自启:
在CentOS 6x 系统中:
service postgresql-93 start
chkconfig postgresql-93 on
在CentOS 7系统中:
systemctl enable postgresql-93
systemctl start postgresql-93
2调整Iptables/Firewall
接下来调整防火墙出站规则:
在CentOS 6x系统中:
vi /etc/sysconfig/iptables
并添加以下行
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
退出并保存文件。重启iptables服务:
service iptables restart
在CentOS系统中:
firewall-cmd --permanent –add-port=5432/tcp
firewall-cmd --permanent –add-port=80/tcp
firewall-cmd --reload
3访问PostgreSQL常用的命令提示符
默认情况下数据库名和用户名都是postgres。切换至用户以执行相关操作:
su – postgres
输入以下命令登陆:
psql
会有以下样例输出:
psql (935)
Type "help" for help
Postgres=#
可通过输入\q退出postgresql返回命令终端:
4设置用户密码
登陆至postgres命令提示符界面
su – postgres
psql
然后使用命令设置密码
postgres=# \password postgres
Enter new password:
Enter it again:
postgres=# \q
输入命令以建立PostgreSQL系统管理工具
postgres=# CREATE EXTENSION adminpack;
CREATE EXTENSION
5创建用户和数据库
例如:用户名:senthil 密码:centos 数据库名:mydb
转到postgres用户
su – postgres
创建用户senthil
$ createuser senthil
创建数据库
$ createdb mydb
现在登陆至psql提示符界面,为用户senthil设置密码及授权对数据库mydb的访问:
$ psql
psql (935)
Type "help" for help
postgres=# alter user senthil with encrypted password 'centos';
ALTER ROLE
postgres=# grant all privileges on database mydb to senthil;
GRANT
postgres=#
6删除用户和数据库
首先转到postgres界面
su – postgres
输入命令
$ dropdb <database-name>
删除用户名可输入
$ dropuser <user-name>
7配置PostgreSQL-MD5认证
MD5认证需要客户端提供一个MD5-encrypted 密码以便身份验证。你需要编辑 /var/lib/pgsql/93/data/pg_hbaconf文件:
vi /var/lib/pgsql/93/data/pg_hbaconf
添加或修改的行如下:
[]
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127001/32 md5
host all all 19216810/24 md5
# IPv6 local connections:
host all all ::1/128 md5
[]
重启postgresql服务以应用更改
在CentOS 6x系统中
service postgresql-93 restart
在CentOS 7系统中
systemctl restart postgresql-93
8配置PostgreSQL-Configure TCP/IP
默认情况下,TCP/IP连接是不可行的,所以其他计算机用户不能连接到postgresql。编辑文件 /var/lib/pgsql/93/data/postgresqlconf可以允许连接:
vi /var/lib/pgsql/93/data/postgresqlconf
找到下面的行:
[]
#listen_addresses = 'localhost’
[]
#port = 5432
[]
把两行都取消并设置为你的postgresql服务器IP地址或设置为“”监听所有客户端。如下所示:
listen_addresses = ''
port = 5432
重启以应用更改
在CentOS6x系统中:
/etc/initd/postgresql-93 restart
在CentOS7系统中:
systemctl restart postgresql-93
9使用phpPgAdmin管理PostgreSQL
phpPgAdmin是使用PHP编写的基于web的管理工具,用于管理PostgreSQL。它只适用与PostgreSQL RPM库。
1. 用以下命令查看系统是否安装了sendmail:
[root@mail /root]# rpm –qa |grep sendmail
sendmail-8110-8
2. 卸载sendmail:
[root@mail /root]# rpm -e sendmail –nodeps
3. 用以下命令杀死运行中的sendmail进程:
[root@mail /root]# killall sendmail
如果系统提示:
sendmail: no process killed
则说明当前系统中没有sendmail进程。
4. 安装postfix:
[root@mail /root]# rpm -ivh postfix-20010228release-2i386rpm
若已经安装,则此步可以省略。(注:安装时最好用rpm包,会自动创建postfix用户和postfix组)
5. 安装imap
rpm –ivh /mnt/cdrom/RedHat/RPMS/ imap-47c2-12rpm
imap使pop3有效,即打开110端口。(注:安装时最好用rpm包)
若已经安装,则此步可以省略。
6. 检查系统中是否安装了cyrus-sasl
执行以下命令查看系统中是否安装了cyrus-sasl:
rpm –qa |grep cyurs
如果您看到以下提示,则说明已经安装了cyrus-sasl
[root@test bye2000]# rpm -qa |grep sasl
cyrus-sasl-devel-1524-17
cyrus-sasl-1524-17
否则,请用rpm –ivh 命令先安装所需sasl-cyrus包。
7.修改postfix用户
同时应该让该用户不能登录到系统,也即不为该用户指定可执行的登录外壳程序和可用
的用户宿主目录。
编辑/etc/passwd文件中的相关条目如下所示:
postfix:x:89:89::/no/where:/no/shell [编辑后,只修改蓝色部分就可以了]
即:修改用户的Home directory和Shell 参照 /etc/passwd文件
8.编辑postfix的主要配置文件/etc/postfix/maincf,根据需求只需修改以下几个参数:
1)mydomain
指明你的域名,在这里我们指定:
mydomain = xxcom
2)myorigin
myorigin参数指明发件人所在的域名。如果你的用户的邮件地址为user@domaincom,则该参数指定@后面的域名。在这里我们指定:
myorigin = $mydomain
3)inet_interfaces
inet_interfaces = all 监听所有端口
4)mydestination
mydestination参数指定postfix接收邮件时收件人的域名,换句话说,也就是你的postfix
系统要接收什么样的邮件。通常与myorigin一样:
mydestination = $mydomain
5)mynetworks_style
设置网络类型,我们指定:
mynetworks_style = subnet
6)ynetworks
定义可以使用的此smtp服务器发信的客户ip地址,因为公司的ip范围已知,所以我们
指定:
mynetworks = 19216810/24
注:此项可根据情况而定,主要是指定ip范围,假如公司的ip划分是按照网段来的,例如:101010~101019,101030~101039等等更细。根据需要,该项可以不设置。
7)SMTP的配置
为了告诉postfix采用sasl来进行SMTP的用户认证,我们必须在/etc/postfix/maincf文件的最后添加以下几行:
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_sasl_authenticated
permit_auth_destination reject
broken_sasl_auth_clients = yes
smtpd_sasl_security_options = noanonymous
说明如下:
smtpd_sasl_auth_enable:告诉SMTP客户,该SMTP服务器需要进行用户认证。
smtpd_recipient_restrictions = permit_sasl_authenticated
permit_auth_destination reject
仅仅中继通过SMTP认证的客户端邮件,以及接收本postfix为最后一站的邮件。
broken_sasl_auth_clients = yes
有一些Microsoft 的SMTP客户端,比如Outlook Express 4X采用的是非标准的SMTP认证协议,将该选项设置为yes可以解决这类不兼容问题。
smtpd_sasl_security_options = noanonymous
控制本地SMTP认证所采用的机制,这里是允许任何非匿名认证方法。
9.配置SASL
进入/usr/lib/sasl/目录,用touch新建这样一个文件:
[root@test sasl]# touch smtpdconf
在该文件中加入以下内容:
[root@test sasl]# more smtpdconf
pwcheck_method:pam
也就是指定通过PAM来进行用户认证。
10.配置PAM
进入/etc/pamd/目录,用touch新建这样一个文件:
[root@test pamd]# touch smtp
在该文件中加入如下内容:
[root@test pamd]# more smtp
#%PAM-10
auth required /lib/security/pam_stackso service=system-auth
account required /lib/security/pam_stackso service=system-auth
也即和/etc/pamd/pop文件的内容是一致的。
11.修改/etc/shadow文件权限
因为PAM最终要去读取/etc/shadow文件的内容来进行用户认证,但是/etc/shadow文件
权限是设置为只有root用户可以读写,而我们的postfix是运行在postfix用户权限之下,所以我们要合理的设置/etc/shadow文件权限,以便让pam可以读取其内容。
执行以下命令,让root组也可以读取shadow:
[root@test /etc]# chmod 640 /etc/shadow
然后再将postfix用户加入root组,采用以下命令:
[root@test /etc]# usermod -G root postfix
12.编辑postfix的主要配置文件/etc/postfix/mastercf
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ==========================================================================
smtp inet n - n - - smtpd
这里开始
#smtps inet n - n - - smtpd
# -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
#submission inet n - n - - smtpd
# -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
这里结束
#628 inet n - n - - qmqpd
把我标的注释部分去掉即可。
13.配置pop3
RedHat70已经使用xinetd代替了以前的inetd,为了使pop3服务启动,我们编辑
/etc/xinetdd/ipop3文件,将其中的disable = yes改为disable = no 以便启动pop3
服务。
为了使改动生效,执行以下命令:
/etc/rcd/initd/xinetd reload
14.启动postfix
执行以下命令启动postfix:
/etc/rcd/initd/postfix start
这样,一个支持SMTP认证的postfix邮件服务器就配好了。
安装bind
yum install -y bind bind-chroot bind-utis
2
BIND配置文件保存在:
/etc/namedconf 主配置文件
/var/named/ 域zone文件位置
修改主配置文件
vim /etc/namedconf (如下图1)
修改完毕,保存退出
接着配置zone文件
修改zone配置文件vim /etc/namedrfc1912zones (如下图2)
3
zone配置文件简单说明:
常见的正解文件 RR 相关信息
[domain] IN [[RR type] [RR data]]
主机名 IN A IPv4 的 IP 地址
主机名 IN AAAA IPv6 的 IP 地址
领域名 IN NS 管理这个领域名的服务器主机名字
领域名 IN SOA 管理这个领域名的七个重要参数(如上说明)
领域名 IN MX 顺序数字 接收邮件的服务器主机名字
主机别名 IN CNAME 实际代表这个主机别名的主机名字
单位:W= 周、D= 日、H= 小时、M= 分钟。
$TTL 86400
@ IN SOA nshelomecom root ( # nstestweb 是DNS服务器的名称
0 ; serial (d adams) 仅作为序列号而已
1D ; refresh 服务器的更新时间
15M ; retry 重新更新时间间隔
1W ; expiry 多久之后宣布失败
1H ) ; minimum 相当于缓存记忆时间
@ IN NS nshelomecom
@ IN MX 5 mailhelomecom (5为优先级别)
ns IN A 19216832131
www IN A 19216832131
mail IN A 19216832131
4
配置正向解析(如下图一)
cd /var/named/
cp namedlocalhost helomecomzone
vim helomecomzone(一定要和主配置文件里面定义的zone文件名一致)
配置反向解析(如下图二)
cp namedlocalhost 32168192zone
vim helomecomzone
保存退出!
5
更改防火墙设置和selinux设置
getenforce
setenforce 0
iptables –F (如下图一所示)或者vim /etc/sysconfig/iptables #配置防火墙端口(如下图二所示)
-AINPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
-AINPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT
-AINPUT -m state --state NEW -m tcp -p tcp --dport 953 -j ACCEPT
service iptables restart #重启防火墙,使规则生效
6
启动bind
service named start
修改/etc/resolvconf文件
vim /etc/resolvconf
7
测试检测域信息是否正常
检查之前先看下 配置文件有没有读取权限 ll /var/named (如果没有 chmod +r /var/named/ 即可)
8
使用host或nslookup命令 检测域信息是否正常(如下图所示)
host mailhelomecom
nslookup mailhelomecom
到此DNS服务器的搭建就完毕了。
9
bind文件配置过程中容易出错
以下命令用以检查bind配置文件及zone文件语法
named-checkconf/etc/namedconf
named-checkzone helomecom /var/named/helomecomzone
1yum安装Git服务器
代码如下:
[root@git ~]# cd src/[root@git src]# wget http://dlfedoraprojectorg/pub/epel/5/x86_64/epel-release-5-4noarchrpm
[root@git src]# rpm -ivh epel-release-5-4noarchrpm
Preparing ########################################### [100%]
package epel-release-5-4noarch is already installed
[root@git ~]# yum list
[root@git ~]# yum install -y git
2创建一个git用户,用来运行git服务
代码如下:
[root@git ~]# adduser git3创建客户端登录证书
注,收集所有需要登录的用户的公钥,就是他们自己生成的id_rsapub文件,把所有公钥复制到/home/git/ssh/authorized_keys文件里,一行一个。嘿嘿!
1)客户端生成id_rsapub文件的命令
代码如下:
$ ssh-keygen -t rsa$ cat ssh/id_rsapub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NwUHeNNi+PC6KlrcJrXXDmKxRMmgHIPp79sgX6zqfdSlmNj7rBPQeyEKS9Wg8yI6jd8aG2jsUx99Vjti2VK2vEXKkRHxwID7ri69gE71RfDtv6ekafnzLo14J8hAp0spMk+N3wEAQRYDmcYo1wmnm/jMBedGrHj4NJQ1vYy1hVtJasGMSzjcMrlz9qvaluWnQ5tQjKFQVVwKsRRRzs8qTvzVhLJt4NQ+CAN45tqfsRuf58Uba9QNK7/6xSUiIKXQiILz8PMGJ3MnlV+eN3wx2aeztdevxu9plggtG05SMmd8GNVzXrN1IaxXSvz0UwjQ2kygu7aCqO8AZWH49rouw== leo@LEO-PC
注,一路回车即可,将生成的id_rsapub,复制给管理员,帮你在服务器上增加一下,下次你用git时就不需要输入用户名和密码了。
2)查看服务器上authorized_keys文件
代码如下:
[root@git ~]# cat /home/git/ssh/authorized_keysssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAwMU4FKB6NRc3XSoIunWsdvVVuSoncbVb5Al6lB3ciswBVd++YmJFhqwkITNGccrO5sycROs9+Fbjgd6oBSzNuaBtCIbwNNsEyM/henTl2euI3XsnJQ/ITr6c/q0P3WoGl4E2QFQ2kZqs+1eDC0CgHcBrqvFv1Jr414sVYK9lfZwIF+jDdtaBOrSJuq1Agx9pGUFUEB4tQfkXxsWm/MvOmKAVvduKDE1eenUEL9zzyeELPcSXLe3NOoTjZhkX6EEXxQR1ZiZRFywLpfM4qopZ10to2KIUyVtzw6hx6V3cg7kn40lYVW0EAMATw9dVldwcRUI+kJzJSKUTKDVSwY3/+Q== root@CHENMINGQIAN
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsmmJuR+KhRSpdSirCiL30RA8WbfgicY1z7itWVnKHJW6hTuJFhzruY59FilVjJR1hbQBluP9JnK3XPSK9PSg+bwiJ2iQRa39rXck35r+trVOLyNbPyfKVRfOemD8YuykMlyr5JeW8gZjsHEuLnJ8//RiCiYzd3RT/SSUQ4yawDoIIWkz3eUSL09xoCRZFBsAp+S/LD3vx2MN+FNOHwvqcE+yK3oRNIqjWwLoKE0e5TRnqNgrPQ95PJYB3XPUulzaeMwsWPZs7jIUMl/5yEqSgAkioa8SVMOsikYJG/erv99NNVgFmpCBIiWqKEGkNrIpYzLLHDSYQ4g5Gbci/RZ54Q== Administrator@WIN2003X323
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NwUHeNNi+PC6KlrcJrXXDmKxRMmgHIPp79sgX6zqfdSlmNj7rBPQeyEKS9Wg8yI6jd8aG2jsUx99Vjti2VK2vEXKkRHxwID7ri69gE71RfDtv6ekafnzLo14J8hAp0spMk+N3wEAQRYDmcYo1wmnm/jMBedGrHj4NJQ1vYy1hVtJasGMSzjcMrlz9qvaluWnQ5tQjKFQVVwKsRRRzs8qTvzVhLJt4NQ+CAN45tqfsRuf58Uba9QNK7/6xSUiIKXQiILz8PMGJ3MnlV+eN3wx2aeztdevxu9plggtG05SMmd8GNVzXrN1IaxXSvz0UwjQ2kygu7aCqO8AZWH49rouw== leo@LEO-PC
说明:我这里有三个用户登录服务器,所以我这里就有三个ssh-rsa,大家可以看一下。
4初始化Git仓库
注,先选定一个目录作为Git仓库,这里是/data/git/projectgit。
代码如下:
[root@git ~]# cd /data/git/[root@git git]# git init --bare projectgit
[root@git projectgit]# ls
branches config description HEAD hooks index info objects refs
执行以上命令 Git命令,会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以git结尾。然后,把owner改为git:
代码如下:
[root@git git]# chown -R gitgit projectgit[root@git git]# ls -l
总计 4
代码如下:
drwxr-xr-x 7 git git 4096 05-09 13:50 projectgit5禁用shell登录
注,出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:
代码如下:
[root@git ~]# cat /etc/passwd | grep gitgit:x:1001:1001:git version control:/home/git:/bin/bash
改为:
代码如下:
[root@git ~]# vim /etc/passwdgit:x:1001:1001:git version control:/home/git:/usr/bin/git-shell
这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。
6克隆远程仓库
注,现在可以通过git clone命令克隆远程仓库了,在各自的电脑上运行:
注,$ git clone git@gitjjhhcom:/data/git/projectgit,其中git用户名,gitjjhhcom服务器,/data/git/prgjectgit是仓库路径。好了,到这里服务器的搭建到这里就完成了,下面我们来安装一下客户端。
7创建SSH Key
首先在用户主目录下,看看有没有ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsapub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:
代码如下:
$ ssh-keygen -t rsa -C "youremail@examplecom"你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。
如果一切顺利的话,可以在用户主目录里找到ssh目录,里面有id_rsa和id_rsapub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsapub是公钥,可以放心地告诉任何人。
8Git服务器打开RSA认证
然后就可以去Git服务器上添加你的公钥用来验证你的信息了。在Git服务器上首先需要将/etc/ssh/sshd_config中将RSA认证打开,即:
1RSAAuthentication yes
2PubkeyAuthentication yes
3AuthorizedKeysFile ssh/authorized_keys
这里我们可以看到公钥存放在ssh/authorized_keys文件中。所以我们在/home/git下创建ssh目录,然后创建authorized_keys文件,并将刚生成的公钥导入进去。
然后再次clone的时候,或者是之后push的时候,就不需要再输入密码了:
代码如下:
Zhu@XXX/E/testgit/834$ git clone git@192168834:/data/git/learngitgit
Cloning into 'learngit'
warning: You appear to have cloned an empty repository
Checking connectivity done
搭建邮箱服务器首先要选择一款邮件服务器软件,比较常用的邮件服务器软件有:Winmail、Exchange、Mdaemon、Winwebmail、Imail、Coremail、U-Mail、TurboMail、iGENUS、Icewarp、易邮、金笛、MagicMail等。\x0d\然后根据邮箱的用户量来决定服务器的配置,用户量大的服务器硬件要求就要高,硬件要求就越高,例如1000用户的企业邮箱的配置:\x0d\DellPowerEdgeR710×2,16G内存,CPU一块,500GSAS硬盘6块\x0d\软件要求:\x0d\CentOS53以上版本Mysql51以上版本。\x0d\具体根据企业的不同情况进行配置,这需要多年的邮箱运营经验。\x0d\硬件需求:\x0d\500用户左右的,一个四核CPU,4G内存,硬盘看给用户分配多少空间了。如果用户数多,硬件配置也相应提升。\x0d\以exchange2007为例\x0d\处理器IntelPentium800MHz或更快的32位处理器\x0d\支持Intel64位扩展内存技术的基于x64体系结构的处理器\x0d\支持AMD64平台的AMD64位处理器\x0d\内存最小:2GB\x0d\推荐:每服务器2GB以及每个邮箱5MB\x0d\页面文件大小等于服务器内存容量加10MB\x0d\硬盘安装Exchange的处理器\x0d\驱动器至少有12GB可用空间\x0d\安装UM语言包,需要增加500MB空间\x0d\系统驱动器上至少有200MB可用空间\x0d\只要挂到互联网上就可以实现邮件互发。
你说的找不到目录里的文件内容/usr/lib/sasl2/smtpdconf,是因为你没有安装cyrus-sasl 。
有没有安装软件,你可以透过rpm -qa |grep sasl来查看。
如果你正常安装这个软件应该可以看到这个信息
cyrus-sasl-lib-2122-8
cyrus-sasl-plain-2122-8
cyrus-sasl-2122-8
cyrus-sasl-devel-2122-8
如没有,安装后,既可以找到你要的那个文件。
安装完postfix,可以使用mail指令来测试。
# mail test@yourdomaincom 给test这个邮箱寄邮件
Subject: hello 输入邮件主题
mail test! 邮件内容
邮件内容结束,输入“”
Cc: 转寄给XXX,可直接回车
然后,使用下面指令来查看mail
ls -l /var/spool/mail
0条评论