1.Ctrl+F3で手動で消す。
2.シートタブ→コード表示
カット&ペースト
実行
ツール→マクロ→マクロ→削除
■スタイルの一括削除マクロ
Sub delstyle()
Dim s
On Error Resume Next
For Each s In ActiveWorkbook.Styles
If Not s.BuiltIn Then
s.Delete
End If
Next
End Sub
■名前の一括削除マクロ
Sub delname()
Dim s
On Error Resume Next
For Each s In ActiveWorkbook.Names
If Not s.BuiltIn Then
s.Delete
End If
Next
End Sub
2013年12月18日水曜日
2013年11月22日金曜日
opensslで遊んでみた!!
# SECLEVELを確認する。
openssl ciphers -s -v ALL:@SECLEVEL=2
# cp -p /etc/ssl/openssl.cnf /tmp/openssl_test.cnf
# vi /tmp/openssl_test.cnf
[ default_conf ]
ssl_conf = ssl_sect
[ssl_sect]
system_default = system_default_sect
[system_default_sect]
MinProtocol = TLSv1.2
CipherString = DEFAULT:@SECLEVEL=1
# 秘密キーをつくる。
openssl genrsa 256 > private-key.pem
cat private-key.pem
openssl rsa -text < private-key.pem
# 公開キーをつくる。
openssl rsa -pubout < private-key.pem > public-key.pem
openssl rsa -text -pubin < public-key.pem
# 公開キーで暗号化してみる。
echo "Hello" | openssl rsautl -encrypt -pubin -inkey public-key.pem > message
base64 message
openssl genrsa 256 > private-key.pem
cat private-key.pem
openssl rsa -text < private-key.pem
# 公開キーをつくる。
openssl rsa -pubout < private-key.pem > public-key.pem
openssl rsa -text -pubin < public-key.pem
# 公開キーで暗号化してみる。
echo "Hello" | openssl rsautl -encrypt -pubin -inkey public-key.pem > message
base64 message
# 秘密キーで複合してみる。
cat message | openssl rsautl -decrypt -inkey private-key.pem
cat message | openssl rsautl -decrypt -inkey private-key.pem
#サーバ証明書を作ってみる。
openssl genrsa 2048 > server.key
openssl req -new -key server.key > server.csr
openssl x509 -days 3650 -req -signkey server.key < server.csr > server.crt
#sha256で署名の場合は、(SHA-2)
openssl genrsa 2048 > server.key
openssl req -new -sha256 -key server.key -out server.csr
openssl x509 -days 3650 -req -signkey server.key < server.csr > server.crt
#csrファイルの確認
openssl req -text < server.csr
#証明書を確認
openssl x509 -text < server.crt
# apacheにセット。
openssl genrsa 2048 > server.key
openssl req -new -key server.key > server.csr
openssl x509 -days 3650 -req -signkey server.key < server.csr > server.crt
#sha256で署名の場合は、(SHA-2)
openssl genrsa 2048 > server.key
openssl req -new -sha256 -key server.key -out server.csr
openssl x509 -days 3650 -req -signkey server.key < server.csr > server.crt
#csrファイルの確認
openssl req -text < server.csr
#証明書を確認
openssl x509 -text < server.crt
# apacheにセット。
vi ssl.conf
SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key
SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key
2013年10月24日木曜日
JDBC認証作り直してみた。
【DB構築】
create database auth;
use auth;
##---------------------------------auth.sql---------------------------------
drop table if exists auth_users;
create table auth_users (
user_name varchar(64),
user_pass varchar(16),
PRIMARY KEY (user_name)
);
insert into auth_users values ('casio', '$$casio');
drop table if exists user_roles;
create table user_roles (
user_name varchar(64),
role_name varchar(16),
PRIMARY KEY (user_name)
);
INSERT INTO user_roles VALUES ('casio', 'member');
##---------------------------------auth.sql---------------------------------
show databases;
use auth;
show tables;
select * from auth_users;
select * from user_roles;
SOURCE auth.sql;
プロジェクト作成
ファイル→新規→動的Webプロジェクト
プロジェクト名: xxxxxxxxx
ターゲット・ランタイム: apache-tomcat-7.0.42
動的Webモジュールバージョン: 3.0
web.xmlデプロイメント記述子の生成(G)にチェック
以下をWebContent下に配置。
【index.html】
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>index.html</title>
<meta http-equiv="refresh" content="3; URL=http://localhost:8080/JDBCAuth/security-webapps/menu.jsp">
</head>
<body>
<p>このページは、3秒後にログインページに移動します。</p>
<br>
<p><a href="security-webapps/menu.jsp">業務メニューにジャンプします。</a></p>
</body>
</html>
【login/login.jsp】
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>login page</title>
</head>
<body>
<h1 align="center">端末管理支援システム</h1>
<h1 align="center">ログイン</h1>
<br>
<div align="center">
<form method="post" action='<%= response.encodeURL("j_security_check")%>'>
<table>
<tr>
<td>メールアドレス</td>
<td> <input type="text" name="j_username"></td>
</tr>
<tr>
<td>パスワード</td>
<td><input type="password" name="j_password"></td>
</tr>
<tr>
<td></td>
<td>
<input type="submit" value="Login" name="submit">
<input type="reset" value="Reset" name="reset">
</td>
</tr>
</table>
</form>
<br> <br> <br>
<%
String str_status = request.getParameter("status");
if( str_status != null && str_status.equals("error")){
out.println("ID/Passswordが誤っています。");
}
%>
<br> <br> <br>
<p><a href="../regist/regist.html">新規登録はこちら。</a></p>
</div>
</body>
</html>
【login/logout.jsp】
<%@ page session="true" language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
[<%=request.getRemoteUser()%>] さんはログアウトしました。
<% session.invalidate(); %>
<br><br>
<a href="../security-webapps/menu.jsp">ログイン画面に戻る</a>
<%@ page language="java" contentType="text/html; charset=UTF-8" import="java.sql.*" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>データベース登録</title>
</head>
<body>
<%
String str_mailaddress = request.getParameter("auth_mailaddress");
String str_password = request.getParameter("auth_password");
out.println("メールアドレスは" + str_mailaddress + "ですね" + "<br>");
out.println("パスワードは" + str_password + "ですね" + "<br>");
%>
<%
Connection cn = null;
Statement st = null;
ResultSet rs = null;
String sql =null;
int num =0;
try {
Class.forName("com.mysql.jdbc.Driver");
cn=DriverManager.getConnection("jdbc:mysql://localhost/auth?" +
"user=takahab&password=no3177&useUnicode=true&characterEncoding=UTF-8");
st=cn.createStatement();
sql = "select user_name from auth_users where user_name = \'" + str_mailaddress + "\'";
out.println( sql );
rs = st.executeQuery(sql);
} catch (Exception e ) {
out.print("<p>JDBC executeQuery エラー<br>" + e.toString() + "</p>");
}
if( rs.next() ) {
out.println( "<p>メールアドレスは、既に登録されています。 </p>");
} else {
【WEBーINF/web.xml】
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>JDBCAuth</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<security-constraint>
<web-resource-collection>
<web-resource-name>Authentication of FormAuth</web-resource-name>
<url-pattern>/security-webapps/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
<role-name>manager</role-name>
<role-name>member</role-name>
<role-name>entry</role-name>
<role-name>stop</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/login/login.jsp</form-login-page>
<form-error-page>/login/login.jsp?status=error</form-error-page>
</form-login-config>
</login-config>
<security-role>
<role-name>admin</role-name>
</security-role>
<security-role>
<role-name>manager</role-name>
</security-role>
<security-role>
<role-name>member</role-name>
</security-role>
<security-role>
<role-name>entry</role-name>
</security-role>
<security-role>
<role-name>stop</role-name>
</security-role>
<session-config>
<session-timeout>1</session-timeout>
</session-config>
<error-page>
<error-code>403</error-code>
<location>/error/403.html</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/error/404.html</location>
</error-page>
<error-page>
<error-code>408</error-code>
<location>/error/408.html</location>
</error-page>
</web-app>
Tomcatのserver.xmlにJDBC認証のDBを設定。
/usr/local/tomcat/conf/server.xml
【servers/-/server.xml】
<!-- by takahab
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
by takahab -->
<!-- by takahab -->
<Realm className="org.apache.catalina.realm.JDBCRealm"
connectionName="takahab"
connectionPassword="no3177"
connectionURL="jdbc:mysql://localhost/auth"
driverName="com.mysql.jdbc.Driver"
roleNameCol="role_name"
userCredCol="user_pass"
userNameCol="user_name"
userRoleTable="user_roles"
userTable="auth_users"/>
</Realm>
<!-- by takahab -->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登録項目入力フォーム</title>
</head>
<body>
<form method="POST" action="regist.jsp">
<p><label>メールアドレス:
<input type="text" name="auth_mailaddress" value="" tabindex="0" accesskey="a">
</label> </p>
<p><label> お名前:
<input type="text" name="auth_name" value="" tabindex="1" accesskey="b">
</label></p>
<p>性別:
<input type="radio" name="auth_sex" value="man" tabindex="2" accesskey="c">男性
<input type="radio" name="auth_sex" value="woman" tabindex="3" accesskey="d">女性<br>
職業:
<input type="checkbox" name="auth_job" value="Student" tabindex="4" accesskey="e">学生
<input type="checkbox" name="auth_job" value="worker" tabindex="5" accesskey="f">会社員
<input type="checkbox" name="auth_job" value="official" tabindex="6" accesskey="g">公務員
<input type="checkbox" name="auth_job" value="etc" tabindex="7" accesskey="h">その他
</p>
<p>年代:<select name="auth_age" tabindex="8">
<option value="10ages">10代</option><option value="20ages">20代</option>
<option value="30ages">30代</option><option value="40ages">40代</option>
<option value="50ages">50代</option><option value="60ages">60代</option>
<option value="age" selected>お選びください</option>
</select></p>
<p><label>お問合せ<br>
<textarea name="auth_title" rows="5" cols="60" tabindex="9" accesskey="i">
</textarea>
</label></p>
<p>
<input type="submit" value="登録" tabindex="10" accesskey="s">
<input type="reset" value="取消" tabindex="11" accesskey="r">
</p>
</form>
</body>
</html>
create table user_roles (
user_name varchar(64),
role_name varchar(16),
PRIMARY KEY (user_name)
);
INSERT INTO user_roles VALUES ('casio', 'member');
##---------------------------------auth.sql---------------------------------
show databases;
use auth;
show tables;
select * from auth_users;
select * from user_roles;
SOURCE auth.sql;
プロジェクト作成
ファイル→新規→動的Webプロジェクト
プロジェクト名: xxxxxxxxx
ターゲット・ランタイム: apache-tomcat-7.0.42
動的Webモジュールバージョン: 3.0
web.xmlデプロイメント記述子の生成(G)にチェック
以下をWebContent下に配置。
【index.html】
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>index.html</title>
<meta http-equiv="refresh" content="3; URL=http://localhost:8080/JDBCAuth/security-webapps/menu.jsp">
</head>
<body>
<p>このページは、3秒後にログインページに移動します。</p>
<br>
<p><a href="security-webapps/menu.jsp">業務メニューにジャンプします。</a></p>
</body>
</html>
【login/index.html】
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>index.html</title>
<meta http-equiv="refresh" content="3; URL=http://localhost:8080/JDBCAuth/security-webapps/menu.jsp">
</head>
<body>
<p>このページは、3秒後にログインページに移動します。</p>
<br>
<p><a href="../security-webapps/menu.jsp">業務メニューにジャンプします。</a></p>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>index.html</title>
<meta http-equiv="refresh" content="3; URL=http://localhost:8080/JDBCAuth/security-webapps/menu.jsp">
</head>
<body>
<p>このページは、3秒後にログインページに移動します。</p>
<br>
<p><a href="../security-webapps/menu.jsp">業務メニューにジャンプします。</a></p>
</body>
</html>
【login/login.jsp】
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>login page</title>
</head>
<body>
<h1 align="center">端末管理支援システム</h1>
<h1 align="center">ログイン</h1>
<br>
<div align="center">
<form method="post" action='<%= response.encodeURL("j_security_check")%>'>
<table>
<tr>
<td>メールアドレス</td>
<td> <input type="text" name="j_username"></td>
</tr>
<tr>
<td>パスワード</td>
<td><input type="password" name="j_password"></td>
</tr>
<tr>
<td></td>
<td>
<input type="submit" value="Login" name="submit">
<input type="reset" value="Reset" name="reset">
</td>
</tr>
</table>
</form>
<br> <br> <br>
<%
String str_status = request.getParameter("status");
if( str_status != null && str_status.equals("error")){
out.println("ID/Passswordが誤っています。");
}
%>
<br> <br> <br>
<p><a href="../regist/regist.html">新規登録はこちら。</a></p>
</div>
</body>
</html>
【login/logout.jsp】
<%@ page session="true" language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
[<%=request.getRemoteUser()%>] さんはログアウトしました。
<% session.invalidate(); %>
<br><br>
<a href="../security-webapps/menu.jsp">ログイン画面に戻る</a>
【regist/regist.html】
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登録項目入力フォーム</title>
<script type="text/javascript">
function check(){
var flag = 0;
// alert("フィールドのチェックをはじめます。");
if( !document.regist_form.auth_mailaddress.value.match(/^([A-Za-z0-9_\.\-]){2,32}@([A-Za-z0-9_\.\-]){3,31}$/)){
flag = 1;
alert("メールアドレスのフォーマットが間違っています。");
} else if( !document.regist_form.auth_password.value.match(/^[a-z0-9]{6,16}$/)){
flag = 1;
alert("パスワードのフォーマットが間違っています。");
}
// alert("フィールドチェックが終わりました。ー2");
if(flag){
// window.alert('必須項目に未入力がありました'); // 入力漏れがあれば警告ダイアログを表示
return false; // 送信を中止
}
else{
return true; // 送信を実行
}
}
</script>
</head>
<body>
<br>
<h1 align="center">端末管理支援システム</h1>
<h1 align="center">ユーザ登録</h1>
<br>
<div align="center">
<form name="regist_form" method="POST" action="regist.jsp" onSubmit="return check()">
<table>
<tr>
<td>メールアドレス:</td>
<td><input type="text" name="auth_mailaddress" value="" tabindex="0" accesskey="a" placeholder="xxxxx@xxxxx.xxx.xx"></td>
</tr>
<tr>
<td>パスワード:</td>
<td><input type="password" name="auth_password" value="" tabindex="1" accesskey="b" placeholder="山田 太郎"></td>
</tr>
<tr>
<td> </td>
<td>
<input type="submit" value="登録" tabindex="10" accesskey="s">
<input type="reset" value="取消" tabindex="11" accesskey="r">
</td>
</tr>
</table>
</form>
</div>
<p><a href="../security-webapps/menu.jsp">loginに戻る</a></p>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登録項目入力フォーム</title>
<script type="text/javascript">
function check(){
var flag = 0;
// alert("フィールドのチェックをはじめます。");
if( !document.regist_form.auth_mailaddress.value.match(/^([A-Za-z0-9_\.\-]){2,32}@([A-Za-z0-9_\.\-]){3,31}$/)){
flag = 1;
alert("メールアドレスのフォーマットが間違っています。");
} else if( !document.regist_form.auth_password.value.match(/^[a-z0-9]{6,16}$/)){
flag = 1;
alert("パスワードのフォーマットが間違っています。");
}
// alert("フィールドチェックが終わりました。ー2");
if(flag){
// window.alert('必須項目に未入力がありました'); // 入力漏れがあれば警告ダイアログを表示
return false; // 送信を中止
}
else{
return true; // 送信を実行
}
}
</script>
</head>
<body>
<br>
<h1 align="center">端末管理支援システム</h1>
<h1 align="center">ユーザ登録</h1>
<br>
<div align="center">
<form name="regist_form" method="POST" action="regist.jsp" onSubmit="return check()">
<table>
<tr>
<td>メールアドレス:</td>
<td><input type="text" name="auth_mailaddress" value="" tabindex="0" accesskey="a" placeholder="xxxxx@xxxxx.xxx.xx"></td>
</tr>
<tr>
<td>パスワード:</td>
<td><input type="password" name="auth_password" value="" tabindex="1" accesskey="b" placeholder="山田 太郎"></td>
</tr>
<tr>
<td> </td>
<td>
<input type="submit" value="登録" tabindex="10" accesskey="s">
<input type="reset" value="取消" tabindex="11" accesskey="r">
</td>
</tr>
</table>
</form>
</div>
<p><a href="../security-webapps/menu.jsp">loginに戻る</a></p>
</body>
</html>
【regist/regist.jsp】
<%@ page language="java" contentType="text/html; charset=UTF-8" import="java.sql.*" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>データベース登録</title>
</head>
<body>
<%
String str_mailaddress = request.getParameter("auth_mailaddress");
String str_password = request.getParameter("auth_password");
out.println("メールアドレスは" + str_mailaddress + "ですね" + "<br>");
out.println("パスワードは" + str_password + "ですね" + "<br>");
%>
<%
Connection cn = null;
Statement st = null;
ResultSet rs = null;
String sql =null;
int num =0;
try {
Class.forName("com.mysql.jdbc.Driver");
cn=DriverManager.getConnection("jdbc:mysql://localhost/auth?" +
"user=takahab&password=no3177&useUnicode=true&characterEncoding=UTF-8");
st=cn.createStatement();
sql = "select user_name from auth_users where user_name = \'" + str_mailaddress + "\'";
out.println( sql );
rs = st.executeQuery(sql);
} catch (Exception e ) {
out.print("<p>JDBC executeQuery エラー<br>" + e.toString() + "</p>");
}
if( rs.next() ) {
out.println( "<p>メールアドレスは、既に登録されています。 </p>");
} else {
try {
sql = "insert into auth_users (user_name, user_pass) values (?, ?)";
PreparedStatement pstmt = cn.prepareStatement(sql);
pstmt.setString(1, str_mailaddress );
pstmt.setString(2, str_password );
num = pstmt.executeUpdate();
out.println(sql);
sql = "insert into user_roles (user_name, role_name) values (?, ?)";
pstmt = cn.prepareStatement(sql);
pstmt.setString(1, str_mailaddress );
pstmt.setString(2, "member" );
num = pstmt.executeUpdate();
out.println(sql);
st.close();
cn.close();
} catch (Exception e ) {
out.print("<p>JDBC executeUpdate エラー<br>" + e.toString() + "</p>");
}
}
%>
<br>
<p><a href="../security-webapps/menu.jsp">login</a></p>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8" import="java.sql.*" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>認証テーブルDBの表示</title>
</head>
<body>
<h1 align="center">認証DBテーブルの表示</h1>
<table border="5" cellpadding="2" cellspacing="2" align="center">
<tr><th>メールアドレス</th><th>パスワード</th></tr>
<%
Class.forName("com.mysql.jdbc.Driver");
Connection cn=DriverManager.getConnection("jdbc:mysql://localhost/auth?" +
"user=takahab&password=no3177&useUnicode=true&characterEncoding=UTF-8");
Statement st=cn.createStatement();
String sql = "select * from auth_users";
ResultSet rs = st.executeQuery(sql);
while(rs.next()){
out.println("<tr>");
out.println("<td>" + rs.getString("user_name") + "</td>");
out.println("<td>" + rs.getString("user_pass") + "</td>");
out.println("</tr>");
}
sql = "select * from user_roles";
rs = st.executeQuery(sql);
while(rs.next()){
out.println("<tr>");
out.println("<td>" + rs.getString("user_name") + "</td>");
out.println("<td>" + rs.getString("role_name") + "</td>");
out.println("</tr>");
}
sql = "insert into auth_users (user_name, user_pass) values (?, ?)";
PreparedStatement pstmt = cn.prepareStatement(sql);
pstmt.setString(1, str_mailaddress );
pstmt.setString(2, str_password );
num = pstmt.executeUpdate();
out.println(sql);
sql = "insert into user_roles (user_name, role_name) values (?, ?)";
pstmt = cn.prepareStatement(sql);
pstmt.setString(1, str_mailaddress );
pstmt.setString(2, "member" );
num = pstmt.executeUpdate();
out.println(sql);
st.close();
cn.close();
} catch (Exception e ) {
out.print("<p>JDBC executeUpdate エラー<br>" + e.toString() + "</p>");
}
}
%>
<br>
<p><a href="../security-webapps/menu.jsp">login</a></p>
</body>
</html>
【security-webapps/AuthDump.jsp】
<%@ page language="java" contentType="text/html; charset=UTF-8" import="java.sql.*" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>認証テーブルDBの表示</title>
</head>
<body>
<h1 align="center">認証DBテーブルの表示</h1>
<table border="5" cellpadding="2" cellspacing="2" align="center">
<tr><th>メールアドレス</th><th>パスワード</th></tr>
<%
Class.forName("com.mysql.jdbc.Driver");
Connection cn=DriverManager.getConnection("jdbc:mysql://localhost/auth?" +
"user=takahab&password=no3177&useUnicode=true&characterEncoding=UTF-8");
Statement st=cn.createStatement();
String sql = "select * from auth_users";
ResultSet rs = st.executeQuery(sql);
while(rs.next()){
out.println("<tr>");
out.println("<td>" + rs.getString("user_name") + "</td>");
out.println("<td>" + rs.getString("user_pass") + "</td>");
out.println("</tr>");
}
sql = "select * from user_roles";
rs = st.executeQuery(sql);
while(rs.next()){
out.println("<tr>");
out.println("<td>" + rs.getString("user_name") + "</td>");
out.println("<td>" + rs.getString("role_name") + "</td>");
out.println("</tr>");
}
try { st.close(); } catch (Exception e ) {}
try { cn.close(); } catch (Exception e ) {}
%>
</table>
<br><br>
<p><a href="menu.jsp">JSPメニューシステムにジャンプします。</a></p>
</body>
</html>
【security-webapps/menu.jsp】
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>メニューシステム(jspタイプ)</title>
</head>
<body>
ようこそ [<%=request.getRemoteUser()%>] さんログイン成功です。
<br> <br>
ユーザ名: [<%=request.getRemoteUser()%>]
<br>
Authタイプ: [<%=request.getAuthType()%>]
<br>
メソッド: [<%=request.getMethod()%>]
<br>
パス: [<%=request.getPathInfo()%>]
<br>
トランス: [<%=request.getPathTranslated()%>]
<br>
クエリ: [<%=request.getQueryString()%>]
<br>
リクエストSID: [<%=request.getRequestedSessionId()%>]
<br>
URI: [<%=request.getRequestURI()%>]
<br>
URL: [<%=request.getRequestURL()%>]
<br>
PATH: [<%=request.getServletPath()%>]
<br><br>
<p><a href="AuthDump.jsp">認証DB情報の表示</a></p>
<br>
<p><a href="../login/logout.jsp">logout</a></p>
</body>
</html>
【error/404.html】
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" http-equiv="refresh" content="3; URL=http://localhost:8080/JDBCAuth/security-webapps/menu.jsp">
<title>error</title>
</head>
<body>
<p>
エラーページです(404)3秒後にログアウトページに移動します。再度ログインしてください。
</p>
<br>
<p><a href="../security-webapps/menu.jsp">再度ログインしてください。</a></p>
</body>
</html>
【error/408.html】
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" http-equiv="refresh" content="3; URL=http://localhost:8080/JDBCAuth/security-webapps/menu.jsp">
<title>error</title>
</head>
<body>
<p>エラーページです(408)3秒後にログインページに移動します。</p>
<br> <br>
<p>
HTTPステータス 408 - ログインプロセスに認められていた時間が過ぎました。
継続したいならば,バックボタンを2度押してから再度リンクを押すか,
ブラウザを立ち上げ直してください
</p>
<br>
<p><a href="../security-webapps/menu.jsp">業務メニューにジャンプします。</a></p>
</body>
</html>
</table>
<br><br>
<p><a href="menu.jsp">JSPメニューシステムにジャンプします。</a></p>
</body>
</html>
【security-webapps/menu.jsp】
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>メニューシステム(jspタイプ)</title>
</head>
<body>
ようこそ [<%=request.getRemoteUser()%>] さんログイン成功です。
<br> <br>
ユーザ名: [<%=request.getRemoteUser()%>]
<br>
Authタイプ: [<%=request.getAuthType()%>]
<br>
メソッド: [<%=request.getMethod()%>]
<br>
パス: [<%=request.getPathInfo()%>]
<br>
トランス: [<%=request.getPathTranslated()%>]
<br>
クエリ: [<%=request.getQueryString()%>]
<br>
リクエストSID: [<%=request.getRequestedSessionId()%>]
<br>
URI: [<%=request.getRequestURI()%>]
<br>
URL: [<%=request.getRequestURL()%>]
<br>
PATH: [<%=request.getServletPath()%>]
<br><br>
<p><a href="AuthDump.jsp">認証DB情報の表示</a></p>
<br>
<p><a href="../login/logout.jsp">logout</a></p>
</body>
</html>
【error/403.html】
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" http-equiv="refresh" content="3; URL=http://localhost:8080/JDBCAuth/login/logout.jsp">
<title>Insert title here</title>
</head>
<body>
<p>
お客さまのIDは、ログインする権限がありません。( エラー403)
3秒後にログアウトページに移動しますので。再度ログインしてください。
</p>
<br>
<p><a href="../login/logout.jsp">再度ログインしてください。</a></p>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" http-equiv="refresh" content="3; URL=http://localhost:8080/JDBCAuth/login/logout.jsp">
<title>Insert title here</title>
</head>
<body>
<p>
お客さまのIDは、ログインする権限がありません。( エラー403)
3秒後にログアウトページに移動しますので。再度ログインしてください。
</p>
<br>
<p><a href="../login/logout.jsp">再度ログインしてください。</a></p>
</body>
</html>
【error/404.html】
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" http-equiv="refresh" content="3; URL=http://localhost:8080/JDBCAuth/security-webapps/menu.jsp">
<title>error</title>
</head>
<body>
<p>
エラーページです(404)3秒後にログアウトページに移動します。再度ログインしてください。
</p>
<br>
<p><a href="../security-webapps/menu.jsp">再度ログインしてください。</a></p>
</body>
</html>
【error/408.html】
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" http-equiv="refresh" content="3; URL=http://localhost:8080/JDBCAuth/security-webapps/menu.jsp">
<title>error</title>
</head>
<body>
<p>エラーページです(408)3秒後にログインページに移動します。</p>
<br> <br>
<p>
HTTPステータス 408 - ログインプロセスに認められていた時間が過ぎました。
継続したいならば,バックボタンを2度押してから再度リンクを押すか,
ブラウザを立ち上げ直してください
</p>
<br>
<p><a href="../security-webapps/menu.jsp">業務メニューにジャンプします。</a></p>
</body>
</html>
【WEBーINF/web.xml】
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>JDBCAuth</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<security-constraint>
<web-resource-collection>
<web-resource-name>Authentication of FormAuth</web-resource-name>
<url-pattern>/security-webapps/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
<role-name>manager</role-name>
<role-name>member</role-name>
<role-name>entry</role-name>
<role-name>stop</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/login/login.jsp</form-login-page>
<form-error-page>/login/login.jsp?status=error</form-error-page>
</form-login-config>
</login-config>
<security-role>
<role-name>admin</role-name>
</security-role>
<security-role>
<role-name>manager</role-name>
</security-role>
<security-role>
<role-name>member</role-name>
</security-role>
<security-role>
<role-name>entry</role-name>
</security-role>
<security-role>
<role-name>stop</role-name>
</security-role>
<session-config>
<session-timeout>1</session-timeout>
</session-config>
<error-page>
<error-code>403</error-code>
<location>/error/403.html</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/error/404.html</location>
</error-page>
<error-page>
<error-code>408</error-code>
<location>/error/408.html</location>
</error-page>
</web-app>
Tomcatのserver.xmlにJDBC認証のDBを設定。
/usr/local/tomcat/conf/server.xml
【servers/-/server.xml】
<!-- by takahab
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
by takahab -->
<!-- by takahab -->
<Realm className="org.apache.catalina.realm.JDBCRealm"
connectionName="takahab"
connectionPassword="no3177"
connectionURL="jdbc:mysql://localhost/auth"
driverName="com.mysql.jdbc.Driver"
roleNameCol="role_name"
userCredCol="user_pass"
userNameCol="user_name"
userRoleTable="user_roles"
userTable="auth_users"/>
</Realm>
<!-- by takahab -->
【regist/regist.html】 old版
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登録項目入力フォーム</title>
</head>
<body>
<form method="POST" action="regist.jsp">
<p><label>メールアドレス:
<input type="text" name="auth_mailaddress" value="" tabindex="0" accesskey="a">
</label> </p>
<p><label> お名前:
<input type="text" name="auth_name" value="" tabindex="1" accesskey="b">
</label></p>
<p>性別:
<input type="radio" name="auth_sex" value="man" tabindex="2" accesskey="c">男性
<input type="radio" name="auth_sex" value="woman" tabindex="3" accesskey="d">女性<br>
職業:
<input type="checkbox" name="auth_job" value="Student" tabindex="4" accesskey="e">学生
<input type="checkbox" name="auth_job" value="worker" tabindex="5" accesskey="f">会社員
<input type="checkbox" name="auth_job" value="official" tabindex="6" accesskey="g">公務員
<input type="checkbox" name="auth_job" value="etc" tabindex="7" accesskey="h">その他
</p>
<p>年代:<select name="auth_age" tabindex="8">
<option value="10ages">10代</option><option value="20ages">20代</option>
<option value="30ages">30代</option><option value="40ages">40代</option>
<option value="50ages">50代</option><option value="60ages">60代</option>
<option value="age" selected>お選びください</option>
</select></p>
<p><label>お問合せ<br>
<textarea name="auth_title" rows="5" cols="60" tabindex="9" accesskey="i">
</textarea>
</label></p>
<p>
<input type="submit" value="登録" tabindex="10" accesskey="s">
<input type="reset" value="取消" tabindex="11" accesskey="r">
</p>
</form>
</body>
</html>
2013年10月18日金曜日
JDBC認証
http://www.javaroad.jp/opensource/js_tomcat11.htm
http://www.avajava.com/tutorials/lessons/how-do-i-log-out-of-an-application-that-uses-form-authentication.html
http://docs.oracle.com/javaee/1.3/api/javax/servlet/http/HttpServletRequest.html
まず、データベース構築
INSERT INTO auth_users VALUES ('takahab@xx', 'passwd');
INSERT INTO auth_users VALUES ('takaha-m@xx','passwd');
DROP TABLE IF EXISTS user_roles;
http://www.avajava.com/tutorials/lessons/how-do-i-log-out-of-an-application-that-uses-form-authentication.html
http://docs.oracle.com/javaee/1.3/api/javax/servlet/http/HttpServletRequest.html
まず、データベース構築
create database auth;
use auth;
create table auth_users(
user_name varchar(64) not null,
user_pass varchar(16) not null
);
create table user_roles(
user_name varchar(64) not null,
role_name varchar(16) not null
);
insert into auth_users (user_name, user_pass) values ('takahab', 'passwd');
insert into auth_roles (user_name, role_name) values ('takahab', 'form');
------------------------------------------auth.sql-------------------------------------------------------------DROP TABLE IF EXISTS users;
CREATE TABLE auth_users (
user_name varchar(64),
user_pass varchar(16),
PRIMARY KEY (user_name)
);
------------------------------------------auth.sql-------------------------------------------------------------DROP TABLE IF EXISTS users;
CREATE TABLE auth_users (
user_name varchar(64),
user_pass varchar(16),
PRIMARY KEY (user_name)
);
INSERT INTO auth_users VALUES ('takahab@xx', 'passwd');
INSERT INTO auth_users VALUES ('takaha-m@xx','passwd');
DROP TABLE IF EXISTS user_roles;
CREATE TABLE user_roles (
user_name varchar(64),
role_name varchar(16),
PRIMARY KEY (user_name)
);
INSERT INTO user_roles VALUES ('takahab@xx', 'form');
INSERT INTO user_roles VALUES ('takaha-m@xx', 'manager');
------------------------------------------auth.sql-------------------------------------------------------------
mysql> CREATE DATABASE auth;
mysql> USE auth;
mysql> SOURCE auth.sql;
-----------------------------------------------------------------------------------------------------------
【server.xml】 ーーーーEngineタグ内に記述
<!-- by takahab
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
by takahab -->
<!-- by takahab -->
<Realm className="org.apache.catalina.realm.JDBCRealm"
connectionName="takahab"
connectionPassword="no3177"
connectionURL="jdbc:mysql://localhost/auth"
driverName="com.mysql.jdbc.Driver"
roleNameCol="role_name"
userCredCol="user_pass"
userNameCol="user_name"
userRoleTable="auth_roles"
userTable="auth_users"
/>
<!-- by takahab -->
</Realm>
【WEB-INF/web.xml】
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD
Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<security-constraint>
<web-resource-collection>
<web-resource-name>Authentication of FormAuth</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>form</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/login_err.html</form-error-page>
</form-login-config>
</login-config>
<security-role>
<role-name>form</role-name>
</security-role>
<session-config>
<session-timeout>1</session-timeout>
</session-config>
</web-app>
【WebContent/login.jsp】
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>login page</title>
</head>
<body>
<form method="post" action='<%= response.encodeURL("j_security_check")%>'>
<table>
<tr>
<td>ID</td>
<td> <input type="text" name="j_username"></td>
</tr>
<tr>
<td>Pass</td>
<td><input type="password" name="j_password"></td>
</tr>
</table>
<br>
<input type="submit" value="Login" name="submit">
<input type="reset" value="Reset" name="reset">
</form>
</body>
</html>
【WebContent/menu.html】
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>login successful</title>
</head>
<body>
ログイン成功です。
<p><a href="logout.jsp">logout</a></p>
<br>
<br>
<p><a href="index.html">TOPに移動します。(index.html)</a></p>
</body>
</html>
【WebContent/login_err.html】
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>login error page</title>
</head>
<body>
ID、Passwordが誤っています。
<br/><br/>
<a href="menu.html">メニューシステムに移動します。</a>
</body>
</html>
【logout.jsp】
<%@ page session="true" language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
User [<%=request.getRemoteUser()%>] has been logged out.
<% session.invalidate(); %>
<br/><br/>
<a href="menu.html">HTMLメニューシステムに移動します。</a>
<a href="menu.jsp">JSPメニューシステムに移動します。</a>
【WebContent/menu.jsp】
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>メニューシステム(jspタイプ)</title>
</head>
<body>
ログイン成功です。
<br>
<br>
ユーザ名: [<%=request.getRemoteUser()%>]
<br>
Authタイプ: [<%=request.getAuthType()%>]
<br>
ヘッダー: [< %=request.getHeader(name)% >]
<br>
メソッド: [<%=request.getMethod()%>]
<br>
パス: [<%=request.getPathInfo()%>]
<br>
トランス: [<%=request.getPathTranslated()%>]
<br>
クエリ: [<%=request.getQueryString()%>]
<br>
リクエストSID: [<%=request.getRequestedSessionId()%>]
<br>
URI: [<%=request.getRequestURI()%>]
<br>
URL: [<%=request.getRequestURL()%>]
<br>
PATH: [<%=request.getServletPath()%>]
<br>
<p><a href="logout.jsp">logout</a></p>
<br>
<br>
<p><a href="index.html">TOPに移動します。(index.html)</a></p>
</body>
</html>
【WebContent/index.html】
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<meta http-equiv="refresh" content="3; URL=http://localhost:8080/JDBCAuth/menu.html">
</head>
<body>
<p>このページは、ログインページに移動します。</p>
<p><a href="menu.html">HTMLメニューシステムにジャンプします。</a></p>
<p><a href="menu.jsp">JSPメニューシステムにジャンプします。</a></p>
</body>
</html>
user_name varchar(64),
role_name varchar(16),
PRIMARY KEY (user_name)
);
INSERT INTO user_roles VALUES ('takahab@xx', 'form');
INSERT INTO user_roles VALUES ('takaha-m@xx', 'manager');
------------------------------------------auth.sql-------------------------------------------------------------
mysql> CREATE DATABASE auth;
mysql> USE auth;
mysql> SOURCE auth.sql;
-----------------------------------------------------------------------------------------------------------
【server.xml】 ーーーーEngineタグ内に記述
<!-- by takahab
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
by takahab -->
<!-- by takahab -->
<Realm className="org.apache.catalina.realm.JDBCRealm"
connectionName="takahab"
connectionPassword="no3177"
connectionURL="jdbc:mysql://localhost/auth"
driverName="com.mysql.jdbc.Driver"
roleNameCol="role_name"
userCredCol="user_pass"
userNameCol="user_name"
userRoleTable="auth_roles"
userTable="auth_users"
/>
<!-- by takahab -->
</Realm>
【WEB-INF/web.xml】
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD
Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<security-constraint>
<web-resource-collection>
<web-resource-name>Authentication of FormAuth</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>form</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/login_err.html</form-error-page>
</form-login-config>
</login-config>
<security-role>
<role-name>form</role-name>
</security-role>
<session-config>
<session-timeout>1</session-timeout>
</session-config>
</web-app>
【WebContent/login.jsp】
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>login page</title>
</head>
<body>
<form method="post" action='<%= response.encodeURL("j_security_check")%>'>
<table>
<tr>
<td>ID</td>
<td> <input type="text" name="j_username"></td>
</tr>
<tr>
<td>Pass</td>
<td><input type="password" name="j_password"></td>
</tr>
</table>
<br>
<input type="submit" value="Login" name="submit">
<input type="reset" value="Reset" name="reset">
</form>
</body>
</html>
【WebContent/menu.html】
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>login successful</title>
</head>
<body>
ログイン成功です。
<p><a href="logout.jsp">logout</a></p>
<br>
<br>
<p><a href="index.html">TOPに移動します。(index.html)</a></p>
</body>
</html>
【WebContent/login_err.html】
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>login error page</title>
</head>
<body>
ID、Passwordが誤っています。
<br/><br/>
<a href="menu.html">メニューシステムに移動します。</a>
</body>
</html>
【logout.jsp】
<%@ page session="true" language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
User [<%=request.getRemoteUser()%>] has been logged out.
<% session.invalidate(); %>
<br/><br/>
<a href="menu.html">HTMLメニューシステムに移動します。</a>
<a href="menu.jsp">JSPメニューシステムに移動します。</a>
【WebContent/menu.jsp】
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>メニューシステム(jspタイプ)</title>
</head>
<body>
ログイン成功です。
<br>
<br>
ユーザ名: [<%=request.getRemoteUser()%>]
<br>
Authタイプ: [<%=request.getAuthType()%>]
<br>
ヘッダー: [< %=request.getHeader(name)% >]
<br>
メソッド: [<%=request.getMethod()%>]
<br>
パス: [<%=request.getPathInfo()%>]
<br>
トランス: [<%=request.getPathTranslated()%>]
<br>
クエリ: [<%=request.getQueryString()%>]
<br>
リクエストSID: [<%=request.getRequestedSessionId()%>]
<br>
URI: [<%=request.getRequestURI()%>]
<br>
URL: [<%=request.getRequestURL()%>]
<br>
PATH: [<%=request.getServletPath()%>]
<br>
<p><a href="logout.jsp">logout</a></p>
<br>
<br>
<p><a href="index.html">TOPに移動します。(index.html)</a></p>
</body>
</html>
【WebContent/index.html】
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<meta http-equiv="refresh" content="3; URL=http://localhost:8080/JDBCAuth/menu.html">
</head>
<body>
<p>このページは、ログインページに移動します。</p>
<p><a href="menu.html">HTMLメニューシステムにジャンプします。</a></p>
<p><a href="menu.jsp">JSPメニューシステムにジャンプします。</a></p>
</body>
</html>
2013年10月11日金曜日
CentOS6.4にmysql 5.6.16をインストールした。
20140318更新
# rpm -qa | grep -i mysql
yum erase mysql-5.1.69-1.el6_4.x86_64 mysql-devel-5.1.69-1.el6_4.x86_64 mysql-server-5.1.69-1.el6_4.x86_64 mysql-libs-5.1.69-1.el6_4.x86_64
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-server-5.6.16-1.el6.x86_64.rpm wget http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-client-5.6.16-1.el6.x86_64.rpm wget http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-devel-5.6.16-1.el6.x86_64.rpm wget http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-shared-5.6.16-1.el6.x86_64.rpm
yum install MySQL-server-5.6.16-1.el6.x86_64.rpm
yum install MySQL-client-5.6.16-1.el6.x86_64.rpm
yum install MySQL-devel-5.6.16-1.el6.x86_64.rpm
yum install MySQL-shared-5.6.16-1.el6.x86_64.rpm
# cat /root/.mysql_secret
# The random password set for the root user at Fri Oct 11 15:43:09 2013 (local time): eDpfy22r
# service mysql start
# mysql -uroot -p
mysql> set password for 'root'@'localhost'=password('xxxxxx');
mysql> use mysql;
Database changed
mysql> select host, user, password from user;
+-------------------------------+------+-------------------------------------------+
| host | user | password |
+-------------------------------+------+-------------------------------------------+
| localhost | root | *D3F8362A5CC757B308222F6CF971CC5407185638 |
| terminal-manage.cxdnext.co.jp | root | *D13EFCDE1766FB275BEC1B94639DF8E0305861A8 |
| 127.0.0.1 | root | *D13EFCDE1766FB275BEC1B94639DF8E0305861A8 |
| ::1 | root | *D13EFCDE1766FB275BEC1B94639DF8E0305861A8 |
+-------------------------------+------+-------------------------------------------+
4 rows in set (0.00 sec)
mysql>
mysql> use mysql;
Database changed
mysql> select host, user, password from user;
+-------------------------------+------+-------------------------------------------+
| host | user | password |
+-------------------------------+------+-------------------------------------------+
| localhost | root | *D3F8362A5CC757B308222F6CF971CC5407185638 |
| terminal-manage.cxdnext.co.jp | root | *D13EFCDE1766FB275BEC1B94639DF8E0305861A8 |
| 127.0.0.1 | root | *D13EFCDE1766FB275BEC1B94639DF8E0305861A8 |
| ::1 | root | *D13EFCDE1766FB275BEC1B94639DF8E0305861A8 |
+-------------------------------+------+-------------------------------------------+
4 rows in set (0.00 sec)
mysql>
簡易ログイン画面を作ってみた。
【index.html】
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>ログイン</title>
<link rel="STYLESHEET" href="tm.css" type="text/css">
<script type="text/javascript" src="login.js">
</script>
</head>
<body onload="fieldChanged();">
<p align="center">
<input border="0" src="title.files/title.jpg" name="I1" width="740" height="149" type="image"></p>
<br>
<br>
<h1 align="center">タイトル</h1>
<br>
<br>
<hr>
<div align="center">
<table border="0">
<!-- <form name="tm" action="release/menu.html"> -->:
<form>
<tr>
<th class="login_field">
ユーザID
</th>
<td class="login_field">
<input type="text" name="user_id" value=""
size="24" id="user_id"
onkeyup="fieldChanged();"
onchange="fieldChanged();">
</td>
</tr>
<tr>
<th class="login_field">
パスワード
</th>
<td class="login_field">
<input type="password" name="password" value=""
size="24" id="password"
onkeyup="fieldChanged();"
onchange="fieldChanged();">
</td>
</tr>
<tr>
<td colspan="2" class="login_button">
<!-- <input type="submit" value="ログイン" id="login"> -->
<input type="submit" value="ログイン" id="login" onclick="return passwdCheck();">
</td>
</tr>
</form>
</table>
</div>
</body>
</html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>ログイン</title>
<link rel="STYLESHEET" href="tm.css" type="text/css">
<script type="text/javascript" src="login.js">
</script>
</head>
<body onload="fieldChanged();">
<p align="center">
<input border="0" src="title.files/title.jpg" name="I1" width="740" height="149" type="image"></p>
<br>
<br>
<h1 align="center">タイトル</h1>
<br>
<br>
<hr>
<div align="center">
<table border="0">
<!-- <form name="tm" action="release/menu.html"> -->:
<form>
<tr>
<th class="login_field">
ユーザID
</th>
<td class="login_field">
<input type="text" name="user_id" value=""
size="24" id="user_id"
onkeyup="fieldChanged();"
onchange="fieldChanged();">
</td>
</tr>
<tr>
<th class="login_field">
パスワード
</th>
<td class="login_field">
<input type="password" name="password" value=""
size="24" id="password"
onkeyup="fieldChanged();"
onchange="fieldChanged();">
</td>
</tr>
<tr>
<td colspan="2" class="login_button">
<!-- <input type="submit" value="ログイン" id="login"> -->
<input type="submit" value="ログイン" id="login" onclick="return passwdCheck();">
</td>
</tr>
</form>
</table>
</div>
</body>
</html>
【login.js】
function fieldChanged(){
var userId = getField("user_id");
var password = getField("password");
var disabled = true;
if (userId.value.length > 0 && password.value.length > 0) {
disabled = false;
}
var login = getField("login");
if (disabled) {
login.setAttribute("disabled", "disabled");
}
else {
login.removeAttribute("disabled");
}
}
function getField(fieldName){
var field = document.getElementById(fieldName);
if (field == undefined) {
throw new Error("要素が見つかりません: " + fieldName);
}
return field;
}
function passwdCheck(){
var userId = getField("user_id");
var pw = getField("password");
var disabled = true;
var caId = "ID";
var caPw = "password";
//alert( "PasswdCheckが呼ばれました");
if( userId.value != caId ){
alert("ユーザIDが登録されていません");
disabled = false;
}else{
if( pw.value != caPw ){
alert("パスワードが違います");
disabled = false;
}else{
//alert("認証をクリアしました");
location.href="release/"+pw.value+".html";
}
}
var login = getField("login");
if (disabled) {
login.setAttribute("disabled", "disabled");
}
else {
login.removeAttribute("disabled");
}
return false;
}
【tm.css】
h1 {
font-size: 32px;
margin: 0px;
padding: 4px;
color: #222288;
}
hr {
margin-top: 8px;
margin-bottom: 8px;
}
th.login_field {
font-size: 14px;
width: 140px;
text-align: left;
padding: 8px;
color: #ffffff;
background-color: #223366;
}
td.login_field {
padding: 8px;
}
td.login_button {
text-align: center;
padding: 8px;
}
table.toolbar {
margin-top: 16px;
margin-bottom: 32px;
}
table.list th {
width: 150px;
text-align: left;
padding: 8px;
color: #ffffff;
background-color: #5555aa;
}
table.list td {
background-color: #bbbbff;
padding: 8px;
}
th.add_field {
width: 150px;
text-align: left;
padding: 8px;
color: #ffffff;
background-color: #aaaaff;
}
td.add_field {
padding: 8px;
}
td.add_button {
text-align: center;
padding: 8px;
}
2013年9月27日金曜日
ciscoルータにACLを追加した。
Username: xxxxxx
Password:*******
RT1>enable
Password:*******
RT1# show access-lists
RT1# configure terminal
RT1# ip access-list extended 101
RT1(config-ext-nacl)# permit tcp host 192.168.1.50 eq www any established
RT1(config-ext-nacl)# no 10
RT1(config-ext-nacl)# ^Z
RT1# show running-config
RT1# copy running-config startup-config
RT1# show startup-config
デバックしてみる。
RT1# show ip nat translation
RT1# term mon
RT1# debug ip nat detailed
RT1# no debug ip nat detailed
qq
RT1# show ip nat translation
Password:*******
RT1>enable
Password:*******
RT1# show access-lists
RT1# configure terminal
RT1# ip access-list extended 101
RT1(config-ext-nacl)# permit tcp host 192.168.1.50 eq www any established
RT1(config-ext-nacl)# no 10
RT1(config-ext-nacl)# ^Z
RT1# show running-config
RT1# copy running-config startup-config
RT1# show startup-config
デバックしてみる。
RT1# show ip nat translation
RT1# term mon
RT1# debug ip nat detailed
RT1# no debug ip nat detailed
RT1# show ip nat translation
2013年8月28日水曜日
ディスクのスマート情報を読む。
# apt-get install smartmontools
# smartctl -a /dev/sdc
# smartctl -l error /dev/sdc
GUIツールもあった。
# apt-get install gsmartcontrol
# smartctl -a /dev/sdc
# smartctl -l error /dev/sdc
GUIツールもあった。
# apt-get install gsmartcontrol
2013年8月9日金曜日
VNC Serverをコンパイルしてみる。
cd mydroid
mkdir additional
cd additional
git clone https://github.com/oNaiPs/droid-VNC-server.git
wget http://fastdroid-vnc.googlecode.com/files/fastdroid-vnc-1.0.tgz
tar xvzf fastdroid-vnc-1.0.tgz
cd ..
ln -s ../additional/droid-VNC-server/nativeMethods/ external/
cd external/nativeMethods
. ../../build/envsetup.sh
lunch
mm .
エラー多発、うまくいかない!!
mkdir additional
cd additional
git clone https://github.com/oNaiPs/droid-VNC-server.git
wget http://fastdroid-vnc.googlecode.com/files/fastdroid-vnc-1.0.tgz
tar xvzf fastdroid-vnc-1.0.tgz
cd ..
ln -s ../additional/droid-VNC-server/nativeMethods/ external/
cd external/nativeMethods
. ../../build/envsetup.sh
lunch
mm .
エラー多発、うまくいかない!!
2013年8月8日木曜日
久々に最新版のAndroidソースをダウンロードしてみた。
【環境】
sudo apt-get install openjdk-6-jdk
update-alternatives --config java
update-alternatives --config javac
Python 2.7.4 (default, Jul 5 2013, 08:21:57)
git version 1.8.1.2
GNU Make 3.81
java version "1.6.0_27"
OpenJDK Runtime Environment (IcedTea6 1.12.6) (6b27-1.12.6-1ubuntu0.13.04.2)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
sudo apt-get install openjdk-6-jdk
update-alternatives --config java
update-alternatives --config javac
Python 2.7.4 (default, Jul 5 2013, 08:21:57)
git version 1.8.1.2
GNU Make 3.81
java version "1.6.0_27"
OpenJDK Runtime Environment (IcedTea6 1.12.6) (6b27-1.12.6-1ubuntu0.13.04.2)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk
sun-javaは無いので、oracleから jre-6u45-linux-x64.binをダウンロードして、
shellで展開。
update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-6-oracle/bin/java 16043
update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-6-oracle/bin/javac 16043
update-alternatives --config java
update-alternatives --config javac
$ sudo apt-get install git gnupg flex bison gperf build-essential \
zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
libgl1-mesa-dev g++-multilib mingw32 tofrodos \
python-markdown libxml2-utils xsltproc zlib1g-dev:i386
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
vi /etc/udev/rules.d/51-android.rules
$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
$ repo init -u https://android.googlesource.com/platform/manifest ※特定Verの場合 -b android-4.0.1_r1
$ repo sync
$ . ./build/envsetup.sh
$ lunch full-eng
$ make -j4
2013年8月6日火曜日
eclipseにsvnプラグイグインをインストール
Eclipse Kepler (4.3)
Kepler - http://download.eclipse.org/releases/kepler
コラボレーション内の下記をチェック
•Subversive SVN チーム・プロバイダー
•Subversive SVN チーム・プロバイダー・ローカライゼーション(オプション)
コネクター選択画面でSVNコネクタをインストール。
選択画面が出ない場合は、
ヘルプ(H) → 新規ソフトウェアのインストールhttp://community.polarion.com/projects/subversive/download/eclipse/3.0/kepler-site/
からSVNコネクタをインストール。
Kepler - http://download.eclipse.org/releases/kepler
コラボレーション内の下記をチェック
•Subversive SVN チーム・プロバイダー
•Subversive SVN チーム・プロバイダー・ローカライゼーション(オプション)
コネクター選択画面でSVNコネクタをインストール。
選択画面が出ない場合は、
ヘルプ(H) → 新規ソフトウェアのインストールhttp://community.polarion.com/projects/subversive/download/eclipse/3.0/kepler-site/
からSVNコネクタをインストール。
2013年7月23日火曜日
Vmware Toolsがインストールできない。
このエラーがでたけど、VMplayer自身をスーパユーザで動かしたら解決した。
# vmpaler
ここからもVmware Toolsがダウンロードできた。
http://softwareupdate.vmware.com/cds/vmw-desktop/play
# vmpaler
ここからもVmware Toolsがダウンロードできた。
http://softwareupdate.vmware.com/cds/vmw-desktop/play
2013年7月22日月曜日
CenOSにもtomcatをいれてみた。
まず CentOSをインストール。
CentOS-6.4-x86_64-bin-DVD1.iso をダウンロードしてインストール。
次に日本語化
# yum groupinstall "Japanese Support"
# vi /etc/sysconfig/i18n
#LANG="en_US.UTF-8"
LANG="ja_JP.UTF-8"
SYSFONT="latarcyrheb-sun16"
再起動して、古い名前のままを指定。
(1) JAVAのインストール
CentOS-6.4-x86_64-bin-DVD1.iso をダウンロードしてインストール。
次に日本語化
# yum groupinstall "Japanese Support"
# vi /etc/sysconfig/i18n
#LANG="en_US.UTF-8"
LANG="ja_JP.UTF-8"
SYSFONT="latarcyrheb-sun16"
再起動して、古い名前のままを指定。
(1) JAVAのインストール
http://www.oracle.com/technetwork/java/javase/downloads/index.html
ここから JREをダウンロード(jre-7u25-linux-x64.rpm)
yum install jre-7u25-linux-x64.rpm
ここから tomcatをダウンロード(apache-tomcat-7.0.42.tar.gz)
useradd -s /sbin/nologin tomcat
tar xvzf apache-tomcat-7.0.42.tar.gz
mv apache-tomcat-7.0.42 /usr/local
chown tomcat:tomcat -R apache-tomcat-7.0.42
ln -s apache-tomcat-7.0.42 tomcat
vi /usr/local/tomcat/bin/startup.sh /usr/local/tomcat/bin/shutdown.sh
次を追加。(先頭に追加)
JAVA_HOME=/usr/java/default
CATALINA_HOME=/usr/local/tomcat
export JAVA_HOME CATALINA_HOME
vi /usr/local/tomcat/conf/tomcat-users.xml
<user username="takahab" password="xxxxxxx" roles="admin-gui,manager-gui"/>
vi /etc/init.d/tomcat
#!/bin/bash # # Startup script for the Tomcat Servlet Container # # chkconfig: 2345 35 65 # description: Tomcat is the servlet container that is used in the official \ # Reference Implementation for the Java Servlet and JavaServer \ # Pages technologies TOMCAT_USER=tomcat CATALINA_HOME=/usr/local/tomcat . /etc/rc.d/init.d/functions prog=tomcat start() { echo -n $"Starting $prog: " daemon --user $TOMCAT_USER $CATALINA_HOME/bin/startup.sh > /dev/null RETVAL=$? if [ $RETVAL -eq 0 ]; then echo_success else echo_failure fi echo [ $RETVAL = 0 ] && touch /var/lock/subsys/$prog return $RETVAL } stop() { echo -n $"Stopping $prog: " daemon --user $TOMCAT_USER $CATALINA_HOME/bin/shutdown.sh > /dev/null RETVAL=$? if [ $RETVAL -eq 0 ]; then echo_success else echo_failure fi echo [ $RETVAL = 0 ] && rm -f /var/lock/subsys/$prog return $RETVAL } # See how we were called. case "$1" in start) start ;; stop) stop ;; restart) stop start ;; status) INSTANCES=`ps --columns 512 -aef|grep java|grep tomcat|grep org.apache.catalina.startup.Bootstrap|wc -l` if [ $INSTANCES -eq 0 ]; then echo $prog is stopped RETVAL=3 else if [ $INSTANCES -eq 1 ]; then echo $prog is running 1 instance... else echo $prog is running $INSTANCES instances... fi RETVAL=0 fi ;; *) echo $"Usage: $prog {start|stop|restart|status|help}" exit 1 esac exit $RETVAL
chmod a+x /etc/init.d/tomcat
/sbin/chkconfig --add tomcat
/etc/init.d/tomcat start
chkconfig httpd onchkconfig tomcat onchkconfig --list
(3) Tomcat コネクタの設定
vi /usr/local/tomcat/conf/server.xml
【8080ポート無効】
<!-- <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> by takahab -->
【8009ポート有効】
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
【tomcatに渡すロケーションを設定】
# vi /etc/httpd/conf/httpd.conf
ーーーファイルの最後に追加
# by takahab Include /etc/httpd/conf/extra/httpd-proxy.conf
vi /etc/httpd/conf/extra/httpd-proxy.conf ------新規ファイル作成<Location / >
ProxyPass ajp://localhost:8009/
</Location>
# 192.1.168.1.*を許可
# vi /etc/hosts.allows
in.telnetd : localhost 127.0.0.1 192.168.1.
#FTPパッシブモードを設定
#vi /etc/sysconfig/iptables-config
IPTABLES_MODULES=”ip_conntrack_ftp ip_nat_ftp”
#vi /etc/vsftpd/vsftpd.conf
※servlet以下であれば、<Location /servlet > 上記はルート
マップするディレクトリが異なる時。
<Location /servlet/> ProxyPass ajp://localhost:8009/ keepalive=on ProxyPassReverse ajp://localhost:8009/ ProxyPassReverseCookiePath / /servlet/ </Location>
【ついでに!!】
# yum -y install vsftpd
# /etc/init.d/vsftpd start
# chkconfig vsftpd on
# yum -y install ftp
# yum -y install telnet-server
# yum -y install telnet
# 192.1.168.1.*を許可
# vi /etc/hosts.allows
in.telnetd : localhost 127.0.0.1 192.168.1.
# vi /etc/sysconfig/iptables
# Generated by iptables-save v1.4.7 on Tue Oct 1 11:33:21 2013
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [69:7864]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 23 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 20:21 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Tue Oct 1 11:33:21 2013
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [69:7864]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 23 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 20:21 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Tue Oct 1 11:33:21 2013
# service iptables restart
# iptables -L で確認。
SElinuxを一時的に無効。
# setenforce 0
# sestatus
# getsebool -a
# getsebool -a
#FTPパッシブモードを設定
#vi /etc/sysconfig/iptables-config
IPTABLES_MODULES=”ip_conntrack_ftp ip_nat_ftp”
#vi /etc/vsftpd/vsftpd.conf
pasv_promiscuous=YES
#パッシブモード利用時のポート範囲(例:50000~50030)
pasv_min_port=50000
pasv_max_port=50030
2013年7月19日金曜日
CentOS7 samba 設定
■samba インストール
# yum install samba samba-client samba-common
# systemctl enable smb.service
# systemctl enable nmb.service
# systemctl restart smb.service
# systemctl restart nmb.service
# firewall-cmd --permanent --zone=public --add-service=samba
# firewall-cmd --reload
# chcon -t samba_share_t /home/takahab/Common -R
# vi /etc/samba/smb.conf
# yum install samba samba-client samba-common
# systemctl enable smb.service
# systemctl enable nmb.service
# systemctl restart smb.service
# systemctl restart nmb.service
# firewall-cmd --reload
# chcon -t samba_share_t /home/takahab/Common -R
# vi /etc/samba/smb.conf
# See smb.conf.example for a more detailed config file or
# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it.
[global]
workgroup = WORKGROUP
security = user
guest account = nobody
map to guest = Bad User
wide links = yes
unix extensions =no
passdb backend = tdbsam
printing = cupsprintcap name = cups
load printers = yes
cups options = raw
# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it.
[global]
workgroup = WORKGROUP
security = user
guest account = nobody
map to guest = Bad User
wide links = yes
unix extensions =no
passdb backend = tdbsam
printing = cupsprintcap name = cups
load printers = yes
cups options = raw
[share]
comment = common
path = /home/takahab/Common
public = yes
guest ok = yes
browseable = yes
writable = yes
printable = no
[homes]
comment = Home Directories
valid users = %S, %D%w%S
browseable = No
read only = No
inherit acls = Yes
comment = common
path = /home/takahab/Common
public = yes
guest ok = yes
browseable = yes
writable = yes
printable = no
[homes]
comment = Home Directories
valid users = %S, %D%w%S
browseable = No
read only = No
inherit acls = Yes
[printers]
comment = All Printers
path = /var/tmp
printable = Yes
create mask = 0600
browseable = No
comment = All Printers
path = /var/tmp
printable = Yes
create mask = 0600
browseable = No
[print$]
comment = Printer Drivers
path = /var/lib/samba/drivers
write list = @printadmin root
force group = @printadmin
create mask = 0664
directory mask = 0775
# testparm -v
■samba でシンボリックリンクがアクセスできない。
グローバルセクションに下記を追加したら動いた。
[global]
wide links = yes
unix extensions =no
comment = Printer Drivers
path = /var/lib/samba/drivers
write list = @printadmin root
force group = @printadmin
create mask = 0664
directory mask = 0775
■samba でシンボリックリンクがアクセスできない。
グローバルセクションに下記を追加したら動いた。
[global]
wide links = yes
unix extensions =no
EUCのファイル名がみえない。 ーーーーこれは便利
apt-get install convmv
/usr/local/bin/convmv -r -f euc-jp -t utf8 [シェアディレクトリ] --notest
/usr/local/bin/convmv -r -f euc-jp -t utf8 [シェアディレクトリ] --notest
2013年7月11日木曜日
Servletを使ったサンプルを動かしてみた。
・ ファイル→新規→動的Webプロジェクト
プロジェクト名: tomcat_sample
web.xmlデブロイメント記述の生成
【Formsample.jsp】
・WebContent→新規→JSPファイル
bodyに下記を記述。
<p>会員登録</p>
<form action="/tomcat_sample/RequestSample1" method="get">
<table>
<tr>
<td>氏名</td>
<td><input type="text" size="20" value="" name="name"></td>
</tr>
<tr>
<td>年齢</td>
<td><input type="text" size="7" value="" name="old"></td>
</tr>
<tr>
<td>性別</td>
<td>
<select name="sex" size="2" multiple>
<option value="male">男性</option>
<option value="female">女性</option>
</select>
</td>
</tr>
</table>
<input type="submit" name="button1" value="送信">
</form>
プロジェクト名: tomcat_sample
web.xmlデブロイメント記述の生成
【Formsample.jsp】
・WebContent→新規→JSPファイル
bodyに下記を記述。
<p>会員登録</p>
<form action="/tomcat_sample/RequestSample1" method="get">
<table>
<tr>
<td>氏名</td>
<td><input type="text" size="20" value="" name="name"></td>
</tr>
<tr>
<td>年齢</td>
<td><input type="text" size="7" value="" name="old"></td>
</tr>
<tr>
<td>性別</td>
<td>
<select name="sex" size="2" multiple>
<option value="male">男性</option>
<option value="female">女性</option>
</select>
</td>
</tr>
</table>
<input type="submit" name="button1" value="送信">
</form>
【RequestSample1.java】
・WebContent→新規→その他→サーブレット
Package: com.example.servlets
Class: RequestSample1
・WebContent→新規→その他→サーブレット
Package: com.example.servlets
Class: RequestSample1
・doGet()に下記を記述。
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String name = request.getParameter("name");
int old;
String tmp = request.getParameter("old");
if (tmp == null || tmp.length() == 0){
old = -1;
}else{
try{
old = Integer.parseInt(tmp);
}catch (NumberFormatException e){
old = -1;
}
}
String sex[] = request.getParameterValues("sex");
StringBuffer sb = new StringBuffer();
sb.append("<html>");
sb.append("<head>");
sb.append("<title>サンプル</title>");
sb.append("</head>");
sb.append("<body>");
sb.append("<p>お名前は ");
sb.append(name);
sb.append(" です</p>");
sb.append("<p>年齢は ");
if (old == -1){
sb.append("未設定です</p>");
}else{
sb.append(old);
sb.append(" です</p>");
}
sb.append("<p>性別は ");
if (sex != null){
for (int i = 0 ; i < sex.length ; i++){
sb.append(sex[i]);
sb.append(" ");
}
sb.append(" です</p>");
}else{
sb.append("選択されていません</p>");
}
sb.append("</body>");
sb.append("</html>");
out.println(new String(sb));
out.close();
【web.xml】
・下記を追加。
<servlet>
<servlet-name>RequestSample1</servlet-name>
<servlet-class>com.example.servlets.RequestSample1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>RequestSample1</servlet-name>
<url-pattern>/RequestSample1</url-pattern>
</servlet-mapping>
2013年7月10日水曜日
apacheをインストール
sudo apt-get install apache2
suddo service apache2 stop
sudo service apache2 start
/var/www/index.html
コネクタのインストール
apt-get install libapache2-mod-jk2
suddo service apache2 stop
sudo service apache2 start
/var/www/index.html
コネクタのインストール
apt-get install libapache2-mod-jk2
2013年7月9日火曜日
eclipseでtomcatアプリを作成してみた。
(1) ファイル→新規→動的Webプロジェクト
(2) webContent→新規→JSPファイルにindex.jspを作成する。
【index.jsp】
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<% java.util.Date d = new java.util.Date(); %>
<h1>
Today's date is <%= d.toString() %> and this jsp page worked!
</h1>
</body>
</html>
(3) Java Resources→srcで右クリック: 新規→サーブレット
Java パッケージ名: com.example.servlets
クラス名: HelloServlet
【HelloServlet.java】
package com.example.servlets;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class HelloServlet
*/
@WebServlet("/HelloServlet")
public class HelloServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public HelloServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().write("Hello, world!");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
}
【web.xml】
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>com.example.servlets.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
を追加。
http://localhost:8080/tomcat_sample/hello
で表示されるはずだが?
http://www.atmarkit.co.jp/ait/articles/1104/12/news134.html
http://www.atmarkit.co.jp/ait/articles/0301/09/news001.html
(2) webContent→新規→JSPファイルにindex.jspを作成する。
【index.jsp】
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<% java.util.Date d = new java.util.Date(); %>
<h1>
Today's date is <%= d.toString() %> and this jsp page worked!
</h1>
</body>
</html>
(3) Java Resources→srcで右クリック: 新規→サーブレット
Java パッケージ名: com.example.servlets
クラス名: HelloServlet
【HelloServlet.java】
package com.example.servlets;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class HelloServlet
*/
@WebServlet("/HelloServlet")
public class HelloServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public HelloServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().write("Hello, world!");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
}
【web.xml】
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>com.example.servlets.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
を追加。
http://localhost:8080/tomcat_sample/hello
で表示されるはずだが?
http://www.atmarkit.co.jp/ait/articles/1104/12/news134.html
http://www.atmarkit.co.jp/ait/articles/0301/09/news001.html
mysqlを触ってみた。
【ユーザ登録】
select host,user from mysql.user;
delete from mysql.user where user='takahab';
select host,user from mysql.user;
grant insert,select on *.* to takahab@localhost identified by 'himitsu';
delete from mysql.user where user='takahab';
grant all privileges on *.* to takahab@localhost identified by 'himitsu' with grant option;
select host,user from mysql.user;
※参考
すべてのホスト(%)
grant all privileges on *.* to takahab@% identified by 'himitsu' with grant option;
ホストを制限
grant all privileges on *.* to takahab@'172.16.0.0/255.255.255.0' identified by 'himitsu' with grant option;
【テストDBを作る】
$mysql -u root -p
drop database test;
create database test;
use test;
create table customer(
num integer not null,
name varchar(20) not null,
addr varchar(20) not null,
constraint pk_customer primary key (num)
);
insert into customer (num, name, addr) values (1, 'aaaaaaaa', '090-0123-4001');
insert into customer (num, name, addr) values (2, 'bbbbbbbb', '090-0123-4002');
insert into customer (num, name, addr) values (3, 'cccccccc', '090-0123-4003');
select * from customer;
【テストアプリを作る】
import java.sql.*;
class DbTest {
public static void main(String[] args) {
int id;
String name;
try {
// JDBCドライバの登録
String driver = "com.mysql.jdbc.Driver";
// データベースの指定
String server = "localhost"; // MySQLサーバ ( IP または ホスト名 )
String dbname = "test"; // データベース名
// String url = "jdbc:mysql://" + server + "/" + dbname + "?useUnicode=true&characterEncoding=EUC_JP";
String url = "jdbc:mysql://" + server + "/" + dbname;
String user = "takahab"; // データベース作成ユーザ名
String password = "himitsu"; // データベース作成ユーザパスワード
Class.forName (driver);
// データベース接続
System.out.println( url );
Connection con = DriverManager.getConnection(url, user, password);
// テーブル照会
Statement stmt = con.createStatement ();
String sql = "SELECT * FROM test.customer";
ResultSet rs = stmt.executeQuery (sql);
// テーブル出力
while(rs.next()){
id = rs.getInt("num");
name = rs.getString("name");
System.out.println("ID:" + id);
System.out.println("名前:" + name);
}
// データベースクローズ
rs.close();
stmt.close();
con.close();
} catch (SQLException e) {
System.err.println("SQL failed.");
e.printStackTrace ();
} catch (ClassNotFoundException ex) {
ex.printStackTrace ();
}
}
}
【環境】
mysqlをダウンロード
http://dev.mysql.com/downloads/connector/j/
cd ~/sample
mkdir lib
cd lib
ln -s ../mysql-connector-java-5.1.25/mysql-connector-java-5.1.25-bin.jar mysql-connector-java-5.1.25.jar
ln -s ../mysql-connector-java-5.1.25/mysql-connector-java-5.1.25-bin.jar mysql-connector-java.jar
ln -s ../mysql-connector-java-5.1.25/mysql-connector-java-5.1.25-bin.jar mysql.jar
cd ..
javac DbTest.java
java -cp ./lib/mysql.jar:. DbTest
select host,user from mysql.user;
delete from mysql.user where user='takahab';
select host,user from mysql.user;
grant insert,select on *.* to takahab@localhost identified by 'himitsu';
select host,user from mysql.user;
delete from mysql.user where user='takahab';
grant all privileges on *.* to takahab@localhost identified by 'himitsu' with grant option;
select host,user from mysql.user;
※参考
すべてのホスト(%)
grant all privileges on *.* to takahab@% identified by 'himitsu' with grant option;
ホストを制限
grant all privileges on *.* to takahab@'172.16.0.0/255.255.255.0' identified by 'himitsu' with grant option;
【テストDBを作る】
$mysql -u root -p
drop database test;
create database test;
use test;
create table customer(
num integer not null,
name varchar(20) not null,
addr varchar(20) not null,
constraint pk_customer primary key (num)
);
insert into customer (num, name, addr) values (1, 'aaaaaaaa', '090-0123-4001');
insert into customer (num, name, addr) values (2, 'bbbbbbbb', '090-0123-4002');
insert into customer (num, name, addr) values (3, 'cccccccc', '090-0123-4003');
select * from customer;
【テストアプリを作る】
import java.sql.*;
class DbTest {
public static void main(String[] args) {
int id;
String name;
try {
// JDBCドライバの登録
String driver = "com.mysql.jdbc.Driver";
// データベースの指定
String server = "localhost"; // MySQLサーバ ( IP または ホスト名 )
String dbname = "test"; // データベース名
// String url = "jdbc:mysql://" + server + "/" + dbname + "?useUnicode=true&characterEncoding=EUC_JP";
String url = "jdbc:mysql://" + server + "/" + dbname;
String user = "takahab"; // データベース作成ユーザ名
String password = "himitsu"; // データベース作成ユーザパスワード
Class.forName (driver);
// データベース接続
System.out.println( url );
Connection con = DriverManager.getConnection(url, user, password);
// テーブル照会
Statement stmt = con.createStatement ();
String sql = "SELECT * FROM test.customer";
ResultSet rs = stmt.executeQuery (sql);
// テーブル出力
while(rs.next()){
id = rs.getInt("num");
name = rs.getString("name");
System.out.println("ID:" + id);
System.out.println("名前:" + name);
}
// データベースクローズ
rs.close();
stmt.close();
con.close();
} catch (SQLException e) {
System.err.println("SQL failed.");
e.printStackTrace ();
} catch (ClassNotFoundException ex) {
ex.printStackTrace ();
}
}
}
【環境】
mysqlをダウンロード
http://dev.mysql.com/downloads/connector/j/
cd ~/sample
mkdir lib
cd lib
ln -s ../mysql-connector-java-5.1.25/mysql-connector-java-5.1.25-bin.jar mysql-connector-java-5.1.25.jar
ln -s ../mysql-connector-java-5.1.25/mysql-connector-java-5.1.25-bin.jar mysql-connector-java.jar
ln -s ../mysql-connector-java-5.1.25/mysql-connector-java-5.1.25-bin.jar mysql.jar
cd ..
javac DbTest.java
java -cp ./lib/mysql.jar:. DbTest
2013年7月8日月曜日
Mysqlをインストールしてみた。
apt-get install mysql-server
apt-get install mysql-cliant
apt-get install libmysql-java
sudo mysq
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
apt-get install mysql-cliant
apt-get install libmysql-java
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 38
Server version: 5.5.31-0ubuntu0.13.04.1 (Ubuntu)
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.00 sec)
mysql>
mySQLの再起動
sudo /etc/init.d/mysql restart
※テストDBを作ってみる。
drop database test;
create database test;
use test;
CREATE TABLE 顧客マスタ (
顧客ID INTEGER NOT NULL,
顧客名 VARCHAR(20) NOT NULL,
連絡先 VARCHAR(20) NOT NULL,
CONSTRAINT pk_kokyaku PRIMARY KEY (顧客ID)
);
INSERT INTO 顧客マスタ (顧客ID, 顧客名, 連絡先) VALUES (1, 'aaaaaaaa', '090-0123-4001');
INSERT INTO 顧客マスタ (顧客ID, 顧客名, 連絡先) VALUES (2, 'bbbbbbbb', '090-0123-4002');
INSERT INTO 顧客マスタ (顧客ID, 顧客名, 連絡先) VALUES (3, 'cccccccc', '090-0123-4003');
select * from 顧客マスタ;
mysql>
※内蔵サンプルをみる。
mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
| db |
| event |
| func |
| general_log |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| host |
| ndb_binlog_index |
| plugin |
| proc |
| procs_priv |
| proxies_priv |
| servers |
| slow_log |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| user |
+---------------------------+
24 rows in set (0.00 sec)
※CentOSにもインストールしてみた。
mySQLの再起動
sudo /etc/init.d/mysql restart
※テストDBを作ってみる。
drop database test;
create database test;
use test;
CREATE TABLE 顧客マスタ (
顧客ID INTEGER NOT NULL,
顧客名 VARCHAR(20) NOT NULL,
連絡先 VARCHAR(20) NOT NULL,
CONSTRAINT pk_kokyaku PRIMARY KEY (顧客ID)
);
INSERT INTO 顧客マスタ (顧客ID, 顧客名, 連絡先) VALUES (1, 'aaaaaaaa', '090-0123-4001');
INSERT INTO 顧客マスタ (顧客ID, 顧客名, 連絡先) VALUES (2, 'bbbbbbbb', '090-0123-4002');
INSERT INTO 顧客マスタ (顧客ID, 顧客名, 連絡先) VALUES (3, 'cccccccc', '090-0123-4003');
select * from 顧客マスタ;
mysql>
※内蔵サンプルをみる。
mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
| db |
| event |
| func |
| general_log |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| host |
| ndb_binlog_index |
| plugin |
| proc |
| procs_priv |
| proxies_priv |
| servers |
| slow_log |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| user |
+---------------------------+
24 rows in set (0.00 sec)
※CentOSにもインストールしてみた。
# yum -y install mysql-server
# /etc/init.d/mysqld start # chkconfig mysqld on # chkconfig --list mysqld
eclipseをvi風に使う。
ヘルプ→新規ソフトウェアのインストール
Vrapper - http://vrapper.sourceforge.net/update-site/stable
ウィンドウ→設定→一般→キー
スキーム Vim's key bindings
こりゃ便利だ、感激!!!!
Vrapper - http://vrapper.sourceforge.net/update-site/stable
ウィンドウ→設定→一般→キー
スキーム Vim's key bindings
こりゃ便利だ、感激!!!!
tamcat7とjenkinsのポートを変更。
eclipseと同居させる為にポートを変更した。
vi /etc/tomcat/server.xml
<!-- Define a non-SSL HTTP/1.1 Connector on port 8081 by takahab -->
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="8443" />
# port for HTTP connector (default 8080; disable with -1)
# change port 8080 to 8081 by takahab
HTTP_PORT=8081
vi /etc/tomcat/server.xml
<!-- Define a non-SSL HTTP/1.1 Connector on port 8081 by takahab -->
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="8443" />
<!-- <Server port="8005" shutdown="SHUTDOWN"> change 8005 to 8006 by takahab -->
<Server port="8006" shutdown="SHUTDOWN">
vi /etc/dafault/jenkins<Server port="8006" shutdown="SHUTDOWN">
# port for HTTP connector (default 8080; disable with -1)
# change port 8080 to 8081 by takahab
HTTP_PORT=8081
2013年7月5日金曜日
ubuntu にtomcat7 を入れてみた。
sudo apt-get install tomcat7
sudo apt-get install tomcat7-docs
apt-get install tomcat7-examples
apt-get install tomcat7-admin
vi /etc/tomcat7/tomcat-users.xml
<tomcat-users>
<role rolename="takahab"/>
<user username="takahab" password="xxxxxxxx" roles="manager-gui"/>
</tomcat-users>
http://localhost:8080
ROOT:/var/lib/tomcat7/webapps/ROOT
sudo apt-get install tomcat7-docs
apt-get install tomcat7-examples
apt-get install tomcat7-admin
vi /etc/tomcat7/tomcat-users.xml
<tomcat-users>
<role rolename="takahab"/>
<user username="takahab" password="xxxxxxxx" roles="manager-gui"/>
</tomcat-users>
http://localhost:8080
ROOT:/var/lib/tomcat7/webapps/ROOT
万歳!!
ついでに
apt-get insatall jenkins
ln -s /usr/share/jenkins/jenkins.war /var/lib/tomcat7/webapps/jenkins.war
vi /var/lib/tomcat7/webapps/jenkins/WEB-INF/web.xml
<env-entry>
<env-entry-name>JENKINS_HOME</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>/var/lib/tomcat7/webapps/jenkins</env-entry-value>
</env-entry>
ついでに
apt-get insatall jenkins
ln -s /usr/share/jenkins/jenkins.war /var/lib/tomcat7/webapps/jenkins.war
vi /var/lib/tomcat7/webapps/jenkins/WEB-INF/web.xml
<env-entry>
<env-entry-name>JENKINS_HOME</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>/var/lib/tomcat7/webapps/jenkins</env-entry-value>
</env-entry>
eclipseを最新にしたらAndroid SDKとAVDマネージャが消えた。
ウインドウ→パースペクティブのカスタマイズ→コマンド・グループ可用性を選択して、
Android SDKおよびAVDマネージャーをON
Android SDKおよびAVDマネージャーをON
2013年7月4日木曜日
ubuntu 13.04にソフト更新したらVmplayerが動かなくなった。
ソフト更新したら、カーネルコンパイルが必要とでるが、installをクリックしてもコンパイルされない。
$ uname -r
3.8.0-26-generic
$ sudo ln -s /usr/src/linux-headers-3.8.0-26-generic/include/generated/uapi/linux/version.h /usr/src/linux-headers-3.8.0-26-generic/include/linux/version.h
$ sudo vmware-modconfig --console --install-all
$ uname -r
3.8.0-26-generic
$ sudo ln -s /usr/src/linux-headers-3.8.0-26-generic/include/generated/uapi/linux/version.h /usr/src/linux-headers-3.8.0-26-generic/include/linux/version.h
$ sudo vmware-modconfig --console --install-all
で解決。
2013年7月2日火曜日
wireshark root 起動でエラーがでる。
Lua:Error during loading:[string "/usr/share/wireshark/init.lua":45:dofile as been disaled
sudo chgrp adm /usr/bin/dumpcap
sudo chmod 750 /usr/bin/dumpcap
sudo setcat cap_net_raw,cap_net_admin+eip /usr/bin/dumpcap
ubuntu13.04をインストールしたところgrubがインストールされなかった。
13.04インストールディスクで立ち上げて、
$ sudo mount /dev/sda3 /mnt
$ sudo grub-install --root-directory=/mnt /dev/sda
$ sudo umount /mnt
登録:
投稿 (Atom)
zabbix7 amazon linux2023 インストール postgres15
【postgres】 dnf -y install postgresql15-server postgresql15-server-devel postgresql-setup initdb passwd postgres vi `find / -name pg_hba.con...
-
# mount /dev/nvme0n1p3 /mnt/m2 mount: /mnt/m2: 未知のファイルシステムタイプ 'LVM2_member' です. # fdisk -l /dev/nvme0n1 ディスク /dev/nvme0n1: 953....
-
【snmp/snmptrap】 # yum -y install net-snmp # yum -y install net-snmp-utils # yum -y install snmptt # yum install perl-Sys-Syslog # fi...
-
※Status code: 404 for https://dlm.mariadb.com/repo/mariadb-server/10.7.... → Ver.10 サポート切れ!! # dnf remove MareaDB-client # curl -sS https:...