• Как правильно устанавливать linux с двумя жёсткими дисками?

    svisch
    @svisch Автор вопроса
    xotkot, понял) спасибо за рекомендации))
  • Как правильно устанавливать linux с двумя жёсткими дисками?

    svisch
    @svisch Автор вопроса
    Ваша логика понятна в целом кроме одного - почему не отделяя Хоум в отдельный раздел? Ведь сами же говорите, что он будет разрастаться. А если не отделять его, то при следующей переустановке он затрется!
  • Как правильно устанавливать linux с двумя жёсткими дисками?

    svisch
    @svisch Автор вопроса
    vaut, понял. Спасибо большое за советы. Сделаю тогда как вы советуете: разделю nvme на рут и Хоум, а другой физический диск примотрирую. И надеюсь получится справиться с вариантом без переустановки, а то уж больно не хочется снова заморачиваться установкой и настройкой всяких докеров(а самое главное по новой поднятия проектов в нем) и компосеров.)
  • Как правильно устанавливать linux с двумя жёсткими дисками?

    svisch
    @svisch Автор вопроса
    vaut, хорошо. Допустим, при такой разметке при следующей переустановке мне ведь придется затереть Хоум новой установкой? Знаю, что можно и не тереть, но где то мне посоветовали типа лучше затирать ее.
    Про своп кстати вычитал, что он быстрее изнашивает SSD и использовать его не рекомендуется. Прочитав это испугался и отключил у себя своп. Да и в моем случае сейчас он не особо то и нужен - вместе с диском докупил ещё планку памяти))
  • Как правильно устанавливать linux с двумя жёсткими дисками?

    svisch
    @svisch Автор вопроса
    Интересные решения. fstab, что в нем править? А то я не такой спец в linux ещё)
    По поводу рут и Хоум на nvme - это же очень много для системы и кофигов. 90% будет пустовать на этом диске. Как выше писали не логично ли его разделить на пару-тройку разделов. Получится под хлам часть nvme и storage с ssd например
  • Почему в Nuxt js в исходном коде страницы не отображается контент?

    svisch
    @svisch Автор вопроса
    Путем экспериментов мне удалось выяснить следующее. Дополняю подробности, ниже приведу код.
    Мое приложение имеет мультиязычность(рус и англ). Значение языка, параметры приложения и меню берется из бэкенда методом getMenu() в хранилище. Есть файлы переводов, которые я подключаю к компонентам и в зависимости от языка вывожу либо рус либо анг версию некой строки. Если в компоненте просто выводить переменные компоненты, то они нормально рендерятся сервером. Но в моем случае почему то компонента отрисовывается до того, как будет получено меню, и соответственно язык приложения, а следовательно и все зависимые данные от этого. Мучался с fetch в default.vue и случайным образом у меня началась рендериться страница как надо, т.е. с учетом данных бэкэенда, от которых зависит отрисовка других элементов. В default.vue отделил код комментариями со звездочками, после добавления которого все завелось, но в этом не вижу никакой логики. Если сможете объясните пожалуйста!
    Что имеем:
    store/index.js
    //import axios from 'axios'
    
    export const state = () => ({
      lang: '',
      error: {},
      message: {},
      entry:{
        nav: {
          brandLabel: {},
          brandUrl: '',
          menu: [],
        },
        userRole: '',
        appParams:{
          organization:{},
          country:{},
        }
      }
    })
    
    export const mutations = {
      setLang(state, lang) {
        state.lang=lang;
      },
      clearError(state){
        //state.error=Object.assign({});
        //if ("message" in state.error)
        state.error={};
      },
      clearMessage(state){
        state.message={};
      },
      setBrandLabel(state, val){
        state.entry.nav.brandLabel = val
      },
      setBrandUrl(state, val){
        state.entry.nav.brandUrl = val
      },
      setMenu(state, val){
        state.entry.nav.menu = val
      },
      setUserRole(state, val){
        state.entry.userRole = val
      },
      setOrganization(state, val){
        state.entry.appParams.organization = val
      },
      setCountry(state, val) {
        state.entry.appParams.country = val
      },
    }
    
    export const actions = {
      async getMenu({state, commit, $axios }){
        await this.$axios.get('menu')
          .then(response=>{
            //console.log(response.data)
            let d = response.data;
            commit('setBrandLabel', d.brandLabel)
            commit('setBrandUrl', d.brandUrl)
            commit('setMenu', d.menu)
            commit('setLang', d.lang)
            commit('setUserRole', d.userRole)
    
            commit('setOrganization', d.appParams.organization)
            commit('setCountry', d.appParams.country)
    
            //console.log(state.entry)
            return Promise.resolve(d.lang);
    
          })
          .catch(e => {
            state.error = e.response;
    
          });
        }
    }
    
    export const getters = {
      lang: state => state.lang,
      userRole: state => state.entry.userRole,
      error(state){
        if ((state.error instanceof Object) && ('message' in state.error)){
          return ('name' in state.error) ? `${state.error.name}. ${state.error.message}`.split(';') : state.error.message.split(';');
        }
        else if (JSON.stringify(state.error)=='{}' || state.error=='')
          return false;
        return [state.error];
      },
      message(state){
        if(JSON.stringify(state.message)=='{}' || state.message=='') {
          return false;
        } else return state.message;
      },
    }


    layouts/default.vue
    <template>
      <div id="app">
        <Navbar :nav="entry.nav" :lang="lang" />
        <main>
          {{test}}
          <div class='container'>
            <Nuxt />
          </div>
        </main>
      </div>
    </template>
    
    <script>
    import Navbar from '@/components/Navbar'
    import {mapState, mapActions} from 'vuex'
    import axios from 'axios'
    
    export default {
      components: {
        Navbar
      },
      data(){
        return {
          test: '',
        }
      },
      watch: {
        '$route' (to, from) {
            if (to.path.search(/^\/language/)>-1)  {
              this.changeLanguage(to,from);
            }
            this.$store.commit('clearError');
          },
      },
      computed: {
        ...mapState(['lang', 'entry']),
      },
      methods: {
        ...mapActions(['getMenu']),
        changeLanguage(to, from){
    			this.$router.replace(from.path);
    			if (this.lang!=to.params.lang)
    			{
    				this.setLang(to.params.lang);
    				this.sendLang(to.path);
    			}
    		},
    		sendLang(path){
          axios.put(path)
            .catch(e=>{
              this.$store.dispatch('setError', e);
          });
    		},
        setLang(lang){
    			this.$store.commit('setLang', lang);
    		},
      },
    
    //***************************************  после добавления этого кода начинает рендериться как надо
      async fetch() {
        const t = await fetch('http://localhost:8000/menu').then(res =>
          res.json())
      },
      asyncData() {
          return {
            name: 'Alex',
            food: 'apple'
          }
        },
    //*********************************конец странного и непонятного кода
    
      created(){
        this.getMenu()
      },
    }
    </script>


    pages/index.vue
    <template>
      <div class="home">
        <h1>front page</h1>
        <img alt="Vue logo" class='front-logo' src="../assets/logo-front.png">
        <FrontGuest v-if="userRole == 'roleGuest'" :msg = "voc.h1[lang]"/>
        <FrontUser v-if="userRole == 'roleUser' || userRole == 'roleAdmin'" :msg = "voc.h1[lang]"/>
        <div class="generate"></div>
      </div>
    </template>
    
    <script>
    import FrontGuest from '@/components/FrontPage/FrontGuest.vue'
    import FrontUser from '@/components/FrontPage/FrontUser.vue'
    import translations from '@/components/FrontPage/translations';
    
    export default {
      components: {
        FrontGuest, FrontUser
      },
      data(){
        return {
          name: 'Home',
          voc: translations,
        }
      },
      head: {
        title: 'Home page',
     
      data() {
        return {
          voc: translations,
        }
      },
      computed: {
        lang(){
          return this.$store.getters.lang;
        },
        userRole() {
          return  this.$store.getters.userRole;
        },
      },
    }
    </script>
  • Почему постоянно перекидывает на /core/install.php?

    svisch
    @svisch
    Тяжело сказать. Вы устанавливали друпал копированием файлов - хз что там могло произойти. Так уже никто не устанавливает начиная с 8ки. Настоятельно рекомендую потратить время на изучение composer - он пригодится не только с друпалом. Если вы этого не сделаете, то рано или поздно все равно столкнетесь с проблемами обновления ядра или установки модулей.
    Если на хостинге сидите - попробуйте восстановить резервную копию сайта в тот день, когда он был рабочий и запоминайте действия, которые делаете, если вдруг проблема повторится (просто так не могло по идее сломаться)
    Новая установка и замена бд на старую не сработает скорее всего (как то тоже маялся восстанавливая сайт, наверное там какое то соответствие стоит между файлами и бд в которую изначально ставится)
    И вообще идите на drupal.ru. Там все друпалеры обитают, тут мало их, по моим наблюдениям. Опишите там проблему и поясните, что ставили не компосером. Думаю там спецы дадут дельные советы.
  • Почему постоянно перекидывает на /core/install.php?

    svisch
    @svisch
    Иван Шульга, sites/default/settings.php смотрели? Настройки подключения к бд корректные?
  • Почему постоянно перекидывает на /core/install.php?

    svisch
    @svisch
    Иван Шульга, а перед этим действием что делали? как файлы на хостинг заливали? не использовали composer? вручную копировали?
  • Как проксировать запросы к бэкэнду в nuxt в dev режиме?

    svisch
    @svisch Автор вопроса
    Алексей Ярков, еще один момент - запрос происходит из store. Не знаю важно ли это)))
  • Как проксировать запросы к бэкэнду в nuxt в dev режиме?

    svisch
    @svisch Автор вопроса
    Алексей Ярков, в консоли нет никаких ошибок. Просто в интерфейс не выводится информация с api в случае с настройкой прокси '/api': 'localhost:8000/api'
  • Как проксировать запросы к бэкэнду в nuxt в dev режиме?

    svisch
    @svisch Автор вопроса
    Алексей Ярков, ну ковычки если только.... вот так '/api': 'http://localhost:8000/api'
    Почему спрашиваете серьезно ли или нет? В этом есть что то абсурдное?)
  • Почему в Nuxt js в исходном коде страницы не отображается контент?

    svisch
    @svisch Автор вопроса
    в конфиге стоит mode: 'universal',

    Создал ща другую страницу для теста - там все ок.
    Не ОК на проблемной странице может из за того, что там подключен файл с объектом для мультиязычности. Т.е. с бэкенда приходит параметр языка и в зависимости от него с этого файла с переводом подгружается переменная в шаблоне: var[lang].
    Может из-за асинхронности вся эта борода?
  • Apache2 почему не работает https?

    svisch
    @svisch Автор вопроса
    MaxKozlov, оновременно написали) выше написал почему не работал ssl - коллега помог найти)) Но вы и Vitaly Karasik указали на имеющиеся ошибки в настройках сервера. Без вас бы не заработало) Еще раз спасибо за помощь)
  • Apache2 почему не работает https?

    svisch
    @svisch Автор вопроса
    MaxKozlov, Vitaly Karasik, помимо всех вышеперечисленных ошибок в конфиге (повторялись настройки для 443) оказалось все дело вовсе не в apache, не в файерволе и не в пробросе портов, а в CMS сайта (opencart). Оказалось в конфигах сайта есть такая строчка: define('HTTPS_SERVER', 'https://site.ru/'). Так вот вместо https почему то стояло http, поэтому и не работало.
    Всем большое спасибо за помощь. Сильно помогли и расширили кругозор)
  • Apache2 почему не работает https?

    svisch
    @svisch Автор вопроса
    MaxKozlov, ну смотрите что получилось))
    С этой машины ip addr выдал только 127.0.0.1 и какой то двойной ip:
    inet 192.168.5.177/24 brd 192.168.5.255 scope global noprefixroute dynamic eno50332176

    первый и есть ip сервера в сети, естественно по нему отдает сертификат, по второму нет (connect:errno=9
    ), не знаю что это за адрес.

    Иду дальше, захожу с другой машины в этой сети и делаю openssl s_client -connect address:443 - сертификат отдает. Получается с файерволом все ок.

    Наверное все таки с dns что то или пробросом портов, а это для меня темный лес))) забыл еще упомянуть, что по домен не пингуется, на который настраиваю ssl)
  • Apache2 почему не работает https?

    svisch
    @svisch Автор вопроса
    MaxKozlov,
    1. в openssl x509 -in cert.pem -text нашел только следующие связанные с именем строки
    X509v3 Subject Alternative Name: 
                    DNS:site.ru, DNS:www.site.ru


    2. Да примерно так. Приведу полный код виртуалхост для 443
    <VirtualHost *:443>
        ServerName site.ru
        ServerAlias www.site.ru site.ru
        DocumentRoot /var/www/newstolica
        ErrorLog /var/log/httpd/newstolica-error.log
        CustomLog /var/log/httpd/newstolica-access.log combined
        SSLEngine on
        SSLCertificateFile /etc/letsencrypt/live/site.ru/cert.pem
        SSLCertificateChainFile /etc/letsencrypt/live/site.ru/chain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/site.ru/privkey.pem
    </VirtualHost>


    3. Процесс httpd

    4. адрес я думал надо домен указать))) попробовал как вы сказали openssl s_client -connect 127.0.0.1:443 вот что получилось:
    CONNECTED(00000003)
    depth=2 O = Digital Signature Trust Co., CN = DST Root CA X3
    verify return:1
    depth=1 C = US, O = Let's Encrypt, CN = R3
    verify return:1
    depth=0 CN = site.ru
    verify return:1
    ---
    Certificate chain
     0 s:/CN=site.ru
       i:/C=US/O=Let's Encrypt/CN=R3
     1 s:/C=US/O=Let's Encrypt/CN=R3
       i:/O=Digital Signature Trust Co./CN=DST Root CA X3
    ---
    Server certificate
    -----BEGIN CERTIFICATE-----
    MIIFLDCCBBSgAwIBAgISBJN1ETQOi9Wrriti2HyHTj7kMA0GCSqGSIb3DQEBCwUA
    MDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQD
    EwJSMzAeFw0yMTAyMTYxMzIyMzJaFw0yMTA1MTcxMzIyMzJaMBYxFDASBgNVBAMT
    C3N0b2xpY2Eub29vMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuVUV
    16lBzu9g8VtKhKopKXx5eKGagAvZg3Zeno6o17o0gc/zJ1pBEcGahyHLGFwb5Zsb
    4pin2sqTw0/eY7hV/aS8K6+ZKvK/zMJS/nmAqT/l/JUro904ltq9JZC27H1bakGp
    g8EK+QKymXcgxOVYKKNaUn4aGoIjuMcTanwdtNc8hmKFCm4QU1f4g9FVyYMZL2d3
    yVRH4ugxek19Ny8dh2wylldGztt2eeFqCepJibjDYSljG3+cGw3nUd3cibtJ6dLO
    ch2sgHsgIjavrRgUJuUtGrA1nzr3nmgZJPi2BfBChOznlQY5YqB+oWhwDRCqw/nh
    mPuKRZV/dfVofHK4nQIDAQABo4ICVjCCAlIwDgYDVR0PAQH/BAQDAgWgMB0GA1Ud
    JQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQW
    BBRnZRNULIuSEsCIMNH4NEe1p49BYjAfBgNVHSMEGDAWgBQULrMXt1hWy65QCUDm
    H6+dixTCxjBVBggrBgEFBQcBAQRJMEcwIQYIKwYBBQUHMAGGFWh0dHA6Ly9yMy5v
    LmxlbmNyLm9yZzAiBggrBgEFBQcwAoYWaHR0cDovL3IzLmkubGVuY3Iub3JnLzAn
    BgNVHREEIDAeggtzdG9saWNhLm9vb4IPd3d3LnN0b2xpY2Eub29vMEwGA1UdIARF
    MEMwCAYGZ4EMAQIBMDcGCysGAQQBgt8TAQEBMCgwJgYIKwYBBQUHAgEWGmh0dHA6
    Ly9jcHMubGV0c2VuY3J5cHQub3JnMIIBAwYKKwYBBAHWeQIEAgSB9ASB8QDvAHYA
    9lyUL9F3MCIUVBgIMJRWjuNNExkzv98MLyALzE7xZOMAAAF3qzik7gAABAMARzBF
    AiA6wkrfE/s9jriKumua6BcPvVnGR2qw+sgLTltZoSBDcgIhAPveoZDuCzzP/S0l
    XrEZf1jXRPVBZzBKfB2W6cEo/c+XAHUAlCC8Ho7VjWyIcx+CiyIsDdHaTV5sT5Q9
    YdtOL1hNosIAAAF3qzilDwAABAMARjBEAiB3vVgEJs/1c9Kq1fYJ7o56o7E36ri7
    6e1ZQHy7x6BAWwIgCP7Bgyk9rIrFpu5BOCKjz5SX1vazPuNG3bzDgvNOg5wwDQYJ
    KoZIhvcNAQELBQADggEBAHbdus8qcILrl5zTGNtE2tmDviZj3HpHaliDEJ2gHS7Z
    tSf7EDerrcuBQ2yqNEoK7asjYip21YScnfSe/pDOK4mIBIFWRn+0LVhNlGN7Oct4
    iCLMZ2zqduXl5QiTDsaft1wQNYD+YXuFNP69e5OvY78p3Y90x+/MvBZhQGkKD0EY
    a1QmaIHiYhJQDFnPUR59CZ8uJ7w76XCylNdgEGhBB041i1dqHXzMsWnEI9HiRVsl
    py6oKqqoU+3BPXyTwWc9q5O2ZWy2h750RET3lRPKgHc6lPq3j7YKAYqSjv7Db8ef
    o8NTaMr/lJc+fM1dbN/TL10ec/4+Q+fg1CA5GzI3suE=
    -----END CERTIFICATE-----
    subject=/CN=site.ru
    issuer=/C=US/O=Let's Encrypt/CN=R3
    ---
    No client certificate CA names sent
    Peer signing digest: SHA512
    Server Temp Key: ECDH, P-256, 256 bits
    ---
    SSL handshake has read 3151 bytes and written 415 bytes
    ---
    New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-GCM-SHA384
    Server public key is 2048 bit
    Secure Renegotiation IS supported
    Compression: NONE
    Expansion: NONE
    No ALPN negotiated
    SSL-Session:
        Protocol  : TLSv1.2
        Cipher    : ECDHE-RSA-AES256-GCM-SHA384
        Session-ID: CFE624FA344E9687D032244550611B55AA431388EE81B08AE3877E24541766CA
        Session-ID-ctx: 
        Master-Key: A97FDC8A0FEB5CC559BCE81C32C003EBC5B408AF018065166158A66F3110D8F4164756956AEA397EC77155D76868290E
        Key-Arg   : None
        Krb5 Principal: None
        PSK identity: None
        PSK identity hint: None
        TLS session ticket lifetime hint: 300 (seconds)
        TLS session ticket:
        0000 - 37 22 09 1f e2 48 65 3e-db 6c 32 76 b9 ad 64 ae   7"...He>.l2v..d.
        0010 - 5e 1a 5e ec d4 c5 54 b4-7f 49 c4 1d 0a 96 80 00   ^.^...T..I......
        0020 - 6b 46 cf 99 9d 46 46 65-7e 23 ff 04 e5 e3 ba cf   kF...FFe~#......
        0030 - 71 9a 71 38 4c e7 42 48-ca 68 42 3b b2 eb c2 b7   q.q8L.BH.hB;....
        0040 - c7 9a 71 34 65 4b a9 60-57 34 a9 3a 75 f5 29 13   ..q4eK.`W4.:u.).
        0050 - dc f6 cd 2c 5f 74 32 71-72 5d 93 08 88 13 9a ee   ...,_t2qr]......
        0060 - 13 b6 96 87 fe c0 d2 92-d0 06 93 d7 4e e8 61 f2   ............N.a.
        0070 - 3f c5 21 5f de 77 a9 1d-e6 74 85 03 da d0 70 e5   ?.!_.w...t....p.
        0080 - d5 48 92 e3 96 5e 46 4b-a9 e3 bb 9b 2b bb 69 a8   .H...^FK....+.i.
        0090 - 09 c0 2c f0 5e 9e d2 b1-fd de 6b b2 3c 26 25 4f   ..,.^.....k.<&%O
        00a0 - b3 2f 58 53 57 55 31 d3-b4 1c d3 36 7e ba dc e1   ./XSWU1....6~...
        00b0 - b5 29 59 c5 4c ce 20 3e-f2 ce 8f c8 00 7b 7f 1b   .)Y.L. >.....{..
    
        Start Time: 1613511280
        Timeout   : 300 (sec)
        Verify return code: 0 (ok)
    ---
    closed


    Может какой нибудь проброс портов настроен на сервере? Не знаю как это посмотреть. Просто не я его настраивал, с ним может быть все что угодно. В начале забыл указать, что ос Centos 7. Может еще с файерволом что, но вроде 443 открыл порт.
  • Apache2 почему не работает https?

    svisch
    @svisch Автор вопроса
    MaxKozlov, сори за долгий ответ. По порядку:
    1. Имя сервера в httpd.conf в параметре ServerName за пределами VirtualHost - site.ru:80 (пробовал ставить и :443), а внутри него - site.ru. Генерировал сертификат для доменов site.ru и www.site.ru командой
    sudo certbot certonly --apache -d site.ru -d www.site.ru
    . А как исходя из самих файлов не знаю как посмотреть имя в сертификате
    2. Listen 443 https в файле httpd.conf рядом c Listen 80. SSLEngine on - в настройках виртуального хоста для 443
    3. netstat -plutn выдает для 443 только
    0.0.0.0:443
    4. openssl s_client -connect вашадрес:443 пишет:
    socket: Bad file descriptor
    connect:errno=9