Jump to content

Need help with Apache on a LAMP stack to work with PW .htaccess and Virtual Hosts


n0sleeves
 Share

Recommended Posts

I have been pulling my hair out for over a week now and frankly can not study anymore because I am exhausted and on the verge of throwing in the towel. I have switched to a Linux dev enviroment recently (Manjaro which is Arch based) and love everything about it. It's another story why I made the switch from Windows but I can tell you that I have never experienced trouble before because I was using Wamp and everything just seemed to work out the box. With setting up Apache myself on this particular Linux distro, things are a "whole lot different".

So here goes:

I got virtual hosts working with Apache 2.4.10 and everything is fine; PHP 5.6 works, my /etc/hosts files are pointing correctly and all that good stuff. I believe I have enabled all the required modules which Processwire needs (and then-some) : Mod_Rewrite being the most important. However, when I download my Production files (live server) onto  my Development machine, it doesn't go as smooth as the WAMP days :( I have narrowed it down to something which must not be configured correctly for .htaccess to take affect. Again, this really is my first attempt (although been at it for over a week) to get a LAMP stack installed so it's probably something I am not understanding or doing right. Btw, MySQL (MariaDB) is working correctly and all the databases have been imported from my Production .sql file.

Here is my virtual host file: Maybe something in here isn't correct.

<VirtualHost *:80>
    DocumentRoot /srv/http/site2.dev
    ServerName dev.site2.com
    ErrorLog /var/log/httpd/site2_log

    <Directory /srv/http/site2.dev>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
</VirtualHost>

The .htaccess directives are for Processwire 2.3. I have never had to touch them before, but I tried commenting / un-commenting almost everything which has been reccomend thus far and nothing has worked :(  This 500 Internal Server Error will not leave me!

Thanks so much for any help / tips you can provide.
Thank You

 

Link to comment
Share on other sites

Sorry you are having such a rough time of it - it can seem like voodoo sometimes :)

Have you tried a simple index.html file in the root of a virtual host DocumentRoot directory? Does that work? Is it just a PW install that is giving you the 500 error?

I could be completely off, but is it possible it's the period in your site2.dev folder name?

PW has this restriction, although it is for dirs "beginning" with a period, so probably not.

  # -----------------------------------------------------------------------------------------------
  # Access Restrictions: Keep web users out of dirs that begin with a period
  # -----------------------------------------------------------------------------------------------

  RewriteRule "(^|/)\." - [F]
Link to comment
Share on other sites

Sorry you are having such a rough time of it - it can seem like voodoo sometimes :)

Have you tried a simple index.html file in the root of a virtual host DocumentRoot directory? Does that work? Is it just a PW install that is giving you the 500 error?

I could be completely off, but is it possible it's the period in your site2.dev folder name?

PW has this restriction, although it is for dirs "beginning" with a period, so probably not.

  # -----------------------------------------------------------------------------------------------
  # Access Restrictions: Keep web users out of dirs that begin with a period
  # -----------------------------------------------------------------------------------------------

  RewriteRule "(^|/)\." - [F]

Thanks for responding. I removed the period just for the hell of it but that didn't work. A plain PHP or HTML file inside the directory works fine. It's just PW (all of the site) which isn't getting picked up :/ This isn't a new install - it's a git clone from my live server.

May not be anything, however have you made a change in your config.php file to reflect the local website?

$config->httpHosts = array('www.yourlocalwebsite.com', 'yourlocalwebsite.com');

That wasn't in my config file so I added it (still no luck). You do mean the config file in my site directory, correct?

Link to comment
Share on other sites

I am working on Fedora 20.  May be this would help you. 

<VirtualHost *:80>
   DocumentRoot "/home/user-2/dev/php/ProcessWire/pwire-2"
   ServerName pwire-2.localhost
   # This should be omitted in the production environment
   SetEnv APPLICATION_ENV development
   <Directory "/home/user-2/dev/php/ProcessWire/pwire-2">
       Options Indexes MultiViews FollowSymLinks
       AllowOverride All
       Order allow,deny
       Allow from all
       # New directive needed in Apache 2.4.3: 
       Require all granted
   </Directory>
</VirtualHost>

Thanks

------------------------------------------------------------------------

Edit: Add a comment for the new directive used for Apache 2.4.3 under <Directory> tag 

  • Like 2
Link to comment
Share on other sites

Have you gone through the list on Nico's troubleshooting page?

http://processwire.com/docs/tutorials/troubleshooting-guide/

Yes. No Luck

Thanks so much man for the links and taking the time to search for those. However, I have already been to each of those and tried everything they have said at least 5x it seems. I really have exhausted Google :/

Link to comment
Share on other sites

One Linux distro can be very different from another Linux distro in what comes pre configured or pre installed.

Sometimes when you finish a Linux distro installation you still have to install some packages or do configurations

for everything to work what you need. Example, I have become very fond of Linux Antix because it is both very

user friendly and fast on cheap motherboards. After doing a Linux antix installation your wifi does not show up

because you have to manually add the wlan card to the network configuration.

So maybe in your case simply installing another Linux distro might solve you from difficult to find configurations

that did not came during the Manjaro installation.

The Manjaro distro is based on Arch Linux so I recommend to go through this Lamp page step by step:

https://wiki.archlinux.org/index.php/LAMP

  • Like 3
Link to comment
Share on other sites

A plain PHP or HTML file inside the directory works fine. It's just PW (all of the site) which isn't getting picked up :/ This isn't a new install - it's a git clone from my live server.

This suggests to me that everything is set up ok from the apache side of things. Have you tried a fresh install of PW on this server to see if that goes ok? Maybe it will report what the problem is?

  • Like 1
Link to comment
Share on other sites

One Linux distro can be very different from another Linux distro in what comes pre configured or pre installed.

Sometimes when you finish a Linux distro installation you still have to install some packages or do configurations

for everything to work what you need. Example, I have become very fond of Linux Antix because it is both very

user friendly and fast on cheap motherboards. After doing a Linux antix installation your wifi does not show up

because you have to manually add the wlan card to the network configuration.

So maybe in your case simply installing another Linux distro might solve you from difficult to find configurations

that did not came during the Manjaro installation.

The Manjaro distro is based on Arch Linux so I recommend to go through this Lamp page step by step:

https://wiki.archlinux.org/index.php/LAMP

Good point. I was using Mint a while back with no problems, but once I switched to Manjaro, I haven't looked back due to it's speed and bare  enviroment. I know it comes at a cost of high frustration for some things but I'll give it just a wee bit longer before I consider switching again :/ I'm one of those types that wants to know "why" something isn't working. Nice to see another Nix user here!

I am working on Fedora 20.  May be this would help you. 

<VirtualHost *:80>
   DocumentRoot "/home/user-2/dev/php/ProcessWire/pwire-2"
   ServerName pwire-2.localhost
   # This should be omitted in the production environment
   SetEnv APPLICATION_ENV development
   <Directory "/home/user-2/dev/php/ProcessWire/pwire-2">
       Options Indexes MultiViews FollowSymLinks
       AllowOverride All
       Order allow,deny
       Allow from all
       # New directive needed in Apache 2.4.3: 
       Require all granted
   </Directory>
</VirtualHost>

Thanks

------------------------------------------------------------------------

Edit: Add a comment for the new directive used for Apache 2.4.3 under <Directory> tag 

I have the same Virtual Host config. Thank you for providing this however.

The other approach you may want to look at is installing Virtualmin/Webmin to control everything from setting up virtuals with set packages to creating samba shares and so on.

Webmin looks like an interesting piece of software. Even though I prefer to keeping things in the command line as much as possible (I'm not even using PhpMyAdmin), I like the idea and premise. Thanks for sharing!

This suggests to me that everything is set up ok from the apache side of things. Have you tried a fresh install of PW on this server to see if that goes ok? Maybe it will report what the problem is?

That's what my next step is. I'll do that and let you know my results!

What is the value of 'AllowOverride' in your apache config file?

 I changed them all to "All". Still same results :/

Link to comment
Share on other sites

  • 3 months later...
  • 2 weeks later...
 Share

×
×
  • Create New...