Перейти к собственно контенту

AgR^ Live Blog

Общественные записки не поддающиеся вкуриванию…

Архив

Метка: PHP

После какого-то очередного обновления, вдруг перестали запускаться php скрипты. Единственное что появлялось, так это одна единственная надпись:

Unknown: apc_fcntl_unlock failed: in Unknown on line 0

Немного покопавшись в инете, решение было найдено:
koms# cd /usr/ports/www/pecl-APC
koms# make config
и включаем! опцию - [X] - SEMAPHORES
koms# make install clean -D "FORCE_PKG_REGISTER"
koms# apachectl restart

Надеюсь это поможет кому-нибудь.:)

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Загрузка...
2 214 views

Решил тут под конец года навести порядок на сервере и заодно обновиться. Ну раз решено…значит приступим.
portupgrade -u -a
….
=> SHA256 Checksum OK for PECL/APC-3.1.4.tgz.
===> Patching for pecl-APC-3.1.4
===> pecl-APC-3.1.4 depends on file: /usr/local/bin/phpize — found
===> pecl-APC-3.1.4 depends on file: /usr/local/bin/autoconf-2.68 — found
===> PHPizing for pecl-APC-3.1.4
Configuring for:
PHP Api Version: 20090626
Zend Module Api No: 20090626
Zend Extension Api No: 220090626
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.

*** Error code 1

Stop in /usr/ports/www/pecl-APC.
*** Error code 1

Stop in /usr/ports/www/pecl-APC.

и надо же опять и как всегда какая-то блять хрень не хочет обновляться 🙁 Читание /usr/ports/UPDATES просветления не дало. Ну что же…. медитируем….читаем лог обновления порта….выстраиваем логические цепочки…Бля а реально то, как всё просто.
Вот оно решение:
portupgrade -f php
portupgrade -u -a или же portupgrade -u pecl-APC

    Ну и в догонку….

>freebsd-update fetch
>freebsd-update install

Ну вот. Теперь на серваке всё обновлено до текущего состояния и можно спать спокойно.
Заодно проверил и контрольную сумму ProFTPd. Ибо эти пидорасы 4-е!!! дня распространяли исходники с бэкдуром 🙂

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Загрузка...
1 162 views

Здесь я просто выложу (как памятку) какие функции PHP  на что и как менять.


ereg():

ereg("\.([^\.]*$)", $this->file_src_name, $extension);

preg_match("/\.([^\.]*$)/", $this->file_src_name, $extension);

ereg_replace():

$this->file_dst_name_body = ereg_replace("[^A-Za-z0-9_]", "",$this->file_dst_name_body);

$this->file_dst_name_body = preg_replace("/[^A-Za-z0-9_]/", "",$this->file_dst_name_body);

eregi():

eregi("\.([^\.]*$)", $this->file_src_name, $extension);

preg_match("/\.([^\.]*$)/i", $this->file_src_name, $extension);

Но можно и не менять эти функции а просто ищем в php.ini следующие строчки (или добавляем в конец если таковых нету в вашем конфиге :) ):

http://ru2.php.net/manual/en/mbstring.overload.php

;0: No overload
; 1: Overload mail() function
; 2: Overload str*() functions
; 4: Overload ereg*() functions

; http://ru2.php.net/manual/en/mbstring.configuration.php#ini.mbstring.func-overload
mbstring.func_overload = 0

Что это означает? А вот что!!!

0 - Оставить все без изменений.
1-4 Включить одну из функций.
7 - Включить сразу все функции.

Тем самым мы включаем поддержку старых функций, при этом новые будут отключены.

Ну вот и всё пока.

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Загрузка...
1 303 views

После месяца использования PHP5.3 , выяснилось что неправильно стала работать гвестбука и форум. Начнём с гостевой http://amigas.ru/webserverdata/gb/index.php . Стоит она (inDEV) у меня уже очень очень давно и хотелось бы её оставить на память но в рабочем варианте. Но при её открытии стало выдаваться следующее:

Deprecated: Function split() is deprecated in /data/sites/my-www/webserverdata/gb/engine/guest.php on line 29
Deprecated: Function split() is deprecated in /data/sites/my-www/webserverdata/gb/engine/guest.php on line 29
Deprecated: Function split() is deprecated in /data/sites/my-www/webserverdata/gb/engine/guest.php on line 29
Deprecated: Function split() is deprecated in /data/sites/my-www/webserverdata/gb/engine/guest.php on line 29
Deprecated: Function split() is deprecated in /data/sites/my-www/webserverdata/gb/engine/guest.php on line 29
Deprecated: Function split() is deprecated in /data/sites/my-www/webserverdata/gb/engine/guest.php on line 29
Deprecated: Function split() is deprecated in /data/sites/my-www/webserverdata/gb/engine/guest.php on line 29

Количество сообщений об ошибке как оказалось зависит от количества записей в гостевой. Ну что-же… Будем исправлять. На сайте пыхи советуют заменить устаревшую функцию split на preg_split. Идём в quest.php и находим строку 29. Вот она:

list($date,$ip,$name,$email,$site,$msg) = split(«@@@»,$ln[$stop]);

изменяем её так:

list($date,$ip,$name,$email,$site,$msg) = preg_split(«@@@»,$ln[$stop]);

При попытке захода в гостевую получаем следующую ошибку:

Warning: preg_split() [function.preg-split]: Unknown modifier ‘@’ in /data/sites/my-www/webserverdata/gb/engine/guest.php on line 29
Warning: preg_split() [function.preg-split]: Unknown modifier ‘@’ in /data/sites/my-www/webserverdata/gb/engine/guest.php on line 29
Warning: preg_split() [function.preg-split]: Unknown modifier ‘@’ in /data/sites/my-www/webserverdata/gb/engine/guest.php on line 29
Warning: preg_split() [function.preg-split]: Unknown modifier ‘@’ in /data/sites/my-www/webserverdata/gb/engine/guest.php on line 29
Warning: preg_split() [function.preg-split]: Unknown modifier ‘@’ in /data/sites/my-www/webserverdata/gb/engine/guest.php on line 29
Warning: preg_split() [function.preg-split]: Unknown modifier ‘@’ in /data/sites/my-www/webserverdata/gb/engine/guest.php on line 29
Warning: preg_split() [function.preg-split]: Unknown modifier ‘@’ in /data/sites/my-www/webserverdata/gb/engine/guest.php on line 29

Ну что же опять топаем на сайт php.net  и читаем вдумчиво и ещё раз 5 также. А потом долго думаем. И о эврика!!!!! Пробуем так:

list($date,$ip,$name,$email,$site,$msg) = preg_split(«/@@@/»,$ln[$stop]);

И наконец то всё заработало как надо! Что изменилось? Да просто добавили пару слэшей «/» в функцию preg_split.

Ну вот и всё пока. Надеюсь мой опыт хоть кому-то поможет.

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Загрузка...
8 562 views

PHP 5.3.2

Апр 13

Ну вот и пришло время когда появился PHP5.3.x в портах FREEBSD. Ну и раз появилось то и появилось желание обновиться и опробовать. До этого пробовал на винде версию 5.3 и как оказалось многие скрипты просто стали неработоспособными, что и пугает. Но мы то эти самые матёрые , которые нихера не боятся трудностей. Да и с прогрессом стараюсь идти в ногу )наступая на грабли и оказываясь в полной жопе(
Итак начнём:

1. Для начала обновим порты:
>portsnap fetch update
2. Идём в /usr/ports/UPDATING и видим что там предлагают сделать с пыхой. Удалить
- php5-dbase
- php5-ncurses
- php5-pcre
- php5-spl
- php5-ming
- php5-mhash
и пересобрать php5.
Что собственно и делаем:
>pkg_delete -f php5-dbase php5-ncurses php5-pcre php5-spl php5-ming php5-mhash
>portupgrade -u php5
>apachectl restart - чтобы апач подцепил пыху5.3.2

Вот и всё по первому пункту.
3. Ну вот и начались проблемы. Первое что бросилось в глаза так это ругань на дату. После поиска и прочтения описания изменений - наступает просветление.
Идём в
>ee /usr/local/etc/php.ini
и добавляем строчку - date.timezone = "Asia/Yekaterinburg".
Свою таймзону найти можно на сайте PHP.

И о чудо. 70% скриптов ожило. А 30% всё ещё выёживается. Для меня были важны фотогалерея на coppermine, блог на wordpress, и wr-scripts(форум,доска объявлений,итд). И они как ни странно заработали. Ну а с остальными будем разбираться потихоньку.

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Загрузка...
895 views