Иногда файл сокета mysql расположен в /var/mysql/mysql.sock
на OS X. Попытка:
ln -s /var/mysql/mysql.sock /tmp/mysql.sock
Вам не нужно ничего добавлять в nginx при создании пользователя. Просто используйте что-то вроде этого в своем блоке сервера:
location ~ ^/~(.+?)(/.*)?$ {
alias /home/$1/www$2;
autoindex on;
}
Проверьте свои дистрибутивы / etc / skel
, если вы mkdir / etc / skel / www все каталоги пользователей, созданные adduser (или adduser-script ваших дистрибутивов), будут иметь этот каталог по умолчанию.
Я только что наткнулся на это, и принятый ответ кажется мне ОЧЕНЬ подозрительным. Как отметил Ник Оделл в комментариях к принятому ответу, он, вероятно, подвержен атакам с обходом каталога.
Лучшее решение — иметь главный веб-корень в блоке сервера, а затем использовать символическую ссылку из веб-корня в каталог пользователя. У вас может быть несколько символических ссылок, указывающих на один и тот же целевой каталог:
/var/www/user1 -> /home/user1/www
/var/www/domainname -> /home/user1/www
Этот тип подхода также лучше работает с try_files
.