Я только что начал узнавать о целом соглашении PHP, MySql, и это - соединения, чтобы выйти напрямую разработку. При выполнении этого я нашел, что не могу выполнить файл PHP, только после того как это в/var/www/html каталоге. Я узнал об этом решении от многочисленных источников включая askubuntu, но я никогда не мог находить причину относительно того, почему это так. Это означает, что файл PHP всегда должен быть в этом определенном каталоге? Я могу сделать что-нибудь, чтобы заставить файл PHP внутри сказать, моя папка Documents для выполнения успешно вместо того, чтобы быть "Сохраняют" - реклама Mozilla? Помогите.
Поскольку это не настроено, чтобы сделать так, 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
agksu gedit
.
Взятый от: https://stackoverflow.com/a/23175981
Причиной 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.