Default Green Orange
Gemini_13's Blog
Блокнот полезных вещей
Home
    • Карта сайта
    • Обо мне
RSS

Posts Tagged ‘php’

nginx + Apache 2.4 и REMOTE_ADDR (решение проблемы)

Linux, Настройка сервера 0 Comment »

Недавно понадобилось развернуть 1С Битрикс на одном из серверов. К сожалению, официально битриксу нужен apache2 или связка nginx + apache2. Решено было поднимать связку. Если бы всё было просто и банально, как всегда, эта статья не существовала бы, но нашлась проблема, о решении которой, я хочу написать, чтобы не наступать на те же грабли в будущем.

Если верить гуглу и докам, то в версии Apache 2.4 есть модуль mod_remoteip, которым можно заменить привычный mod_rpaf. Подключив mod_remoteip увидел, что реальные IP передаются в PHP, но в логах апача вижу только 127.0.0.1. Долго не разбирался и решил настроить mod_rpaf, но и тут поджидал сюрприз — mod_rpaf в Apache 2.4 работает с багом. Если подключить mod_rpaf, то в логах видно реальные IP, а вот PHP и не получает.

Решение было нужно быстро, поэтому были настроены оба модуля, которые дополняли друг друга. Честно скажу, то идея использовать два модуля вместо одного мне не нравится, но тем не менее, проблем в работе пока не вижу. 🙂
Read the rest of this entry »


21 января, 2016  
Tags: apache, apache2, debian, mod_remoteip, mod_rpaf, nginx, php, REMOTE_ADDR, remoteip, rpaf



Обработка сессий PHP с помощью Redis + phpredis на Debian 7.8

Linux, Настройка сервера 4 комментария »

На одном из проектов я захотел, чтобы обработчиком сессий PHP был Redis. Пробежавшись по просторам инета понял, что не так всё просто. Если переключить на memcached — это дело редактирования двух строк, то с redis не так просто и нужно ставить дополнительную либу для PHP. Кстати, ее сборка уже проскакивала в одной из старых заметок — Установка Redis + Redis PHP на Debian 6.

Установка Redis

Поставить redis сейчас намного проще, чем написано в той старой статье. Достаточно выполнить команду:

# apt-get install redis-server

Сборка и установка phpredis для PHP

C phpredis уже куда интереснее… Сначала нужно скачать исходники с репозитория в папку /tmp и перейти в нее:

# cd /tmp
# git clone git://github.com/nicolasff/phpredis.git
# cd phpredis

Read the rest of this entry »


3 августа, 2015  
Tags: debian, debian 7, php, phpredis, redis, редис



Работа с Gearman + PHP + Supervisord на Debian 7.7 (wheezy)

Linux, Настройка сервера 0 Comment »

Gearman — это менеджер очередей для синхронного и асинхронного выполнения задач. Читал о нем давно, но сегодня посчасливилось с ним познакомится более тесно 🙂

Приложение написано на PHP и имеет свои нюансы, поэтому я не буду приводить код и посоветую ознакомится с базовой реализацией из доков.

Установка Gearman и модуля для PHP

Первым делом поставим сам Gearman и модуль для PHP. Установка достаточно простая:

# apt-get install gearman php5-gearman

На этом было бы всё, если бы не одно НО…

Supervisord

Gearman получает задания от клиента и передает в работу воркеру, который должен постоянно работать и проверять есть ли что-то в очереди на выполнение. Воркер у меня на PHP, значит нужно заставить сркипт работать в фоновом режиме постоянно.
Read the rest of this entry »


14 января, 2015  
Tags: debian, gearman, php, php5-gearman, supervisord, wheezy, гирман, дебиан, пхп, супервизор



Установка APCu на Debian 7 и FreeBSD 10

FreeBSD, Linux, Настройка сервера 0 Comment »

Поскольку я захотел использовать PHP 5.5 и APC для кеширования, то тут небольшая получилась заминка. В PHP 5.5 включили Zend OPcache, который кеширует опкод. Раньше этим занимался APC, но сейчас мне нужен от APC только кеш данных, которые я ему буду скармливать. На помощь пришел APCu, который является тем же APC, но с вырезанным кешем опкода. Он есть в репозитариях Debian-а и в портах фряхи он тоже есть, что радует. Где он еще есть не интересовался.
Read the rest of this entry »


27 апреля, 2014  
Tags: apc, apcu, apcu.so, debian, freebsd, php, php 5.5, php55



Прячем версии Apache, Nginx и PHP из хидеров (header)

Настройка сервера 0 Comment »

От дырявой памяти закиину сюда еще и конфиги для того, чтобы скрыть с хидера версии apache, nginx и php. Полезная мелочь, о которой многие забывают.

PHP

В php.ini находим параметр expose_php и присваиваем ему значение Off

; Decides whether PHP may expose the fact that it is installed on the server
; (e.g. by adding its signature to the Web server header).  It is no security
; threat in any way, but it makes it possible to determine whether you use PHP
; on your server or not.
; http://php.net/expose-php
expose_php = Off

Nginx

Открываем nginx.conf и в секцию http добавляем строку:

server_tokens off;

Apache

Добавляем в httpd.conf:

ServerTokens Prod
ServerSignature Off

Перезагружаем сервисы и любуемся результатом.
Успехов 🙂


18 декабря, 2013  
Tags: apache, nginx, php, tokens



Свой облачный хостинг с помощью ownCloud

Linux, Настройка сервера, Разное 1 Comment »

Честно сказать у меня уже давно чесались руки к созданию своего хранилища с доступом с любых устройств. Тут и пришел на помощь ownCloud. О нем написано не мало и документация не плохая, как для открытого проекта. Как минимум, мне было всё понятно, что касается установки и использования. На правах очередной заметки распишу процесс поднятия этого сервиса на Debian 7, который под рукой.

Установить можно тремя путями: скачать архив, использовать веб-инсталятор или подключить репу и ставить пакетом. Для удобства установки и, в будущем, обновлений, подключим репозитарий. Все эти варианты, как и клиентские программы, есть на странице установки на официальном сайте.
Read the rest of this entry »


20 октября, 2013  
Tags: cloud, debian, nginx, owncloud, php, wheezy, облако, свое облако



SQLite и PHP 5.4

Настройка сервера 4 комментария »

Захотелось мне подключить SQLite для кеша, но получил немного неприятный ответ:

Fatal error:  Call to undefined function sqlite_escape_string() in /domain.com/common.php on line 465

Пошарился в интернете и стало ясно, что с PHP 5.4 старый привычный sqlite вырезали, оставили только PDO_SQLITE. Почти все рекомендации сводились к использованию как раз таки PDO. Переписывать функции в движке не хотелось, оно того не стоит (на данном этапе), потому пришла в голову идея собирать самостоятельно модуль. Нечто подобное я когда-то делал для Redis. Позднее нашел ссылку годичной давности, где эту идею написали и расписали.

Устанавливаем пакет для разработчиков:

# aptitude install php5-dev

Скачиваем исходники с SVN:

# svn co http://svn.php.net/repository/pecl/sqlite/trunk sqlite

Приступаем:

# phpize

Получили ответ:
Configuring for:

PHP Api Version:        20100412
Zend Module Api No:      20100525
Zend Extension Api No:  220100525

Запоминаем число — 20100525 (у Вас может быть другое).
Read the rest of this entry »


25 августа, 2013  
Tags: php, php 5.4, sqlite, sqlite.so



Кодирование и декодирование email. Аналог популярной шифровалки написанной на JS на PHP

Скрипты 0 Comment »

Делая очередной парсер натолкнулся на ситуацию когда почтовик шифровали и приводили его в читабельный вид с помощью JavaScript. Всё бы ничего, но парсил cUrl-ом, а он JS не понимает. Впринципе, мне повезло. Я нашел в гугле исходники на хабре.
Да, на хабре были функции кодирования и декодирования на JS и была фунька кодирования на PHP, но мне то надо было обратное. В силу того, что знаний по JS кот наплакал, потерял много времени на понимание самого процесса декодирования. Как только понял суть работы каждой фуньки, тогда стало все ясно 🙂
Внимание! Для целостности смысла заметки будет копипаст. Read the rest of this entry »


17 августа, 2013  
Tags: decode, email, encode, javascript, js, php, декодирование, кодирование



Генерирование таблицы с двух колонок PHP+MySQL

MySQL, Разное, Скрипты 2 комментария »

Еще одним из интересных заданий было обработать две таблицы: товары и цены. Суть заключалась в том, что надо было составить прайс из 10к товаров, но реально товаров существовало 100к, а в таблице цен на каждый товар приходилось по 4 разные цены для каждой группы покупателей (вип, опт, розница, лучший друг и тп). Такоже небольшим нюансм было, что товары имели разный статус, пусть он для нас будет, как «в продаже/нет в наличии».

Начнем с того, какие у нас таблицы:

CREATE TABLE `products` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(200) NOT NULL,
  `status` tinyint(1) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `prices` (
  `product_id` int(11) NOT NULL,
  `type` smallint(6) NOT NULL,
  `price` float(10,2) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

В pruducts у нас 100к записей, а в prices — 400к (100к товаров по 4 цены на каждый).
Read the rest of this entry »


11 июля, 2013  
Tags: mysql, php, sql, выборка



Результат запроса MySQL передать в CSV на PHP

Скрипты 0 Comment »

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

Собственно пример:

$file = '/tmp/stats.csv';
$result = mysql_query("SELECT * FROM managers")
ob_start();
$csv = fopen($file, 'w');
while($row = mysql_fetch_assoc($result))
{
	fputcsv($csv, $row, ';');
}
fclose($csv);
ob_get_clean();

Название папки и файла написано для примера.
Еще одно важное замечание… Для корректного отображения файла в него нужно писать в кодировке cp1251, иначе будут каракули, если БД отдает в другой кодировке (исключение — латинские символы).


26 февраля, 2013  
Tags: csv, export, php, php to csv, script, результат в csv, скрипт



Previous Entries
  • Рубрики

    • FreeBSD (20)
    • Linux (46)
    • MySQL (11)
    • Windows (14)
    • Железо (3)
    • Мои моды к TorrentPier II (16)
    • Настройка сервера (49)
    • Разное (33)
    • Скрипты (30)
  • Свежие записи

    • Поля форм на Yii2: textInput(), passwordInput() и hiddenInput()
    • Поля форм на Yii2: CheckboxList()
    • SpeedTest датацентров Digital Ocean
    • Патчим Gearman на Debian
    • nginx + Apache 2.4 и REMOTE_ADDR (решение проблемы)
    • Создание и подключение swap-файла в Debian
    • Запуск PhpStorm 9 x64 на Windows
    • Рекурсивная замена прав доступа для папок и файлов в Linux
    • VirtualBox 5 + phpVirtualBox на Debian 8.2 (jessie)
    • Обработка сессий PHP с помощью Redis + phpredis на Debian 7.8
  • Ссылки

    • My GitHub
  • Архивы

    • Июнь 2016 (2)
    • Март 2016 (2)
    • Январь 2016 (3)
    • Ноябрь 2015 (2)
    • Август 2015 (1)
    • Февраль 2015 (1)
    • Январь 2015 (7)
    • Октябрь 2014 (1)
    • Июнь 2014 (1)
    • Май 2014 (1)
    • Апрель 2014 (7)
    • Февраль 2014 (9)
    • Январь 2014 (5)
    • Декабрь 2013 (7)
    • Ноябрь 2013 (1)
    • Октябрь 2013 (3)
    • Август 2013 (4)
    • Июль 2013 (4)
    • Июнь 2013 (3)
    • Апрель 2013 (2)
    • Март 2013 (2)
    • Февраль 2013 (6)
    • Январь 2013 (2)
    • Декабрь 2012 (1)
    • Ноябрь 2012 (2)
    • Октябрь 2012 (7)
    • Сентябрь 2012 (22)
Все права защищены © 2013 Gemini_13's Blog
G13.org.ua