Bonjour à tous et merci pour votre temps.
J'ai un serveur dédié depuis peu chez OVH et j'ai installé CENTOS 7 que j'utilise en interne sur un de mes serveurs. (c'est pompeux, je sais .... ).
La fonction upload (PHP4 & 5) "move_uploaded_file" fonctionne très bien en interne sous linux (PHP5) et sous easyphp 1.8 (PHP4).
J'ai contrôlé avant de vous demander avis les droits sur le sous sous dossier de mon arborescence (archive) : var/www/html/sitetoto/archive
Et pour test 0777 (utilisateur / groupe / autre) sur ce dossier archive
Utilisateur apache Groupe apache
Redémarrage serveur apache après modification des droits (test 0700; 0750 ...).
Et à chaque fois :
Impossible d'enregistrer le fichier !
TYPE DE SERVEUR VIRTUELLE OVH
OVH SSD (premier prix pour test avant déploiement de plusieurs serveurs ....)
CENTOS 7 64 BITS
Apache 2.4.6 (CentOS)
PHP 5.4.16
MariaDB Server 5.5.52
Le code :
session_start();
include ("controle1.php");
$nom = $_SESSION['nomuser'];
$pren = $_SESSION['prenuser'];
$numuser = $_SESSION['numusers'];
$auto = $_SESSION['auto'];
$sesid = session_id();
require ("datesyst.php");
require ("connect.php");
$connexion = mysql_connect (SERVEUR, NOM, PASSE);
mysql_select_db (BASE, $connexion);
$nu = $numuser;
IF (isset($_POST['idpro'])) // modif20160328
{
$idpro = $_POST['idpro'];
}
ELSE IF (isset($_GET['idpro']))
{
$idpro = $_GET['idpro'];
}
ELSE
{
$idpro = "";
}
IF (isset($_POST['descri'])) // modif20160328
{
// echo 'le champ est bien rempli';
$descri = $_POST['descri'];
}
ELSE IF (isset($_GET['descri']))
{
$descri = $_GET['descri'];
}
ELSE
{
$descri = "";
}
$nomfile = "D".$nu.$timestamp.".pdf";
$descri = strtoupper($descri);
$descri = addslashes($descri); // stripslashes()
$descri = trim($descri);
if( isset($_POST['upload']) ) // si formulaire soumis
{
$content_dir = 'uploadZdoc/'; // dossier où sera déplacé le fichier
$tmp_file = $_FILES['fichier']['tmp_name'];
if( !is_uploaded_file($tmp_file) )
{
exit("Le fichier est introuvable");
}
// on vérifie maintenant l'extension
$type_file = $_FILES['fichier']['type'];
if( !strstr($type_file, 'pdf'))
{
exit("Le fichier n'est pas un fichier pdf");
}
$namefile = $_FILES['fichier']['name']; // nom de fichier original
$name_file = $nomfile; // nom du fichier sur le serveur
$insged = "INSERT INTO `ged` ( `ne-ged` , `nu-ged` , `idprofil-ged` , `descri-ged` , `nfic1-ged` , `nfic2-ged` , `date-ged` , `time-ged` ) VALUES (NULL , '$nu', '$idpro', '$descri', '$namefile', '$name_file', '$date6xbdd', '$time10')";
if ( ! ($temresged=mysql_query ($insged, $connexion) ) )
{
echo ( sprintf ("Erreur à l'execution de la requete :
%s ", $insged ) );
echo ( sprintf (" Erreur %d :
%s" , mysql_errno(),
mysql_error() ) );
exit;
}
# AVEC SECURITE SUR LE NOM DE FICHIER ANTI HACKING.
if( preg_match('#[\x00-\x1F\x7F-\x9F/\\\\]#', $name_file) )
{
exit("Nom de fichier non valide");
}
else if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
{
exit("Impossible de copier le fichier dans $content_dir");
}
echo "Le fichier a bien été uploadé";
require "retauto1.php";
}
?>
Merci à vous.
Probleme instruction php move_uploade sur VPS SSD OVH
Sujets apparentés
- Je connais que le mutu et besoin de node js
14308
14.04.2017 13:34
- [résolu] Serveur Mysql - hôte inconnu
11874
19.01.2017 16:21
- Envoi Email via SMTP (port 587) sur VPS Pro1
11713
27.01.2017 10:02
- Comment configurer/utiliser un SMTP depuis un VPS ?
11605
07.10.2019 10:49
- Accès externe base de données
11321
18.07.2018 10:29
- Problème avec statisitique Plesk
10325
29.03.2017 07:44
- Comment sauvegarder / restaurer tout son vps système compris
10225
31.08.2018 05:21
- Qu'est-ce vcore?
10097
06.01.2017 19:20
- Délai de livraison VPS
10075
11.07.2018 15:15
- Mise à jour Plesk en erreur
9745
28.11.2016 22:52
Bonjour,
C'est pas le bon forum car il ne s'agit pas d'un problème de container (hébergement Maratohn). La section "Cloud" correspond surement mieux.
Le code est vraiment difficile à lire, idéalement il faudrait le mettre sur un gist par exemple pour que l'on puisse le lire.
Bonjour,
je vous remercie. Est il possible de faire le transfert directement dans la section cloud ?
De plus, ce code fonctionne fonctionne sur plusieurs serveurs et je pense (sans doute à tort) que le problème vient d'une spécificité du VPS SSD...
Merci à vous.
Bonsoir,
Sinon que disent les logs apache/php?
Bonsoir,
je vous remercie. J'ai trouvé le probleme et rien à voir avec le VPS SSD.
Le "problème" vient de SELINUX ....
J'ai désactivé SELINUX.
# /usr/sbin/setenforce 0
Celui-ci doit pouvoir se paramétrer pour régler les droits d'une manière fine mais pas vraiment le temps.
J'ai évidemment remis les droits sur le dossier d'upload à 0750.
Il faudra que je modifie la configuration de SELINUX si redémarrage du serveur :
/etc/selinux/config
et
SELINUX=disabled
Je vous remercie pour votre aide.
Sincères salutations.
Franck