After install OS X El Capitan, Apache not working - apache

I just installed in my MacBook pro "El capitan" and I can't type any host set it in vhost. Everything was working perfectly before in Yosemite. When I type one of my virtualhost I get:
403 "Forbidden You don't have permission to access / on this server."
What did I try ?
go to /etc/apache2/httpd.conf
and uncoment this lines:
Include /private/etc/apache2/extra/httpd-vhosts.conf
LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so
/etc/apache2/extra/httpd-vhosts.conf is the same file that was working before in Yosemite since long time ago, so I haven't modified.
To install everything in Yosemite I used homebrew.
Another problem related with "El capitan", before I was able to type http://localhost/~myuser/ and I could access to any folder in /Users/myuser/Sites now I get this message: 404 not found.
I hope some help, I am not specialist in servers and it's really difficult to me to set it up, and is very annoying to waste a lot of time anytime there is a new upgrade in the OS.

The upgrade process keeps a copy of your old httpd.conf. Unless you were way out of date, just overwrite the new file with your old one. Keep a copy of the new just in case...
sudo cp /etc/apache2/httpd.conf /etc/apache2/httpd.conf.after-update
sudo mv /etc/apache2/httpd.conf.pre-update /etc/apache2/httpd.conf
sudo apachectl restart

I had the same trouble.
Type this command line you will have the error from apache :
apachectl configtest
If you have this error :
AH00526: Syntax error on line 20 of /private/etc/apache2/extra/httpd-mpm.conf: Invalid command 'LockFile', perhaps misspelled or defined by a module not included in the server configuration.
so this link can help : https://apple.stackexchange.com/questions/211015/el-capitan-apache-error-message-ah00526

I experienced that after the upgrade to El Capitan the line
Include /private/etc/apache2/extra/httpd-userdir.conf
in
/private/etc/apache2/httpd.conf
was commented again. After uncommenting it and restarting apache, everything worked alright again.

I have merged to two versions (httpd.conf and http.conf~previous) and after that I discovered that the v-host wasn't working anymore.
After disabling rule 19 #NameVirtualHost *:80 in /private/etc/apache2/extra/httpd-vhosts.conf everything worked again!

LockFile is a directive of Apache ≤ 2.2. El Capitan comes with Apache version 2.4. so, you need to disable LockFile
First, just to be sure apache is stopped:
sudo apachectl stop
Then edit your httpd-mpm.conf:
Comment this lines
#
# The accept serialization lock file MUST BE STORED ON A LOCAL DISK.
#
<IfModule !mpm_winnt_module>
<IfModule !mpm_netware_module>
LockFile "/private/var/log/apache2/accept.lock"
</IfModule>
</IfModule>
Start apache sudo apachectl start and that's all

As some have mentioned the problem is that the upgrade to El Capitan backed up your previous httpd.conf and renamed it httpd.conf~previous and gave you a new httpd.conf. What you need to do though with these files to fix your problem is:
Use nano or other editor to open httpd.conf~previous and look for these 2 lines:
DocumentRoot "/Users/my-machine-name/Prev-Localhost-Path
<Directory "/Users/my-machine-name/Prev-Localhost_path">
Copy them and then using nano open httpd.conf and look for these 2 lines:
DocumentRoot "/Library/WebServer/Documents"
<Directory "/Library/WebServer/Documents">
Comment them out by entering the '#' character in front of each one, and then below them paste in the two lines you copied from your original file. Save the file and exit.
After that you'll need to reboot. My setup would not work until I made these changes and then rebooted. But perhaps the suggestion by DSG to restart apache will suffice:
sudo apachectl restart

Related

DocumentRoot is not a directory, or is not readable

I'm trying to Install Apache PHP MySQL phpMyAdmin on Windows 10, so I started with Apache so I downloaded it and I installed it as a service with :
>httpd.exe -k install
and then I typed httpd.exe -k start
and this problem shows up
when I open httpd.config file and change it from :
to :
and run httpd.exe -k start the error's not there anymore but when I head up to my browser and type http://localhost
I'm supposed to get a page saying : it works
but instead I got this :
I read this
Apache restart causes DocumentRoot must be a directory, even though it is a directory and there seem to be no privilege issues
https://forums.centos.org/viewtopic.php?t=1053
but it didn't help. How can I fix this error?
you need to use /
"C:/Program Files (x86)/Apache Software Foundation/Apache24"
not this
"C:\Program Files (x86)\Apache Software Foundation\Apache24"

CentOS 7 + PHP7 -- php not rendering in browser

I have a clean install of apache/httpd and php7.1.0 running on CentOS 7.
When I execute from the command line:
php -v
I get the expected response:
PHP 7.1.0 (cli) (built: Dec 1 2016 08:13:15) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.1.0-dev, Copyright (c) 1998-2016 Zend Technologies
But when I try to hit my phpinfo.php page, all I get is...
<?php phpinfo(); ?> literally outputted to the screen - can someone tell me what I'm missing, did I forget to enable a mod?
For PHP 7 (May apply to previous versions as well), but I had to do this:
Add this to the bottom of /etc/apache2/apache2.conf
or for Centos /etc/httpd/conf/httpd.conf
SetHandler application/x-httpd-php
Fabien's answer worked for me, but apache started to serve css/js files with the wrong mime type. I fixed it adding this at the end of /etc/httpd/conf/httpd.conf
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
That means that PHP isn't enabled in Apache. PHP addresses that here - step 8 should solve your problem.
As an addition: what I usually do on a new install, is install an entire LAMP-server. On Ubuntu, that's done with sudo apt-get install lamp-server^ (note: the caret is not a typo).
This was solution for me - adding this line into httpd.conf where your app's ServerName and DocumentRoot are:
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/laravel/public/$1
Comment out the "Directory" line in the /etc/httpd/conf.d/php.conf file. Then restart the httpd server
ran into the same problem. On a Centos 8 Stream installation.
First check if php is installed and working, for example:
php /var/www/html/info.php
If this works, and apache is not serving/interpreting the php file, than install php-fpm (mod_php was deprecated):
dnf install php-fpm
systemctl enable php-fpm
systemctl status php-fpm
systemctl restart httpd
Check in the browser.
If successful, delete the info.php file

phpmyAdmin admin page displays only "demo server"

Linux Mint 18
Apache2 server
MYSQL Server
Hello! Does anyone have a moment to advise me?
Here's my problem in brief: I am trying to configure phpMyAdmin on a Linux Mint 18 computer, but when I try to view http://localhost/phpmyadmin/, I get a "phpMyAdmin demo server" screen.
Details:
The phpMyAdmin web page begins with an addJSON statement, and echoes this message:
'You are using the demo server. You can do anything here, but please do not change root, debian-sys-maint and pma users'
I understand I am viewing some sort of demonstration page for phpMyAdmin, but I would rather view the actual, familiar phpMyAdmin administration page.
Do I need to edit the Apache2.conf file? Or something else? Thank you very much for your time.
Eric
i had this problem with ubuntu 16.04
fix
1# Remove phpmyadmin completely
sudo apt-get remove phpmyadmin
2# Install phpmyadmin with this command
sudo apt-get install phpmyadmin apache2-utils
3# add phpmyadmin to the apache configuration
sudo nano /etc/apache2/apache2.conf
And put below line to end of the file
Include /etc/phpmyadmin/apache.conf
4# restart apache2
sudo systemctl restart apache2
or
sudo service apache2 restart
I had the same problem, but my error was because I commented the Handler in php.ini
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
I just enable php on apache and start work normal
a2enmod php7.3
I had to disable mpm_event because it was causing some comflict
a2dismod mpm_event
Perhaps PHP code is not being executed, instead code shows on the page or Apache shows php code instead of executing may help.
Linux Mint is similar to Ubuntu/Debian, so you need the libapache2-mod-php5 package installed (assuming you've used the package manager to install the rest of your PHP/Apache stack): sudo apt-get install php5 libapache2-mod-php5.
You can test this further by adding a file (called test.php or phpinfo.php or whatever else suits you) in the main phpMyAdmin folder with the content <?php phpinfo(); ?> -- then try to load that file directly and see if you get a long list of system status or simply the contents of the file displayed. The main reason to put it in the phpMyAdmin folder is that your Apache configuration might handle different folders differently, this is the simplest way to test what happens on that particular folder.

localhost doesn't work on Yosemite

I have just today upgraded to Yosemite. I've not had a mac long. But with the update my localhost doesn't work. Chrome returns This webpage is not available. I've tried
sudo apachectl start to try and get it back but no luck. I'm a new mac user and haven't had to undergo an OS update, so not really sure where to start.
I've stolen the following from
https://github.com/liip/php-osx/issues/75 and http://php-osx.liip.ch/#uninstall
1. reinstall PHP
homebrew helps with this
brew update
brew upgrade
brew uninstall --force php54
brew unlink php54
brew uninstall --force php55
brew unlink php55
rm -rf /usr/local/php5*
brew install php55
2. where is libphp5.so?
please comment out the existing 'LoadModule php5_module' in /private/etc/apache2/httpd.conf and add this
LoadModule php5_module /path/to/lib/libphp5.so
3. delete +php-osx.conf and +entropy-php.conf
delete the files
+php-osx.conf
+entropy-php.conf
in
/etc/apache2/other
4. testing if everything works
try to start apache with
sudo apachectl start
did you try
apachectl configtest
to see if it really is running?
I've just found this:
http://macosx.com/threads/apache-wont-start-up.299851/
-> summary
'Apache couldn't find a certain log file'
cd /private/var/log
sudo mkdir apache2
I'm just upgraded my mac into yosemite, and boom my apache isn't working. i follow the instruction from here, and my localhost is back to normal again, here the simple steps i did.
Open your httpd.conf located on /etc/apache2, please open with sudo like sudo vi httpd.conf (i'm using vim to open the file, for most simple steps)
Find the line with this value LoadModule php5_module libexec/apache2/libphp5.so, you will found it marked with #, so delete the hash (#) and save the file by press ESC => type :wq (command for write and quit)
Restart your apache by using command sudo apachectl restart
See your localhost on browser
*tips:
For fast on searching you can press ESC and then /, and type php5_module => ENTER
You can also remove the mark (hash) fot these line, if you need to enable rewrite_module to activate mod_rewrite and vhost_alias_module for virtual-host on your machine.
*warning
If your MOD_REWRITE still doesn't work, in order to use .htaccess try to check this.
Find the section and change
AllowOverride None to AllowOverride All
Solution in Jan 2016 for El Capitan
None of the other answers worked for me.
run sudo apachectl configtest
I got an error:
AH00526: Syntax error on line 20 of /private/etc/apache2/extra/httpd-mpm.conf: Invalid command 'LockFile', perhaps misspelled or defined by a module not included in the server configuration
That lead me to https://apple.stackexchange.com/questions/211015/el-capitan-apache-error-message-ah00526 and the solution
Edit the file /etc/apache2/extra/httpd-mpm.conf to remove this part:
#
# The accept serialization lock file MUST BE STORED ON A LOCAL DISK.
#
<IfModule !mpm_winnt_module>
<IfModule !mpm_netware_module>
LockFile "/private/var/log/apache2/accept.lock"
</IfModule>
</IfModule>
I commented that out, rolled back all the other changes(except brew update/upgrade).
My problem here was the httpd.conf file and this line
Include /private/etc/apache2/other/*.conf
Where it tried to load the osx version of PHP I had. I needed to change it to my PHP version
Include /private/etc/apache2/other/php5.conf
Permissions seem to be an issue now however.
I just did:
brew update
brew upgrade
and
sudo apachectl restart
..."It works!"
I ran into this too after upgrading Yosemite recently. Neither localhost nor 127.0.0.1 would resolve. Apparently Yosemite activated or reconfigured a Firewall (System Preferences > Security & Privacy > Firewall [tab]).
I resolved the issue by accessing the Firewall Options and unchecking the box labelled 'Block all incoming connections'. Probably more importantly - that caused the 'Enable stealth mode' option below it to be switched off. That, stealth mode, was likely the culprit.
After saving above changes localhost & 127.0.0.1 worked fine for me again.

Munin server with apache - You don't have permission to access /munin on this server

On a fresh apache and munin server install when I to to domain.com/munin I get this error.
Forbidden
You don't have permission to access /munin on this server.
for these directories I did a chown -R munin:munin
dbdir /var/lib/munin
htmldir /var/cache/munin/www
logdir /var/log/munin
rundir /var/run/munin
What am I supposed to do with apache? I restated apache with /etc/init.d/apache restart but still get forbidden. I have made no changes to the apache config files from a fresh apache install.
Apache < 2.4
Open the Munin Apache config file:
vim /etc/munin/apache.conf
change the the following lines:
Order allow,deny
Allow from localhost 127.0.0.0/8 ::1
Options None
like so:
Order allow,deny
Allow from all
Options FollowSymLinks SymLinksIfOwnerMatch
Restart Apache and you're golden.
Apache > 2.4
Open the Munin Apache config file:
vim /etc/munin/apache24.conf
change the the following lines:
Require local
Options None
like so:
Require all granted
Options FollowSymLinks SymLinksIfOwnerMatch
Restart Apache and you're golden.
sudo service apache2 restart
For Apache 2.4 (which ships with Ubuntu 13.10), the /etc/munin/apache.conf configuration file syntax has changed:
Order allow, deny
Allow from all
needs to be changed to
Require all granted
Additional detail regarding upgrading from Apache 2.2 to Apache 2.4 can be found in the Apache upgrade notes.
I had the same problem, and none of the advices were helpful.
So I've browsed a little bit in the directory tree, and found the apache24.conf file. So I've add to this /etc/munin/apache24.conf file the following, as j7nn7k described:
Require all granted
Options FollowSymLinks SymLinksIfOwnerMatch
And of course I deleted the old values.
Now It's working!
I don't know if it's the same problem but I found a solution that fixed it for me.
I followed the tutorial here (from the italian ubuntu wiki), and changed the string from:
htmldir /var/cache/munin/www
To:
htmldir /var/www/munin
Then I edited the file:
vim /etc/munin/apache.conf
Allowing from all, as Johe Green did. But then take a close look to the Directory path, since it must be modified as the htmldir path in the munin conf.
Alias /munin /var/www/munin
<Directory /var/www/munin>
Order allow, deny
Allow from all
[...]
I had the same issue, after a clean install of apache2, munin and munin-node on Ubuntu 12.04LTS. Tried all the suggested options above with no effect. Found in the end that I had to
chmod 755 /var/www/munin
chown -R munin:munin /var/www/munin
That solved it for me.
cd /pub
more beer
I'm using apache 2.4.10 and munin 2.0.25-1 on ubuntu 15.04
To solve the problem, I followed Lars' sugestion, i.e. using Require all granted, but applying the changes to the file /etc/munin/apache24.conf
Changing /etc/munin/apache.conf had no effect for me. I have tried to grep me to the file determining which apache config file is chosen without success. But at list I solve the problem.
I faced the same problem and changed the /etc/munin/apache.conf line to Allow from all but still got the same 403 Forbidden error, I also had to change munin-node.conf
Comment block from munin-node.conf file where I made a change
#A list of addresses that are allowed to connect. This must be a
regular expression, since Net::Server does not understand CIDR-style
network notation unless the perl module Net::CIDR is installed. You
may repeat the allow line as many times as you'd like
Added my munin IP here in similar format and it worked
allow ^127.0.0.1$
P.S I am running munin master and node on the same box when testing this.
I have the same issue when create a soft link named 'share' under the root document and let it point to a package like /Users/me/desktop/share
firstly I do
chmod 655 /Users/me/desktop/share
I can not work
then I do
chmod 655 /Users/me/desktop
It works, I can see the 'share' listed under the root document path.
I user Mac Yosemite 10.10.3 and its in build Apache 2.4
hope its helpful
I was having the same problem as the OP using Ubuntu 14.04 and the stock versions available with apt-get. I tried the official Ubuntu documentation, the DigitalOcean instructions, and couldn't get graphs to show up (403 errors). I uninstalled (purged)/reinstalled munin since it was supposedly a random bug. I finally had luck when following this howtoforge writeup. It does not aim to move munin data from /var/cache/munin/www. Rather, it ensures:
Extra plugins are installed: apt-get install munin munin-node munin-plugins-extra
Apache fcgid is enabled: a2enmod fcgid
A sparse /etc/munin/apache.conf file is used (see below)
Replace your entire /etc/munin/apache.conf file contents with:
Alias /munin /var/cache/munin/www
<Directory /var/cache/munin/www>
# Require local
Require all granted
Options FollowSymLinks SymLinksIfOwnerMatch
Options None
</Directory>
ScriptAlias /munin-cgi/munin-cgi-graph /usr/lib/munin/cgi/munin-cgi-graph
<Location /munin-cgi/munin-cgi-graph>
# Require local
Require all granted
Options FollowSymLinks SymLinksIfOwnerMatch
<IfModule mod_fcgid.c>
SetHandler fcgid-script
</IfModule>
<IfModule !mod_fcgid.c>
SetHandler cgi-script
</IfModule>
</Location>
I had the same issue and solved it.
I was using Munin with Apache 2.4.18 so there was a seperate configuration file (/etc/munin/apache24.conf) which I had to edit.
Editing /etc/munin/apache.conf had NO effect.
Here is my complete install procedure for installing Munin on Linux Mint 17.3 (kernal 3.19), and should also work with recent Ubuntu.
Unlike Monit, Munin does not have its own web server, so is a bit more complicated to install.
#!/bin/bash
# Install script for Apache 2 with MySQL, PHP 5, etc.
# Update the Package Lists
apt-get update
# Install the MySQL Server and Client before installing Apache
apt-get install mysql-server mysql-client
# Install Apache
apt-get install apache2
# Install PHP5
apt-get install php5 libapache2-mod-php5
# Restart Apache
/etc/init.d/apache2 restart
# Install some extras
apt-get install snmp php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
# Once again, restart
/etc/init.d/apache2 restart
# Install the Munin Server and the Client
apt-get install munin munin-node
# Restart the machine
shutdown -r now
Ignore the uninstall part and replace your entire /etc/munin/apache.conf file contents as hamx0r says earlier in this thread (please vote up his post):
https://stackoverflow.com/a/35656044/5178979
"Allow from all" makes sense to me, but it no longer works.
Maybe because I installed Munin prior to installing Apache2, I was missing the following symbolic links:
/etc/apache2/conf-available/munin.conf -> ../../munin/apache.conf
/etc/apache2/conf-enabled/munin.conf -> ../conf-available/munin.conf
cd /etc/apache2/conf-available && ll
If you do not see the link, create it:
ln -s ../../munin/apache.conf munin.conf && ll
If the first file is missing, this one is probably also missing
cd /etc/apache2/conf-enabled/ && ll
Create the link:
ln -s ../conf-available/munin.conf munin.conf && ll
Restart Apache2, wait 5 minutes, and hopefully it works.
If you want to monitor a machine other than the one running Munin, you simply install munin-node, and then add a line to /etc/munin/munin-node.conf
Find this line
allow ^127.0.0.1$
Add another similar line that includes the address of the munin server like:
allow ^192.168.1.100$
This is not necessary for Windows clients running munin-node.
Don't forget to add machines you want to monitor to your Munin server
/etc/munin/munin.conf
# MyMachine
[MyMachineName.mydomain]
address 127.0.0.1
use_node_name yes
Now for a question for the experts. Why do some machines not report hard drive temperature? I know that is a vague question and probably needs more details.
Edit /etc/munin/apache.conf and uncomment the 4 lines following from AuthUserFile.
AuthUserFile /etc/munin/.htpasswd
AuthName "Munin"
AuthType Basic
require valid-user