noHup - server
type: channel
link: http://www.nohup.cc/tag/server/
items: 配置Apache2服务器以CGI方式运行Perl程序
items: MySQL相关问题

配置Apache2服务器以CGI方式运行Perl程序
type: item
date: 2016-07-28T04:34:00+00:00
description: Overview1. Apache2基本配置2. 配置Apache2支持Perl CGI程序2.1 创建一个Perl网站2.2 配置Apache服务器3. 可能遇到的一些错误3.1 500 Internal Server Error3.2 503 Service Unavailable3.3 404 Not Found3.4 403 Forbidden4. 小结参考文章 Overview 这次我们开发Bastion4服务器使用了JAVA+Perl的架构，后端用Perl做服务器提供Webservice，用JAVA框架Struts接收处理用户请求，再跟Perl服务器交互。 我们使用Apache2作为Perl服务器，由于Apache2默认并不支持Perl，因此需要简单配置一下，使得Apache2以CGI的方式支持Perl运行。在配置的过程中，参考了一些网页，但由于各个网页都没有完整地描述配置过程（至少在我们的服务器上是这样），所以这里记录一下我们配置的全过程。 1. Apache2基本配置 我们为Bastion4申请了一个新的云服务器，版本为NeCTAR Ubuntu 16.04 LTS x86_64，自带了Apache2服务器，下面简单列出了Apache2的一些基本信息： /etc/apache2/ Apache2的配置文件目录 /var/www/ Apache2的网站存放目录 /var/log/apache2/ Apache2的日志存放目录 /etc/apache2/apache2.conf Apache2的配置主文件，以前的Apache版本中，主配置文件名字叫httpd.conf，所以很多网页中还用到这个名字，不知道的话会造成很多混淆。尽管apache2.conf是主配置文件，但是多数具体的配置信息并不是写在这个文件中的，/etc/apache2目录中有还有几个文件夹分别记录了几个模块的配置信息，apache2.conf负责把他们导入整合在一起。 /etc/apache2/sites-enabled/ 看名字就可以明白，Apache2的网站配置文件一般都是放在这个目录中的，这个目录下的000-default.conf是我们经常要修改的配置文件。 我们假定Apache存放网站的根目录是/var/www/，如果不确定(因为默认好像是/var/www/html这个目录)，打开/etc/apache2/apache2.conf目录，查看下面的配置： Options Indexes FollowSymLinks AllowOverride None Require all granted 如果在你的配置里是 修改成 这样，当你把一个名叫Mywebsite的网站(通常是一个文件夹)，扔到/var/www中时，你就可以以http://localhost/Mywebsite/访问到这个网站了。 如果你的配置是 ，那你需要把你的网站扔到/var/www/html中，才能使用http://localhost/Mywebsite/访问，这是因为 设置了Apache的根目录，当你使用http://****/Mywebsite访问时，Apache会去当前的根目录/Mywebsite找这个网站。 由于Apache的端口号默认是80，而不加端口号的url访问都会被服务器默认定向到80端口，因此这里不需要添加端口号，如果你手动将Apache端口号修改成了别的端口号（比如8888），那你需要使用http://localhost:8888/Mywebsite/访问这个网站。 2. 配置Apache2支持Perl CGI程序 2.1 创建一个Perl网站 在/var/www下创建网站的目录，我们创建一个名字叫cgi-bin的网站作为例子： mkdir /var/www/cgi-bin 需要使用管理员权限的命令，请自己加上sudo。 在/var/www/cgi-bin中创建一个cgi_test.pl脚本，输入下面的内容： #!/usr/bin/perl -w use warnings; use CGI qw(:standard); #! must use 'my' to define a variable print header; my $now_string = localtime(); print "Hello, CGI using Perl! It's $now_string NOW! "; 为cgi_test.pl添加可执行权限： chmod +x /var/www/cgi-bin/cgi_test.pl 在命令行运行cgi_test.pl： /var/cgi-bin/www/cgi_test.pl 会得到下面的结果： Content-Type: text…

MySQL相关问题
type: item
date: 2015-12-06T11:34:00+00:00
description: Overview1. MySQL安装2.MySQL命令3. MySQL通用配置3.1 MySQL会话时间4. 远程MySQL配置4.1 激活MySQL的网络设置4.2 授权4.3 配置防火墙5. 参考内容 Overview 今天跟Young在做secretepdb这个项目时，需要使用Hibernate连接数据库，为了方便一起开发，就直接连接了我们在阿里云服务器上的MySQL，遇到了一些问题，有些是本地数据库和远程数据库的共性问题，有些则是连接远程数据库才会遇到的问题，在这里记录，以便共享和以后查阅。 1. MySQL安装 在Ubuntu上，使用如下命令安装： sudo apt-get install mysql-server 安装过程中会要求配置MySQLroot用户的密码，要牢记这个密码，不然会很麻烦。 安装之后的目录在:/etc/mysql，其中，my.cnf就是MySQL的配置文件，我们对MySQL所有的配置几乎都是在这里完成的。 2.MySQL命令 因为在不同版本的服务器，甚至使用不同方式安装的MySQL，启动，关闭MySQL等命令都有所不同，所以我们在这里记录一下在我们的服务器(Ubutun 14.04)上适用的这些命令，方便我们使用。 Ubuntu上mysql配置文件位置：/etc/mysql/my.cnf mysql关闭命令：/etc/init.d/mysql stop mysql启动命令：/etc/init.d/mysql start mysql重启命令：/etc/init.d/mysql restart 3. MySQL通用配置 3.1 MySQL会话时间 无论是连接本地MySQL还是远程服务器上的MySQL，通常来说设置一组比较长的会话时间总是好的，在/etc/mysql/my.cnf中添加如下三句代码： wait_timeout=31536000 interactive_timeout=31536000 connect_timeout=31536000 4. 远程MySQL配置 如果你想让你的网站连接一个远程服务器上的MySQL，而不是网站所在的服务器上的服务器，那么你需要配置远程服务器上的MySQL，才能像访问本机MySQL一样访问远程MySQL。 我们远程MySQL以及服务器配置如下： 服务器地址：120.24.231.154 MySQL端口号：3306 4.1 激活MySQL的网络设置 默认情况下，为了安全起见，MySQL的配置是只支持本机访问的，因此我们需要修改/etc/mysql/my.cnf中的配置，如果/etc/mysql/my.cnf中有 skip-networking 这句代码，将它注释掉： #skip-networking 高版本的MYSQL中默认已经没有了这项配置。 将 bind-address = 127.0.0.1 改为： bind-address = 120.24.231.154 这里的120.24.231.154就是远程MySQL所在的服务器的IP地址。 但是这样的问题就是，当你需要本地连接数据库时，还要再改回来，很不方便，所以可以直接将这一句注释掉，这样就允许所有的IP地址远程连接了，唯一的问题在于没那么安全。 保存并关闭配置文件，并重启mysql服务器: /etc/init.d/mysql restart 4.2 授权 在修改配置允许了MySQL接受远程访问之后，还需要授权，使MySQL允许某一个IP地址或者所有的IP地址的远程连接。 登录到远程MySQL所在的服务器，使用root账号打开MySQL: mysql -u root -h localhost -p 这里输入密码之后就可以登录到MySQL。 进入MySQL数据库: use mysql; 使用下面语句： update user set host='%' where user='root' and host='localhost'; 将host设置为%表示任何ip都能连接mysql，当然也可以将host指定为某个ip。 刷新权限表，使配置生效： flush privileges; 如果想取消授权，关闭远程连接，恢复mysql的默认设置（只能本地连接），可以通过以下步骤操作： use mysql #打开mysql数据库 #将host设置为localhost表示只能本地连接mysql update user set host='localhost' where user='root'; flush privileges; #刷新权限表，使配置生效 其中#后面的为注释，操作MySQL时，记得去掉，只复制#前面的命令就可以。 4.3 配置防火墙 一般来说，经过上面的配置，已经可以远程连接服务器上的MySQL了，因为安装My…