YOURLS: 403 запрещено на mydomain.com и 502 Bad Gateway на mydomain.com/admin

поэтому я пытаюсь настроить сокращение URL YOURLS на моей капле Ubuntu 16.04 DO. Я очень плохо знаком с MySQL и PHP, поэтому не могу понять, что может быть не так. Я хорошо справляюсь с Nginx, так как использую его вечно, но кажется, что эти ошибки вызваны базой данных MySQL и / или конфигурацией PHP.

Настройка:
Корень Nginx (для сайта): /var/www/bnbr.co/public_html
(bnbr.co — домен, который я буду использовать)

Конфигурационный файл PHP (расположен в /var/www/bnbr.co/public_html/config.php)

php7.0-fpm pool (расположен в /etc/php/7.0/fpm/pool.d/username.conf)

Настройка MySQL:

MariaDB [(none)]> CREATE DATABASE yourls;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON yourls.* TO 'username'@'localhost' IDENTIFIED BY 'passwd';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> \q

РЕДАКТИРОВАТЬ: файл конфигурации Nginx для домена (находится по адресу /etc/nginx/sites-enabled/bnbr_co)

            # main

server {

listen 443;
server_name bnbr.co;

root /var/www/bnbr.co/public_html;
index index.php;

ssl on;
ssl_certificate /etc/letsencrypt/live/bnbr.co/cert.pem;
ssl_certificate_key /etc/letsencrypt/live/bnbr.co/privkey.pem;

ssl_session_timeout 10m;

ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";
ssl_prefer_server_ciphers on;

location / {

try_files $uri $uri/ /yourls-loader.php;
expires 14d;
add_header Cache-Control 'public';
}

location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.0-fpm-username.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
}
}
# HTTP --> HTTPS REDIRS

# main

server {
listen 80;
server_name bnbr.co;
return 301 https://$server_name$request_uri;
} #`

Я новичок в этом деле, поэтому я надеюсь, что вы, ребята, можете помочь.

Спасибо!

-1

Решение

Я поставлю здесь все необходимые шаги.

1) создать пользователя и пройти через шаги, которые он спросит:

adduser bnbr

2) создать папки:

mkdir -p /home/bnbr/public
mkdir -p /home/bnbr/logs
mkdir -p /home/bnbr/tmp

3) скопировать ваши вещи в public папка

4) установить владельца и моды:

chown -R bnbr:bnbr /home/bnbr
chmod -R 0755 /home/bnbr/public
chmod -R 0755 /home/bnbr/logs
chmod -R 0755 /home/bnbr/tmp

5) создать конфигурацию пула php в /etc/php/7.0/fpm/pool.d/bnbr.conf со следующим содержанием:

[brbr]

user = brbr
group = brbr

listen = /var/run/php-fpm.brbr.sock
listen.owner = brbr
listen.group = brbr
listen.mode = 0666

pm = ondemand
pm.max_children = 16
pm.process_idle_timeout = 10s
pm.max_requests = 32
chdir = /

php_admin_flag[display_errors] = on
php_admin_value[error_log] = /home/bnbr/logs/fpm-php.bnbr.log
php_admin_value[log_level] = "warning"php_admin_flag[log_errors] = on
php_admin_value[memory_limit] = 128M
php_admin_value[post_max_size] = 16M
php_admin_value[upload_max_filesize] = 16M
php_admin_value[upload_tmp_dir] = /home/bnbr/tmp
php_admin_flag[allow_url_fopen] = on
php_admin_value[open_basedir] = "/usr/share/php:/tmp:/usr/local/lib/php:/home/brbr/logs:/home/bnbr/public:/home/bnbr/tmp"

6) перезапустите службу php-fpm

7) создайте конфигурацию хоста для nginx и включите его:

server {
listen ssl 443;
server_name bnbr.co www.bnbr.co;

root /home/bnbr/public
index index.php;

ssl on;
ssl_certificate /etc/letsencrypt/live/bnbr.co/cert.pem;
ssl_certificate_key /etc/letsencrypt/live/bnbr.co/privkey.pem;
ssl_session_timeout 10m;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";
ssl_prefer_server_ciphers on;

location / {
try_files $uri $uri/ /yourls-loader.php;
autoindex off;
access_log off;
if (!-f $request_filename) {
rewrite /(.*)$ /yourls-loader.php last;
break;
}
}

location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php-fpm.bnbr.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
}
}

8) перезапустите nginx

Объяснение:

Я создаю bnbr Пользователь хранит все вещи в бетоне изолированно с привилегиями пользователя.

Говоря в конфигурации пула php-fpm, что мне нужен слушатель fpm с bnbr привилегии, а также определение, где это, порожденное процессом fpm php, может получить доступ с open_basedir директивы.

Говоря nginx проверить /home/bnbr/public папка.

Постскриптум Нет необходимости в letsencrypt, просто подключите Ваш домен к CloudFlare, и он предоставит Вам долгосрочный подстановочный сертификат ssl +, чтобы скрыть Ваш сервер от атак ddos.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]