Php 5 mysql 5 : Différence entre versions

De SME Server Wiki
(Mysql 5)
(Mysql 5)
Ligne 48 : Ligne 48 :
 
  mysql -e "GRANT SELECT,INSERT,UPDATE,DELETE ON horde.* TO 'horde'@'localhost';FLUSH PRIVILEGES"
 
  mysql -e "GRANT SELECT,INSERT,UPDATE,DELETE ON horde.* TO 'horde'@'localhost';FLUSH PRIVILEGES"
  
5 rajouter la table mysql.proc
+
5 rajouter la table mysql.proc et la table mysql.procs_priv
  
 
  -- MySQL dump 10.10
 
  -- MySQL dump 10.10

Version du 31 août 2006 à 23:53

Comment installer PHP 5 et Mysql 5 sur SME

Attention tout d'abord SME est trés intime avec Mysql et PHP notament à cause:

  1. des templates
  2. des scripts de configuration automatique
  3. des scripts de applications intégrées

L'installation de php5 et mysql 5 est dons à vos risques et perils ! ce How to semble fonctionner, mais il se peut qu'une application ne le supporte pas => dans ce cas ^n'hesitez pas à le preciser sur cette page ou dans la page discussion.

Les deux installation peuvent se faire separement et indifferement

Les fichiers son disponibles sur le repository centosplus [1]

Les mises à jour de SMEsont dispo sur ce mirroir en plus d ecelui de iblio [2] et les fichiers de base : [3]

L'installation est faite pour un i386, adaptez si votre processeur est different.

Elements en commun

le rpm php-domxml essentiel pour horde vous posera, parfois, un probleme de dépendance pour les installer...il faut donc le desinstaller et le reinstaller apres.


rpm -e --nodeps php-domxml

faites l'installation et à la fin (verifiez si une autre version plus recente est dispo dans le repertoire):

rpm -Uvh http://ftp.surfnet.nl/ftp/pub/os/Linux/distr/smeserver/releases/7/updates/i386/RPMS/php-domxml-4.3.9-3.15.i386.rpm

Mysql 5

1 faites un dump de votre base, puis arreter mysql

mysqldump -aec >mondump.sql
/etc/rc.d/init.d/mysql stop

2 installez les mise à jour de mysql 5 sur centosplus

yum --enablerepo=centosplus update mysql

3 verifiez le bon fonctionnement de

/etc/rc.d/init.d/mysql start

(service mysqld restart n'affiche pas les messages d'erreur)


4 verifiez les droits de vos utilisateurs sur les bases (notemment horde pour le webmail), si il y a une erreure de connection alors il faudra recharger les droit comem ceci:

mysql -e "GRANT SELECT,INSERT,UPDATE,DELETE ON horde.* TO 'horde'@'localhost';FLUSH PRIVILEGES"

5 rajouter la table mysql.proc et la table mysql.procs_priv

-- MySQL dump 10.10
-- 
-- Host: localhost Database: mysql
-- ------------------------------------------------------
-- Server version 5.0.22
 
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

-- 
-- Table structure for table `proc`
-- 

CREATE TABLE `proc` (
`db` char( 64 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL default '',
`name` char( 64 ) NOT NULL default '',
`type` enum( 'FUNCTION', 'PROCEDURE' ) NOT NULL ,
`specific_name` char( 64 ) NOT NULL default '',
`language` enum( 'SQL' ) NOT NULL default 'SQL',
`sql_data_access` enum( 'CONTAINS_SQL', 'NO_SQL', 'READS_SQL_DATA', 'MODIFIES_SQL_DATA' ) NOT NULL default 'CONTAINS_SQL',
`is_deterministic` enum( 'YES', 'NO' ) NOT NULL default 'NO',
`security_type` enum( 'INVOKER', 'DEFINER' ) NOT NULL default 'DEFINER',
`param_list` blob NOT NULL ,
`returns` char( 64 ) NOT NULL default '',
`body` longblob NOT NULL ,
`definer` char( 77 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL default '',
`created` timestamp NOT NULL default CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
`modified` timestamp NOT NULL default '0000-00-00 00:00:00',
`sql_mode` set( 'REAL_AS_FLOAT', 'PIPES_AS_CONCAT', 'ANSI_QUOTES', 'IGNORE_SPACE', 'NOT_USED', 'ONLY_FULL_GROUP_BY',  'NO_UNSIGNED_SUBTRACTION', 'NO_DIR_IN_CREATE', 'POSTGRESQL', 'ORACLE', 'MSSQL', 'DB2', 'MAXDB', 'NO_KEY_OPTIONS',  'NO_TABLE_OPTIONS', 'NO_FIELD_OPTIONS', 'MYSQL323', 'MYSQL40', 'ANSI', 'NO_AUTO_VALUE_ON_ZERO', 'NO_BACKSLASH_ESCAPES',  'STRICT_TRANS_TABLES', 'STRICT_ALL_TABLES', 'NO_ZERO_IN_DATE', 'NO_ZERO_DATE', 'INVALID_DATES', 'ERROR_FOR_DIVISION_BY_ZERO',  'TRADITIONAL', 'NO_AUTO_CREATE_USER', 'HIGH_NOT_PRECEDENCE' ) NOT NULL default '',
`comment` char( 64 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL default '',
 PRIMARY KEY ( `db` , `name` , `type` )
  ) ENGINE = MYISAM DEFAULT CHARSET = utf8 COMMENT = 'Stored Procedures'


/*!40000 ALTER TABLE `proc` DISABLE KEYS */;
LOCK TABLES `proc` WRITE;
UNLOCK TABLES;
/*!40000 ALTER TABLE `proc` ENABLE KEYS */;

--
-- Table structure for table `procs_priv`
--

DROP TABLE IF EXISTS `procs_priv`;
CREATE TABLE `procs_priv` (
 `Host` char(60) collate utf8_bin NOT NULL default '',
 `Db` char(64) collate utf8_bin NOT NULL default '',
 `User` char(16) collate utf8_bin NOT NULL default '',
 `Routine_name` char(64) collate utf8_bin NOT NULL default '',
 `Routine_type` enum('FUNCTION','PROCEDURE') collate utf8_bin NOT NULL,
 `Grantor` char(77) collate utf8_bin NOT NULL default '',
 `Proc_priv` set('Execute','Alter Routine','Grant') character set utf8 NOT NULL default '',
 `Timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
 PRIMARY KEY  (`Host`,`Db`,`User`,`Routine_name`,`Routine_type`),
 KEY `Grantor` (`Grantor`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Procedure privileges';


(puis n'oubliez pas php-domxml)

PHP 5

1 installez les mise à jour de php 5 sur centosplus

yum --enablerepo=centosplus update php

2 verifiez voir corrigez ceci:

php.ini
mcedit /etc/e-smith/templates/etc/php.ini/50PathDirectories
extension_dir = /usr/lib/php4 ( et pas /usr/lib/php/modules). Si ce n'est pas le cas faites ceci
cp /etc/e-smith/templates/etc/php.ini/50PathDirectories /etc/e-smith/templates-custom/etc/php.ini/50PathDirectories
mcedit /etc/e-smith/templates-custom/etc/php.ini/50PathDirectories
et modifiez en consequence... Puis:
expand-template /etc/php.ini


httpd.conf
mcedit  /etc/e-smith/templates/etc/httpd/conf/httpd.conf/20loadModule80PHP
verifiez que la ligne est pressente: return "LoadModule php4_module modules/libphp4.so";

( et pas return "LoadModule php5_module modules/libphp5.so";) si ce n'est pas le cas :

cp /etc/e-smith/templates/etc/httpd/conf/httpd.conf/20loadModule80PHP /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf/20loadModule80PHP
mcedit /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf/20loadModule80PHP
et modifiez en consequence... Puis:
expand-template /etc/httpd/conf/httpd.conf


3 verifiez le bon fonctionnement de

/etc/rc.d/init.d/httpd restart

(puis n'oubliez pas php-domxml)

Remerciement

adili du forum Ixus.net [4] le forum contribs [5]