пятница, 5 июня 2015 г.

Laravel отключить csrf для rest api

Для того чтобы отключить проверку csrf для роута, можно в
App\Http\Middleware\VerifyCsrfToken
обработать наш путь.


<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as BaseVerifier;

class VerifyCsrfToken extends BaseVerifier {

    private $skipRoute = 'api/*';

    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next) {
        if ($request->is($this->skipRoute)) {
            return $next($request);
        }
        return parent::handle($request, $next);
    }

}

воскресенье, 25 января 2015 г.

Tomcat в автозагрузку Debian

#!/bin/bash

### BEGIN INIT INFO
# Provides:        tomcat
# Required-Start:  $network
# Required-Stop:   $network
# Default-Start:   2 3 4 5
# Default-Stop:    0 1 6
# Short-Description: Start/Stop Tomcat server
### END INIT INFO

PATH=/sbin:/bin:/usr/sbin:/usr/bin

start() {
 sh /usr/share/tomcat7/bin/startup.sh
}

stop() {
 sh /usr/share/tomcat7/bin/shutdown.sh
}

case $1 in
  start|stop) $1;;
  restart) stop; start;;
  *) echo "Run as $0 <start|stop|restart>"; exit 1;;
esac
Меняем права на выполнение и добаляем
chmod 755 /etc/init.d/tomcat7
update-rc.d tomcat7 defaults

Данный скрипт честно стащил с отсюда.

суббота, 18 октября 2014 г.

The form bound to the class does not have a valid binding for the root component

Ошибка возникает при попытке сгенерировать в IntelliJ IDEA метод main.
 Чтобы поправить надо перейти в дизайнер формы и у корневого компонента (JPanel) поставить имя. После этого вновь пробуем сгенерировать метод. Решение взято отсюда.

пятница, 4 июля 2014 г.

Oracle перенос таблиц в другое табличное пространство

begin
  for tbl in (select t.table_name
                from all_tables t
               where t.owner = :usr
                 and t.tablespace_name = :oldtbs)
  loop
    dbms_output.put_line('ALTER TABLE ' || :usr || '.' || tbl.table_name ||
                         ' MOVE TABLESPACE ' || :newtbs || ';');
    -- индексы
    for indx in (select i.owner || '.' || i.index_name as nm
                   from all_indexes i
                  where i.tablespace_name = :oldtbs
                    and i.table_owner = :usr
                    and i.table_name = tbl.table_name)
    loop
      dbms_output.put_line('ALTER INDEX ' || indx.nm ||
                           ' REBUILD TABLESPACE ' || :newtbs || ';');
    end loop;
  end loop;
end;


где переменные означают следующее:
  • :oldtbs - старое табличное пространство
  • :usr - пользователь чьи таблицы вы собираетесь переносить
  • :newtbs - новое табличное пространство
Данный скрипт генерирует скрипты на перенос всех таблиц и индексов указанного пользователя из oldtbs в newtbs
P.S. никогда не создавайте пользователя в табличном пространстве SYSTEM.

среда, 12 марта 2014 г.

fgetcsv проблемы с кириллицей

При чтении csv  с кириллицей возникла проблема с кодировкой, текст просто не отображался.
В сети нашел несколько вариантов, но завести с ходу удалось только 1

function convert($str)
{
     return iconv("Windows-1251", "UTF-8", $str);
}

public function load($filename)
{
    if (($handle = fopen($filename, "r")) !== FALSE)
    {
        while (($data = fgetcsv($handle, 0, ';')) !== FALSE)
        {
          $data = array_map(array($this,'convert'), $data);
            $this->save_row($data);
        }
        fclose($handle);
    } else
    {
        $this->loger->add("Не удалось открыть файл");
    }
}

воскресенье, 9 февраля 2014 г.

Sql Developer XE

При конекте ORA-12705: Cannot access NLS data files or invalid environment specified
Необходимо поменять локаль в настройка девелопера.
Добавляем в файл %SQLDEVELOPER_DIR%/sqldeveloper/bin/sqldeveloper.conf
AddVMOption -Duser.language=en
AddVMOption -Duser.region=us

суббота, 8 февраля 2014 г.

Symfony2 использовать DI в Command

Вызывать сервисы в консольной команде можно следующим способом

 $service = $this->getApplication()
                 ->getKernel()
                 ->getContainer()
                 ->get("my.service");

вторник, 15 января 2013 г.

Кеширование статики в Apache

Для статичных файлов сайта (css,js,изображения) рекомендуется установить срок кеширования, для ускорения веремени загрузки страницы. Статика кешируется если не ошибаюсь на клиентской машине и на прокси серверах например провайдеров. Для этого можно воспользоваться модулем headers.
Включаем модуль

a2enmod headers
/etc/init.d/apache2 stop
/etc/init.d/apache2 start

Добавляем в файл .htaccess правило кеширования

<FilesMatch ".(gif|jpg|jpeg|png|ico|swf|js|css|pdf)$">
Header set Cache-Control "max-age=2592000"
</FilesMatch>

max-age - время храния статики в кеше (секундах )
список видов файлов естественно можно поменять.

четверг, 24 мая 2012 г.

Установка 11g R2 debian 6

Установка 11g R2 debian 6

aptitude install gcc make binutils libmotif4 lesstif2 rpm elfutils libelf1 libelfg0 libelfg0-dev eglibc-source libaio1 libaio-dev sysstat numactl libdb4.6 gawk x11-utils libstdc++6-4.4-dev xbase-clients
 ln -s /usr/bin/awk /bin/awk
    ln -s /usr/bin/rpm /bin/rpm
    ln -s /usr/bin/basename /bin/basename 

groupadd dba
useradd -g dba -s /bin/bash -d /home/oracle oracle
mkdir /home/oracle
chown oracle:dba /home/oracle
passwd oracle 
mkdir /u00
chown -R oracle.dba /u00
su oracle
nano ~/.profile
ORACLE_BASE=/u00/app/oracle
ORACLE_HOME=/u00/app/oracle/product/11.2.0/dbhome_1
ORACLE_SID=ipits
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_BASE ORACLE_SID ORACLE_HOME LD_LIBRARY_PATH PATH 
source ~/.profile 

копируем дистрибутив в папку /home/oracle/ora11
chmod u+x runInstaller
chmod u+x install/.oui
chmod u+x install/unzip 
Далее запускаем
 sh runInstaller
Установка будет с графического установщика. если на компе нет GUI  то ставьте X-server  и прокидывайте иксы на другую машину.

суббота, 31 марта 2012 г.

настройка phpunit на Windows

phpunit устанавливается через pear
Сначала устанавливаем его. В папке с установленным php запускаем go-pear.bat.


ВСЕ КОМАНДЫ ВЫПОЛНЯЕМ В ДИРЕКТОРИИ С УСТАНОВЛЕННЫМ PHP

Потом если все хорошо то обновляем его до последней версии
pear upgrade PEAR 
Далее с его  помощью устанавливаем phpunit
pear channel-discover pear.phpunit.de

pear channel-discover components.ez.no
pear channel-discover pear.symfony-project.com
pear install phpunit/PHPUnit
Все готово.

суббота, 24 марта 2012 г.

Приоритет CSS

При конфликтах в применении стилей необходимо учитывать приоритет тех или иных стилей.
Приоритеты считаются по следующим правилам:

  • атрибут style элемента [пример:  <... style="font-size:2em;">...] (1000)  
  • идентификаторы [пример: <... id="myid">...] (100)
  • селекторы атрибутов, классы, псевдоклассы   [пример: a ::selection {font-size:4em;} ]  (10)
  • селекторы тегов и псевдоэлементы [пример: a:hover{font-size:4em;} ] (1)
  • универсальный селектор [пример: * {font-size:2em;}] (0)

среда, 21 марта 2012 г.

Database connection error (3):


Database connection error (3): Could not connect to database


Joomla соединение с бд.
Ошибка с кодом 3 означает что пользователь и пароль норм. Проблема с названием базы данных (либо у пользователя нет доступа к ней).
 Так что смотрим внимательнее именно название и права на базу данных и правим в configuration.php

воскресенье, 19 февраля 2012 г.

Удаление WinLoсk (блокиратор экрана)

Вирус блокирует систему и просит отправить смс за 500 рублей на следующие номера 79067982852
79060967413
79091562545
79636620308
79670290223
79636620308
79067978330
Пробовал поискать в сети код, но они почемуто не подходят.
Все действия делал на Windows XP.
загружаемся в безопасном режиме с поддержкой командной строки (обычный безопастный режим тоже заблокирован). В командной строке запускаем regedit.
Вирус прописывается в реестре
 в ветках
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell   (Shell)
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Winlogon\Run
Смотрим в (Shell) название файла exe (у меня xxx_porno.exe) копируем путь до файла и в командной строке удаляем его
cd [путь]
erase xxx_porno.exe
 (запускать из командной строки explorer не рекомендую). потом грохаем параметр.
Проверим есть ли этот файл ещё где
dir /b /s /a "c:\xxx_porno.exe"

НУ и потом бежим по реестру и удаляем все упоминания о нем если найдем.


воскресенье, 29 января 2012 г.

Настройка общих папок в Virtual Box

В любом случае надо поставить    Дополнения гостевой ОС и создать общую папку в программе в разделе Общие папки сделать её постоянной (поставить галочку), а то папка пропадет после перезагрузки.

Далее для Windows открываем 
  Проводник -> Сервис -> Подключить сетевой диск 
 там в пути до диска прописываем \\vboxsvr\имя_общей_папки

Для Debian (или аналогичных систем типа Ubuntu)
Создаем папку например в /media
sudo mkdir /media/newfolder
даем на нее права для всех
sudo chmod 777 newfolder
ну и собственно подключаем общую папку
sudo mount -t vboxsf имя_общей_папки /media/newfolder

пятница, 23 декабря 2011 г.

Не работает sudo

Столкнулся с такой вот проблемой

user@debian:-$sudo ... (какаято команда)
bash: sudo: команда не найдена
это говорит что сам по себе sudo  не установлен. заходим под root  и устанавливаем
su
(вводим пароль для root)
apt-get update (обновляем список доступного ПО)
apt-get install sudo

user@debian:-$sudo ... (какаято команда)
user is not in the sudoers file. This incident will be reported.
это значит чтото вроде
"Пользователя user  нет в файле sudoers. Этот инцидент будет записан"
снова заходим под root и открываем файл на редактирования
nano /etc/sudoers (добавляем строку по аналогии с той что для root)
выходим и можем уже радоваться возможностями sudo.
P.S
 Пробовал добавить пользователя в группу sudo  (usermod -a -G sudo user) и раскоментировать строку %sudo=ALL(ALL) ALL но почемуто не проканало. Как только разберусь обязательно напишу в чем был трабл.

среда, 21 декабря 2011 г.

Установка Oracle XE на Debian

Для установки была выбрана Oracle xe 10(хотя и есть уже 11) и Debian 6.

Для установки Oracle ( далее xe)  необходимо 1 Gb  swap , не знаю как у вас но у меня столько нет. Поэтому добавим его (немного больше, чтобы наверняка):
dd if=/dev/zero of=/swpfs1 bs=1M count=1100
mkswap /swpfs1
swapon /swpfs1
Наверное вам не надо объяснять что эти команды надо выполнять с правами супер 
пользователя (root).

Далее нам необходимо добавить репозитарий с дистрибутивом
echo "deb http://oss.oracle.com/debian unstable main non-free" >> /etc/apt/sources.list

скачать PGP ключи
wget http://oss.oracle.com/el4/RPM-GPG-KEY-oracle -O- | sudo apt-key add -
Обновляем список доступного программного обеспечения
apt-get update
Устанавливаем
aptitude install oracle-xe
Специально выбрал не мультиязычную версию, а западно-европейскую. Потому что данная версия имеет однобайтовую кодировку и её можно конвертировать в "русскую" 
CL8MSWIN1251. Поэтому и не была выбрана 11 версия сервера,т.к. она не имеет 
однобайтового варианта.
В процессе установки скачается дистрибутив (около 250 М). Когда все установится необходимо выполнить конфигурацию сервера:
/etc/init.d/oracle-xe configure
В ней вы укажите порт для встроеного апача, порт для листенера, пароль для системных пользователей и признак автозагрузки.
Все можете работать, но у вас наверное не запускается sqlplus.
Для этого надо добавить в файл вашего профиля (/etc/profile) следующий код
ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
export ORACLE_HOME
NLS_LANG=`$ORACLE_HOME/bin/nls_lang.sh`
export NLS_LANG
SQLPATH=$ORACLE_HOME/sqlplus
export SQLPATH
PATH=$ORACLE_HOME/bin:$PATH
export PATH
ORACLE_SID=XE
export ORACLE_SID

Чебы можно было работать каким либо пользователем ОС кроме пользователя oracle  , надо добавить пользователя в группу dba (существующего пользователя например так 
usermod -a -G dba user (вместо user  имя вашего пользователя)
)

вторник, 20 декабря 2011 г.

Установка Apache PHP на Debian

Не буду расписывать долгую и нудную процедуру установки и настройки как для Windows .
Для проверки данной инструкции использовался Debian 6  с доступом интернет.

Для установки apache  и php необходимо из под супер пользователя (для того чтобы попользоваться правами root  можно не указывать перед каждой командой sudo, а в начале сеанса лишь выполнить команду su  и ввести по требованию пароль супер пользователя) необходимо выполнить следующую команду:
apt-get install apache2 php5 libapache2-mod-php5
после установки перезапустить apache
/etc/init.d/apache2 restart
для установки MySql  выполнить следующую команду:
apt-get install mysql-server mysql-client php5-mysql
 в процессе установки попросит ввести для главного пользователя базы данных root , не путайте с главным пользователем операционной системы.
Для установки программы для управления базой введите 
apt-get install phpmyadmin
Теперь заходите по адресу http://127.0.0.1/phpmyadmin и наслаждайтесь.
Как показала практика, для установки этого комплекта программ на Linux  потребовалось на порядок меньше времени.


P.S.
 Если у вас не установится попробуйте добавить стандартные репозитарии пакетов

echo "deb ftp://ftp.ua.debian.org/debian/ testing main" >> /etc/apt/sources.list

echo "deb-src ftp://ftp.ua.debian.org/debian/ testing main" >> /etc/apt/sources.list


echo "deb http://security.debian.org/ testing/updates main" >> /etc/apt/sources.list

Установка SSH на Debian

Думаю те кто читает данную статью, хотя бы подозревают что такое SSH.


Данная статья была проверена на Debian 6 (есть большие подозрения, что она актуальна для большинства версий Linux, по крайней мере для семейств убунт точно).
Установка 
 выполните команду 
sudo apt-get install openssh-server
После того как закончится установка, можно проверить её правильность. 
ssh localhost
Тут вас спросят подтверждение и попросят ввести пароль.
После того как вы проделаете эти манипуляции закрываем shh-сессию и идем настраивать сервер.

Настройка

Настройки сервера лежат в файле 
/etc/ssh/sshd_config
Для настройки просто открываем его любым редактором с правами супер пользователя.
sudo nano /etc/ssh/sshd_config
По идее вы можете тут ничего не менять, но это плохон тон, очень плохой.
Желательно поменять следующие параметры
Port 22 - стандартный порт, желательно изменить. 
PermitRootLogin no - разрешение подключаться пользователем root (yes/no) 
PermitEmptyPasswords no - использовать подключение без пароля (yes/no)  
AllowUsers artzor neket - список пользователей (через пробел) которым разрешается подключаться.

Подробное описание конфигурирования можно посмотреть на сайте разработчиков


После изменения настроек сервера, его необходимо перезапустить
sudo /etc/init.d/ssh restart


Ну и можете конектиться к нему...