Про ftp - да, можно и по ssh, но я решил потом не лазить на сервер, а сделать закачку фоток по ftp.
Поскольку я решил сделать каждому сайту своего юзера, то столкнулся с вопросом. Надо создать имя 100. Но adduser отказался делать с таким именем, предложил поменять правила. Зато useradd 100 сработало. Вот и возник вопрос - либо так оставить, хотя советуют adduser, либо покопаться в правилах, чтобы сработало adduser 100 ?
Да, как делать сервак для одного сайта понятно, а вот для нескольких сайтов уже многое умалчивается. Есть гений, который сайты на Debian 7 перенес в папку /home (типа для безопасности), не знаю не знаю…
Some commands (eg chown ) can accept either a username or a numeric user ID, so allowing all-numeric usernames would break that.
A rule to allow names that start with a number and contain some alpha was probably considered not worth the effort; instead there is just a requirement to start with an alpha character.
А что за фотки? Откуда они и для чего на сервере?
Вручную перекидывать по фтп это ж всё равно “лазить” )
В зависимости от задачи я б поискал другие способы, автоматически синхронизировать чем-нибудь и т.д. Например Syncthing интересная и простая в использовании штука.
Ммм… похоже что да. Ну как это называется тогда? Например, на сайте жму кнопку “Выбрать файл”, и кидаю на сайт с компа. В хтмл тег называется вроде бы инсерт, а вот ftp меня даже немного озадачил, но я сейчас в него не вникаю, и так обхожусь без него - кидаю по ssh.
Ну так от задачи зависит.
Но сейчас вряд ли для чего-либо есть смысл использовать FTP (точнее скорее FTPS, в FTP нет шифрования). Проще SCP/SFTP. GUI для них тоже полно: WinSCP, …
Привет.
Есть такой вопрос. Я сайт скинул в папку public_html как пишут в статьях. И получилась такая хрень. То ли это вывпавится при подцеплении к домену, то ли надо ковырять настройки апача и указывать путь. Как я понял, у меня получилось типа vk.com/public_html вместо просто vk.com
Или папку public_html удалить нафиг? Может надо было делать просто /var/www/html/test? Ибо работаю с Filezilla или mc, и как-будто она лишняя как камень.
Пример создания виртуального хоста
При необходимости установки собственных виртуальных хостов сделайте следующее:
Откройте файл “httpd-vhosts.conf”, и создайте в нём блок, примерно, следующего содержания:
<VirtualHost *:80>
Папка, в которой будет корень вашего хоста.
DocumentRoot “C:/apache/test.ru/www”
Домен по которому вы сможете обращаться к виртуальному хосту.
ServerName test.ru
Алиас (добавочное имя) домена.
ServerAlias www.test.ru
Файл, в который будут записываться ошибки.
ErrorLog “C:/apache/test.ru/error.log”
Файл журнала доступа к хосту.
CustomLog “C:/apache/test.ru/access.log” common
Затем в каталоге “apache”, создайте папку “test.ru” (прямо так, с точкой), в которой, в свою очередь, создайте папку “www”.
Следующий шаг создания виртуального хоста – это изменение файла C:\WINDOWS\system32\drivers\etc\hosts операционной системы. Откройте данный файл и добавьте в него две строки:
127.0.0.1 test.ru
127.0.0.1 www.test.ru
на сервере полный путь будет /var/www/html/test/public_html Вот думаю, может сайт из /var/www/html/public_html перенести в /var/www/html/ и не надо шаманить? Для первых проб вполне будет ок, а потом подправить при подцеплении домена.
Ну статьи разные, к примеру Драча или 8хост… Но повыше пример я понял, попробую перевести на линуксовый язык, то есть debian9.
Домену всё равно как папка называется.
По умолчанию да, вроде отдается из /var/www/html.
То есть mysite.com/image.jpg будет отдавать /var/www/html/image.jpg.
Если нужно отдавать несколько сайтов (доменов) из разных папок — надо настроить vhost'ы в конфиге.
Навело на мысль. К примеру, я сделал два тестовых сайтах:
/var/www/html/test1/public_html
и
/var/www/html/test2 (без /public_html)
Оба варианта работают, но второй вариант в адресной строке выглядит покрасивее. Возникает вопрос - а для чего делают папку /public_html? Для безопасности? Типа эту папку прикрыть правами типа 555 или 644 или что-то типа того… В статьях не видел ответа. Сейчас порылся про эту папку, она нужна, хотя путь получается длинный. Хмм?
Там нет /html. Ну и какого-то глубинного смысла тут тоже нет, просто такая структура папок для двух сайтов на одном сервере. В /var/www/example.com можно положить что-то еще, что не должно быть доступно пользователям сайта (.git, конфиги, скрипты вызываемые из public_html/index.php, …).
В результате виртуальный хост будет выглядеть так:
git clone https://github.com/laravel/laravel.git && cd laravel
ls -al
drwxrwxr-x 7 alex alex 4096 сен 30 12:22 app
-rwxrwxr-x 1 alex alex 1686 сен 30 12:22 artisan
drwxrwxr-x 3 alex alex 4096 сен 30 12:22 bootstrap
-rw-rw-r-- 1 alex alex 36639 сен 30 12:22 CHANGELOG.md
-rw-rw-r-- 1 alex alex 1608 сен 30 12:22 composer.json
drwxrwxr-x 2 alex alex 4096 сен 30 12:22 config
drwxrwxr-x 5 alex alex 4096 сен 30 12:22 database
-rw-rw-r-- 1 alex alex 220 сен 30 12:22 .editorconfig
-rw-rw-r-- 1 alex alex 778 сен 30 12:22 .env.example
drwxrwxr-x 8 alex alex 4096 сен 30 12:22 .git
-rw-rw-r-- 1 alex alex 111 сен 30 12:22 .gitattributes
-rw-rw-r-- 1 alex alex 163 сен 30 12:22 .gitignore
-rw-rw-r-- 1 alex alex 974 сен 30 12:22 package.json
-rw-rw-r-- 1 alex alex 1202 сен 30 12:22 phpunit.xml
drwxrwxr-x 2 alex alex 4096 сен 30 12:22 public
-rw-rw-r-- 1 alex alex 3738 сен 30 12:22 README.md
drwxrwxr-x 6 alex alex 4096 сен 30 12:22 resources
drwxrwxr-x 2 alex alex 4096 сен 30 12:22 routes
-rw-rw-r-- 1 alex alex 563 сен 30 12:22 server.php
drwxrwxr-x 5 alex alex 4096 сен 30 12:22 storage
-rw-rw-r-- 1 alex alex 181 сен 30 12:22 .styleci.yml
drwxrwxr-x 4 alex alex 4096 сен 30 12:22 tests
-rw-rw-r-- 1 alex alex 559 сен 30 12:22 webpack.mix.js
ls -al public/
-rw-rw-r-- 1 alex alex 0 сен 30 12:22 favicon.ico
-rw-rw-r-- 1 alex alex 603 сен 30 12:22 .htaccess
-rw-rw-r-- 1 alex alex 1731 сен 30 12:22 index.php
-rw-rw-r-- 1 alex alex 24 сен 30 12:22 robots.txt
Снаружи весь код приложения, конфиги, миграции БД, readme проекта и т.д.
В public только то, что надо просто отдавать напрямую: иконка, robots.txt. Можно положить туда статичные файлы типа картинок (логотип, …), иконок интерфейса. JS/CSS файлы скорее всего тоже туда попадут после сборки вебпаком.
И конфиг для Апача, что все остальные запросы надо перенаправлять в index.php.
index.php просто загружает autoload Composer’а из папки уровнем выше (../vendor/autoload.php) и передает управление приложению, которое анализирует запрос, в зависимости от адреса вызывает соотв. код для его обработки (контроллер) и т.д.
Это позволяет например использовать нормальные URL типа /shop/products/my-product/123, или тут /t/voprosy-po-web-serveru/1151/19 и /u/бармалей, вместо каких-нибудь /showthread.php?t=1151&p=19 и /member.php?u=123 на старых сайтах. (voprosy-po-web-serveru это необязательный Slug, запрос сработает и без него).
Ну а про безопасность тут разве что то, что в public не лежат секретные файлы и пользователи не смогут их получить при неправильной конфигурации веб-сервера разрешающей доступ к ним (ну и собственно не надо писать правила для запрета доступа к ним), чтоб не было как-то так: Около 390 тысяч сайтов оставили открытыми каталоги .git с кодом.
А как закрыть доступ? Сначала можно ввести стандартное название папки, а там смотри что хошь. Даже если я постороннее лицо. Закрывать правами типа 544 не стал, вдруг потом появится проблема в работе сайта по причине нечитаемости.
127.0.0.1 localhost
127.0.1.1 im.ru im
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters