怎样安装Resin

【介绍】

Resin是CAUCHO公司的产品,是一个非常流行的应用服务器,对servlet和JSP提供了良好的支持。Resin自身采用JAVA语言开发。

官网:http://www.caucho.com/
文档:http://www.caucho.com/resin-3.1/

【安装】

配置:https://blog.csdn.net/liuxuejin/article/details/6743124

参考:http://www.bkjia.com/Linuxjc/598479.html
参考:https://caucho.com/resin-4.0/admin/starting-resin-apache.xtp
参考:http://www.caucho.com/resin-3.1/doc/install-apache.xtp#Compilingmodcaucho.so
参考:https://www.br1x2.com/resin-doc/doc/install-apache.xtp
参考:http://www.bkjia.com/Linuxjc/1019759.html
参考:http://467754239.blog.51cto.com/4878013/1558435
参考:http://www.cto800.com/webserver/resin/63075757802137023042.html
参考:http://www.cto800.com/webserver/resin/20775651608207255070.html
参考:http://www.cto800.com/webserver/resin/50740391121755674575.html

下载:http://caucho.com/products/resin/download/gpl#download

wget http://caucho.com/download/resin-4.0.57.tar.gz && tar -xzvf resin-4.0.57.tar.gz && cd resin-4.0.57
./configure --prefix=/usr/local/resin --with-apxs=/usr/local/apache2/bin/apxs --with-apache=/usr/local/apache2/ --enable-ssl
make  
make install

报错: Can’t find JNI directory in JAVA_HOME=…

参考:https://stackoverflow.com/questions/24996017/jdk-1-8-on-linux-missing-jni-include-file
参考:http://bugs.caucho.com/bug_view_advanced_page.php?bug_id=4827
参考:http://bugs.caucho.com/view.php?id=5045
参考:http://m.xuehuile.com/blog/561eb49201484e3d943dd52f5ff24cf6.html
参考:http://bugs.caucho.com/bug_view_advanced_page.php?bug_id=4823

尝试上述指点后,无奈发现yum安装的绕不过去,索性remove之后,使用源码包安装,一次通过。

【配置】

参考:http://www.cnblogs.com/yangkai-cn/p/4016581.html

Apache httpd配置:

查看Apache是不是已经生成了mod_caucho.so模块:

cd /usr/local/apache2/modules && ls

查看apache的主配置文件是不是已经自动写入配置文件:/usr/local/apache2/conf/httpd.conf

#
# mod_caucho Resin Configuration
#

LoadModule caucho_module /usr/local/apache2/modules/mod_caucho.so

ResinConfigServer localhost 6800
CauchoConfigCacheDirectory /tmp
CauchoStatus yes

在下面添加:

SetHandler caucho-status
AddHandler caucho-request jsp
SetHandler caucho-request

Resin 配置:

参考:http://www.caucho.com/resin-4.0/admin/config.xtp
参考:http://www.caucho.com/resin-3.1/doc/resin-tags.xtp
参考:http://wiki3.caucho.com/Config_FAQ
参考:https://coderanch.com/t/92686/open-source/Sample-resin-conf-file
参考:http://www.caucho.com/resin-4.0/admin/config-resin-xml.xtp

参考:http://www.cnblogs.com/cocowool/archive/2010/03/09/1681639.html
参考:http://www.cnblogs.com/yangkai-cn/p/4016581.html
参考:https://blog.csdn.net/bobshute/article/details/4058298
参考:http://blog.sina.com.cn/s/blog_3f8687af010009nq.html
参考:https://blog.csdn.net/qyf_5445/article/details/8152042

Resin的配置文件位于 ./conf/ 下,默认的配置文件为 resin.conf。

5.配置resin的解析目录指向apache的DocumentRoot:

注释掉默认的解析目录

在下面添加一个新的host


manual



6.启动apache,启动resin.

访问的时候只要访问apache的端口就行了。希望对你学习Linux操作系统有所帮助。

配置笔记:Linux配置DNS服务器
讲解RedHat Linux 5显示中文的方法
教会你Redhat Enterprise Linux关闭SELinux
轻松完成Linux安装KDE软件包
阐述Redhat Linux配置远程桌面

常用命令:

启动 Resin:

/usr/local/resin/bin/resin.sh start

输出:

Resin/4.0.57 launching watchdog at 127.0.0.1:6600
Resin/4.0.57 started -server 'app-0' with watchdog at 127.0.0.1:6600

在浏览器中打开网站,页面显示:

404 Not Found
/index.php was not found on this server.

Resin/4.0.57 Server: 'app-0' 

证明Resin已成功配置,但是暂不支持PHp?

关闭 Resin:

/usr/local/resin/bin/resin.sh stop

输出:

Resin/4.0.57 stopped for watchdog at 127.0.0.1:6600

【添加Resin对PHP支持】

Resin是支持jsp和php系统部署的。

参考:http://www.caucho.com/resin-3.1/examples/servlet-hello/index.xtp

参考:https://blog.csdn.net/laixiaonian/article/details/7185848
参考:https://www.oschina.net/question/12_5648
参考:https://zhidao.baidu.com/question/264409188.html

怎样修改Linux服务器的主机名

【永久修改】

编辑:/etc/hosts

127.0.0.1     localhost localhost.localdomain Amon

编辑:/etc/hostname

Amon

然后重启:

reboot

【测试】

输入命令:

hostname

输出:

Amon

【报错】

报错:My unqualified host name (Amon) unknown; sleeping for retry

在为 fail2ban 安装 sendmail ,启动 fail2ban 后出现的报错。

参考:http://amon.org/fail2ban

因为:“Sendmail looks for a fully qualified domain (FQDN) name and will use the localhost.localdomain in the single line version.”

所以需要 /etc/hosts 规范写为:

127.0.0.1     localhost localhost.localdomain Amon

【参考】

参考:https://www.digitalocean.com/community/questions/how-do-i-change-hostname
参考:https://www.vultr.com/docs/how-to-change-your-hostname-on-centos
参考:http://www.cnblogs.com/kerrycode/p/3595724.html

怎样安装PostgreSQL

【介绍】

PostgreSQL是以加州大学伯克利分校计算机系开发的 POSTGRES,现在已经更名为PostgreSQL,版本 4.2为基础的对象关系型数据库管理系统(ORDBMS)。

官网:https://www.postgresql.org/
文档:https://www.postgresql.org/docs/
下载:https://www.postgresql.org/download/

最高版本:PostgreSQL 11

【安装】

从yum源安装指定9.6版本:http://amon.org/postgresql
从yum源安装指定11版本:http://amon.org/postgresql11
从源码编译安装指定版本:http://amon.org/postgresql-build
CentOS6上yum安装默认版本:http://amon.org/postgresql-centos6
CentOS7上yum安装默认版本:http://amon.org/postgresql-centos7

【管理】

参考:http://amon.org/phppgadmin

【应用】

DNRS(https://sourceforge.net/projects/dnrs/),要求只能是PostgreSQL 7.4。
下载:https://ftp.postgresql.org/pub/source/v7.4.30/postgresql-7.4.30.tar.gz

CoCCA(https://sourceforge.net/projects/coccaopenreg/),要求是PostgreSQL 8.1或更高。
下载:https://ftp.postgresql.org/pub/source/v8.1.23/postgresql-8.1.23.tar.gz

【yum安装指定版本】

安装 yum 源(地址从 http://yum.postgresql.org/repopackages.php 获取)

安装PostgreSQL11:

yum install https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-centos11-11-2.noarch.rpm

更新源信息:

yum update

查看安装包列表:

yum list | grep postgresql

安装PostgreSQL:最核心的是要安装postgresql11-server和postgresql11-contrib,其中”contrib”包里包含了一些常用的组件和方法

yum install postgresql11-server.x86_64 postgresql11-contrib.x86_64 postgresql11-devel.x86_64

卸载命令:

yum remove postgresql11-server.x86_64 postgresql11-contrib.x86_64 postgresql11-devel.x86_64
yum remove postgresql11-libs-11.0-beta2_1PGDG.rhel7.x86_64 postgresql11-11.0-beta2_1PGDG.rhel7.x86_64

安装PostgreSQL9.6:

yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm

更新源信息:

yum update

查看安装包列表:

yum list | grep postgresql

安装

yum install postgresql96-server.x86_64 postgresql96-contrib.x86_64 postgresql96-devel.x86_64 

主要路径:

参考:https://www.cnblogs.com/qiyebao/p/4562557.html
参考:http://www.cnblogs.com/amboyna/archive/2008/02/16/1070474.html

检查 PostgreSQL 是否已经安装:

rpm -qa | grep postgres

输出:

postgresql11-libs-11.0-beta2_1PGDG.rhel7.x86_64
postgresql11-devel-11.0-beta2_1PGDG.rhel7.x86_64
postgresql11-11.0-beta2_1PGDG.rhel7.x86_64
postgresql11-server-11.0-beta2_1PGDG.rhel7.x86_64
postgresql11-contrib-11.0-beta2_1PGDG.rhel7.x86_64

检查 PostgreSQL 安装位置:

rpm -qal | grep postgres

输出:

/usr/share/doc/postgresql96-9.6.10
/usr/share/doc/postgresql96-9.6.10/COPYRIGHT
/usr/share/doc/postgresql96-9.6.10/KNOWN_BUGS
/usr/share/doc/postgresql96-9.6.10/MISSING_FEATURES
/usr/share/doc/postgresql96-9.6.10/README.rpm-dist
/usr/share/doc/postgresql96-9.6.10/bug.template
/etc/pam.d/postgresql
/usr/lib/systemd/system/postgresql-9.6.service
/usr/lib/tmpfiles.d/postgresql-9.6.conf
/usr/pgsql-9.6/bin/postgres
/usr/pgsql-9.6/bin/postgresql96-check-db-dir
/usr/pgsql-9.6/bin/postgresql96-setup
/usr/pgsql-9.6/share/locale/de/LC_MESSAGES/postgres-9.6.mo
/usr/pgsql-9.6/share/locale/es/LC_MESSAGES/postgres-9.6.mo
/usr/pgsql-9.6/share/locale/fr/LC_MESSAGES/postgres-9.6.mo
/usr/pgsql-9.6/share/locale/id/LC_MESSAGES/postgres-9.6.mo
/usr/pgsql-9.6/share/locale/it/LC_MESSAGES/postgres-9.6.mo
/usr/pgsql-9.6/share/locale/ja/LC_MESSAGES/postgres-9.6.mo
/usr/pgsql-9.6/share/locale/ko/LC_MESSAGES/postgres-9.6.mo
/usr/pgsql-9.6/share/locale/pl/LC_MESSAGES/postgres-9.6.mo
/usr/pgsql-9.6/share/locale/pt_BR/LC_MESSAGES/postgres-9.6.mo
/usr/pgsql-9.6/share/locale/ru/LC_MESSAGES/postgres-9.6.mo
/usr/pgsql-9.6/share/locale/sv/LC_MESSAGES/postgres-9.6.mo
/usr/pgsql-9.6/share/locale/tr/LC_MESSAGES/postgres-9.6.mo
/usr/pgsql-9.6/share/locale/zh_CN/LC_MESSAGES/postgres-9.6.mo
/usr/pgsql-9.6/share/man/man1/postgres.1
/usr/pgsql-9.6/share/postgres.bki
/usr/pgsql-9.6/share/postgres.description
/usr/pgsql-9.6/share/postgres.shdescription
/usr/pgsql-9.6/share/postgresql.conf.sample
/var/run/postgresql
/usr/lib64/security/pam_postgresok.so
/usr/share/doc/pam-1.1.8/txts/README.pam_postgresok
/usr/share/man/man8/pam_postgresok.8.gz
/usr/share/augeas/lenses/dist/postgresql.aug
/usr/pgsql-9.6/include/internal/postgres_fe.h
/usr/pgsql-9.6/include/postgres_ext.h
/usr/pgsql-9.6/include/server/postgres.h
/usr/pgsql-9.6/include/server/postgres_ext.h
/usr/pgsql-9.6/include/server/postgres_fe.h
/usr/lib/firewalld/services/postgresql.xml
/usr/pgsql-9.6/share/postgresql-9.6-libs.conf
/usr/pgsql-9.6/lib/postgres_fdw.so
/usr/pgsql-9.6/share/extension/postgres_fdw--1.0.sql
/usr/pgsql-9.6/share/extension/postgres_fdw.control

搜索配置文件路径:

find / -name pg_config

输出:

/usr/pgsql-9.6/bin/pg_config

库文件路径:/usr/pgsql-9.6/lib/
头文件路径:/usr/pgsql-9.6/include/
配置文件路径:/usr/pgsql-9.6/bin/pg_config
可执行文件路径:/usr/pgsql-9.6/bin
数据和配置文件:/var/lib/pgsql/9.6/data

初始化数据库:

/usr/pgsql-9.6/bin/postgresql96-setup initdb

输出:

Initializing database ... OK

设置认证模式:

参考:https://www.postgresql.org/message-id/1220878786.2711.24.camel@laptop.gunduz.org

编辑 /var/lib/pgsql/9.6/data/pg_hba.conf 第81行:

# IPv4 local connections:
host    all             all             127.0.0.1/32            password

管理服务,和其他服务一样还是用systemd进行管理:

自动启动:systemctl enable postgresql-9.6

启动服务:systemctl start postgresql-9.6

重启服务:systemctl restart postgresql-9.6

停止服务:systemctl stop postgresql-9.6

使用postgres用户在PostgreSQL控制台生成其他用户和新数据库:

新建一个Linux新用户 dbuser :

sudo adduser dbuser

修改默认用户postgres的密码:

切换到postgres用户:

sudo su - postgres

返回:

-bash-4.2$

使用psql命令登录PostgreSQL控制台,输入命令:

psql

返回:

psql (9.6.10)
Type "help" for help.

postgres=#

这时相当于系统用户postgres以同名数据库用户的身份,登录数据库,这是不用输入密码的。如果一切正常,系统提示符会变为”postgres=#”,表示这时已经进入了数据库控制台。以下的命令都在控制台内完成。

在数据库控制台输入命令:

\password postgres

输入密码,以及重复输入密码:4zAGbSxBOXV9Rnxy

创建数据库用户dbuser(刚才创建的是Linux系统用户),并设置密码:

CREATE USER dbuser WITH PASSWORD 'M4MLnFKYsNhpwfmv';

返回:CREATE ROLE

创建用户数据库,这里为exampledb,并指定所有者为dbuser:

CREATE DATABASE exampledb OWNER dbuser;

返回:CREATE DATABASE

将exampledb数据库的所有权限都赋予dbuser,否则dbuser只能登录控制台,没有任何数据库操作权限:

GRANT ALL PRIVILEGES ON DATABASE exampledb to dbuser;

返回:GRANT

重新启动postgresql的服务:

Ctrl+D 2次,退出数据库控制台。

重启postgresql:

systemctl restart postgresql-9.6

用户 postgres 登录测试:

psql -h 127.0.0.1 -p 5432 -U postgres

返回:

Password for user postgres:

输入密码:4zAGbSxBOXV9Rnxy

返回:

psql (9.6.10)
Type "help" for help.

postgres=#

用户 dbuser 登录数据库 exampledb :

psql -U dbuser -d exampledb -h 127.0.0.1 -p 5432

返回:

Password for user dbuser:

输入密码:M4MLnFKYsNhpwfmv

返回:

psql (9.6.10)
Type "help" for help.

exampledb=>

怎样安装phpPgAdmin

【介绍】

phpPgAdmin 是使用PHP开发的管理PostgreSQL的工具。

实证:https://github.com/ReimuHakurei/phppgadmin

实证成功:PHP7.2 + PostgreSQL 9.6 + phpPgAdmin 10.0 (Tomicapo版)

对照:https://github.com/Tomicapo/phppgadmin
对照:https://github.com/phppgadmin/phppgadmin
弃用:http://phppgadmin.sourceforge.net/doku.php

参考:https://www.jb51.net/article/47535.htm
参考:https://blog.csdn.net/wangyezi19930928/article/details/20358369

【安装】

wget https://github.com/ReimuHakurei/phppgadmin/archive/master.zip && unzip master.zip && mv phppgadmin-master psql

【配置】

把 conf/config.inc.php-dist 复制为 conf/config.inc.php

编辑 config.inc.php :

...
	$conf['servers'][0]['host'] = 'localhost';
...
	$conf['extra_login_security'] = false;
...

在浏览器打开phpPgAdmin。

报错:您的 PHP 中没有完整的数据库支持

参考:http://bbs.chinaunix.net/thread-538067-1-1.html

因为编译PHP时没有添加 PostgreSQL 支持,需要重新编译PHP。

参考:https://blog.csdn.net/u011138447/article/details/51224394

参考:http://amon.org/php72

./configure 中添加 PostgreSQL 的安装路径:

yum指定9.6版本安装:–with-pgsql=/usr/pgsql-9.6/ –with-pdo-pgsql=/usr/pgsql-9.6/
yum指定11版本安装:–with-pgsql=/usr/pgsql-11/ –with-pdo-pgsql=/usr/pgsql-11/
yum默认版本安装:–with-pgsql=/usr/lib/pgsql –with-pdo-pgsql=/usr/lib/pgsql

如果不指定,如果configure时报错:

configure: error: Cannot find libpq-fe.h.
wget http://php.net/distributions/php-7.2.8.tar.xz && tar -xvf php-7.2.8.tar.xz && cd php-7.2.8
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-fpm-user=apache --with-fpm-group=apache --disable-debug --with-curl --with-iconv --with-pcre-regex --with-zlib --enable-bcmath --enable-ftp --enable-sockets --enable-mbstring --enable-mbregex --enable-soap --with-xsl --with-openssl --enable-opcache=no --with-mysqli --with-mysql-sock --with-pdo-mysql --enable-mysqlnd --disable-fileinfo --with-gd=/usr/local/gd --enable-gd-jis-conv --with-jpeg-dir=/usr/local/jpeg/lib --with-png-dir=/usr/local/png --with-freetype-dir=/usr/local/freetype --with-libzip=/usr/local/lib64 --enable-zip --with-iconv-dir=/usr/local/lib --with-readline --with-apxs2=/usr/local/apache2/bin/apxs LDFLAGS="-L/usr/lib -lz"
make ZEND_EXTRA_LIBS='-liconv'
make install

重新安装完PHP后重启httpd服务器,即可通过浏览器打开 phpPgAdmin ,报错消失。

报错:Login disallowed for security reasons.

参考:http://blog.sina.com.cn/s/blog_4cf7752c0100t5ms.html

编辑:conf/config.inc.php 105行:

	$conf['extra_login_security'] = false;

问题解决。

报错:Warning: pg_connect(): Unable to connect to PostgreSQL server: FATAL: Ident authentication failed for user “postgres”

编辑:conf/config.inc.php 105行:

# IPv6 local connections:
host    all             all             ::1/128                 trust

问题解决。

报错:Notice: Undefined index

参考:https://sourceforge.net/p/phppgadmin/discussion/115884/thread/bba30f38/

这是因为PHP版本过高导致的问题。

编辑:conf/config.inc.php 添加:

error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED);

问题隐藏。

报错:Error Loading all_db.php

参考:https://sourceforge.net/p/phppgadmin/mailman/message/8387927/
参考:https://sourceforge.net/p/phppgadmin/mailman/message/8388313/

这个问题当 PHP5 + PostgreSQL 9.6 时不再出现。

报错:Deprecated: The each() function is deprecated. /psql/libraries/adodb/adodb-error.inc.php on line 106

参考:https://stackoverflow.com/questions/49536453/the-each-function-is-deprecated-cant-figure-out-how-to-change-to-foreach

这是因为 PHP7 不再支持 each() 所导致。使用 Tomicapo 的升级版即可。

报错:Version of PostgreSQL not supported. Please upgrade to version or later.

参考:https://stackoverflow.com/questions/46794672/installing-phppgadmin-5-1-on-ubuntu-16-04-with-postgresql-10-not-supported

官方已经很久没维护了,只支持到 PostgreSQL 9.2,可能支持 PostgreSQL 9.6 。

编辑 classes/database/Connection.php

		switch (substr($version,0,3)) {
			case '10.': return 'Postgres10'; break;
			case '9.6': return 'Postgres96'; break;
			case '9.5': return 'Postgres95'; break;
			case '9.4': return 'Postgres94'; break;
		}

并把 Postgres10.php 复制为 Postgres11.php ,并适应性编辑内容。

然鹅依然实证未遂。

怎样安装PostgreSQL(CentOS7)

【环境】

CentOS版本:

输入命令:

cat /etc/redhat-release 

输出:

CentOS Linux release 7.5.1804 (Core)

输入命令:

uname -a

输出:

Linux vultr.guest 4.17.13-1.el7.elrepo.x86_64 #1 SMP Mon Aug 6 14:16:00 EDT 2018 x86_64 x86_64 x86_64 GNU/Linux

【安装(yum)】

yum安装:

yum install postgresql-server

默认安装:postgresql-server-9.2.23

初始化数据库:

postgresql-setup initdb

输出:

Initializing database ... OK

设置自动启动:

systemctl enable postgresql.service
/bin/systemctl start postgresql.service

设置认证模式:

参考:https://www.postgresql.org/message-id/1220878786.2711.24.camel@laptop.gunduz.org

编辑 /var/lib/pgsql/data/pg_hba.conf ,

# IPv4 local connections:
host    all             all             127.0.0.1/32            password

使用postgres用户在PostgreSQL控制台生成其他用户和新数据库:

新建一个Linux新用户 dbuser :

sudo adduser dbuser

修改默认用户postgres的密码:

切换到postgres用户:

sudo su - postgres

返回:

-bash-4.2$

使用psql命令登录PostgreSQL控制台,输入命令:

psql

返回:

psql (9.2.23)
Type "help" for help.

postgres=#

这时相当于系统用户postgres以同名数据库用户的身份,登录数据库,这是不用输入密码的。如果一切正常,系统提示符会变为”postgres=#”,表示这时已经进入了数据库控制台。以下的命令都在控制台内完成。

在数据库控制台输入命令:

\password postgres

输入密码,以及重复输入密码: 4zAGbSxBOXV9Rnxy

创建数据库用户dbuser(刚才创建的是Linux系统用户),并设置密码:

CREATE USER dbuser WITH PASSWORD 'M4MLnFKYsNhpwfmv';

返回:CREATE ROLE

创建用户数据库,这里为exampledb,并指定所有者为dbuser:

CREATE DATABASE exampledb OWNER dbuser;

返回:CREATE DATABASE

将exampledb数据库的所有权限都赋予dbuser,否则dbuser只能登录控制台,没有任何数据库操作权限:

GRANT ALL PRIVILEGES ON DATABASE exampledb to dbuser;

返回:GRANT

重新启动postgresql的服务:

Ctrl+D 2次,退出数据库控制台。

重启postgresql:

/bin/systemctl restart postgresql.service

用户 postgres 登录测试:

psql -h 127.0.0.1 -p 5432 -U postgres

返回:

Password for user postgres:

输入密码:4zAGbSxBOXV9Rnxy

返回:

psql (9.2.23)
Type "help" for help.

postgres=#

用户 dbuser 登录数据库 exampledb :

psql -U dbuser -d exampledb -h 127.0.0.1 -p 5432

返回:

Password for user dbuser:

输入密码:M4MLnFKYsNhpwfmv

返回:

psql (9.2.23)
Type "help" for help.

exampledb=>