Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Как настроить абсолютный путь в Apache?  (Прочитано 3369 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн likesoft

  • Автор темы
  • Любитель
  • *
  • Сообщений: 81
  • Ubuntu 16.04.2
    • Просмотр профиля
Всем привет! Подскажите как настроить абсолютный путь в Apache.
Все файлы сайта у меня расположены в папке /home/user/www/site/
Есть два файла, один лежит в папке /home/user/www/site/test/index.php, второй /home/user/www/site/index.php
В файле /home/user/www/site/test/index.php прописан код:

<?php
echo fileperms('/index.php');
?>


при открытии файла http://vk/test/index.php пишет вот такую ошибку
Warning: fileperms(): stat failed for /index.php in /home/user/www/site/test/index.php on line 13

это происходит изза того что при указании слеша перед названием файла, поиск этого файла происходит с корня файловой системы. Что, где и как настроить чтобы поиск происходил с корня сайта.

P.S. Установлен lamp

Оффлайн ru_kane

  • Активист
  • *
  • Сообщений: 958
  • Kubuntu Desktop 20.04 & Ubuntu Server 20.04
    • Просмотр профиля
    • www.kane.ru
Re: Как настроить абсолютный путь в Apache?
« Ответ #1 : 17 Июля 2015, 09:25:17 »
В конфиге виртуального хоста прописать DocumentRoot
« Последнее редактирование: 17 Июля 2015, 09:28:39 от ru_kane »
Kubuntu Desktop 20.04 [Intel Core i5-8600K, Asus ROG STRIX Z370-F Gaming, ASUS STRIX-GTX1050TI-4G-GAMING]

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Wars ~.o

Оффлайн likesoft

  • Автор темы
  • Любитель
  • *
  • Сообщений: 81
  • Ubuntu 16.04.2
    • Просмотр профиля
Re: Как настроить абсолютный путь в Apache?
« Ответ #3 : 17 Июля 2015, 13:18:41 »
В конфиге виртуального хоста прописать DocumentRoot

Вот что написано в конфиге:

<VirtualHost 127.0.0.1:80>
    ServerName site
    DocumentRoot /home/user/www/site/
    <Directory />
        Options FollowSymLinks
        AllowOverride All
    </Directory>
    <Directory /home/user/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    ErrorLog ${APACHE_LOG_DIR}/error.log
    # Possible values include: debug, info, notice, warn, error, crit, alert, emerg.
    LogLevel warn
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>


Пользователь решил продолжить мысль [time]17 Июль 2015, 12:22:45[/time]:
http://www.sport.ourcms.info/functions_php_filesystem/4-fileperms.html

Про массив $_SERVER знаю, про относительные пути знаю. Мне интересно именно как настроить абсолютный путь ;)

Пользователь решил продолжить мысль 17 Июля 2015, 13:30:43:
Кстати вот содержимое массива $_SERVER выведенного через var_dump() в файле /home/user/www/site/test/index.php

array (size=32)
  'HTTP_ACCEPT_LANGUAGE' => string 'en-us,en;q=0.5' (length=14)
  'HTTP_ACCEPT_ENCODING' => string 'gzip' (length=4)
  'HTTP_ACCEPT_CHARSET' => string 'ISO-8859-1,utf-8;q=0.7,*;q=0.7' (length=30)
  'HTTP_ACCEPT' => string 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' (length=63)
  'HTTP_USER_AGENT' => string 'Mozilla/5.0 (Linux i686) AppleWebKit/537.44 (KHTML, like Gecko) JavaFX/8.0 Safari/537.44' (length=88)
  'HTTP_CACHE_CONTROL' => string 'no-cache' (length=8)
  'HTTP_PRAGMA' => string 'no-cache' (length=8)
  'HTTP_HOST' => string 'site' (length=2)
  'HTTP_CONNECTION' => string 'keep-alive' (length=10)
  'PATH' => string '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' (length=60)
  'SERVER_SIGNATURE' => string '<address>Apache/2.4.7 (Ubuntu) Server at site Port 80</address>
' (length=62)
  'SERVER_SOFTWARE' => string 'Apache/2.4.7 (Ubuntu)' (length=21)
  'SERVER_NAME' => string 'site' (length=2)
  'SERVER_ADDR' => string '127.0.0.1' (length=9)
  'SERVER_PORT' => string '80' (length=2)
  'REMOTE_ADDR' => string '127.0.0.1' (length=9)
  'DOCUMENT_ROOT' => string '/home/user/www/site/' (length=19)
  'REQUEST_SCHEME' => string 'http' (length=4)
  'CONTEXT_PREFIX' => string '' (length=0)
  'CONTEXT_DOCUMENT_ROOT' => string '/home/user/www/site/' (length=19)
  'SERVER_ADMIN' => string '[no address given]' (length=18)
  'SCRIPT_FILENAME' => string '/home/user/www/site/test/index.php' (length=33)
  'REMOTE_PORT' => string '59359' (length=5)
  'GATEWAY_INTERFACE' => string 'CGI/1.1' (length=7)
  'SERVER_PROTOCOL' => string 'HTTP/1.1' (length=8)
  'REQUEST_METHOD' => string 'GET' (length=3)
  'QUERY_STRING' => string '' (length=0)
  'REQUEST_URI' => string '/test/index.php' (length=15)
  'SCRIPT_NAME' => string '/test/index.php' (length=15)
  'PHP_SELF' => string '/test/index.php' (length=15)
  'REQUEST_TIME_FLOAT' => float 1437128702.809
  'REQUEST_TIME' => int 1437128702
« Последнее редактирование: 17 Июля 2015, 13:30:43 от likesoft »

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: Как настроить абсолютный путь в Apache?
« Ответ #4 : 17 Июля 2015, 14:05:25 »
одинаково команды для bash, показать env.
Wars ~.o

Оффлайн likesoft

  • Автор темы
  • Любитель
  • *
  • Сообщений: 81
  • Ubuntu 16.04.2
    • Просмотр профиля
Re: Как настроить абсолютный путь в Apache?
« Ответ #5 : 17 Июля 2015, 14:09:25 »
одинаково команды для bash, показать env.

Не совсем понял что вы имеете ввиду, я просто новичок в linux  :-\

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: Как настроить абсолютный путь в Apache?
« Ответ #6 : 17 Июля 2015, 14:19:24 »
likesoft,
<?php
echo fileperms('/index.php');

что такое?
папробуй команда.
ls /
ls /index.php
кто вывод?
« Последнее редактирование: 17 Июля 2015, 14:21:18 от victor00000 »
Wars ~.o

Оффлайн likesoft

  • Автор темы
  • Любитель
  • *
  • Сообщений: 81
  • Ubuntu 16.04.2
    • Просмотр профиля
Re: Как настроить абсолютный путь в Apache?
« Ответ #7 : 17 Июля 2015, 14:45:51 »
likesoft,
<?php
echo fileperms('/index.php');

что такое?
папробуй команда.
ls /
ls /index.php
кто вывод?


ls / вывод:
bin    dev   initrd.img      lost+found  opt   run   sys  var
boot   etc   initrd.img.old  media       proc  sbin  tmp  vmlinuz
cdrom  home  lib             mnt         root  srv   usr  vmlinuz.old

ls /index.php вывод:
ls: невозможно получить доступ к /index.php: Нет такого файла или каталога

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: Как настроить абсолютный путь в Apache?
« Ответ #8 : 17 Июля 2015, 15:02:52 »
likesoft,
начало учить этого.

Wars ~.o

Оффлайн likesoft

  • Автор темы
  • Любитель
  • *
  • Сообщений: 81
  • Ubuntu 16.04.2
    • Просмотр профиля
Re: Как настроить абсолютный путь в Apache?
« Ответ #9 : 17 Июля 2015, 15:20:26 »
likesoft,
начало учить этого.

это понятно что файл /index.php не был найден, так как его нету в корне файловой системы. Можно ли как то сконфигурировать Apache чтобы он искал файлы не в корне файловой системы, а в корне сайта?

Оффлайн jura12

  • Старожил
  • *
  • Сообщений: 1472
  • 24.04 lubuntu
    • Просмотр профиля
Re: Как настроить абсолютный путь в Apache?
« Ответ #10 : 17 Июля 2015, 15:40:03 »
в php создайте переменную с правильным путем потом вставляйте с именем файла. все так делают.
сопротивление бесполезно

Оффлайн likesoft

  • Автор темы
  • Любитель
  • *
  • Сообщений: 81
  • Ubuntu 16.04.2
    • Просмотр профиля
Re: Как настроить абсолютный путь в Apache?
« Ответ #11 : 17 Июля 2015, 15:45:23 »
в php создайте переменную с правильным путем потом вставляйте с именем файла. все так делают.

тоесть это единственный выход, я вас правильно понял?

Оффлайн jura12

  • Старожил
  • *
  • Сообщений: 1472
  • 24.04 lubuntu
    • Просмотр профиля
Re: Как настроить абсолютный путь в Apache?
« Ответ #12 : 17 Июля 2015, 16:15:17 »
есть же переменные в _SERVER, например DOCUMENT_ROOT . какие проблемы?
сопротивление бесполезно

Оффлайн likesoft

  • Автор темы
  • Любитель
  • *
  • Сообщений: 81
  • Ubuntu 16.04.2
    • Просмотр профиля
Re: Как настроить абсолютный путь в Apache?
« Ответ #13 : 17 Июля 2015, 16:21:46 »
есть же переменные в _SERVER, например DOCUMENT_ROOT . какие проблемы?

просто хотел узнать возможно ли это сделать или нет, буду тогда юзать относительные пути :)

 

Страница сгенерирована за 0.019 секунд. Запросов: 21.