Setup localhost site in apache?
I’ve been searching for weeks on how to setup the localhost enviroment on ubuntu without any good solutions. This is what I want to achieve: I want to have My root folder as such /home/’username’/Sites/’projectname.pl’ or /home/’username’/Sites/pl/’projectname’/public (or simular) When accessing my localhost i don’t wanna have to write localhost/’projectname’/public (or whatnot) I would like to be able to access the project just by typing http://’projectname’.pl I know this is achievable on the apache server on OSX but I haven’t been able to find any guides to achieve this on my Ubuntu-machine. I would really be grateful of any help, and I really hope it’s possible. Regards!
3 Answers 3
You can set up your vhosts in
For every vhost you like to have make a conf file in this directory. In the vhost configuration you can set your document root. The name of the file must end with .conf
So for example: /etc/apache2/sites-available/projectname.conf:
ServerName projectname.pl DocumentRoot "/home/Sites/projectname/public"
Now enable your site with:
sudo a2ensite projectname
sudo /etc/init.d/apache2 restart
Then edit your /etc/hosts file.
Now you can access your site with http://projectname.pl
Thank you for your answer. I used som illegal chars in my question which resulted in som text falling out. I have updated my question now. Please refer to it again and see if there is something else I have to do to get it to work. Regards!
The two key points here are naming the apache config with an extension of config and restarting apache afterwards.
Just to add to the other answers here, the way I have configured such behaviour is with symlinks. Seems to work fine. It is very easy to do, and does not require any configuration files.
sudo ln -s ~/path/to/yoursite/ /var/www/html/yoursite
The last portion of the above may be different for you. The above is what I use in Linux Mint 17. The ‘/var/www/html/’ directory is the default apache «site» folder.
So yeah, for anyone who is looking for a clean, easy method to map a site without actually placing their site’s directory in the default apache folder, there ya go.
Note: I am not sure if the above is appropriate for production environments, but for local development, it seems to be okay. The reason I am unsure is because the symlink carries the permissions of the folder in the home directory, which is (most likely) «owned» by the user. If you need to, you can obviously change that to the more secure ‘root’ like the apache directory, but I leave mine alone as I am just using this in a development environment.
How to configure localhost on Linux? [closed]
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
- This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
- This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
I’m trying to set up a virtual machine with CentOS 7 to use it as an Oracle Database Server (I’m new to Linux). I have encountered a problem about the host configuration that as I was reading has to be configured previously.
You see, this is where I collide with my knowledge that I have in windows. I thought it was enough to change the device name like this:
[root@localhost.localdomain ~] # hostname SERVER01 [root@localhost.localdomain ~] # hostname SERVER01 [root @ SERVER01 ~] #
And I do not understand why from windows I can not ping the Linux machine only using its hostname ( SERVER01 )
The ping request could not find host SERVER01. Check the name and try again.
I understand that the previous configuration of the host in CentOS 7 that I am asked to install the database server has to do with the fact that I can not ping it using SERVER01 . Although I have to clarify that using the IP if I can.
What do I do to make that change in Linux and can ping only using the hostname as it happens in windows?
Файл hosts в Linux
Система доменных имен DNS используется для определения, какой IP принадлежит к нужному домену в сети интернет. Когда какой-либо программе понадобится обратиться к сайту по его доменному имени, операционная система отправляет к DNS-серверу запрос, чтобы узнать, по какому IP ей дальше передавать пакеты. Но так происходит не всегда. Например, когда мы обращаемся к домену localhost, то всегда запрос отправляется нашему локальному компьютеру.
Всему причиной файл hosts. Если вы раньше пользовались Windows, то, наверное, уже слышали о таком файле. Там чаще всего он использовался для того, чтобы быстро заблокировать доступ к какому-либо ресурсу. Но применение его гораздо шире. В этой статье мы рассмотрим, как настроить файл hosts в Linux, а также какие возможности он нам предоставляет.
Разрешение доменных имён в Linux
Прежде чем мы перейдём к самому файлу hosts, нужно разобраться, как происходит поиск IP-адреса для доменного имени в Linux. Я говорил, что операционная система сразу же отправляет запрос DNS-серверу, но это не совсем так. Существует определённый порядок поиска, согласно которому он выполняется. Этот порядок установлен в конфигурационном файле /etc/nsswitch.conf
Здесь нас интересует строчка hosts. В ней в порядке очередности записаны службы, которые используются для поиска IP-адреса для доменного имени. Пункт files означает использование файла /etc/hosts, а dns — сервиса доменных имён интернета. Если files расположена перед hosts, это означает, что сначала система попытается найти домен в /etc/hosts, а уже потом по DNS. По умолчанию дело обстоит именно так.
Настройка файла hosts в Linux
Нужный нам файл находится в директории /etc/. Для его открытия можно использовать любой текстовый редактор как в командной строке, так и в графическом интерфейсе, только открывать его нужно с правами суперпользователя. Например, с помощью vim:
Синтаксис файла довольно простой. В нём находится несколько строчек с доменными именами и IP-адресами, которые нужно для них использовать. Каждая из них выглядит вот так:
ip_адрес домен алиас
Обычно первая же строчка создаёт правило для перенаправления всех запросов к домену localhost на локальный IP-адрес — 127.0.0.1:
Также в этом файле по умолчанию размещаются перенаправления для имени вашего компьютера и для IPv6-адресов. Вы можете создать свои настройки для любого нужного домена. Для этого нужно добавить строчку в конец файла. Например, направим все запросы к домену losst.pro на ip 127.0.0.1:
Обратите внимание, что здесь указывается только домен, без протокола. Префикс http или https указывать не нужно, иначе ничего работать не будет. А вот для поддомена www нужно создавать отдельную запись или записывать его в виде алиаса. Например:
127.0.0.1 losst.pro www.losst.pro
Теперь при запросе домена losst.pro будет открываться наш локальный IP. Чтобы вернуть доступ к оригинальному ресурсу, достаточно убрать добавленную строчку. Но вы можете использовать не только локальный адрес, но и любой другой. Это очень удобно, если вы только зарегистрировали домен и доменная зона ещё не успела обновиться, а вы уже хотите работать с новым сайтом. Просто добавьте данные в /etc/hosts и работайте как обычно.
Выводы
В этой небольшой статье мы разобрали, как выполняется настройка DNS через файл hosts Linux. Как видите, с его помощью вы можете блокировать доступ к нежелательным ресурсам, например, к которым программы не должны получить доступ, а также использовать его в работе веб-мастера.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.