Архив рубрики: Linux

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

Установка APC из стабильного репозитория

APC в отличие от eAccelerator есть в в пакетном менеджере (версия 3.0.19-2 как раз стабильная из pecl):

apt-get install -y php-apc

После установки будет создан полу-пустой конфиг:

vi /etc/php5/conf.d/apc.ini

И мы получим стандартные настройки APC:

php -i | grep apc
/etc/php5/cli/conf.d/apc.ini,
apc
apc.cache_by_default => On => On
apc.coredump_unmap => Off => Off
apc.enable_cli => Off => Off
apc.enabled => On => On
apc.file_update_protection => 2 => 2
apc.filters => no value => no value
apc.gc_ttl => 3600 => 3600
apc.include_once_override => Off => Off
apc.max_file_size => 1M => 1M
apc.mmap_file_mask => no value => no value
apc.num_files_hint => 1000 => 1000
apc.report_autofilter => Off => Off
apc.rfc1867 => Off => Off
apc.rfc1867_freq => 0 => 0
apc.rfc1867_name => APC_UPLOAD_PROGRESS => APC_UPLOAD_PROGRESS
apc.rfc1867_prefix => upload_ => upload_
apc.shm_segments => 1 => 1
apc.shm_size => 30 => 30
apc.slam_defense => 0 => 0
apc.stat => On => On
apc.stat_ctime => Off => Off
apc.ttl => 0 => 0
apc.user_entries_hint => 4096 => 4096
apc.user_ttl => 0 => 0
apc.write_lock => On => On

И настройки компиляции:

APC Support enabled
Version 3.0.19
MMAP Support Enabled
MMAP File Mask no value
Locking type pthread mutex Locks
Revision $Revision: 3.154.2.5 $
Build Date Dec 17 2008 18:21:28

Тут стоит обратить внимание на apc.stat, он обязательно должен быть включен, иначе кэш не будет обновляться при обновлении файлов, а также на apc.shm_size, это размер shm сегмента в памяти.

Баги
При установке на Debian 5 + PHP FastCGI + IonCube + Zend Optimizer + APC получаем кучу мусора в dmesg:

[1218697.911671] php[28066]: segfault at e9 ip 00007fac6f561569 sp 00007ffff4066360 error 4 in ZendOptimizer.so[7fac6f4fe000+184000]

А в error.log апача:

[Sun May 30 21:32:36 2010] [notice] mod_fcgid: process /var/www/xxx/data/www/xxxx.ru/index.php(28238) exit(communication error), get unexpected signal 11

При этом сами сайты через раз выбрасывали 500ую и ругались на Cannot found function null (или что-то в этом роде).

Так что, нужно что-то с этим делать.

Установка из исходников

Будем ставить самую новую версию.

cd /usr/src
pecl download apc-3.1.3p1
tar -xf APC-3.1.3p1.tgz
cd APC-3.1.3p1
phpize
./configure # все стандартно
make
make install

Создаем конфиг:

echo «extension=apc.so» > /etc/php5/conf.d/apc.ini

 

Установка APC на centos/debian (установка PECL)

Установить APC можно непосредственно из PECL (PECL — это репозиторий расширений PHP) или из исходных кодов. Поэтому, если на сервере не установлен pecl, устанавливаем его, а так же компилятор С для сборки расширения.

CentOS:

1
yum install gcc php-pear -y

Debian:

1
apt-get install gcc php-pear

После этого устанавливаем сам APC:

1
pecl install apc 

yum install php-pecl-apc

После установки APC нужно подключить его в php.ini, добавив строку «extension=apc.so». Перезагружаем Apache.

CentOS:

1
/etc/init.d/httpd restart

Debian:

1
/etc/init.d/apache2 restart

Проверяем phpinfo. Не забудьте настроить APC по документации:http://php.net/manual/en/book.apc.php

Как подключаться через ssh

На маке нужно запусти терминал и там написать:

ssh имя_пользователя@имя_серверва

затем потребуется ввести пароль, вводя пароль символы появлятся не будут, не пугайтесь, просто введите свой пароль и нажмите enter.

На windows все нужно проделать тоже самое только с помощью программы putty

Архивирование файлов через ssh\Распаковка файлов через ssh

Как запаковать файлы в tar.gz через SSH
tar -zcvf имя_архива архивируемая_папка
например
tar -zcvf folder.tar.gz folder/
пояснения
— c – значит, что создается новый архив;
— f – посредством этого флага задается имя создаваемого архива;
— z – архивация будет происходить посредством архиватора gzip;
— v – в консоль будет выводиться информация о процессе архивации.

Как запаковать файлы в zip через SSH
zip -r имя_архива архивируемая_папка
например
zip -r logs.zip logs/
пояснения
r означает, что нужно искать файлы в папке рекурсивно, иначе в архиве бы оказалась одна пустая папка.

Как распаковать файлы из tar.gz через SSH
tar -xzvf имя_архива.tar.gz
например
tar -xzvf archive.tar.gz

Как распаковать файлы из zip через SSH
unzip имя_архива.zip
например
unzip archive.zip

Длинное имя файла  Joomla_1.5.22-Stable-Full_Package-Russian.tar.gz  набирать вручную?
Этого  не потребуется — достаточно набрать первые 2-3 символа и нажать кнопку “tab”
Например, в данном случае набираем
tar -xzvf Jo
жмем “tab” а затем “enter”