Почему не может Apache2 смотреть снаружи/var/www/html/для файла PHP?

Я только что начал узнавать о целом соглашении PHP, MySql, и это - соединения, чтобы выйти напрямую разработку. При выполнении этого я нашел, что не могу выполнить файл PHP, только после того как это в/var/www/html каталоге. Я узнал об этом решении от многочисленных источников включая askubuntu, но я никогда не мог находить причину относительно того, почему это так. Это означает, что файл PHP всегда должен быть в этом определенном каталоге? Я могу сделать что-нибудь, чтобы заставить файл PHP внутри сказать, моя папка Documents для выполнения успешно вместо того, чтобы быть "Сохраняют" - реклама Mozilla? Помогите.

0
задан 30 March 2019 в 21:12

2 ответа

Поскольку это не настроено, чтобы сделать так, Apache по умолчанию будет только служить php файлу внутри /var/www/html каталог.

Можно установить Apache для взгляда довольными где угодно в системе для достижения такой вещи, необходимо изменить настройки Apache, они главным образом расположены на /etc/apache2.

Обратите внимание на то, что это только запрашивает Ubuntu 14.04 LTS и более новые выпуски.

В моем LTS Ubuntu 14.04 корень документа был установлен на /var/www/html. Это было настроено в следующем файле:

/etc/apache2/sites-available/000-default.conf

Поэтому просто сделайте a

sudo nano /etc/apache2/sites-available/000-default.conf

и измените следующую строку на то, что Вы хотите:

DocumentRoot /var/www/html

Также сделайте a

sudo nano /etc/apache2/apache2.conf

и найдите это

<Directory /var/www/html/>    Options Indexes FollowSymLinks  AllowOverride None  Require all granted
</Directory>

и изменение /var/www/html к Вашему предпочтительному каталогу

и сохраните его.

После сохранения изменений просто перезапустите apache2 веб-сервер, и Вы будете сделаны :)

sudo service apache2 restart 


Если Вы предпочитаете графический текстовый редактор, можно просто заменить sudo nano a gksu gedit.

Взятый от: https://stackoverflow.com/a/23175981

2
ответ дан 25 October 2019 в 07:33

Причиной php файлы, не возможные открываться за пределами корня документа, является безопасность. Веб-сервер всегда ограничен некоторой папкой и ее подпапками.

Можно установить апача для рассмотрения немногих различных папок, в зависимости от URL, как http://localhost или http://someother.localhost указывая на различные папки.
Для этого сначала необходимо отредактировать 000-defailt.conf, изменение:

ServerName  localhost
ServerAlias localhost

Затем сделайте копию 000-default.conf к 001-someother.conf и отредактируйте ее как следующее:

<VirtualHost *:80>
  ServerAdmin webmaster@localhost
    DocumentRoot /home/leonid/Web/SomeotherRoot
    ServerName  someother.localhost
    ServerAlias someother.localhost
    <Directory "/home/leonid/Web/SomeotherRoot">
      AllowOverride All
      Require local
      # ^ this will limit connections to only local
    </Directory>
    # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
    # error, crit, alert, emerg.
    LogLevel error
</VirtualHost>

После этого необходимо заставить someother.localhost решить к IP сервера, отредактировать/etc/hosts:

127.0.0.1   localhost   *.localhost
...other lines

Наконец необходимо включить новый конфигурационный файл:

sudo a2ensite 001-someother.conf
sudo systemctl reload apache2

Примечание: Пример выше только для локального сайта, доступного только локально.
Я записал сценарий, что создает конфигурации как это в нескольких щелчках, но лучше к понятому как его сделанный перед использованием сценария. GitHub.

1
ответ дан 25 October 2019 в 07:33

Другие вопросы по тегам:

Похожие вопросы: