# apache won't update (apache-2.2.22_5 to apache22-worker-mpm-2.2.22_8)



## Lido (Sep 12, 2012)

I unmarked CGI and marked CGID via make config in the apache22 port directory. Same error. I've spent a few hours searching, uninstalling apache22, installing apache22-worker-mpm but no luck. Anyone know what to do here?


```
===>>> Launching child to update apache-2.2.22_5 to apache22-worker-mpm-2.2.22_8

===>>> All >> apache-2.2.22_5 (7/7)

===>>> Currently installed version: apache-2.2.22_5
===>>> Port directory: /usr/ports/www/apache22

        ===>>> This port is marked IGNORE
        ===>>> When using a multi-threaded MPM, the module CGID should be used in place CGI.
               Please de-select CGI and select CGID instead.
               See http://httpd.apache.org/docs/2.2/mod/mod_cgi.html


        ===>>> If you are sure you can build it, remove the
               IGNORE line in the Makefile and try again.

===>>> Update for apache-2.2.22_5 failed
===>>> Aborting update
```


----------



## Lido (Sep 12, 2012)

portmaster seems to be able to update apache22, but then when I run: 
	
	



```
portmaster -L --index-only| egrep '(ew|ort) version|total install'
```
 it still says I need to update apache22. Then if I try 
	
	



```
portmaster -ad --delete-packages
```
 it fails with the message listed in my first message.


----------



## mamalos (Sep 13, 2012)

Lido said:
			
		

> ```
> ===>>> This port is marked IGNORE
> ===>>> When using a multi-threaded MPM, the module CGID should be used in place CGI.
> Please de-select CGI and select CGID instead.
> ...



As the error message says, you can continue building your apache22 port if you remove the IGNORE line from the Makefile. However, you should take note to what the message warns you with respect to CGI and CGID.


----------



## Lido (Sep 13, 2012)

Ok, thanks. I was wondering. So the port apache22-mpm-worker is what is actually being used, and apache22 is being ignored? I've tried uninstalling apache22, since I've got mpm-worker installed, but that doesn't seem to work for some reason.


----------



## mamalos (Sep 14, 2012)

Try:

`# pkg_delete -f apache\*`

But check if you have anything else installed that starts with the same prefix (apache) before you run the above command.

To see if something else is installed containing the same string, give:

`$ pkg_info -Ix apache`

Which at some moment @wblock advised me to use )), instead of:

`$ ls /var/db/pkg | grep -i apache`


----------



## freethread (Sep 14, 2012)

mamalos said:
			
		

> To see if something else is installed containing the same string, give:
> 
> `$ pkg_info -Ix apache`
> 
> ...



I also use the following command that give the port name of packages, in this specific case the command is

`# pkg_info -q -o 'apache*'`

to list all packages installed on the system giving the port name

`# pkg_info -q -o '*' | sort -f | less`


----------



## ohauer (Sep 15, 2012)

Lido said:
			
		

> I unmarked CGI and marked CGID via make config in the apache22 port directory. Same error. I've spent a few hours searching, uninstalling apache22, installing apache22-worker-mpm but no luck. Anyone know what to do here?



With the old framework CGI was silently disabled if MPM worker or event was chosen.
With the new option framework it's not possible to disable an option at the time where the CGI/CGID check is done, therefore the ports cannot share the same OPTIONSFILE.

Try the following:
Configure inside the apache22-worker-mpm directory, not from the apache22 directory.
If you get an error remove the line apache22_(UN|SET)+=CGI (not the CGID) from /var/db/ports/apache22-worker-mpm/options.


----------



## Lido (Sep 15, 2012)

Thanks. So is this a bug in the port? It's telling me that apache needs to be updated, but when I update apache22 with portmaster, it just re-installs apache22-worker-mpm and leaves apache22 at 2.2.22_5 so then portmaster or portupgrade both tell me that apache22 is out of date. I've got both installed,

```
# pkg_info -q -o 'apache*'
www/apache22
www/apache22-worker-mpm
```
..but deinstalling apach22 doesn't seem to work. I can't even figure out how to go back to prefork mpm. If I deinstall apache22-worker-mpm, I still can't install apache22 because it give the cgid vs cgi error because I'm using worker-mpm (_after_ deinstalling the worker-mpm port).


----------



## ohauer (Sep 16, 2012)

Have you build apache in the past with WITH_MPM=worker ?
If yes , there was a regression since the package name was recorded as apache22 instead apache22-worker-mpm. This is fixed now for usage with pkg.

I've seen to much issues from portupgrade and others, please do a manual de-install of both recorded apache ports. Then go directly into the directory of the port you want to install www/apache22 or www/apache22-worker-mpm and do a manual `# make clean config`
`# make install`

Try first to deinstall apache22-worker-mpm and the a forced deinstall of apache22 or the other way around.


----------



## Lido (Sep 17, 2012)

I deinstalled both, then reinstalled worker-mpm with this command:

```
make clean config
make install
```
but I'm still getting the same error:

```
# portmaster -ad --delete-packages
===>>> Gathering distinfo list for installed ports

===>>> Starting check of installed ports for available updates
===>>> Launching child to update apache-2.2.22_5 to apache22-worker-mpm-2.2.22_8

===>>> All >> apache-2.2.22_5 (1/1)

===>>> Currently installed version: apache-2.2.22_5
===>>> Port directory: /usr/ports/www/apache22

        ===>>> This port is marked IGNORE
        ===>>> When using a multi-threaded MPM, the module CGID should be used in place CGI.
               Please de-select CGI and select CGID instead.
               See http://httpd.apache.org/docs/2.2/mod/mod_cgi.html


        ===>>> If you are sure you can build it, remove the
               IGNORE line in the Makefile and try again.

===>>> Update for apache-2.2.22_5 failed
===>>> Aborting update

Terminated
```


----------



## ohauer (Sep 17, 2012)

The error message is right, MPM worker and event are threaded versions and they do not work with CGI, they have to use CGID.
The apache port (default prefork) is not threaded and should use CGI instead CGID.

I'm not sure what portmaster has recored in the database and why it wants to update apache22 if you have installed apache22-worker-mpm.
Maybe this command helps `# portmaster -o www/apache22 www/apache22-worker-mpm`


----------



## Lido (Sep 17, 2012)

Thanks, but it makes no difference if I config apache22 to use cgid instead of cgi, it still gives this same error. Also if I update apache individually, it just updates worker-mpm and leaves the old apache22 in the same state (outdated).


----------



## wmoreno3 (Sep 21, 2012)

*I have the same problem, but apache runs fine ...*


```
server# pkg_info -Ix apache
apache22-worker-mpm-2.2.22_8 Version 2.2.x of Apache web server with worker MPM.
```


```
server# cat /var/log/portmanager.log
========================================================================
portmanager 0.4.1_9
FreeBSD host.mydomain.com 9.0-RELEASE-p3 FreeBSD 9.0-RELEASE-p3 #0: Tue Jun 12 02:52:29 UTC 2012
    root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC  amd64
Thu Sep 20 17:42:50 2012
 apache22-worker-mpm-2.2.22_8        /www/apache22
     marked                             IGNORE                               port not installed/updated

Thu Sep 20 17:45:02 2012
 portmanager                         0.4.1_9
    ports are up to date

Thu Sep 20 17:45:02 2012
 end of log
```


----------



## Lido (Sep 21, 2012)

I was actually able to resolve the issue by a force pkg_delete. Then I reinstalled worker-mpm and ended up deciding to go back to apache22 with prefork since I've just got a core2 duo processor and I'm using php (two things I've read that make the worker-mpm advantage minimal or non-existent - though that could be wrong, there isn't a ton of info about that on freebsd that I've found out there).


----------

