Blog coding and discussion of coding about JavaScript, PHP, CGI, general web building etc.

Friday, January 22, 2016

Problems with compiling apache2 on Mac OS X Mountain Lion

Problems with compiling apache2 on Mac OS X Mountain Lion


While trying to compile the latest version of the apache web server(2.4.3) on my Mac (10.8) I run into a problem. When I run the ./configure command I got the following output:

checking for chosen layout... Apache  checking for working mkdir -p... yes  checking for grep that handles long lines and -e... /usr/bin/grep  checking for egrep... /usr/bin/grep -E  checking build system type... x86_64-apple-darwin12.0.0  checking host system type... x86_64-apple-darwin12.0.0  checking target system type... x86_64-apple-darwin12.0.0  configure:   configure: Configuring Apache Portable Runtime library...  configure:   checking for APR... yes    setting CC to "/Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain/usr/bin/cc"    setting CPP to "/Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain/usr/bin/cc -E"    setting CFLAGS to " "    setting CPPFLAGS to " -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK"    setting LDFLAGS to " "  configure:   configure: Configuring Apache Portable Runtime Utility library...  configure:   checking for APR-util... yes  checking for gcc... /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain/usr/bin/cc  checking whether the C compiler works... no  configure: error: in `/Users/cti/Downloads/Applications/httpd-2.4.3':  configure: error: C compiler cannot create executables  See `config.log' for more details  

Here are the last few lines in the log file:

## ----------- ##  ## Core tests. ##  ## ----------- ##    configure:3056: checking for chosen layout  configure:3058: result: Apache  configure:3861: checking for working mkdir -p  configure:3877: result: yes  configure:3886: checking for grep that handles long lines and -e  configure:3944: result: /usr/bin/grep  configure:3949: checking for egrep  configure:4011: result: /usr/bin/grep -E  configure:4027: checking build system type  configure:4041: result: x86_64-apple-darwin12.0.0  configure:4061: checking host system type  configure:4074: result: x86_64-apple-darwin12.0.0  configure:4094: checking target system type  configure:4107: result: x86_64-apple-darwin12.0.0  configure:4137:   configure:4139: Configuring Apache Portable Runtime library...  configure:4141:   configure:4182: checking for APR  configure:4327: result: yes  configure:4587:   configure:4589: Configuring Apache Portable Runtime Utility library...  configure:4591:   configure:4628: checking for APR-util  configure:4707: result: yes  configure:4968: checking for gcc  configure:4995: result: /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain/usr/bin/cc  configure:5224: checking for C compiler version  configure:5233: /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain/usr/bin/cc --version >&5  ./configure: line 5235: /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain/usr/bin/cc: No such file or directory  configure:5244: $? = 127  configure:5233: /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain/usr/bin/cc -v >&5  ./configure: line 5235: /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain/usr/bin/cc: No such file or directory  configure:5244: $? = 127  configure:5233: /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain/usr/bin/cc -V >&5  ./configure: line 5235: /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain/usr/bin/cc: No such file or directory  configure:5244: $? = 127  configure:5233: /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain/usr/bin/cc -qversion >&5  ./configure: line 5235: /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain/usr/bin/cc: No such file or directory  configure:5244: $? = 127  configure:5264: checking whether the C compiler works  configure:5286: /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain/usr/bin/cc    -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK   conftest.c  >&5  ./configure: line 5288: /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain/usr/bin/cc: No such file or directory  configure:5290: $? = 127  configure:5328: result: no  configure: failed program was:  | /* confdefs.h */  | #define PACKAGE_NAME ""  | #define PACKAGE_TARNAME ""  | #define PACKAGE_VERSION ""  | #define PACKAGE_STRING ""  | #define PACKAGE_BUGREPORT ""  | #define PACKAGE_URL ""  | /* end confdefs.h.  */  |   | int  | main ()  | {  |   |   ;  |   return 0;  | }  configure:5333: error: in `/Users/cti/Downloads/Applications/httpd-2.4.3':  configure:5335: error: C compiler cannot create executables  See `config.log' for more details  

As you can see in the log output the script in ./configure couldn't find the path to my C compiler because it's in /Applications/Xcode.app/Contents/Developer/usr/bin/cc and not in /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain/usr/bin/ccas it's stated in the log output You may say that the solution is simple all I have to do is to modify the configure script, right?? well the problem with that is that I know nothing about shell script which is why I've been struggling with it for the last 3 hours. Help please. Thanks in advance.

Answer by Adrian Rodriguez for Problems with compiling apache2 on Mac OS X Mountain Lion


I was just struggling with a similar issue in this post I created and answered so I thought I would share my findings. Simply create the symlink by doing this:

# Create a symlink to default Xcode toolchain for OS X lion  sudo ln -s \  /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain \  /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain    # Create a symlink to default Xcode toolchain for OS X maverick  sudo ln -s \  /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain \  /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.9.xctoolchain  

and you should at least get to the next step.

Answer by AlphaZygma for Problems with compiling apache2 on Mac OS X Mountain Lion


Instead of creating a symlink, you could just add the path to your library path, just use the appropriate directories to your OSX Version.

So, in your case, it may look like

[user@host ~]$ sudo vi /etc/paths  /usr/bin  /Applications/Xcode.app/Contents/Developer/usr/bin  /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain/usr/bin  /bin  ...  

I think this approach is a bit cleaner without having to add symlinks in different places as expected by different tools.

Anyway, this is just an alternate solution.

Hope this helps.

Answer by manp for Problems with compiling apache2 on Mac OS X Mountain Lion


@AlphaZygma this worked great for me. I'm on 10.8.5 and had to add the following to /etc/paths:

/Applications/Xcode.app/Contents/Developer/usr/bin  /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin  

instead of yours.

Answer by Maluco for Problems with compiling apache2 on Mac OS X Mountain Lion


checking for gcc... /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain/usr/bin/cc  checking whether the C compiler works... yes  checking for C compiler default output file name... a.out  checking for suffix of executables...   checking whether we are cross compiling... no  checking for suffix of object files... o  checking whether we are using the GNU C compiler... yes  checking whether /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain/usr/bin/cc accepts -g... yes  checking for /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain/usr/bin/cc option to accept ISO C89... none needed  checking how to run the C preprocessor... /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain/usr/bin/cc -E  checking for /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain/usr/bin/cc option to accept ISO C99... none needed  checking for pcre-config... false    configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/  

====

I've downloaded the pcre-config, ran: ./configure;make;make install

and now..... Tcharammmm! Httpd apache full installed :D

Answer by Michael Helmke for Problems with compiling apache2 on Mac OS X Mountain Lion


I'm on OSX Mavericks and was trying to compile Apache 2.2.24 and ran into this error. I saw from other answers that the problem was with apxr and thus APR returning the wrong location for gcc. Apple supplies this and the Apache config was using the Apple supplied one.

On a whim, I looked and saw that the configure script has an option to ignore the system supplied APRs and use its own.

So I did this:

./configure --with-included-apr  

And it got past the configure step and compiled without errors.

Answer by user3097424 for Problems with compiling apache2 on Mac OS X Mountain Lion


For OSX 10.9 Mavericks Apache is already installed, you can directly go to the terminal and type in the following commands

To Find the Apache Version

httpd -v  

To start :

sudo apachectl start   

To stop :

sudo apachectl stop  

To restart :

sudo apachectl restart  

Answer by cainesap for Problems with compiling apache2 on Mac OS X Mountain Lion


Ran into same issue, on Mac OS X 10.9 (Mavericks); yes as user3097424 states, Apache is pre-installed for Mavericks users, though for me, version 2.2. Therefore, needing to upgrade to 2.4, do as Adrian Rodriguez says and create a symlink, replacing '10.8' with '10.9':

sudo ln -s /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.9.xctoolchain

Answer by Marcin Bobowski for Problems with compiling apache2 on Mac OS X Mountain Lion


Complete solution that allowed me to pass through:

checking for gcc... /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain/usr/bin/cc  checking whether the C compiler works... no  

issue can be found here: http://mac-dev-env.patrickbougie.com/apache/

The command are (some needs sudo su):

cd /usr/local/src (mkdir /usr/local/srt if /usr/local/src doesnt exist)  curl --remote-name http://mirror.csclub.uwaterloo.ca/apache/httpd/httpd-2.4.9.tar.gz  tar -xzvf httpd-2.4.9.tar.gz  rmhttpd-2.4.9.tar.gz  cd httpd-2.4.9    sudo xcode-select -switch /  mkdir -p /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.9.xctoolchain/usr/bin (this might require sudo su)  ln -s /usr/bin/cc /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.9.xctoolchain/usr/bin/cc (this might require sudo su)    ./configure --prefix=/usr/local/apache-2.4.9  make  make install    ln -s apache-2.4.9 /usr/local/apache  

Answer by Waterloo Stu for Problems with compiling apache2 on Mac OS X Mountain Lion


I just recently updated to Mavericks and was re-creating my web development environment (including installing port). I had this problem when I was upgrading port:

checking whether the C compiler works... no  

I thought I had everything setup, including installing XCode from the App Store. But kept having issues. I was able to fix it by actually running XCode once, accepting the license agreement, and letting XCode startup fully. The next time I tried to upgrade port I did not get the error above.

Answer by 7stud for Problems with compiling apache2 on Mac OS X Mountain Lion


OSX Yosemite (10.10.5):

The accepted answer worked for me:

$ cd /Applications/Xcode.app/Contents/Developer/Toolchains    $ ln -s XcodeDefault.xctoolchain/ OSX10.10.xctoolchain                     ^                      ^                     |                      |               existing dir(or file)     link name  

(Explanation of why that works below.)

Then:

httpd-2.4.18$ ./configure  (php may require an additional option)  

If you are also going to install php, you may need to add another option to ./configure.

The basic instructions for installing php on Unix also give instructions on how to install apache:

./configure --enable-so  make  make install  

Apache's configuration help says this:

httpd-2.4.18$ ./configure --help   ...  ...  --enable-so    DSO capability. This module will be automatically                 enabled unless you build all modules statically.  

That seems to indicate that the --enable-so option might be a default option, but the apache install instructions do not even mention --enable-so. In the apache 2.2 docs for configure, I found this:

Modules, disabled by default  Some modules are compiled by default and have to be enabled explicitly...  ...  ...  --enable-so  ...  

The apache 2.4 docs for configure do not mention --enable-so. Instead, they tell you to look at the output of ./configure --help under Optional features, which lists --enable-so.

As a result, I think you should configure apache like this:

 httpd-2.4.18$ ./configure --enable-so  

========

INSTALLING PHP

In order to get mysql to work with php, I had to reinstall php and change the following line in the php install docs:

php-7.0.2$ ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql  

to:

php-7.0.2$ ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-pdo-mysql  

With the first one, the configure output said that the --with-mysql option doesn?t exist--otherwise php installed fine, and php files in apache's htdocs directory were executed by php.

The problem is that php has changed its mysql support, and mysql_connect() is deprecated(and removed from php7), so now you need the pdo-mysql adapter, as described in the php docs.

After reinstalling php, the last lines of make install said this:

You may want to add: /usr/local/lib/php to your php.ini include_path  

php.ini is located here: /usr/local/lib/php.ini, and I made that change:

include_path = ".:/php/includes:/usr/local/lib/php"  

Then I restarted apache, made sure mysql was running, and I entered the following url in my browser:

http://localhost:8080/mysql_test.php  

and my test PDO script worked (located in the directory /usr/local/apache2/htdocs):

query("SELECT 'Hello, dear MySQL user!' AS _message FROM DUAL");  $row = $statement->fetch(PDO::FETCH_ASSOC);  echo htmlentities($row['_message']);    ?>  

===========

After getting the same error message as the op, I checked config.log in the httpd-2.4.18 directory, and a line in there says:

./configure: line 5326: /Applications/Xcode.app/Contents/Developer/Toolchains/  OSX10.10.xctoolchain/usr/bin/cc:   No such file or directory  

So the configure script is looking for:

  1. A directory named:

    /Applications/Xcode.app/Contents/Developer/ Toolchains/OSX10.10.xctoolchain/usr/bin/

  2. A file named cc in that directory.

If you do:

$ cd /Applications/Xcode.app/Contents/Developer/Toolchains    /Applications/Xcode.app/Contents/Developer/Toolchains$ ls  XcodeDefault.xctoolchain  

You can see that there is no directory named OSX10.10.xctoolchain--there is only a directory named XcodeDefault.xctoolchain. As a result, the configure script can't locate one of the directories in the path to the cc file. Why is configure looking for that directory? Because either the dev who wrote the script screwed up or Apple screwed up.

The real goal of configure is not to find a directory but to find the pesky cc file. It turns out that the cc file is located here:

/Applications/Xcode.app/Contents/Developer/Toolchains/  XcodeDefault.xctoolchain/usr/bin$ ls  ...  cc  clang         ...  ...  

And for the more curious:

/Applications/Xcode.app/Contents/Developer/  Toolchains/XcodeDefault.xctoolchain/usr/bin$ ls -al cc    lrwxr-xr-x  1 7stud  admin  5 Oct 29 15:22 cc -> clang  

cc is just a link to Xcode's clang compiler.

The accepted answer creates a link from the name OSX10.10.xctoolchain to the directory that actually contains the cc file (albeit several directories deeper) XcodeDefault.xctoolchain:

Applications/    Xcode.app/      Contents/        Developer/          Toolchains/            XcodeDefault.xctoolchain/            OSX10.10.xctoolchain/ -> XcodeDefault.xctoolchain/              usr/                bin/                   cc   

In other words, after creating the link the two paths:

/Applications/Xcode.app/Contents/Developer/Toolchains/  XcodeDefault.xctoolchain/usr/bin    /Applications/Xcode.app/Contents/Developer/Toolchains/  OSX10.10.xctoolchain/usr/bin  

will be equivalent. The names XcodeDefault.xctoolchain and OSX10.10.xctoolchain will be aliases for the same directory.

====

I don't understand @AlphaZygma's answer. It advises adding the following two directories to your PATH (via /etc/paths):

/Applications/Xcode.app/Contents/Developer/usr/bin    /Applications/Xcode.app/Contents/Developer/Toolchains/  OSX10.8.xctoolchain/usr/bin  
  1. On my system, the first directory does not contain a cc file, so there's no reason for me to add that directory to my PATH.

  2. The second directory is the directory that configure says it can't find. Adding a non-existent directory to your PATH still means it's non-existent.

  3. In any case, the configure script does not seem to be searching the PATH directories for cc because the error message lists a non-exist path as the problem. How would searching the PATH directories result in the error message listing a non-existent path? The configure script seems to be getting directions from somewhere else telling it where to search for cc.

  4. I'm not sure why @AlphaZygma inserted the new paths between some of the existing paths in /etc/paths. Why not add the new paths below the existing paths?

I tried several different versions of this answer, but nothing worked for me.

====

I looked at the output of ./configure --help:

Usage: ./configure [OPTION]... [VAR=VALUE]...    To assign environment variables (e.g., CC, CFLAGS...), specify them as  VAR=VALUE.  See below for descriptions of some of the useful variables.    ...  ...    Some influential environment variables:    CC          C compiler command    CFLAGS      C compiler flags    LDFLAGS     linker flags, e.g. -L if you have libraries in a                nonstandard directory     LIBS        libraries to pass to the linker, e.g. -l    CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I if                you have headers in a nonstandard directory     CPP         C preprocessor  

Hey, CC is listed there. Let's try:

$ ./configure CC=/Applications/Xcode.app/Contents/Developer/  Toolchains/XcodeDefault.xctoolchain/usr/bin/cc    ...  ...    checking for APR... yes    setting CPP to "/Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.10.xctoolchain/usr/bin/cc -E"    setting CFLAGS to " "    setting CPPFLAGS to " -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -DDARWIN_10"    setting LDFLAGS to " "  configure:   ...  ...  configure: error: C compiler cannot create executables  

Looking at the output a little more carefully there is this line:

      setting CPP to "/Applications/Xcode.app/Contents/Developer/Toolchains/  OSX10.10.xctoolchain   

The configure script is still mentioning that non-existent path in conjunction with CPP. Looking at the output of ./configure --help again:

Usage: ./configure [OPTION]... [VAR=VALUE]...    To assign environment variables (e.g., CC, CFLAGS...), specify them as  VAR=VALUE.  See below for descriptions of some of the useful variables.    ...  ...    Some influential environment variables:    CC          C compiler command    CFLAGS      C compiler flags    LDFLAGS     linker flags, e.g. -L if you have libraries in a                nonstandard directory     LIBS        libraries to pass to the linker, e.g. -l    CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I if                you have headers in a nonstandard directory     CPP         C preprocessor  

The last line lists the variable CPP, which was mentioned in the error line. Let's try:

$ ./configure \  > CC=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc \  > CPP=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc     ...  ...    checking how to run the C preprocessor... /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc  configure: error: in `/Users/7stud/Downloads/httpd-2.4.18':  configure: error: C preprocessor "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc" fails sanity check  See `config.log' for more details  

Now all the paths are correct in the error message, but something "fails sanity check". I give up! Maybe someone else can pick up where I left off.

Okay, thanks to the suggestions here, the following works:

$ ./configure \  > CC=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc \  > CPP='/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc -E'  

and that can be shortened to:

$ ./configure \  > CC=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc \  > CPP='cc -E'  

But then make failed:

$ make  ...  /usr/share/apr-1/build-1/libtool: line 8962: /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.10.xctoolchain/usr/bin/cc: No such file or directory  

Once again the non-existent path is mentioned--this time in conjunction with libtool. That's as far as I'm going down that rabbit hole.


Fatal error: Call to a member function getElementsByTagName() on a non-object in D:\XAMPP INSTALLASTION\xampp\htdocs\endunpratama9i\www-stackoverflow-info-proses.php on line 72

0 comments:

Post a Comment

Popular Posts

Powered by Blogger.