DARTHARTH

Добавление сайта в LEMP

Хорошую статью из инета, на тему LEMP и CentOS7 разбиваю на части, и эта будет посвящена непосредственному созданию первого сайта на уже установленном и настроенном LEMP. Тут будет общий принцип создания и некоторыми шагами можно пренебречь, если у вас какие-либо свои предпочтения по установке.


Задаем переменную для быстрого или для кого-то ленивого добавления адреса сайта, что бы не приходилось каждый раз копипсатить

TMP_SITE=mydomain.com

Создаем новый конфиг виртуального домена nginx

nano /etc/nginx/conf.d/$TMP_SITE.conf

Во внутрь добавляем, для http версии

server {
    listen       80;
    server_name  mydomain.com www.mydomain.com;
    set $root_path /var/www/mydomain.com/www;

    access_log /var/www/mydomain.com/log/nginx/access_log;
    error_log /var/www/mydomain.com/log/nginx/error_log;
    
    gzip  on;
    gzip_disable "msie6";
    gzip_min_length 1000;
    gzip_vary on;
    gzip_proxied    expired no-cache no-store private auth;
    gzip_types      text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;

    root   $root_path;

    location / {
        proxy_pass http://127.0.0.1:8080/;
        proxy_redirect     off;
        proxy_set_header   Host             $host;
        proxy_set_header   X-Forwarded-Proto $scheme;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
    }
    
    location ~* ^.+\.(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|doc|docx|xls|xlsx|exe|pdf|ppt|tar|wav|bmp|rtf|js)$ {
            expires modified +1w;
    }
}

для https

server {
    listen 80;
    server_name mydomain.com www.mydomain.com;
    return 301 https://$host$request_uri;
}

server {
    listen       443 ssl;
    ssl on;
    ssl_certificate /etc/nginx/ssl/cert.pem;
    ssl_certificate_key /etc/nginx/ssl/cert.key;

    server_name  mydomain.com www.mydomain.com;
    set $root_path /var/www/mydomain.com/www;

    access_log /var/www/mydomain.com/log/nginx/access_log;
    error_log /var/www/mydomain.com/log/nginx/error_log;
    
    gzip  on;
    gzip_disable "msie6";
    gzip_min_length 1000;
    gzip_vary on;
    gzip_proxied    expired no-cache no-store private auth;
    gzip_types      text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;

    root   $root_path;

    location / {
        proxy_pass http://127.0.0.1:8080/;
        proxy_redirect     off;
        proxy_set_header   Host             $host;
        proxy_set_header   X-Forwarded-Proto $scheme;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
    }
    
    location ~* ^.+\.(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|doc|docx|xls|xlsx|exe|pdf|ppt|tar|wav|bmp|rtf|js)$ {
            expires modified +1w;
    }
}

Далее создаем домен для apache

nano /etc/httpd/conf.d/$TMP_SITE.conf

с содержимым

<VirtualHost *:8080>
    Define root_domain mydomain.com
    Define root_path /var/www/mydomain.com

    ServerName ${root_domain}
    ServerAlias www.${root_domain}
    DocumentRoot ${root_path}/www

    ErrorLog     ${root_path}/log/apache/error_log
    TransferLog  ${root_path}/log/apache/access_log

    php_admin_value upload_tmp_dir ${root_path}/tmp
    php_admin_value doc_root ${root_path}
    php_admin_value open_basedir    ${root_path}:/usr/local/share/smarty:/usr/local/share/pear
    php_admin_value session.save_path 0;0660;${root_path}/tmp
</VirtualHost>

В приведенных выше примерах папка с файлами сайта в корне — www, в случае, если идет установка Drupal 8 с помощью composer, можно вместо www выставить web, что бы не делать в дальнейшем лишние ссылкил на папку.

Создаем каталоги сайта для файлов, тэмпа и логов

mkdir -p /var/www/$TMP_SITE/{www,tmp}
mkdir -p /var/www/$TMP_SITE/log/{nginx,apache}

Можно создать тестовый индекс

nano /var/www/$TMP_SITE/www/index.php
<?php echo "<h1>Hello from site1</h1>"; ?>

Задаем права на папки и файлы

chown -R apache:apache /var/www/$TMP_SITE
chmod -R 775 /var/www/$TMP_SITE

Проверяем конфиги apache/nginx на ошибки

nginx -t
apachectl configtest

Перезапускаем их

systemctl reload nginx
systemctl reload httpd

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Scroll Up