Это на самом деле объяснено в руководстве: http://nginx.org/en/docs/http/configuring_https_servers.html#certificate_with_several_names
ssl_certificate /etc/ssl/wildcard.cer;
ssl_certificate_key /etc/ssl/wildcard.key;
server {
listen 443 ssl;
server_name a.example.com;
root /data/httpd/a.example.com;
}
server {
listen 443 ssl;
server_name b.example.com;
root /data/httpd/b.example.com;
}
Теперь, если у Вас есть много сайтов, я предлагаю хранить всех их в папке только с сервером {} часть как выше в единственных файлах и включать директиве в основном файле для загрузки всех их:
ssl_certificate /etc/ssl/wildcard.cer;
ssl_certificate_key /etc/ssl/wildcard.key;
include /etc/nginx/conf.d/subfolder/*;
Проблема в том, что plesk портит разрешения. Я удалил домен из plesk и создал свой собственный vhost. Теперь все работает как положено.
Какие разрешения у / var / www / mysite
? Он должен быть по крайней мере исполняемым пользователем www-data, чтобы этот пользователь мог получить доступ к его содержимому:
$ chmod o+x /var/www/mysite
Во-первых, как говорили другие, проверяете ли вы правильные файлы?
Сообщение об ошибке от Symfony плохое. Он должен указать полный путь к файлам, к которым у него нет доступа. Вы можете попробовать использовать strace
из lsof
, чтобы найти файлы.
Во-вторых, php работает как www-data
?
Если вы используя mod_php
, тогда php запускается от имени пользователя, запускающего apache. Но проверяли ли вы с помощью ps или top, что это за пользователь?
В-третьих, старые файлы каким-то образом остаются открытыми?
В UNIX файл может быть открыт даже после удаления, и удаляется полностью только после того, как все открытые файлы обрабатываются закрыты. Об этом позаботятся перезапуск Apache / php или перезагрузка.
В-четвертых, используете ли вы apparmor / selinux?
Попробуйте сначала отключить их.
Возможно, некоторые папки выше не имеют соответствующих прав. Проверьте разрешения для / var и /var/www.