安装CentOS7上的PostgreSQL9.6、Java8和Nginx1.10
首先
在工作现场上问“怎样搭建生产环境?”的时候,经常会被告知“先搭建好生产环境”,对吧?
(提出问题的人往往自己要负责完成的原则)
为这样的人们,我整理了搭建步骤。
安装PostgreSQL
我想要安装最新版本,因此需要添加 PostgreSQL 的 yum 存储库。
sudo yum localinstall https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
使用sudo yum install postgresql96-server postgresql96-contrib postgresql96-devel进行安装。
安装软件包的说明
postgresql-server サーバ本体(postgresql、libsもインストールされる)
postgresql クライアント
postgresql-libs libpqなどのPostgreSQLのライブラリ群
postgresql-devel 開発用モジュール(役立つかもしれないので入れておく)
postgresql-contrib contribモジュール(役立つかもしれないので入れておく)
查看版本的命令
psql –version
创建数据库集群(类似于存储空间)
※ 在成为postgres用户(自动创建)之后执行
sudo su – postgres
/usr/pgsql-9.6/bin/initdb –no-locale –encoding=UTF8
如果不使用–no-locale,服务器的本地语言环境将被设置,所以请注意。
(当本地语言环境被设置后,排序顺序将发生变化)
如果想重新执行initdb,请删除“/var/lib/pgsql/9.6/data”中的所有内容,然后重新执行。
有很多种初始化initdb的方法,我不知道该怎么做才是正确的。
根据其他网站的说明,需要在root权限下执行上述命令,但是–no-locale选项无法正常传递。此外,根据PostgreSQL的文档,有以下描述:
https://www.postgresql.jp/document/9.4/html/app-initdb.html
initdb必须由服务器进程的所有者执行。这是因为服务器需要访问由initdb创建的文件和目录。不能以root身份运行服务器,因此不应该使用root来执行initdb(实际上,尝试执行将会被拒绝)。
如果有人知道该怎么做,请告诉我,虽然我通过成为postgres用户并直接执行initdb命令成功了,但不确定这是否是正确的做法。
自動启动确认(检查Loaded服务的部分是否为disabled或enabled)
systemctl 状态 postgresql-9.6
或者可以在服务列表中确认
启用(自动启动) 禁用(不自动启动) 静态(依赖其他服务)
systemctl list-unit-files -t service
自动启动设置
使用sudo systemctl enable postgresql-9.6
启动
sudo systemctl start postgresql-9.6
对于PostgreSQL进行验证
以超级用户(sudo -u postgres)的身份启动PostgreSQL客户端(psql)。
检查语言环境(如果设置为C,则表示没有语言环境)
从pg_settings表中选择name, setting, context字段,其中name字段类似于’lc%’。
创建一个名为“数据库名”的数据库。
数据库列表显示(编码为UTF8)
\l
结束
安装Java
以下是构建Java的构建服务器(Ant)的步骤,请参考。
安装Nginx
我想要安装最新版本,所以需要添加Nginx的yum资源库。
使用sudo yum命令安装http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm。
安装
使用sudo yum install nginx命令安装nginx
自動启动验证
systemctl状态nginx
自動開機設定
使用 sudo systemctl enable nginx
启动
sudo systemctl start nginx
如果在AWS的EC2实例上无法连接,请检查安全组。即使启用了SELinux,也可以连接。
安装tomcat
已完成构建流程的创建。
请参考以下内容。
在CentOS7上安装Tomcat8并进行自动启动设置。
最后
如果你让责任者去做,其他人可能就不会主动提出了。所以,将来要不要考虑规定除了责任者之外的人也可以做这件事呢?
总之,我打算以后不要再提出类似”我们要如何建立生产环境”的问题了。