Ubuntu 24.04
Sponsored Link

Apache2 : mod_perl कॉन्फ़िगर करें2024/05/31

 

पर्ल स्क्रिप्ट को तेज़ बनाने के लिए [mod_perl] स्थापित करें।

[1] [mod_perl] स्थापित करें।
root@www:~#
apt -y install libapache2-mod-perl2
[2] [PerlRun] मोड कॉन्फ़िगर करें जो हमेशा Perl इंटरप्रेटर को RAM पर रखता है।
root@www:~#
vi /etc/apache2/conf-available/mod_perl.conf
# नया निर्माण
# उदाहरण के लिए, "/var/www/perl" के अंतर्गत PerlRun मोड सेट करें

PerlSwitches -w
PerlSwitches -T

Alias /perl /var/www/perl
<Directory /var/www/perl>
    AddHandler perl-script .cgi .pl
    PerlResponseHandler ModPerl::PerlRun
    PerlOptions +ParseHeaders
    Options +ExecCGI
</Directory>

<Location /perl-status>
    SetHandler perl-script
    PerlResponseHandler Apache2::Status
    Require ip 127.0.0.1 10.0.0.0/24
</Location>

root@www:~#
a2enconf mod_perl

Enabling conf mod_perl.
To activate the new configuration, you need to run:
  systemctl reload apache2

root@www:~#
a2enmod cgid

Enabling module cgid.
To activate the new configuration, you need to run:
  systemctl restart apache2

root@www:~#
systemctl restart apache2
[3] यह सुनिश्चित करने के लिए कि सेटिंग्स में कोई समस्या नहीं है, एक परीक्षण स्क्रिप्ट बनाएँ। यदि निम्न जैसा परिणाम प्रदर्शित होता है तो यह ठीक है।
root@www:~#
mkdir /var/www/perl

root@www:~#
vi /var/www/perl/test-mod_perl.cgi
#!/usr/bin/perl

use strict;
use warnings;

print "Content-type: text/html\n\n";

my $a = 0;
&number();

sub number {
    $a++;
    print "number \$a = $a \n";
}

root@www:~#
chmod 705 /var/www/perl/test-mod_perl.cgi

root@www:~#
curl localhost/perl/test-mod_perl.cgi

number $a = 1
[4] [रजिस्ट्री] मोड कॉन्फ़िगर करें जिसमें RAM पर निष्पादित कोडों का कैश होता है।
root@www:~#
vi /etc/apache2/conf-enabled/mod_perl.conf
Alias /perl /var/www/perl
<Directory /var/www/perl>
    AddHandler perl-script .cgi .pl
    # PerlRun मोड पर टिप्पणी करें और रजिस्ट्री मोड को इस प्रकार जोड़ें
    #PerlResponseHandler ModPerl::PerlRun
    PerlResponseHandler ModPerl::Registry
    PerlOptions +ParseHeaders
    Options +ExecCGI
</Directory>

root@www:~#
systemctl reload apache2
[5] परीक्षण स्क्रिप्ट तक पहुँच जो [3] अनुभाग का एक उदाहरण है, फिर चर को पुनः लोड करके बढ़ाया जाता है क्योंकि चर RAM पर कैश किया जाता है। इसलिए रजिस्ट्री मोड के लिए कोड को संपादित करना आवश्यक है।
root@www:~#
curl localhost/perl/test-mod_perl.cgi

number $a = 1
root@www:~#
curl localhost/perl/test-mod_perl.cgi

number $a = 2
root@www:~#
curl localhost/perl/test-mod_perl.cgi

number $a = 3
root@www:~#
vi /var/www/perl/test-mod_perl.cgi
#!/usr/bin/perl

use strict;
use warnings;

print "Content-type: text/html\n\n";

my $a = 0;
&number($a);

sub number {
    my($a) = @_;
    $a++;
    print "number \$a = $a \n";
}

root@www:~#
curl localhost/perl/test-mod_perl.cgi

number $a = 1
root@www:~#
curl localhost/perl/test-mod_perl.cgi

number $a = 1
root@www:~#
curl localhost/perl/test-mod_perl.cgi

number $a = 1
[6] वैसे, [(आपका होस्टनाम या आईपी पता)/perl-status] तक पहुंच के लिए [mod_perl] की स्थिति देखना संभव है।
मिलान सामग्री