Creating subdomain / virtualhost in apache on CentOS 6.2 [closed] - subdomain

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
I've been trying to make a subdomain to host my forum to make it look better than www.mydomain.co.uk/forum/index.php i want it to be forum.mydomain.co.uk
I've tried all the tutorials, guides and everything i've found on google, but nothing works. I've tried using webmin but that just made things more complicated and i had to reinstall everything from scratch because it wrecked it up. Here's what i have below, could anyone tell me if there's anything other than this that i must do for the subdomain to work?
The contents of my httpd.conf are:
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin email#email.com
ServerName forum.mydomain.co.uk
DocumentRoot /var/www/html/forum
ErrorLog logs/forum-error_log
CustomLog logs/forum-access_log common
</VirtualHost>
The domain itself works. It points to my apache page which is what I need for now because I haven't uploaded anything. When I go to mydomain.co.uk/forum it, shows the index of forum contents. forum.mydomain.co.uk shows page cannot be displayed / unable to resolve host.
Are there any other files i must configure for this to work?

go to your registrar and point the sub-domains A-Record to your static ip
inside httpd.conf make sure this line exists: NameVirtualHost *:80
the name of my folder where all the html and php files reside: mydirectory
full path from root: /var/www/mydirectory
this is my httpd.conf on ec2 linux
<VirtualHost *:80>
ServerName www.beta.myDomain.com
ServerAlias beta.myDomain.com
ServerAdmin tech#myDomain.com
DocumentRoot "/var/www/mydirectory"
<Directory /var/www/beta.myDomain.com/>
AllowOverride All
Allow from all
</Directory>
</VirtualHost>
then after all that is done reload your webserver: sudo service httpd reload
remember that it can take up to 24 hours for the registrar to propagate

Related

Redirect HTML "/" to subfolder of WWW directory, the VirtualHost DocumentRoot

Sorry for asking this question again. Even though this has been asked and discussed quite a bit I cannot seem to find the right solution for a local dev environment using VirtualHost. I am using XAMPP Portable for Windows for dev work but assume this is the same for any other local server with regards to the .htaccess file.
DocumentRoot of VirtualHost is D:\dev\www\ for example.
ServerName is devwork.webdev for example.
HOSTS entry is 127.0.0.1 devwork.webdev.
VirtualHost file does have a default DocumentRoot being DocumentRoot "D:/xampp/htdocs". It works just fine.
The projects are each in a folder under D:\dev\www\ for example D:\dev\www\project01\ or D:\dev\www\project02\ and so on and show nicely in the browser when going to devwork.webdev with Options Indexes FollowSymLinks enabled. Apache is not showing any error and the access log file is also OK, things are working.
Now in my HTML when I use Project 01 a click on the link does link me to D:\dev\www\ showing all the projects I have in that folder.
Instead I would like to be linked to the root of the project, being D:\dev\www\project01\ or rather http://devwork.webdev/project01/.
How can I get that to work?
I am looking for a solution to this so that I can do dev work locally and without changing the HTML later FTP the data to the live host's root and it will work.
I have read and tried the following:
http://coolestguidesontheplanet.com/redirecting-a-web-folder-directory-to-another-in-htaccess/
https://perishablepress.com/redirect-subdirectory-to-root-via-htaccess/ .htaccess How to redirect root URL to subdirectory files, rewrite to clean URL AND not affect subdomains?
http://alexcican.com/post/how-to-remove-php-html-htm-extensions-with-htaccess/
https://stackoverflow.com/a/990405/1010918
How to redirect /directory/index.html and /directory/index.php to /directory/
Redirecting /directory/index.html to /directory/
with
How to remove .html from URL
and
http://forums.modx.com/thread/77211/endless-friendly-url-redirect-from-subdomain-folder-location
being closest to what I think I need but I must be doing something wrong since I always arrive at the DocumentRoot instead of the folder where the project is kept under the DocumentRoot.
Thank you for any help.
This seems closest:
Add VirtualHost definition for each project you want to access. (I'm
not sure how to do it on XAMPP for Windows).
For example, project01.devwork.webdev...
Set DocumentRoot for this VirtualHost to D:\dev\www\project01...
Add the hostname to your /etc/hosts/ file.
Open http://project01.devwork.webdev/ in your browser.
You should see the application in D:\dev\www\project01, while all URLs
will be based on "/".
What happens in the background:
When you open the URL http://project01.devwork.webdev/ in your browser, it will (as usual) translate it to IP address, but along with the request, it will also send Host header with the entered hostname:
GET / HTTP/1.1
Host: project01.devwork.webdev
Based on the Host field, Apache will decide which VirtualHost it needs to "pretend" to be, and serve files from the respective direcory.
However, if you need to have index of the projects, you will have to create it manually with full URLs.
An alternative with the given logic would be to simply add a VirtualHost for each project in D:dev\www\projectname by giving it its own domain instead of a subdomain on the host.
There is little difference there now when already editing httpd-vhosts.conf (using XAMP this file is in InstallDir and then in apache\conf\extra )but ideally it makes copying the local HTML to the live server without changing the HTML possible.
So this is something devs doing local work should keep in mind. I certainly will!! Thank you for your help and information.
<VirtualHost *:80>
DocumentRoot "D:/dev/www/newprojectname"
ServerName newdomainname.webdev
ServerAlias www.newdomainname.webdev
ErrorLog "D:/dev/www/log/dev-apache.error.log"
CustomLog "D:/dev/www/log/dev-apache.access.log" common
<Directory "D:/dev/www/newprojectname">
AllowOverride All
Options Indexes FollowSymLinks
Require local
# more detailed local
# Require ip 192.168.188
# or the IP from your local network
</Directory>
</VirtualHost>

Different website through domain

I have a webserver, with 2 virtualhosts:
<VirtualHost *:80>
DocumentRoot /var/www/html
ServerName main.hu
LogLevel debug
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /var/www/html/test.hu/
LogLevel debug
ServerAlias test.hu
ServerName www.test.hu
</VirtualHost>
When I query test.hu from any browser, it looks really weird, css looks different, menu is mixed etc. But when I check it with IP address for example 1.2.3.4/test.hu, it looks as it should be.
test.hu points to 1.2.3.4 in DNS.
I'm running a Centos 7 with httpd-2.4.6-18.
Selinux disabled.
Any ideas?
Looks like the bootstrap.min.css files being loaded are not the same in each version.
http://178.62.30.55/debergabor.hu/css/bootstrap.min.css
http://debergabor.hu/css/bootstrap.min.css
These should be the same but they are not. You have different versions so you have uploaded or linked the wrong files. The first one out of these 2 is the correct one.
So basically, go to where you hosted debergabor.hu, remove the bootstrap.min.css file, then upload the correct one.

Two XAMPP WordPress Installations, pointing one to a different URL, both not working correctly

I am running Windows 7 with an XAMPP local server with an installation of WordPress. I know this one works correctly, I've used it many times. I have a MySQL database for it and it sits in htdocs/wordpress.
Now, I have a contract in which I'm working for someone on another WordPress theme and would like to have this as a separate database and install. So, I make another folder in htdocs, let's call it folder2. I then create another database in MySQL, import the db I was given, and create a user to match the wp-config.php file of this install. No problem, except that it points to "localhost/folder2" and I need it to point to "local.folder2.com" to match the contractor.
So I hunt around the web and stumble on VirtualHosts for XAMPP. I go to /System32/drivers/etc/hosts and add the domain.
127.0.0.1 localhost ## Already here for XAMPP purposes
127.0.0.1 local.folder2.com ## URL to point localhost/folder2 towards
I then go to /xampp/apache/conf/extra/httpd-vhosts.conf and add the necessary Virtual Host.
NameVirtualHost *:80
<VirtualHost *:80>
DirectoryRoot "C:/xampp/htdocs/folder2"
ServerName local.folder2.com
</VirtualHost>
I restart Apache and MySQL. Problem is, now local.folder2.com works, but "localhost/wordpress/" does not. Using that URL directs me to the theme and db of folder2, baffling me entirely. Any ideas? I realize I can just work on one and not the other, but if I ever have more than one client at a time, switching it all out isn't going to work.
In this case, localhost stopped working because when another vhost was declared, no longer did the inherent connection between http://localhost.com and the directory "/htdocs" work. The solution was to add a vhost for the original location and then add a second one for the new location. Simple as:
<VirtualHost *:80>
ServerName localhost
DocumentRoot "C:/xampp/htdocs/wordpress" # Where I had localhost pointing
</VirtualHost>
<VirtualHost *:80>
ServerName local.folder2.com
DocumentRoot "C:/xampp/htdocs/folder2"
<Directory "C:/xampp/htdocs/folder2">
Allow Override All
</Directory>
</VirtualHost>
Of course, you then must add them to your hosts file:
127.0.0.1 localhost
127.0.0.1 local.folder2.com
Restart Apache server, and you're good to go.

Files not showing up because looking at root but I think I specify the root!

I'm working locally and I always specify files as /files.jpg or whatnot so the server will always know to look at the root level to find the files. That way if I'm on a subpage it won't choke. But locally the files do not show up. My file structure is apache2/htdocs/name_of_folder. name_of_folder is my "root". I then modify my virtualhost file so when I enter localhost/name_of_folder it will show my site. I specify the DocumentRoot so I thought when I say localhost/name_of_folder that is working at the document root?
In httpd-vhosts.conf I have it set to
<VirtualHost *:80>
ServerAdmin webmaster#dummy-host.example.com
DocumentRoot "/opt/local/apache2/name_of_folder"
ServerName localhost/name_of_folder
ServerAlias www.localhost/name_of_folder
ErrorLog "logs/name_of_folder_log"
CustomLog "logs/name_of_folder_access_log" common
</VirtualHost>
What am I doing wrong?
You are misusing the ServerName and ServerAlias directives. They have nothing to do with files or paths. They are the domain name that identifies the web site (together with an optional port if not 80). If you want to move your document root, you have to edit the DocumentRoot directive.
You may not do this in that way. The directive ServerName is not supposed to get an URL but a domain name. Set the root to the parent folder, deny all access to it using <Directory> and allow access to you subdirectory to get it work.
In stead of doing:
ServerName localhost/name_of_folder
ServerAlias www.localhost/name_of_folder
Create a subdomain:
ServerName subdomain.localhost

Apache Virtual Hosts with Multiple wordpress blogs

I'm running a VPS # slicehost with Linux 9.10. I've got a basic Lamp setup so far. I am hosting a few sites and adding a half dozen more, and I'd like almost all of them to have word press blogs available.
I tried installing wordpress into each directory following the normal instructions thinking that apache virtual hosts, since it finds each domain, would by extension follow each domain's /blog/ directory(I've tried leaving it the default of /wordpress/ with no results either). WordPress also installed and worked fine when I set it up in the var/www directory where I originally set it up before realizing it would only host one site per installation.
I need wordpress to respond with one of many blogs which is matched to the domain it serves via virtual hosts off the same LAMP setup.
If this is a problem of layout, and there is a better way to host multiple, completely separate wordpress blogs on a single server lamp setup with virtual hosts, I'm open to that as well.
Thank you in advance for any assistance.
I'll be keeping an eye on this to be able to answer any questions.
Oh, Also, I've made separate mysql Db's & usernames for each blog to use to keep them compartmentalized.
Simply set up different VirtualHost directories and put a wordpress installation in each.
Example of your virtualhosts
<VirtualHost 12.34.56.78:80>
ServerAdmin admin#site1.com
ServerName site1.com
ServerAlias www.site1.com
DocumentRoot /srv/www/site1.com/public_html/
</VirtualHost>
<VirtualHost 12.34.56.78:80>
ServerAdmin admin#site2.com
ServerName site2.com
ServerAlias www.site2.com
DocumentRoot /srv/www/site2.com/public_html/
</VirtualHost>
<VirtualHost 12.34.56.78:80>
ServerAdmin admin#site3.com
ServerName site3.com
ServerAlias www.site3.com
DocumentRoot /srv/www/site3.com/public_html/
</VirtualHost>
In each of the respective public_html directories put in a wordpress installation.
So for site1.com the wordpress can be put into /srv/www/site1.com/public_html/wp
For site2.com /srv/www/site2.com/public_html/wp
This will completely keep them seperate.
Thanks for the answer. I'm not sure, but I think this is what i've done with a different directory and it isn't finding the WP directory, even though apache finds the index.html for each site in the exampleX.com directories. So to be clear, It loads example1.com/index.html, but not example1.com/wordpress/ even though /wordpress/ is in the same directory as the index.html(each index.html is labeled internally to make sure i'm not pointing to the wrong one somehow).
I'm serving out of home/public_html/example1.com, home/public_html/example2.com, etc.
The virtual hosts file in sites-enabled points to /home/user/public_html/ as document root.
is the /srv/ directory the important part somehow? I thought I could set the pointers to essentially where ever was convenient?
Do I need to change something else other than 000-default in the sites-enabled directory to point?
--- as I started looking at this and thinking about it, I went and checked over my virtual hosts file. It turns out I wrote the document root all the way to /public, which is at the same level as /blog/ So I backed it up to example1.com with a forwarding href in index.html for example1.com pointed to example1.com/blog/index.html(which points to index.php for wp) which brings up the famous 5 minute installation. This works well since this site is only a blog. I'll just forward to each exampleX.com/public/ from an index.html in each exampleX.com for the rest and everything should be working fine.
Thank you very much for your help.