• Debian Jessie + Apache2 + PHP5. Почему PHP не работает на созданных сайтах?

    trixden
    @trixden Автор вопроса
    Ну, сам спросил, сам и отвечу. PHP блокируется в конфигах.
    Файл /etc/apache2/mods-available/php5.conf. Необходимо закомментировать строки:
    <IfModule mod_userdir.c>
        <Directory /home/*/public_html>
            php_admin_flag engine Off
        </Directory>
    </IfModule>

    То есть:
    # <IfModule mod_userdir.c>
    #     <Directory /home/*/public_html>
    #         php_admin_flag engine Off
    #     </Directory>
    # </IfModule>
    Ответ написан
    Комментировать
  • Yii2 Выпадающий список при создании новой записи в админке?

    R0dger
    @R0dger
    Laravel/Yii/2 AngularJs PHP RESTful API
    во вьюшке
    <?= $form->field($model, 'Catalog_id')->dropDownList(
            ArrayHelper::map(Notebook::find()->all(), 'id', 'namePC'),
            ['prompt'=>'Выберите значание']
        );


    ну как то так примерно.. свои данные только подставьте
    Ответ написан
    3 комментария
  • Yii2 ActiveQuery::joinWith() не получается выбрать поля из связанной таблицы?

    @buildok Автор вопроса
    Через var_dump обнаружил, что поля из связанной таблицы все же возвращаются во вложенном массиве ['artStatus']. По какой-то причине ActiveDataProvider вложенные массивы в JSON не добавляет.
    Нашел решение, используя SqlDataProvider:
    $count = $model->find()
       ->joinWith('artStatus')
       ->andWhere('{{status}}.code = :code', [':code' => $code])
       ->count();          	
    
    return new SqlDataProvider([
       'totalCount' => $count,
       'params' => [':code' => $code],
       'sql' => '
              SELECT article.*, status.code, status.descr AS sdescr
              FROM article
              LEFT JOIN status ON article.id_status = status.id
              WHERE status.code = :code'
    ]);


    Но этот SQL в контроллере мне совсем не нравится. Поэтому создал представление в MySQL, в котором все нужные поля из связанных таблиц. К этому представлению модель и все, можно обойтись без joinWith и т.п.
    Ответ написан
    Комментировать
  • Yii-debug панель на странице с виджетом yii2-dynagrid не работает. Что может быть не так?

    inginer
    @inginer
    Веб - разработчик
    Попробуйте очистить папку runtime. Мне помогает.
    Ответ написан
    Комментировать
  • Как защитить свою программу, юридически?

    конфигурация защищена от дурака, весь код прошел обфускацию , модуль защищен паролем, доступа в конфигуратор нет, но все рано переживаю могут ли ее взломать раз на то пошло


    Могут, конечно. Но зачем? Ведь по-хорошему, для дальнейшего развития этой проги, да и для банального исправления ошибок, все равно дешевле обращаться к вам. Особенно при отсутствии хоть какого-то программиста в штате.

    Не парьтесь, оставьте все как есть (пароль лучше убрать - вскрывается довольно просто, а вот обфускация в самый раз). Озвучьте гуманный ценник за консультации, поддержку и доработки.
    Ответ написан
    1 комментарий
  • Как защитить свою программу, юридически?

    eapeap
    @eapeap
    Сисадмин, Беларусь
    Если всё делалось с ведома руководства, код писался дома в нерабочее время, то мое IMHO:
    1. Оставляете всё как есть и уходите.
    2. Если фирме нужны исходники (понадобятся потом) - называете цену вопроса, и передаете после оплаты.
    Всё равно фирме будет дешевле, чем переписывать или взламывать конфигурацию.
    Если пошла морока с увольнением - неплохо бы сделать закладку. Нормально рассчитали - сняли закладку. Кинули при расчете - программа упала через месяц. Да и #$% с ней.
    Ответ написан
    1 комментарий
  • Как передать значение переменной из php-скрипта в javascript?

    nowm
    @nowm
    Первый способ: Отдельный AJAX-запрос к PHP-файлу, который вернёт что-нибудь вроде JSON-данных, которые потом будут доступны из JS.

    Второй способ: В PHP-файле можно определить какую нибудь переменную во время генерации страницы, а потом из любых скриптов к ней обращаться. Например так:

    PHP-файл:
    <?php
    $a = 'text for js_variable';
    ?>
    <!DOCTYPE html>
    <html>
      <head>
        <script>
          //Определяется переменная, которая будет доступна для 
          // всех JavaScript, подключаемых на данной странице
          var js_variable = '<?php echo $a; ?>';
        </script>
        <!-- 
          В файле /scripts/myscript.js происходит обращение 
          к переменной js_variable 
        -->
        <script src="/scripts/myscript.js"></script>
      </head>
      <body>blah-blah-blah</body>
    </html>


    Файл /scripts/myscript.js:
    // Выскочит алерт с текстом «text for js_variable».
    alert(js_variable);


    Вот. В HEAD-части HTML-страницы вы определяете переменную, которая будет доступна для остального JS-кода. Главное — нужно её определять до того, как будут подключены скрипты, которые будут её использовать.

    Третий способ: Если ваш web-сервер — Apache, то можно добавить в .htaccess в корне сайта такие строки:
    AddType application/x-httpd-php .js
    AddHandler x-httpd-php5 .js
    
    <FilesMatch "\.js$">
    SetHandler application/x-httpd-php
    </FilesMatch>


    Тогда вы сможете прямо в JS-файлах выполнять PHP-код. Но выполняться он будет только в тех JS-файлах, которые находятся в папке с сайтом. Если будут загружаться скрипты со сторонних ресурсов, там PHP-код работать не будет.
    Ответ написан
    Комментировать
  • Подымаем GIT на своем домене и сервере?

    @inkvizitor68sl
    Linux-сисадмин с 8 летним стажем.
    > что бы работал протокол git://
    Чтобы работал протокол git, нужно пробросить порт 9418
    По ssh работает протокол git+ssh.

    > Какой алгоритм действий нужно произвести, чтобы поднять GIT сервер так, чтобы любой сотрудник нашей компании мог
    0) проверить, что из внутренней сети есть доступ на внешний ip-адрес роутера (существует мильён роутеров, которые не позволяют из своей сети обратиться на свой внешний интерфейс). Если нет - делайте роутер из убунты (https://debian.pro/249), на роутере выключайте dhcp, роутер цепляйте lan-портом к серверу. Ну или просто новый роутер ищите.
    1) на бубунте apt-get install git; adduser gituser; su gituser; mkdir gitrepo; cd gitrepo; git init; git config --bool core.bare true
    2) если пункт 0 с роутером работает - то пробрасывайте порты 22 или 9418 (в зависимости от выбранного протокола) наружу
    3) git.domain.tld через A запись вешайте на ip-адрес всей этой конструкции.
    4) добавляете в /home/gituser/.ssh/authorized_keys публичные ключи тех, кто будет работать с репозиторием.

    Это в простейшем виде. Пункты 2 и 4 по вкусу заменить на пляски с gitolite/корпоративный гитхаб/gitlab/etc.
    Ответ написан
    Комментировать
  • Карта на базе OpenStreetMap: как добраться до API?

    supporteam
    @supporteam Автор вопроса
    Вынужден ответить сам себе.
    Проще всего использовать Overpass API.
    В качестве примера приведу запрос к API, вытягивающий XML-список объектов с тегом payment:bitcoin и его значением yes:

    wget -O output.osm --post-file=query.osm "http://overpass-api.de/api/interpreter
    ,
    где query.osm содержит:
    http://overpass-api.de/api/interpreter?data=node["payment:bitcoin"=yes];out;


    Вполне вероятно, что это всем и так понятно и известно — но пусть для таких же слоупоков, как и я, задача упростится :)
    Ответ написан
    1 комментарий