Uden at ødelægge sin linux installation?

Tags:    php test

Hej til gruppen

Hvordan tester man sin PHP kode der frembringer MySQL uden risikoen for at ødelægge sin linux installation?

Mvh,
Thomas :)



6 svar postet i denne tråd vises herunder
4 indlæg har modtaget i alt 6 karma
Sorter efter stemmer Sorter efter dato
Hvis du vil køre det på en seperat maskine, hvorfor ikke bare bygge en vagrantbox eller hente en box som du kan teste på, det er nok det nemmeste.



MySQL kan vel ikke ødelægge en server? Kun data. Så du kan tage en backup af dit data, eller køre koden på en anden database med kopi af dataen.



du behøver vel egentlig ikke lave en fil du kalder via browseren ? Kan du ikke kalde den fra terminalen ?



Linux administratoren der spørger.

Hvad er det helt præcist du ville Thomas som kræver root rettigheder?
Jeg bruger ikke selv PHP så du må lige give nogle flere detaljer om hvad målet overhoved er.



Men den kan vel "garble" tingene op. G2G.

Dette er koden:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Database creation in PHP</title>
</head>

<body>

<?php

$servername = "localhost";
$username = "username";
$password = "password";
$startDB= 0;
$endDB= 119;
$PrefixDB="prefixDB";
$spreadsheetCSV="databases.csv";

$csvFile = fopen($spreadsheetCSV, "a");

// Create connection

$conn = new mysqli($servername, $username, $password);
// Check connection
if ($conn->connect_error) {
die("Connection open failed: " . $conn->connect_error);
}

for($LocalDB = $startDB; $LocalDB <= $endDB; $LocalDB++)
{




//$LocalDB=system("mkpasswd 'date +%N' ");

$DatabaseName= ${PrefixDB} . ${LocalDB};

// Create DATABASE

$sql= "CREATE DATABASE " . "\'" . ${DatabaseName} . "\'" . ";";

if ($conn->query($sql) === TRUE) {
echo "DATABASE created successfully";
} else {
die ("Error creating DATABASE: " . $conn->error);
}

// Create USER
//$LocalUsername = substr(system("mkpasswd 'date +%N'"), 13);

$LocalUsername = ${DatabaseName};

$sql="CREATE USER " . "\'" . ${LocalUsername} . "\'" . "@" . "\'" . ${servername} . "\'" . ";";

if ($conn->query($sql) === TRUE) {
echo "USER created successfully";
} else {
die ("Error creating USER: " . $conn->error);
}
// Create PASSWORD

$LocalPassword = substr(system("mkpasswd 'date +%N'"), 13);

$sql="IDENTIFIED BY PASSWORD " . "\'" . ${LocalPassword} . "\'" . ";";

if ($conn->query($sql) === TRUE) {
echo "PASSWORD created successfully";
} else {
die ("Error creating PASSWORD: " . $conn->error);
}
// GRANT ALL ON LocalDB.* TO USERNAME

$sql = "GRANT ALL ON " . ${DatabaseName} . ".*" . " TO " . "\'" . ${LocalUsername} . "\'" . "@" . "\'" . ${servername} . "\'" . ";";

if ($conn->query($sql) === TRUE) {
echo "Granting created successfully";
} else {
die ("Error creating GRANTING: " . $conn->error);
}


fputcsv($csvFile, array((string)$LocalDB, $DatabaseName, $LocalUsername, $LocalPassword));



};

// Close database connection

$conn->close();

// Close csv spreadsheet file

fclose($csvFile);

?>
</body>
</html>



Nemlig, jeg vil kalde den med "sudo php -f generate_databases_in_php.php"

Mvh,
Thomas :)

Men hvad med en Knoppix 7.4.2 Live Linux DVD?
kan man teste sin LAMP kode med den?

Mvh,
Thomas.



Indlæg senest redigeret d. 26.02.2015 13:56 af Bruger #16584
t