{"data":{"markdownRemark":{"frontmatter":{"title":"a2ensite для Nginx","date":"16 September 2017","path":"/a2ensite-dlya-nginxa/","author":null,"excerpt":"Хотите добавить a2ensite и a2dissite для nginx? Эта небольшая статья призвана помочь заполнить недостающие инструменты.","tags":["Linux","Nginx"],"coverImage":{"childImageSharp":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAALABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAwQA/8QAFQEBAQAAAAAAAAAAAAAAAAAAAQD/2gAMAwEAAhADEAAAAZHJCi1+T//EABwQAQACAQUAAAAAAAAAAAAAAAECEQADEiExQv/aAAgBAQABBQKJePBulemqHfr/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAVEQEBAAAAAAAAAAAAAAAAAAAQEf/aAAgBAgEBPwGH/8QAHRAAAgIBBQAAAAAAAAAAAAAAAAECIREiUXGBof/aAAgBAQAGPwKOnwdDsWdh9EuT/8QAHRAAAgIBBQAAAAAAAAAAAAAAAAERITFBgZGhsf/aAAgBAQABPyFrSTF7hFBRNKaNcWyVE29H4Au2f//aAAwDAQACAAMAAAAQ3B//xAAWEQEBAQAAAAAAAAAAAAAAAAAAARH/2gAIAQMBAT8QjH//xAAXEQADAQAAAAAAAAAAAAAAAAAAAREh/9oACAECAQE/EHilP//EAB4QAQEAAgEFAQAAAAAAAAAAAAERADEhYXGRodHw/9oACAEBAAE/EJL63RqD1gDLKOd/cghWj3xjVSr0kxlV5DPNxuz8Gf/Z","aspectRatio":1.8848167539267016,"src":"/static/702b8d1af780928a14a405425e86bca7/b4295/photo-1531668383211-64743e924c66.jpg","srcSet":"/static/702b8d1af780928a14a405425e86bca7/127d5/photo-1531668383211-64743e924c66.jpg 200w,\n/static/702b8d1af780928a14a405425e86bca7/7ef6a/photo-1531668383211-64743e924c66.jpg 400w,\n/static/702b8d1af780928a14a405425e86bca7/b4295/photo-1531668383211-64743e924c66.jpg 800w,\n/static/702b8d1af780928a14a405425e86bca7/487eb/photo-1531668383211-64743e924c66.jpg 1080w","sizes":"(max-width: 800px) 100vw, 800px"}}}},"id":"59f3699b-c1fa-5a10-95f0-6db877388aa7","html":"<p>Думаю многим известен a2ensite/a2dissite для включения/выключения виртуальных хостов  в apache. К сожалению для nginx такого нет, хотя диретории site-enabled site-available есть (это касается только ubuntu, про другие не скажу). Эта небольшая статья призвана помочь заполнить недостающие инструменты.</p>\n<p>Скелет скрипта я взял из своей предыдущей статьи <a href=\"https://softroot.ru/?go=all/pravilny-lamp-na-archlinux/\">https://softroot.ru/?go=all/pravilny-lamp-na-archlinux/</a></p>\n<p>Принцип действия просто. Мы просто делаем мягкую ссылку на конфиг.</p>\n<p>Пишем первый скрипт. Для включения.</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\">    <span class=\"token function\">sudo</span> <span class=\"token function\">nano</span> /usr/sbin/n2ensite\n    \n\n    <span class=\"token comment\">#!/bin/bash</span>\n    <span class=\"token keyword\">if</span> <span class=\"token function\">test</span> -d /etc/nginx/sites-available <span class=\"token operator\">&amp;&amp;</span> <span class=\"token function\">test</span> -d /etc/nginx/sites-enabled  <span class=\"token punctuation\">;</span> <span class=\"token keyword\">then</span>\n    <span class=\"token keyword\">echo</span> <span class=\"token string\">\"-------------------------------\"</span>\n    <span class=\"token keyword\">else</span>\n    <span class=\"token keyword\">echo</span> <span class=\"token string\">\"Error!! Folders /etc/nginx/sites-available &amp; /etc/nginx/sites-enabled not fo$\n    exit 0\n    fi\n    \n    avail=/etc/nginx/sites-available/<span class=\"token variable\">$1</span>.conf\n    enabled=/etc/nginx/sites-enabled\n    \n    site=<span class=\"token variable\"><span class=\"token variable\">`</span><span class=\"token function\">ls</span> /etc/nginx/sites-available/<span class=\"token variable\">`</span></span>\n    \n    if [ \"</span>$<span class=\"token comment\">#\" != \"1\" ]; then</span>\n            <span class=\"token keyword\">echo</span> <span class=\"token string\">\"Use script: n2en site_config\"</span>\n            <span class=\"token keyword\">echo</span> -e <span class=\"token string\">\"\\nAvailable configs:\\n<span class=\"token variable\">$site</span>\"</span>\n            <span class=\"token keyword\">exit</span> 0\n    <span class=\"token keyword\">else</span>\n    <span class=\"token keyword\">if</span> <span class=\"token function\">test</span> -e <span class=\"token variable\">$avail</span><span class=\"token punctuation\">;</span> <span class=\"token keyword\">then</span>\n    <span class=\"token function\">sudo</span> <span class=\"token function\">ln</span> -s <span class=\"token variable\">$avail</span> <span class=\"token variable\">$enabled</span>\n    <span class=\"token keyword\">else</span>\n    <span class=\"token keyword\">echo</span> -e <span class=\"token string\">\"<span class=\"token variable\">$avail</span> config does not exist! Please create one!\\n<span class=\"token variable\">$site</span>\"</span>\n    <span class=\"token keyword\">exit</span> 0\n    <span class=\"token keyword\">fi</span>\n    <span class=\"token keyword\">if</span> <span class=\"token function\">test</span> -e <span class=\"token variable\">$enabled</span>/<span class=\"token variable\">$1</span>.conf<span class=\"token punctuation\">;</span> <span class=\"token keyword\">then</span>\n    <span class=\"token keyword\">echo</span> <span class=\"token string\">\"Success!!\"</span>\n    <span class=\"token keyword\">echo</span> <span class=\"token string\">\"For test nginx config: sudo nginx -t\"</span>\n    <span class=\"token keyword\">echo</span> <span class=\"token string\">\"Now reload nginx server: sudo systemctl reload nginx\"</span>\n    <span class=\"token keyword\">else</span>\n    <span class=\"token keyword\">echo</span>  -e <span class=\"token string\">\"Config <span class=\"token variable\">$avail</span> does not exist!\\nPlease see avail configs:\\n<span class=\"token variable\">$site</span>\"</span>\n    <span class=\"token keyword\">exit</span> 0\n    <span class=\"token keyword\">fi</span>\n    <span class=\"token keyword\">fi</span></code></pre></div>\n<p>Делаем скрипт исполняемым</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\">    <span class=\"token function\">sudo</span> <span class=\"token function\">chmod</span> +x /usr/sbin/n2ensite</code></pre></div>\n<p>Второй скрипт для выключения сайтов.</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\">    <span class=\"token function\">sudo</span> <span class=\"token function\">nano</span> /usr/sbin/n2dissite\n    \n\n    <span class=\"token comment\">#!/bin/bash</span>\n    <span class=\"token keyword\">if</span> <span class=\"token function\">test</span> -d /etc/nginx/sites-available <span class=\"token operator\">&amp;&amp;</span> <span class=\"token function\">test</span> -d /etc/nginx/sites-enabled  <span class=\"token punctuation\">;</span> <span class=\"token keyword\">then</span>\n    <span class=\"token keyword\">echo</span> <span class=\"token string\">\"-------------------------------\"</span>\n    <span class=\"token keyword\">else</span>\n    <span class=\"token keyword\">echo</span> <span class=\"token string\">\"Error!! Folders /etc/nginx/sites-available &amp; etc/nginx/sites-enabled not found.\"</span>\n    <span class=\"token keyword\">exit</span> 0\n    <span class=\"token keyword\">fi</span>\n    \n    avail<span class=\"token operator\">=</span>/etc/nginx/sites-enabled/<span class=\"token variable\">$1</span>.conf\n    enabled<span class=\"token operator\">=</span>/etc/nginx/sites-enabled\n    site<span class=\"token operator\">=</span><span class=\"token variable\"><span class=\"token variable\">`</span><span class=\"token function\">ls</span> /etc/nginx/sites-enabled<span class=\"token variable\">`</span></span>\n    \n    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">[</span> <span class=\"token string\">\"<span class=\"token variable\">$#</span>\"</span> <span class=\"token operator\">!=</span> <span class=\"token string\">\"1\"</span> <span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span> <span class=\"token keyword\">then</span>\n            <span class=\"token keyword\">echo</span> <span class=\"token string\">\"Use script: n2dissite site_config\"</span>\n            <span class=\"token keyword\">echo</span> -e <span class=\"token string\">\"\\nEnabled configs: \\n<span class=\"token variable\">$site</span>\"</span>\n            <span class=\"token keyword\">exit</span> 0\n    <span class=\"token keyword\">else</span>\n    <span class=\"token keyword\">if</span> <span class=\"token function\">test</span> -e <span class=\"token variable\">$avail</span><span class=\"token punctuation\">;</span> <span class=\"token keyword\">then</span>\n    <span class=\"token function\">sudo</span> <span class=\"token function\">rm</span>  <span class=\"token variable\">$avail</span>\n    <span class=\"token keyword\">else</span>\n    <span class=\"token keyword\">echo</span> -e <span class=\"token string\">\"<span class=\"token variable\">$avail</span> config does not exist! Exiting\"</span>\n    <span class=\"token keyword\">exit</span> 0\n    <span class=\"token keyword\">fi</span>\n    <span class=\"token keyword\">if</span> <span class=\"token function\">test</span> -e <span class=\"token variable\">$enabled</span>/<span class=\"token variable\">$1</span>.conf<span class=\"token punctuation\">;</span> <span class=\"token keyword\">then</span>\n    <span class=\"token keyword\">echo</span> <span class=\"token string\">\"Error!! Could not remove <span class=\"token variable\">$avail</span> config!\"</span>\n    <span class=\"token keyword\">else</span>\n    <span class=\"token keyword\">echo</span>  -e <span class=\"token string\">\"Success! <span class=\"token variable\">$avail</span> has been removed!\\nsudo systemctl reload nginx\"</span>\n    <span class=\"token keyword\">exit</span> 0\n    <span class=\"token keyword\">fi</span>\n    <span class=\"token keyword\">fi</span>\n    <span class=\"token keyword\">fi</span></code></pre></div>\n<p>Делаем скрипт исполняемым</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\">    <span class=\"token function\">sudo</span> <span class=\"token function\">chmod</span> +x /usr/sbin/n2dissite</code></pre></div>\n<p>Для себя я для краткости именую скрипты как n2en и n2di.</p>\n<p>На этом всё.</p>","excerpt":"Думаю многим известен a2ensite/a2dissite для включения/выключения виртуальных хостов  в apache. К сожалению для nginx такого нет, хотя…"}},"pageContext":{"isCreatedByStatefulCreatePages":false,"type":"posts","next":{"frontmatter":{"path":"/izuchaem-erlang/","title":"Изучаем Erlang","tags":["Erlang","Программирование"]},"fileAbsolutePath":"/srv/www/softroot.ru/src/posts/2016-10-26-izuchaem-erlang.md"},"previous":{"frontmatter":{"path":"/hakery-2/","title":"Хакеры","tags":["Кибер угрозы","Хакеры"]},"fileAbsolutePath":"/srv/www/softroot.ru/src/posts/2017-11-10-hakery-2.md"}}}