Php 5 mysql 5 : Différence entre versions

De SME Server Wiki
(Elements en commun)
(Mysql 5)
Ligne 30 : Ligne 30 :
  
 
== Mysql 5 ==
 
== Mysql 5 ==
1 faites un dump de votre base, puis arreter mysql
+
1 '''faites un dump de votre base'''
  
 
  mysqldump -aec >mondump.sql
 
  mysqldump -aec >mondump.sql
 +
 +
2 Arreter Mysql
 +
 
  /etc/rc.d/init.d/mysql stop
 
  /etc/rc.d/init.d/mysql stop
  
2 installez les mise à jour de mysql 5 sur centosplus
+
3 installez les mise à jour de mysql 5 sur centosplus
  
 
  yum --enablerepo=centosplus update mysql
 
  yum --enablerepo=centosplus update mysql
  
3 verifiez le bon fonctionnement de  
+
4 verifiez le bon fonctionnement de  
  
 
  /etc/rc.d/init.d/mysql start
 
  /etc/rc.d/init.d/mysql start
Ligne 46 : Ligne 49 :
  
  
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:
+
5 Restaurer 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"
 
  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
+
6 rajouter la table mysql.proc et la table mysql.procs_priv, qui sont necessaire pour Mysql5 sans elle certaines option de gestion de privilèges seront hors service
  
 
  -- MySQL dump 10.10
 
  -- MySQL dump 10.10
Ligne 69 : Ligne 72 :
 
  /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
 
  /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
 
   
 
   
 +
DROP TABLE IF EXISTS `proc`;
 
  --  
 
  --  
 
  -- Table structure for table `proc`
 
  -- Table structure for table `proc`
Ligne 99 : Ligne 103 :
 
  /*!40000 ALTER TABLE `proc` ENABLE KEYS */;
 
  /*!40000 ALTER TABLE `proc` ENABLE KEYS */;
 
   
 
   
 +
DROP TABLE IF EXISTS `procs_priv`;
 
  --
 
  --
 
  -- Table structure for table `procs_priv`
 
  -- Table structure for table `procs_priv`
Ligne 117 : Ligne 122 :
 
  ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Procedure privileges';
 
  ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Procedure privileges';
  
 +
7 relancer mysql
 +
 +
/etc/rc.d/init.d/mysqld stop;
 +
/etc/rc.d/init.d/mysqld start;
 +
/etc/rc.d/init.d/mysql.init restart;
  
(puis n'oubliez pas php-domxml)
+
(puis n'oubliez pas php-domxml si vous avez du le desinstaller)
  
 
== PHP 5 ==
 
== PHP 5 ==

Version du 17 décembre 2006 à 22:38

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 peut donc être utile de le desinstaller et le reinstaller apres si vous avez une erreure l'impliquant.


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

mysqldump -aec >mondump.sql

2 Arreter Mysql

/etc/rc.d/init.d/mysql stop

3 installez les mise à jour de mysql 5 sur centosplus

yum --enablerepo=centosplus update mysql

4 verifiez le bon fonctionnement de

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

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


5 Restaurer 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"

6 rajouter la table mysql.proc et la table mysql.procs_priv, qui sont necessaire pour Mysql5 sans elle certaines option de gestion de privilèges seront hors service

-- 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 */;

DROP TABLE IF EXISTS `proc`;
-- 
-- 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 */;

DROP TABLE IF EXISTS `procs_priv`;
--
-- 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';

7 relancer mysql

/etc/rc.d/init.d/mysqld stop;
/etc/rc.d/init.d/mysqld start;
/etc/rc.d/init.d/mysql.init restart;

(puis n'oubliez pas php-domxml si vous avez du le desinstaller)

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]