2024年10月25日 星期五

Execute Perl WEB CGI in Oracle Linux 9


dnf install oracle-epel-release-el9.x86_64

dnf install  mod_perl

dnf install  perl-CGI perl-CPAN perl-HTTP-Tiny.noarch perl-JSON perl-Encode.x86_64 


vi /etc/httd/conf.d/perl.conf


#PerlModule ModPerl::Registry

##PerlModule ModPerl::PerlRun


Alias /cgi /var/www/html/cgi

<Directory /var/www/html/cgi>

    #SetHandler perl-script

    AddHandler perl-script .pl

    AddHandler perl-script .cgi

    PerlResponseHandler ModPerl::Registry

    ## PerlResponseHandler ModPerl::PerlRun

    PerlOptions +ParseHeaders

    Options +ExecCGI

    Order allow,deny

    Allow from all

</Directory>


systemctl restart httpd 


Test reference


https://hostingultraso.com/help/centos/implementing-cgi-perl-ruby-centos

Creating your first Perl CGI script

Now create the following Perl CGI script file by opening the new file vi /var/www/cgi-bin/perl-test.cgi and putting in the following content:
#!/usr/bin/perl
use strict;
use warnings;
use CGI qw(:standard);
print header;
my $now = localtime;
print start_html(-title=>'Server time via Perl CGI'),
h1('Time'), p("The time is $now"),
end_html;



https://www.geeksforgeeks.org/perl-get-vs-post-in-cgi/


Example:

<html> 
<head></head> 
<body> 
<b> Search Your Query:</b><br> 
<FORM action="Gfg_get.pl" method = "GET"> 
<input type="text" name="q" size="20" maxlength="120"> 
<input type="submit" value="Search"><br> 
<input type="radio" name="l" value="Web" checked>Web 
<input type="radio" name="l" value="India">IND 
</FORM> 
</body> 
</html> 




Perl-CGI script for the above GET method form:


#!"c:\xampp\perl\bin\perl.exe" 
    
$buffer = $ENV{'QUERY_STRING'}; 
#split information into key/value pairs 
@pairs = split(/&/, $buffer); 
foreach $pair (@pairs)  
    ($name, $value) = split(/=/, $pair); 
    $value =~ tr/+/ /; 
    $value =~ s/%([a-fA-F0-9] [a-fA-F0-9])/pack("C", hex($1))/eg; 
    $value =~ s/~!/ ~!/g; 
    $FORM{$name} = $value; 
  
$SearchTerm = $FORM{'q'}; 
$Location = $FORM{'l'}; 
  
print "Content-type:text/html\r\n\r\n"; 
print "<html>"; 
print "<head>"; 
print "<title>GeeksForGeeks - Get Method</title>"; 
print "</head>"; 
print "<body>"; 
print "<h3>Hello You searched '$Location' for '$SearchTerm'<br> 
Few Matches Found!<br> 
<br> 
Match 1<br> 
Match 2<br> 
Match 3<br> 
Match 4<br> 
etc.....</h3>"; 
print "</body>"; 
print "</html>"; 
  
1; 



My LAB Test Demo








2024年10月13日 星期日

DIY 即時通訊系統(IM)以Openfire(XMPP)為例

Instant Messaging (IM)

Extensible Messaging and Presence Protocol (XMPP)

wiki 上的說明

https://zh.wikipedia.org/zh-tw/XMPP

url 在這裡可以看到一些關於 xmpp 的資訊與相關軟體

https://xmpp.org/

家中測試環境

Server Linux 安裝 openfire (openfire-4.9.0-1.noarch.rpm)

https://www.igniterealtime.org/projects/openfire/

Java 

openjdk version "11.0.24" 

Client Windows 安裝 spark (spark_3_0_2-with-jre.msi)

https://igniterealtime.org/projects/spark/

Clinet Linux 使用程式語言 Perl

參考 URL



Demo







MySQL

[root@WAZUH init.d]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 152
Server version: 10.5.22-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> CREATE DATABASE xmpp CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Query OK, 1 row affected (0.001 sec)

MariaDB [(none)]> CREATE USER 'xmpp'@'localhost' IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.003 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON xmpp.* TO 'xmpp'@'localhost';
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> 


Java

[root@WAZUH src]#  dnf install java-11-openjdk.x86_64


[root@WAZUH src]# cat /etc/environment
JAVA_HOME="/usr/lib/jvm/java-11-openjdk-11.0.24.0.8-2.0.1.el9.x86_64/"



[root@WAZUH src]# echo $JAVA_HOME
/usr/lib/jvm/java-11-openjdk-11.0.24.0.8-2.0.1.el9.x86_64/

[root@WAZUH src]# java -version 
openjdk version "11.0.24" 2024-07-16 LTS
OpenJDK Runtime Environment (Red_Hat-11.0.24.0.8-2.0.1) (build 11.0.24+8-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-11.0.24.0.8-2.0.1) (build 11.0.24+8-LTS, mixed mode, sharing)
[root@WAZUH src]# 


Openfire

[root@WAZUH bin]# rpm -ql openfire-4.9.0-1.noarch
/etc/init.d/openfire
/etc/sysconfig/openfire
/opt/openfire
/opt/openfire/LICENSE.html
/opt/openfire/README.html
/opt/openfire/bin
/opt/openfire/bin/embedded-db-viewer.sh
/opt/openfire/bin/embedded-db.rc
/opt/openfire/bin/openfire.sh
/opt/openfire/bin/openfirectl
/opt/openfire/changelog.html
/opt/openfire/conf
......


Perl


[root@WAZUH src]# dnf search net-xmpp
Last metadata expiration check: 2:22:11 ago on Sun 13 Oct 2024 10:25:38 AM CST.
================================================================================================ Name Matched: net-xmpp ================================================================================================
perl-Net-XMPP.noarch : Net::XMPP - perl XMPP library
perl-Net-XMPP.src : Net::XMPP - perl XMPP library


[root@WAZUH src]# dnf install perl-Net-XMPP
Last metadata expiration check: 2:22:28 ago on Sun 13 Oct 2024 10:25:38 AM CST.
Dependencies resolved.
========================================================================================================================================================================================================================
 Package                                                       Architecture                               Version                                          Repository                                              Size
========================================================================================================================================================================================================================
Installing:
 perl-Net-XMPP                                                 noarch                                     1.05-20.el9                                      ol9_developer_EPEL                                     154 k
Installing dependencies:
 perl-Authen-SASL                                              noarch                                     2.16-25.el9                                      ol9_appstream                                           78 k
 perl-GSSAPI                                                   x86_64                                     0.28-37.el9                                      ol9_appstream                                           74 k
 perl-HTTP-ProxyAutoConfig                                     noarch                                     0.3-27.el9                                       ol9_developer_EPEL                                      27 k
 perl-Net-DNS                                                  noarch                                     1.29-6.el9                                       ol9_appstream                                          542 k
 perl-Tie                                                      noarch                                     4.6-481.el9                                      ol9_appstream                                           41 k
 perl-XML-Stream                                               noarch                                     1.24-20.el9                                      ol9_developer_EPEL                                     108 k

Transaction Summary
========================================================================================================================================================================================================================
Install  7 Packages

Total download size: 1.0 M
Installed size: 1.8 M
Is this ok [y/N]: y

.....


Windows Client GUI




Linux Perl



Perl 程式參考