我在运行PHP代码和运行本地apache24服务器时遇到问题。
在HTML中,我做了一个form
,
<form method="post" action="./php/submit.php">
<div class="submitrow">
<div class="col-25">
<label for="fname">Altcoin name*</label>
</div>
<div class="col-75">
<input type="text" name="altcoinName" placeholder="Ethereum" maxlength="20" required>
</div>
</div>
<div class="submitrow">
<div class="col-25">
<label for="fname">Altcoin symbol*</label>
</div>
<div class="col-75">
<input type="text" name="altcoinSymbol" placeholder="ETH" maxlength="5" required>
</div>
</div>
</form>
当我提交form
时,我想运行这个PHP脚本,它将数据从form
发送到我的本地SQL服务器,即运行apache24和phpmyadmin。当我在html中“提交”我的form
时,PHP代码没有被执行,它只会出现在我的浏览器中。
<?php
$altcoinName = filter_input(INPUT_POST, 'altcoinName');
$altcoinSymbol = filter_input(INPUT_POST, 'altcoinSymbol');
if (!empty($altcoinName)){
if (!empty($altcoinSymbol)){
$host = "localhost/phpmyadmin";
$dbusername = "root";
$dbpassword = "";
$dbname = "servertest";
//create connection
$conn = new mysqli ($host, $dbusername, $dbpassword, $dbname);
if (mysqli_connect_error()){
die('Connect Error ('. mysqli_connect_errno() .') '
. mysqli_connect_error());
} else {
$sql = "INSERT INTO submit (altcoinName, altcoinSymbol)
values ('$altcoinName','$altcoinSymbol')";
if ($conn->query($sql)){
echo "New record is inserted succesfully";
} else {
echo "Error: ". $sql ."<br>". $conn->error;
}
$conn->close();
}
} else {
echo "altcoin symbol should not be empty";
die();
}
} else {
echo "altcoin name should not be empty";
die();
}
?>
在CMD中,我访问了apache文件夹并启动了httpd(httpd -k start)。这个错误是我得到的:
(OS 10048)Only one usage of each socket address (protocol/network address/port) is normally permitted. : AH00072: make_sock: could not bind to address [::]:80
(OS 10048)Only one usage of each socket address (protocol/network address/port) is normally permitted. : AH00072: make_sock: could not bind to address 0.0.0.0:80
AH00451: no listening sockets available, shutting down
AH00015: Unable to open logs
所以我搜索了0.0.0.0:80
用netstat -a -o
做的端口,它是LISTENING
。
有没有人知道我可能做错了什么或我如何解决这个问题?我真的很感激,
谢谢
你应该在目录中授予执行权限,通常在/var/www/html/
中设置。但是如果你在/home/username/public_site/
这样的主目录中使用一个站点,那么你也需要允许在这个目录中执行脚本。
如果你的apache正在运行,但PHP没有运行,PHP可能没有配置为从apache运行。
有条不紊地完成这里的每一步:
http://php.net/manual/en/install.unix.apache2.php
如果是预构建的Apache / PHP二进制文件,请从步骤6开始,以确保PHP端已配置。如果有疑问,重建二进制:)
此外,在对这些事情进行故障排除时,您可能会遇到表单问题,以及Apache / PHP配置问题。要验证至少Apache已使用PHP正确配置,请在您的Web根目录中放置一个php_info()测试页。
如果这样做,并且表单提交没有,则可能有两个单独的问题。
http://php.net/manual/en/function.phpinfo.php
我的直觉是你只需要确保第7步已经完成,但我以前错了。在测试更改之前,请不要忘记每次更改任何Apache或PHP文件时重新启动httpd / apache24。