installing mod_security2.so on apache2.2.21 - apache

I installed apache2.2.21 and I need this specific version, I'm trying to load mod_security2.
The apache server is 32bits and is running on windows 8 64bits.
I did everything possible to get the job done, but I couldn't, can anyone help me?
I put mod_security.so in modules directory, and edited httpd.conf file to load the module but when trying to start the server, it gives me this message:
httpd.exe: Syntax error on line 126 of C:/Apache2.2.21/conf/httpd.conf: Cannot load C:/Apache2.2.21/modules/mod_security2.so into server: The specified module could not be found.

Related

How do I compile Tomcat mod_jk on a MacBook Pro M1 chip?

I have Homebrew Apache installed and trying to connect Coldfusion Server 2016 with Tomcat mod_jk.
I downloaded the source code from https://tomcat.apache.org/download-connectors.cgi
I followed the directions to compile it, tried few different ways, but when I get to the "make" command, I keep getting the same error:
In file included from jk_ajp12_worker.c:26:
In file included from ./jk_ajp12_worker.h:26:
In file included from ./jk_logger.h:26:
In file included from ./jk_global.h:340:
./jk_types.h:56:2: error: Can not determine the proper size for pid_t
#error Can not determine the proper size for pid_t
^
./jk_types.h:62:2: error: Can not determine the proper size for pthread_t
#error Can not determine the proper size for pthread_t
^
2 errors generated.
make[1]: *** [jk_ajp12_worker.lo] Error 1
make: *** [all-recursive] Error 1
These are the different commands I've tried to compile:
./configure --with-apxs=/opt/homebrew/bin/apxs
./configure CFLAGS='-arch arm64e' APXSLDFLAGS='-arch arm64e' --with-apxs=/opt/homebrew/bin/apxs
./configure CFLAGS='-arch arm64e' APXSLDFLAGS='-arch arm64e' --with-apxs=/opt/homebrew/bin/apxs --host=arm
I recently got this new MacBook Pro 16" and migrated everything over from my 2017 MacBook Pro (Intel chip). I was running stock Apache with Coldfusion Server 2016, but when I tried to start up Apache on the new MacBook, it didn't like my mod_jk.so file and threw an error:
httpd: Syntax error on line 542 of /opt/homebrew/etc/httpd/httpd.conf: Syntax error on line 2 of /opt/homebrew/etc/httpd/mod_jk.conf:
Cannot load /Applications/ColdFusion2016/config/wsconfig/2/mod_jk.so into server: dlopen(/Applications/ColdFusion2016/config/wsconfig/2/mod_jk.so, 0x000A):
tried: '/Applications/ColdFusion2016/config/wsconfig/2/mod_jk.so'
(mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e'))
I appreciate any help or input. Thank you.
I've finally installed Apache2 with Tomcat on my M1 and it all works.
The one thing you must do is to install a fresh Apache from Macports or HomeBrew. This is because most old installations copied from your old mac to your new one will now be in the read-only part of your file system and SIP won't let you near them. You will find weird and wonderful workarounds (apachectl told me I had to codesign mod_jk.so for example and I wasted a lot of time doing it and in the end it was pointless) and you will attempt to get the old installation to work, but trust me it's not worth it.
You will need to compile a fresh jk_module (mod_jk.so). This is what I did:
Download latest connector https://dlcdn.apache.org/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.48-src.tar.gz, save the .gz and unzip it.
Change directory to the native folder.
run which apxs to tell you the path to apxs for the ./configure command
The path mine gave was: /opt/local/bin/apxs. Use it as the path in the ./configure command below.
The commands are as follows (actually don't bother running them yet because they will fail):
./configure --with-apxs=/opt/local/bin/apxs
make
However make will fail with:
./jk_types.h:56:2: error: Can not determine the proper size for pid_t
#error Can not determine the proper size for pid_t
^
./jk_types.h:62:2: error: Can not determine the proper size for pthread_t
#error Can not determine the proper size for pthread_t
^
2 errors generated.
make[1]: *** [jk_ajp12_worker.lo] Error 1
make: *** [all-recursive] Error 1
This is a problem for M1 macs that has been fixed. So for the moment we will abandon the 1.2.48 source and download the source with the fix.
But don't delete the 1.2.48 source because the fix source is missing a few files which you will copy straight over from the 1.2.48 source.
The page to download the fix for Mac OS is here: https://github.com/apache/tomcat-connectors, which is commit e719874 on Jun 30, 2021.
Click on the green 'Code' button and then on 'Download ZIP'.
Unzip the new source and cd to 'native'
Run the commands:
./configure --with-apxs=/opt/local/bin/apxs
make
And whenever it stops and complains that something is missing, find it in the 1.2.48 source and copy it over to the same position in the new source and try again. It will happen two or three times.
I got this error at one point:
/home/myuser/source/mod_auth_cas/mod_auth_cas/missing: line 81: aclocal-1.15: command not found
WARNING: 'aclocal-1.15' is missing on your system.
You should only need it if you modified 'acinclude.m4' or
'configure.ac' or m4 files included by 'configure.ac'.
The 'aclocal' program is part of the GNU Automake package:
<http://www.gnu.org/software/automake>
It also requires GNU Autoconf, GNU m4 and Perl in order to run:
<http://www.gnu.org/software/autoconf>
<http://www.gnu.org/software/m4/>
<http://www.perl.org/>
make: *** [aclocal.m4] Error 127
Then I read somewhere to run autoreconf -f -i (which fixed it).
When make finishes, find your nice new mod_jk.so file in the native/apache-2.0 folder and copy it to where all your other modules are. I have a Macports installation so Homebrew is probably different, but my modules are in /opt/local/lib/apache2/modules.
Don't forget to add the LoadModule line in httpd.conf if it isn't already there:
LoadModule jk_module /opt/local/lib/apache2/modules/mod_jk.so
You might have some trouble working out which apache2 folders contain the new install, and not an old installation - I found two other installations knocking about trying to confuse me.
My config is here: /opt/local/etc/apache2/httpd.conf
apachectl is very useful for configuration.
apachectl -t -D DUMP_INCLUDES will find all the configuration files it is using. This totally saved me because it showed me that my httpd.conf file, which I had copied from elsewhere, was still pointing via 'Include' commands at other old config files in the wrong place.
apachectl configtest will test your config for you and print out any mistakes it finds. It pointed at 4 modules that it didn't like so I just excluded them. Though obviously read the messages carefully and google if you are not sure why apachectl doesn't like something. If it replies 'Syntax OK' you are ready to go.
This is a mysterious message I got a lot until I worked out that it was because httpd.conf was pointing at the wrong modules folder (an old install of apache2) for each module, so it was loading stuff that presumably was not compiled for 64bit
httpd: Syntax error on line 76 of /opt/local/etc/apache2/httpd.conf:
Cannot load libexec/apache2/mod_authz_owner.so into server:
dlopen(/usr/libexec/apache2/mod_authz_owner.so, 0x000A): symbol not
found in flat namespace '_apr_stat$INODE64'
This is my launch command using the plist which Macports automatically created:
sudo launchctl load -w /opt/local/etc/LaunchDaemons/org.macports.apache2/org.macports.apache2.plist
And to unload:
sudo launchctl unload /opt/local/etc/LaunchDaemons/org.macports.apache2/org.macports.apache2.plist
run ps ax|grep httpd to see if it's running.
Logging: Don't forget to sudo to create the jk folder in /var/log/apache2 if it doesn't already exist, otherwise apache or tomcat will have mysterious problems or won't start or something (the /var/log/apache2/jk folder is needed for jk.log).
Another problem cropped up just as I thought I had it made: apache
was unable to write its pid file on startup. Again this was because the position set in my config for the pid file was from the configuration on my old mac, and the position chosen was in a read-only location.
To change this you need to set the PidFile parameter, which I found in the following file:
/opt/local/etc/apache2/extra/httpd-mpm.conf
and it looks like this:
# PidFile: The file in which the server should record its process
# identification number when it starts.
#
# Note that this is the default PidFile for most MPMs.
#
<IfModule !mpm_netware_module>
PidFile "local/run/apache2/httpd.pid"
</IfModule>
Don't worry about what the IfModule thing is doing, just set the PidFile to a writeable location, which as you can see is a relative path. You may be wondering what goes in front of the local folder.
What goes in front is the ServerRoot parameter set in httpd.conf:
ServerRoot "/usr"
So my pid will be written at /usr/local/run/apache2/httpd.pid. I had to create the run and apache2 folders.
That's about it. There are various logs that might indicate errors if you are stuck:
/var/log/apache2/error_log
And the jk.log for the apache/tomcat connector:
/var/log/apache2/jk/jk.log
And there's always the system log which just might tell you something:
/var/log/system.log
I hope very much that this helps someone. However it was very long and complicated and I have surely missed something that I did along the way, so if you come across some new problem I will see if I can help.
Running ColdFusion on a Mac is consistently a PITA. Doesn't matter if it's CF 9, 10, 11, all the way to current. Especially when you're dealing with a non-Intel based chipset. You are also trying to get an older and custom build of Toncat running on a chipset that likely isn't supported. You're also not the only one having this issue with CF 2016 on the M1 chip (they didn't find a solution either).
Try using CommandBox to run CF. It will download the server as a JAR file and run it on the Glassfish servlet container (IIRC). You won't need Apache either. It's really quite simple to get up and running.
https://commandbox.ortusbooks.com/embedded-server/multi-engine-support
Once you have it installed, go to your application's root folder in the CLI:
start cfengine=adobe#2016
It will download & install the server, then start the application.
Check the docs for more info.

Cannot load /modules/mod_dav_svn.so into server

I'm getting a wired error when loading Apache (Win 2016 STD, Apache/2.4.29 x86, OpenSSL/1.0.2n SVN/1.9.2)
i.e.
"Syntax error on line ... of .../conf/httpd.conf:
Cannot load ...modules/mod_dav_svn.so into server: (...) The specified module could not be found:"
The file is in the conf file properly: "LoadModule dav_svn_module modules/mod_dav_svn.so"
The file exists in the "modules" folder.
Although Apache reports a syntax error, it is not because other modules are loaded just fine with the same syntax.
Other file also has this problem: "mod_authz_svn.so".
Prerequisites are loaded before this module successfully (mod_dav.so, mod_dav_fs.so).
The best part: in my lab it is working just fine but in the customer's machine (same OS mentioned), something is not working properly.
I really need any help you can give me here...
mod_dav_svn.so is from subversion server - so it does not come with apache and has to be added. If you have - then to problem might be that a visual c++ runtime of another version is required. To find out you could try a tool like dependecy walker.
When all missing dependencies are installed on the system your apache should start.

Unable to start Apache on Ubuntu 14.04

After years of giving no trouble, my connection to localhost has stopped working. When I enter:-
http://localhost/phpinfo.php
the error message
This webpage is not available ERR_CONNECTION_REFUSED
is returned. I then attempt to restart apache, thus:-
sudo service apache2 restart
This produces the following error message:-
apache2: Syntax error on line 210 of /etc/apache2/apache2.conf:
Syntax error on line 1 of /etc/apache2/mods-enabled/log_sql.load:
Cannot load /usr/lib/apache2/modules/mod_log_sql.so into server: /usr/lib/apache2/modules/mod_log_sql.so:
undefined symbol: ap_log_error_
Action 'configtest' failed.
The Apache error log may have more information.
...fail!
The line of apache2.conf causing the issue is here:-
Include mods-enabled/*.load
and in log_sql.load:-
LoadModule log_sql_module /usr/lib/apache2/modules/mod_log_sql.so
The file mod_log_sql.so exists.
I have check the error log and it doesn't contain anything (i.e. has no bytes in it). Does anyone know what the matter is, and how I can fix it?
The apache configuration is a LAMP stack straight out of the tin. I haven't (to the best of my knowledge) done anything to even tweak it, and it has been going nicely for some years.
This question is related but has a different error message. This fellow here appears to have a related problem.
My guess: the module mod_log_sql.so has been compiled for a different version of Apache, so it can't be loaded.
Are any of mod_log_sql.so or Apache installed manually (i.e., not from the Ubuntu repository)? You can search if mod_log_sql.so has been installed from a package using:
dpkg -S /usr/lib/apache2/modules/mod_log_sql.so
It is not clear why this has to be a "syntax error" though...

Server compilation error on some pages apache mono

We have a .net web application running in fedora 6 under Apache & mono 1.1.18 version. So long it was working good. Suddenly I'm getting the following Server Error in some of the pages,
Server Error in '/' Application
Compilation Error
Description: Error compiling a resource required to service this request. Review your source file and modify it to fix this error.
Error message:
(0,0) : error CS0006: Cannot find assembly `/tmp/apache-temp-aspnet-0/383ed40f/shadow-J7sRQf'
But please note, rest of the pages are loading properly. I know it has something to do with JIT compilation, but why it is happening on some specific pages. Also the error 'Cannot find assembly -----/shadow-J7sRQf' is something suspicious. The same error is displayed across all the browsers all the time.
I have not restarted apache or rebooted the system, as I'm not sure whether this error will occur again and i want to root cause it instead of just ignoring it. i didn't find anything on the httpd log also. I tried to Google it, but was unlucky to find anything specific. Can anyone help me on this? thanks in advance.
Wow, mono 1.1.18 is really old!
If I were you, I would try to stop apache and clean everything in the temporary compilation directory /tmp/apache-temp-aspnet-0/
This should force mono to re-generate everything in this directory.
Then, restart apache and see if it helps.

unresolved warning message when running php script: file_get_contents(): Unable to find the wrapper "https"

I am running php 5.2.17 on windows 7
php is running through the command line and not on a server.
I was getting the following error message
C:\java\newsweaver-api-v2\simple>php list-tags.php
Notice: file_get_contents(): Unable to find the wrapper "https" - did you forget
to enable it when you configured PHP? in C:\java\newsweaver-api-v2\simple\list-
tags.php on line 30
so I downloaded OpenSSL windows binaries
http://www.slproweb.com/products/Win32OpenSSL.html
And I downloaded Microsoft Visual C++ 2008 Redistributable Package (x86)
http://www.microsoft.com/downloads/en/confirmation.aspx?familyid=9B2DA534-3E03-4391-8A4D-074B9F2BC1BF&displaylang=en
I read elsewhere that I needed to change ;extension=php_openssl.dll to extension=php_openssl.dll in my php.ini file put my php file does not contain
;extension=php_openssl.dll
I tried running the php file again after making these changes and I am getting the same error msg.
Notice: file_get_contents(): Unable to find the wrapper "https" - did you forget
to enable it when you configured PHP?
Any help greatly appreciated!
Have you tried this?
How to get file_get_contents() to work with HTTPS?