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 зададе име на поредната тема в моя блог. С негова помощ се постига "народен" датчик присъствие в домашната автоматизация. . ...


Текущата версия на 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 


0 Response to "Инсталация на PHP 5.4 в Ubuntu 12.04"

Публикуване на коментар

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

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