У меня возникли проблемы с символической ссылкой /var/www/
на новый Webroot
каталог в моей домашней папке. Я думаю, что это происходит из-за моего непонимания разрешений Linux.
Насколько я знаю, символические ссылки должны принимать форму каталога, с которым вы хотите связать, и каталога, с которым вы хотите быть связаны, поэтому в моем случае я запустил:
sudo ln -s ~/Webroot/* /var/www/
это своего рода работал, если я бегу ls
на /var/www/
я могу видеть все файлы в моем Webroot
каталоге.
Всякий раз, когда я пытаюсь запустить файл, который находится в моей Webroot
папке, я получаю ошибку разрешения 403, это потому, что файлы в моем каталоге Webroot созданы мной, а экземпляр apache запускается как www-data?
если это так, будет ли это означать, что мне нужно изменить разрешения для каждого файла, который я создаю, чтобы запустить его?
Ранее я запускал локальный экземпляр apache, указав корневой каталог моего vhost по умолчанию на Webroot
папку, в этом случае мне не нужно было изменять какие-либо разрешения. Любая помощь будет оценена.
источник
Ответы:
Это не очень хорошая практика, я согласен с Weboide. Но есть простой способ достичь этой цели.
1). включите модуль apache userdir.
это включит модуль apache userdir. Теперь вы можете поместить содержимое сайта в
~/Webroot/
любой домашний каталог.Примечание: папка по умолчанию
~/public_html
2). Внесите необходимые изменения в
/etc/apache2/mods-enabled/userdir.conf
.3). Перезапустите апач
Теперь вы можете получить доступ к сайту, перейдя в браузере по адресу http: // ip-address / ~ username . Вы также можете установить виртуальный хост для этого сайта.
Если вы хотите запустить php-файлы, вам нужно сделать еще один шаг
отредактируйте
/etc/apache2/mods-enabled/php5.conf
и прокомментируйте следующие строки:Затем перезапустите апач.
Это оно. Вы сделали.
Ссылка: https: //wiki.ubuntu.com/UserDirectoryPHP
Надеюсь это поможет. Если у вас возникнут какие-либо трудности, не стесняйтесь размещать здесь.
источник
Это не очень хорошая практика для достижения того, что вы хотите.
Если вы используете PHP, вы можете взглянуть на suexec , suphp или php- fpm и fastcgi .
Вы правы в своей проблеме, это проблема разрешения в том смысле, что ваши
Webroot
файлы принадлежат другому пользователю, чемwww-data
.Вот неплохое решение, чтобы обойти вашу проблему. Обратите внимание, что вам, вероятно, потребуется использовать sudo или войти в систему как root. Убедитесь, что вы полностью понимаете все команды, которые будете выполнять !!
Измените
Webroot
папку, подпапки и файлы, чтобы установить для группы владениеwww-data
и установить соответствующие разрешения:Редактировать: Обратите внимание, что вам, безусловно, нужно будет снова запускать эти команды, если вы добавляете файлы / папки, используя учетную запись обычного пользователя.
источник
Я сделал примерно то же самое с Debian Lenny, но я перешел в не-hax режим, я правильно настроил apache. Но с символической ссылкой:
Я думаю, что вы должны проверить разрешение ~ и ~ / Webroot , я думаю, что ваш каталог (~) защищен от чтения, я имею в виду, вы должны запустить это:
Чтобы установить правильные разрешения, используйте:
Я думаю, это должно помочь, но дайте мне больше информации об этом. Я предлагаю вам вытащить Webroot из вашего каталога, ex. к / домой, как я , потому что это может быть проблемой безопасности.
«#» означает корневое разрешение , напр. напишите sudo перед командами; «$» означает разрешение для одного пользователя
источник
Вы должны проверить разрешения не только о вашем пункте назначения, но и его родителях.
источник
Я столкнулся с этой проблемой. Но мне не понравилась идея изменить группу моего домашнего каталога на www-data. Эта проблема может быть просто решена путем изменения файла конфигурации для virtualHost. Просто настройте тег Directory, чтобы включить эти
Это
Require all granted
новая функция, я думаю; имеющий значение по умолчаниюdenied
.Смотрите эту страницу для ссылки: http://httpd.apache.org/docs/current/mod/core.html#directory
источник