Я новичок в Ubuntu, надеясь найти лучшую среду для веб-разработки, чем WIndows. Я пытаюсь получить доступ к http://localhost
, но это всегда дает мне запрещенную ошибку. Я установил php, mysql и apache отдельно. Files/web_files
также является моим веб-каталогом в окнах, который при доступе к окнам равен D:/Files/web_files
, а в Ubuntu - media/Files/web_files
. Я также перезапускаю apache после редактирования файла default
, расположенного в etc/apache2/sites-available
Я редактирую не тот файл? Пожалуйста, помогите.
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /media/Files/web_files
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /media/Files/web_files/>
Options FollowSymLinks
AllowOverride All
order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
Обновление Если я использовал var/www
вместо этого, он работает как магия.
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options FollowSymLinks
AllowOverride All
order allow,deny
allow from all
</Directory>
Вот вывод из команды mount
/dev/loop0 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
none on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
none on /dev type devtmpfs (rw,mode=0755)
none on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
none on /dev/shm type tmpfs (rw,nosuid,nodev)
none on /var/run type tmpfs (rw,nosuid,mode=0755)
none on /var/lock type tmpfs (rw,noexec,nosuid,nodev)
none on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
/dev/sda2 on /host type fuseblk (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other,blksize=4096)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
gvfs-fuse-daemon on /home/wern/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=wern)
/dev/sr0 on /media/2022_21092011 type udf (ro,nosuid,nodev,uhelper=udisks,uid=1000,gid=1000,iocharset=utf8,umask=0077)
/dev/sda3 on /media/Files type fuseblk (rw,nosuid,nodev,allow_other,blksize=4096,default_permissions)
/dev/sda1 on /media/System Rese
А вот вывод из ls - laR/media
ls: cannot access -: No such file or directory
ls: cannot access laR: No such file or directory
/media:
2022_21092011 Files System Reserved
Так что мне интересно, если это проблема в файловой системе или ее разрешения. Но я не думаю, что это как-то связано с разрешениями, так как я могу прекрасно редактировать файлы в media/Files/web_files
без необходимости запускать его как суперпользователь. Спасибо за тех, кто нашел время, чтобы помочь мне до сих пор.
Похоже, что ваш диск D Windows смонтирован в /media/Files
В этом случае ваши файлы фактически находятся в /media/Files/Files/web_files
. Пожалуйста, попробуйте отредактировать файл по умолчанию , доступный для сайтов с этим путем, перезапустите Apache с помощью sudo service apache2 restart
и посмотрите, работает ли он.
Кроме того, как отмечает Марти в комментариях, кажется, что Nautilus монтирует NTFS-разделы с нечетными разрешениями, так что ни один пользователь, кроме вас (и, конечно, root) не может читать или писать из / в него. [ 1118]
Чтобы решить эту проблему, закройте все окна Nautilus, остановите apache2, откройте терминал и сделайте следующее:
sudo umount /dev/sda3 mkdir /media/DriveD sudo ntfs-3g /dev/sda3 /media/DriveD
Теперь запустите apache2
и посмотрите, работает ли он. Если это произойдет, то лучше установить монтировку в /etc/fstab
, как заметил Марти.
Откройте терминал и введите
udisks --mount /dev/sda3 --mount-options umask=022
/media/Files
. Затем вы можете выполнить php файлы в них. Но если он не помечен как «Файлы», я рекомендую сделать это с помощью disk-utility
. Или, если вы предпочитаете не добавлять метки, измените файл etc/apache2/sites-available/default
на фактическую точку монтирования.
Примечание. Если у вас нет метки с разделом, она будет смонтирована в папке /media/xxxx....
, где xxxx ... - это UUID раздела.
Кредит поступает этому ответчику
Попробуйте сохранить корневой каталог Apache на собственном разделе linux (/var/www/html
) и вместо этого выполните монтирование, например:
mount -o bind /media/Files/web_files /var/www/html/web_files
Имейте в виду, что папка web_files
должна существовать в папках /var/www/html/
и у него достаточно атрибутов для чтения.
Вот шаги, которые я сделал для преодоления той же ошибки. Моя ситуация состояла в том, что я хотел точку к своей папке проектов Windows Dropbox при кодировании использования Ubuntu.
Настройки для раздела NTFS
Сначала необходимо смочь получить доступ разделу NTFS с помощью Ubuntu. Сделайте следующие шаги, если Вы не имеете.
$ sudo apt-get install ntfs-3g
Найдите название своего раздела (разделов) NTFS. Пример:
$ sudo fdisk -l | grep NTFS
Получите UUID своего раздела NTFS.
$ sudo blkid
/dev/sda1: МАРКИРУЙТЕ = "окна" UUID = "4ED2A451B2A23F59" ТИП = "ntfs"
Настройте раздел в/etc/fstab (сделайте резервное копирование на всякий случай).
$ sudo cp /etc/fstab /etc/fstab.bak
$ sudo vim /etc/fstab
Я создал мой следующим образом (на основе UUID. Следующие опции устанавливают чтение, пишут, выполняют полномочия, и uid=1000 устанавливает Вас как пользователя раздела NTFS во время начальной загрузки ОС. Это также гарантирует, что пользователь Apache может получить доступ к Вашему виртуальному направлению хоста (это - то, что решило мою проблему).
/dev/disk/by-uuid/4ED2A451B2A23F59 /media/windows ntfs-3g defaults,permissions,users,uid=1000,utf8 0 0
Обратите внимание, что Вы, возможно, должны создать/media/windows каталог, если он не существует.
$ cd /media
$ sudo mkdir windows
$ sudo chown sagun:users windows
Перезагрузите свой компьютер и подтвердите, что Ваш диск NTFS автомонтируется с чтением, запишите, выполнитесь, полномочия включили.
Настройки для конфигурирования Виртуального Хоста в Apache
Создайте каталоги для размещения файлов журнала (если Вы хотите):
$ sudo mkdir /var/log/apache2/projects.dev
Создайте новый файл конфигурации внутри/etc/apache2/sites-available каталог. Пример:
$ sudo vim /etc/apache2/sites-available/projects.dev
Установите свою конфигурацию, подобную этому, и сохраните файл:
<VirtualHost *:80>
ServerAdmin webmaster@projects.dev
ServerName projects.dev
ServerAlias projects
DocumentRoot /media/windows/Users/sagun/Dropbox/projects
<Directory />
Options FollowSymLinks
AuthType None
AllowOverride None
Order deny,allow
Deny from all
</Directory>
<Directory /media/windows/Users/sagun/Dropbox/projects/>
Options Indexes FollowSymLinks MultiViews
AuthType None
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/projects.dev/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/projects.dev/access.log combined
</VirtualHost>
Затем, отредактируйте/etc/hosts файл.
$ sudo vim /etc/hosts
Добавьте следующую строку и сохраните:
127.0.0.1 projects.dev
Активируйте хост следующей командой:
$ sudo a2ensite projects.dev
Apache перезапуска
$ sudo service apache2 restart
Наконец я смог перейти к http://projects.dev от своего Браузера со всем моим кодом, находящимся в разделе NTFS и из Windows и из Ubuntu. Я надеюсь, что кто-то находит это полезным.Удачи!
Ваш диск монтируется во время работы apache? Я не знаю, будет ли автоматического монтажа достаточно или нет, но если есть проблема, вы можете явно смонтировать диск /etc/fstab
. Я уверен, что этот автоматический монтаж выполняется только по требованию; он не монтируется, пока вы не откроете его в Nautilus, затем он монтируется.
Я провел тест с NTFS-разделом, смонтированным путем открытия в Nautilus, и у него не установлены разрешения ни для кого, кроме владельца и группы владельца, так что это, скорее всего, источник проблемы. Вам нужно будет установить права на монтирование, чтобы у каждого были права на чтение и выполнение (r-x
) для раздела. Вы знаете, как монтировать диски в `/ etc / fstab 'или любым другим способом. Здесь есть некоторые подробные инструкции .
Основой является то, что вам нужно создать каталог для монтирования раздела, традиционно как подкаталог /mnt/
, а не /media/
; /media/
традиционно используется для автоматически монтируемых устройств, например, когда вы открываете не подключенное устройство в Nautilus, или для CD / USB-приводов.
Создать каталог
Каталог, который вы создаете, должен иметь разрешения и владельца, которых вы хотите; Я обычно устанавливаю владельца для себя с правами только для чтения для остальной части вселенной (drwxr-xr-x). Этот каталог должен быть пустым, но не обязательно. Но любые файлы будут недоступны, когда что-то подключено к нему. Чтобы создать и установить разрешения для этого каталога (измените LOGIN_NAME на свое имя для входа):
cd /mnt
sudo mkdir Files
sudo chown LOGIN_NAME:LOGIN_NAME Files
sudo chmod 755 Files
Редактировать fstab
Затем вы создаете запись в файле [ 116] для монтирования раздела в этот каталог. Обычно это довольно просто, хотя для NTFS требуется некоторая дополнительная информация для настройки владельца и разрешений. Строка, которую я использую для NTFS, выглядит следующим образом (все в одной строке):
UUID=0000000000000000 /mnt/Files ntfs-3g auto,users,uid=LOGIN_NAME,gid=LOGIN_NAME,utf8,dmask=002,fmask=113 0 0
Примечания : заменить правильный UUID на 0000000000000000; UUID получается при вводе командной строки sudo blkid
в терминале. Также замените логин на LOGIN_NAME.
Отредактируйте файл конфигурации Apache
Затем в файле /etc/apache2/sites-available/default
измените DocumentRoot, который изначально был /var/www/
, на /mnt/Files/web-files
. Также внесите те же изменения в каталог вашего веб-сайта. Предполагается, что в корне раздела, смонтированного в /mnt/Files/
, есть каталог /web-files/
.
Кроме того, убедитесь, что у вас есть файл HTML / PHP в корневой директории документа (.../web-files
)? Это должно быть что-то вроде index.html или index.php. Вы скопировали файлы из /var/www/
в этот каталог?
DocumentRoot необходимо изменить в двух файлах конфигурации Apache:
/etc/apache2/sites-available/default
/etc/apache2/apache2.conf
Лично я не пробовал NTFS, но это спасло меня:
Единственное, что вам нужно сделать, это:
<Directory "/www/mywebdirectoryinapartitioneddisk">
Require all granted
</Directory>
, это решит проблему
вот пост в моем блоге, объясняющий все подробно. Он может работать на NTFS
Для всех, кто не хочет иметь дело с монтированием и перемонтированием разделов просто, удостоверяются, что у Вас есть корректный путь монтирования в apache.conf, и 000-default.conf затем редактируют/etc/apache2/envvars
, Изменяют www-данные
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
К Вашему имени пользователя
export APACHE_RUN_USER=youruser
export APACHE_RUN_GROUP=youruser
апач Перезапуска, сделанный.