Я знаю, что этот вопрос всплывал пару раз, но я не могу найти однозначного ответа на мою проблему, поэтому, пожалуйста, потерпите меня. У меня есть установка Ubuntu Server 12.04 в VirtualBox для разработки и тестирования PHP (Drupal плюс другие сайты PHP, использующие инфраструктуру Yii). Мой вопрос состоит из 3 частей ...
1) Если я создаю папку public_html
в /home/myuser
, нужно ли передать эту папку группе Apache www-data
? Если да, есть ли какие-то конкретные разрешения, которые я должен установить? 755
? (Кстати, я следую этому руководству , чтобы создать каталог public_html и настроить несколько виртуальных хостов для каждого сайта, который я создаю и тестирую)
Ранее у меня были все мои сайты в разделе /var/www
, но я сталкивался с огромными ошибками разрешения доступа всякий раз, когда я пытался sFTP к нему, либо через FileZilla или PhpStorm. Это то, что я делал ранее:
sudo chgrp www-data /var/www
sudo chmod -R 775 /var/www
sudo chmod -R g+s /var/www
sudo usermod -G www-data [my_ftp_user]
2) Вторая часть моего вопроса такова: если я создаю свой проект PHP и файлы в Windows через PhpStorm, а затем загружаю через sFTP, разрешения будут затронуты?
3) После того, как я буду удовлетворен моим разработанным проектом, было бы целесообразно перенести и протестировать их в соответствии с /var/www
, чтобы увидеть, насколько он будет справедливым в производственной среде? [ 1112]
Буду очень признателен за помощь и совет. Я узнаю больше по ходу дела, но работа с файлами и разрешениями для Linux - это немного новая игра для меня! Спасибо
Я обычно использую это руководство от linode для создания локальной среды разработки: http://library.linode.com/hosting-website
Единственное персональное дополнение, которое я делаю к этому, состоит в том, что иногда, я хочу протестировать пути URL и вещи той природы, таким образом, я обманываю свой компьютер в размышление localhost, www.example.com
sudo nano /etc/hosts
Добавьте: 127.0.0.1 example.com
Не забывайте удалять его, когда Вы пойдете живые!
Примечание: НЕПОСРЕДСТВЕННО СКОПИРОВАННЫЙ
Отключите Apache по умолчанию виртуальный хост путем ввода следующей команды:::
sudo a2dissite default
Перейдите к своему корневому каталогу путем ввода следующей команды:::
cd ~
Создайте папку для содержания веб-сайта путем ввода следующей команды:::
mkdir public
Создайте ряд папок внутри public
хранить файлы Вашего веб-сайта, журналы и резервные копии. Введите следующую команду, заменив example.com
с Вашим доменным именем:::
mkdir -p public/example.com/{public,log,backup}
Установите свой корневой каталог, чтобы быть читаемыми и доступными для всех пользователей в системе путем ввода следующей команды:::
sudo chmod a+rx ~
Установите public
каталог (и все файлы в нем), чтобы быть читаемым и доступным для всех пользователей в системе путем ввода следующей команды:::
sudo chmod -R a+rx ~/public
Создайте виртуальный файл хоста для своего веб-сайта путем ввода следующей команды. Замена example.com
с Вашим доменным именем:::
sudo nano /etc/apache2/sites-available/example.com
Теперь пора создать конфигурацию для Вашего виртуального хоста. Мы создали некоторые основные настройки для получения запущенного. Скопируйте и вставьте настройки, показанные ниже в в виртуальный файл хоста, который Вы просто создали. Замена example_user
с Вашим именем пользователя, и example.com
с Вашим доменным именем.
.. colorize:: апач
# domain: example.com
# public: /home/example_user/public/example.com/
<VirtualHost *:80>
# Admin email, Server Name (domain name), and any aliases
ServerAdmin webmaster@example.com
ServerName www.example.com
ServerAlias example.com
# Index file and Document Root (where the public files are located)
DirectoryIndex index.html index.php
DocumentRoot /home/example_user/public/example.com/public
# Log file locations
LogLevel warn
ErrorLog /home/example_user/public/example.com/log/error.log
CustomLog /home/example_user/public/example.com/log/access.log combined
</VirtualHost>
Сохраните изменения в виртуальном конфигурационном файле хоста путем нажатия Control + x
и затем нажатие y
.
Создайте символьную ссылку на свое новое public
каталог путем ввода следующей команды. Замена example.com
с Вашим доменным именем:::
sudo a2ensite example.com
Apache перезапуска для сохранения изменений. Введите следующую команду:::
sudo service apache2 restart
Повторите шаги 1-11 для любого веб-сайта, который Вы хотите разместить на своем Linode.