Profruit banner

Умен звънец в openHAB

16 декември 2023

Телефонът е винаги с мен и сега, където и да се намирам получавам известие от openHAB, че някой е позвънил и чака пред вратата. А ако ме няма вкъщи става ясно часа и датата на последното позвъняване.

Tasmota Multipress

30 септември 2023

Идеята е Sonoff Touch T1 US 2 в салона, да управлява освен своето осветление и това в кухнята, а още вентилатора.

DIY 12V 1A WiFi Router UPS

22 април 2023

При поредно прекъсване на захранването вкъщи, батерията на нoтбука и двата UPS автоматично превключват на аварийно захранване и едновременно полита съобщение за конфуза

Zigbee2MQTT клониране

21 януари 2023

... как да клонираме съществуваща настройка на Zigbee2MQTT без да се налага последвало интервю на zigbee-устройствата.

LD2410 - бюджетен датчик присъствие в openHAB

11 февруари 2023

Цената на HLK-LD2410 зададе име на поредната тема в моя блог. С негова помощ се постига "народен" датчик присъствие в домашната автоматизация. . ...

Оживяването на постпроцесор в Cimatron има своите нюанси, които ще разгледаме тук.
От инсталацията на Cimatron вие получавате DEMO постпроцесор, който става за общо развитие с учебна цел, но не и за конкретна CNC машина. Ако любопитството ви не издържа, какво умее той ще забележите, че интерфейса не го отчита.

неактивен постпроцесор

За целта у вашата система е необходимо наличие на три файла с еднакви имена, но с различни разширения: def, dex и exf.

Например:
  • hs-4xo.def
  • hs-4xo.dex
  • hs-4xo.exf
Файловете се разполагат в папка C:\Cimatron\CimatronE\Program\IT\var\post, като името на втората папка (CimatronE) може да варира.

Например:
  • CimatronE
  • CimatronE90
  • CimatronE_90
папка post

При именуване на файловете е препоръчително да се придържате към латинска кодировка от максимум 6 символа. На етап инсталация у вас ще бъде наличен само DEMO постпроцесор, докато на снимката горе виждате още постпроцесор hs-4xo, който е конкретен за CNC машини HAAS: VF-4/Super, VF-7, G-512.

Първата ваша стъпка е да създадете променлива на обкръжението с наименование RC.
Cimatron търси тази променлива, за да визуализира постпроцесорите в своя интерфейс.

RC = C:\Cimatron\CimatronE\Program\IT\var

променлива на обкръжението

Няма значение, дали RC ще бъде променлива на системата или на конкретен потребител. Windows е нечувствителен към регистъра на символите и е все тази за името RC или rc.

Наблюдателните вероятно са забелязали разминаване в пътищата между текста и снимките. Историята при мен е, че по време на (пре)инсталацията на XP Pro SP3 бях включил смартфона си да се зарежда през USB и Windows-инсталатора засече дисковете на телефона. На свой ред не отчетох този пропуск и системен диск при мен стана F вместо традиционния C. Логичните поздрави на майките на микромеките.

Главния ритуал е извършен, но за да стане активен е нужен импорт на модел. Едва тогава ще имате достъп до постпроцесора.

DEMO постпроцесор

и понеже засегнахме модели машини на HAAS, то добавения за тях постпроцесор съответно.

HAAS 4x постпроцесор






до нови срещи   ^.^
22.03.2014 profruit 


Ако заглавието на темата ви е привлякло, то вие сте на правилното място.

Тема назад се научихме как да инсталираме PHP 5.4 в Ubuntu 12.04. Истината е, че там пръкнаха две трънчета, които ще лекуваме по ред. Първото и по-голямо идва от самия отговор на терминала.
profruit ~ $ php -v
Failed loading opcache.so:  opcache.so: cannot open shared object file: No such file or directory
PHP 5.4.25-1+sury.org~precise+2 (cli) (built: Feb 12 2014 11:10:42) 
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies

Failed loading opcache.so

Съответно се обърнах към другата ми машина с инсталирана версия на PHP 5.5.9, за да видя има ли такъв проблем.

Failed loading opcache.so

Zend OPcache е новото название на Zend Optimizer, а повече за него от просторите на интернет, например, тук.

Първото ми стъпка бе да локализирам наличие на opcache.so в системата. Търсенето и отговора ми върнаха това:
profruit ~ $ locate opcache
/etc/php5/apache2/conf.d/05-opcache.ini
/etc/php5/cli/conf.d/05-opcache.ini
/etc/php5/mods-available/opcache.ini
/var/lib/ucf/cache/:etc:php5:mods-available:opcache.ini
или пък по този начин:
profruit ~ $ sudo find / -name 'opcache.so'
ОК. Нека прочетем първия файл в отговора, какво съдържа:
profruit ~ $ cat /etc/php5/apache2/conf.d/05-opcache.ini
; configuration for php ZendOpcache module
; priority=05
zend_extension=opcache.so

По замисъл на нещата се налага инсталация на pecl, за когото терминала подсказва така:
profruit ~ $ pecl
The program 'pecl' is currently not installed.  You can install it by typing:
sudo apt-get install php-pear

Воден от този блог изпълних по ред следните три команди:
# Install "pecl" via php-pear
sudo apt-get install -y php-pear

# Install build dependencies
sudo apt-get install -y build-essential php5-dev

# Install Zend OpCache
sudo pecl install zendopcache-7.0.3
На свой ред избрах последна версия zendopcache-7.0.3, която в края на инсталацията ме уведоми с следния израз: Installing '/usr/lib/php5/20100525+lfs/opcache.so'.

Бъдете внимателни, възможно е инсталацията при вас да бъде с друго число. Следва създаване на символична връзка;
sudo ln -s /etc/php5/mods-available/opcache.ini /etc/php5/conf.d/05-opcache.ini

и редакция на файл /etc/php5/mods-available/opcache.ini

Този файл е на root, затова с супер права допълнете следните редове:
zend_extension=/usr/lib/php5/20100525+lfs/opcache.so
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1
;opcache.save_comments=0
Рестартирайте сървъра и погледнете отново версията на PHP.

Loading opcache.so





до нови срещи   ^.^
15.03.2014 profruit 


| |

Текущата версия на PHP (към дата на публикация) узнаваме от ресурс php.net/downloads.php. Това са:
  • Current Stable PHP 5.5.9
  • Old Stable PHP 5.4.25
  • Old Stable PHP 5.3.28
Използвайки Tasksel или команда синоним за инсталация на lamp-server, вие няма да получите ни една от гореизброените версии в Ubuntu 12.04.

Проверка версия пакет PHP 5


На помощ идва команда, която разгледахме в тема "Версия и адрес на пакет в Ubuntu".

apt-cache policy php5

Резултат, връщан в конзолата.

php5:
Installed: (none) 5.3.10-1ubuntu3 0

В отговора се четат още статус на сървъра и негово местоположение, но това е неинформативно в случая. От значение е версията, а тя е доста изостанала от актуалната.

Инсталация на PHP 5.5


Инсталация на PHP 5.5 разгледахме в предходна тема "Инсталация на PHP 5.5 и Apache 2.4 в Ubuntu". Тук следва да се отбележи малък нюанс. Достатъчна е следната команда да се изпълни.

sudo apt-get install php5

Тя ще инсталира PHP5.5 и Apache 2.4 едновременно!

Премахването им става по обратен на инсталацията ред.

## sudo ppa-purge ppa:ondrej/apache2
sudo ppa-purge ppa:ondrej/php5
## sudo apt-get remove --purge -y [пакет]
sudo apt-get autoremove
sudo aptitude purge ~c
sudo apt-get update

Инсталация на PHP 5.4


Инсталация на PHP 5.4 в Ubuntu 12.04 може да бъде извършена по два начина. Първи, чрез компилация на изтегления архив от php.net и втори, чрез добавяне на хранилище от Ondřej Surý.

## sudo apt-get install python-software-properties

sudo add-apt-repository ppa:ondrej/php5-oldstable
sudo apt-get update

sudo apt-get install -y apache2 apache2.2-common apache2-utils
sudo apt-get install -y libapache2-mod-php5 libapache2-mod-python php5-mysql php5 php5-common

Тази последователност инсталира следните версии.

apache2 -v
Server version: Apache/2.2.22 (Ubuntu)
Server built: Jul 12 2013 13:38:21

php -v
PHP 5.4.25-1+sury.org~precise+2 (cli) (built: Feb 12 2014 11:10:42)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies

Инсталация на MySQL


За пълен работен полигон на PHP-програмиста инсталираме MySQL.

sudo apt-get install -y mysql-server mysql-client php5-mysql
## sudo /etc/init.d/apache2 reload

Инсталацията добавя анонимен потребител и база test. Как да ги премахнем се запознахме тук.

Инсталация на phpMyAdmin


За инсталацията на phpMyAdmin е достатъчна следната команда.

sudo apt-get install -y libapache2-mod-auth-mysql phpmyadmin
## sudo /etc/init.d/apache2 reload

Бъдете внимателни при въвеждане на пароли и потвърждения. Нагледно в картинки от тема "Ubuntu LAMP инсталация" ще ви припомни какво, къде и как.

Рестартирайте сървъра и наберете адрес в браузъра, за да достъпите панела на phpMyAdmin на следния адрес.
http://localhost/phpmyadmin
Тук обаче ме посрещна непридвидима грешка.

The mysqli extension is missing. Please check your PHP configuration.

The mysqli extension is missing

Без паника на борда!
Настройваме правата за достъп на /var/www/, за да качим php-файл с следното съдържание:

<?php

 if (function_exists('mysqli_connect')) {
  echo 'function mysqli_connect exists';
  
  $mysqli_connection = new MySQLi('localhost', 'root', '123456', 'test');
  if($mysqli_connection->connect_error){
     echo "Not connected, error: ".$mysqli_connection->connect_error;
  }
  else{
     echo "Connected!";
  }
 } 
 else{
   echo 'function mysqli_connect not exists';
 }

И отговор.

function mysqli_connect not exists

Неприятно и дразнещо!
Нещо повече. Остарялата функция mysql_connect() също не работи. Разглеждайки резултата на функция phpinfo() ни ред - ни кост за съответните липси. Първата мисъл е изтриване и инсталация от нула, или пък добавяне на пакети. Нищо подобно. Всичко е налично, остава вие да го съедините в едно, за да заработи.

На практика наличните разширения в Ubuntu 12.04 четем в каталог /etc/php5/conf.d/

/etc/php5/conf.d/

Решението е просто да опишем тези разширения в PHPINI, който се намира в каталог /etc/php5/apache2/

extension=mysqli.so
## sudo /etc/init.d/apache2 reload

Отново рестарт на сървъра и пробваме.

/etc/php5/conf.d/

Ясно. Добавяме и това разширение в PHPINI.

Редакция на PHPINI


Редакцията се свежда до корекция на следните редове.

error_reporting = E_ALL & ~E_NOTICE
display_errors = On
output_buffering = Off

и вписване на наличните разширения.

;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;

; If you wish to have an extension loaded automatically, use the following
; syntax:
;
; extension=modulename.extension
;
; For example, on Windows:
;
; extension=msql.dll
;
; ... or under UNIX:
;
; extension=msql.so
;
; ... or with a path:
;
; extension=/path/to/extension/msql.so
;
; If you only provide the name of the extension, PHP will look for it in its
; default extension directory.
;

; configuration for php MySQL module
extension=mysql.so

; configuration for php MySQL module
extension=mysqli.so

; configuration for php MCrypt module
extension=mcrypt.so

; configuration for php PDO module
extension=pdo.so

; configuration for php MySQL module
extension=pdo_mysql.so

; configuration for php GD module
extension=gd.so

Това е всичко!




до нови срещи   ^.^
01.03.2014 profruit 


| |

Този блог е реинкарнация на първите ми опити за споделяне в нета. На времето започнах с къси разкази на преживяното. После се обезсмисли и превърнах блога си в системно радио. Пиша единствено неща, които карат душата ми да живее: openHAB, Ubuntu, Споделено и т.н. Това е моето системно радио, разбирате ли? Моята вълна и вие сте на нея сега.

Архив на блога