wamp: apache mysql php 计算机二级
因考mysql二级需要:
视频操作步骤参考:https://www.bilibili.com/video/BV1Qb411477K?p=28
先将mysql的路径配置到系统变量中,然后用电脑的命令操作符以管理员身份操作将mysql服务停了,在将软件给你的文件夹中的那个数据库名称的文件夹跟ibdata1一起复制到安装mysql的data文件中,(现将data原有ibdata1备份),放好后,又以管理员身份启动mysql服务就可以了
安装:
下载apache的exe文件(图形文件)或者压缩包直接解压用命令启动也可以

安装后:

注意在官网下载php包,要下载线程安全的那个,不然没有apche_php.dll这个模块,也就无法在httpd.conf引入加载php模块


在php安装文件里找下面dll文件

测试php安装的扩展和配置信息
<?php phpinfo();

在httpd.conf增加








directoryindex里面从前往后找,只要有就是首页。






MySQL服务必须启动后,PHP才可以通过mysqli_connect函数连接MySQL
php不需要自己去开启,由apache根据请求(.php)去运行php,apache管理php.
php和apache都是一个平台,本身没有功能,如果需要功能,在配置文件加载模块或者扩展
apache是loadmodule php的模块 ,php 是加载mysql的extension
mysql8 安装过程中报错 服务无法启动:
mysqld --initialize-insecure 初始化
mysqld -install mysql8 安装mysql8服务
php连mysql测试代码:
<?php $con=mysqli_connect('localhost','root','root') or die('error'); echo 'link ok'; ?>
或者
<?php $con=mysqli_connect('localhost','root','root'); if($con) { echo 'link ok'; }else { echo 'error'; } ?>




<Directory "G:\wamp1\ht">
AllowOverride None 这控制配文件会不会覆盖apache


问题:
1、通过端口来区分不同的站点


z







<VirtualHost _default_:83> DocumentRoot "${SRVROOT}/htdocs" <Directory "${SRVROOT}/htdocs"> Options Indexes FollowSymLinks Require all granted </Directory> ServerName fpc3.com </VirtualHost> <VirtualHost *:83> ServerAdmin 2428120710@qq.com DocumentRoot "G:\wamp2\fpc" <Directory "G:\wamp2\fpc"> Options Indexes FollowSymLinks Require all granted </Directory> <IfModule dir_module> DirectoryIndex aa.php </IfModule> ServerName fpc1.com ErrorLog "logs/2428120710@qq.com-error.log" CustomLog "logs/2428120710@qq.com-access.log" common </VirtualHost> <VirtualHost *:83> ServerAdmin 2428120710@qq.com DocumentRoot "G:\wamp4\fpc" <Directory "G:\wamp4\fpc"> Options Indexes FollowSymLinks Require all granted </Directory> <IfModule dir_module> DirectoryIndex aa.php index.php </IfModule> ServerName fpc.com ErrorLog "logs/2428120710@qq.com-error.log" CustomLog "logs/2428120710@qq.com-access.log" common </VirtualHost> <VirtualHost *:83> ServerAdmin 2428120710@qq.com DocumentRoot "G:\wamp\phpMyAdmin" <Directory "G:\wamp\phpMyAdmin"> Options Indexes FollowSymLinks Require all granted </Directory> <IfModule dir_module> DirectoryIndex index.php </IfModule> ServerName www.phpadmim.com ErrorLog "logs/2428120710@qq.com-error.log" CustomLog "logs/2428120710@qq.com-access.log" common </VirtualHost>
默认的虚拟主机配置是http.conf的配置,默认虚拟主机配置中没有的,沿用http.conf的配置,访问站点的时候除了下面虚拟主机域名已经配置了虚拟主机(
fpc.com
www.phpadmim.com
)访问自己的设置站点,而虚拟主机没配置的域名如:127.0.0.1 locahost abc.com等都是走默认配置
只要hosts文件绑定了ip 对应的域名,且在vhost文件中没有配置对应域名的虚拟主机:
<VirtualHost _default_:83>
DocumentRoot "${SRVROOT}/htdocs"
<Directory "${SRVROOT}/htdocs">
Options Indexes FollowSymLinks
Require all granted
</Directory>
ServerName fpc3.com
</VirtualHost>
apache的别名:
Apache服务器通过设置alias别名可以使特定的目录(phpmyadmin目录)不出现在网站根目录下面,即使网站根目录被攻破,也不会影响到phpmyadmin目录里面的文件
同一个域名,不同的url访问,貌似其他目录也在站点根目录下一样。
第一步:在httpd.conf中 去掉#,加载 loadmodule autoindex这个模块,LoadModule autoindex_module modules/mod_autoindex.so
第二步:在httpd.conf中 Include conf/extra/httpd-autoindex.conf ,打开conf/extra/httpd-autoindex.conf
第三步:conf/extra/httpd-autoindex.conf中配置类似格式的映射文件路径
Alias /icons/ "${SRVROOT}/icons/" <Directory "${SRVROOT}/icons"> Options Indexes MultiViews AllowOverride None Require all granted </Directory>
也可以不在conf/extra/httpd-autoindex.conf配置,自定义一个文件夹alias
在里面根据作用不同分类:





最后在httpd.conf加上include
Include "G:\wamp\alias\*"
wampserver软件就是这样弄的。
了解即可,没人用





什么分布式部署文件?就是在站点文件夹里新建一个文件.htaccess,里面配置内容,能覆盖httpd.host,或者php.ini里面配置
下面就是.htaccess配置内容。

.htaccess文件editplus可以创建,直接在电脑文件里右键创建会报错,因为这是文件后缀名
php语法:
标准写法:<?php
?> //只要下面全是php代码,没有html代码,可以省略
浏览器乱码问题:

方法二 通过header函数:










首次打开网页,没有值,会报个警告,因为刚进来这页面没有提交任何代码,也没有key为a和b的值
$_POST["a"]这个代码是报下面的错误,,返回false,但有警告,用isset()函数去掉这个警告。

$_POST["a"] 会报错
isset($_POST["a"])



<?php $a=$_GET["a"]; $b=$_GET["b"]; echo "a为",$a; echo "<br/>b为".$b; echo "<br/>这是a为{$a},这是b为$b"; ?>



















变量必须在双引号内才能解析。







枚举数组:数组下标是整型的的从0开始



关联数组:下标是表字段的字符串







计算机二级代码:
如果连接数据库不知道报错信息,加个mysql_error()打印报错信息
<?php $con=mysql_connect('localhost:3306','root','') or die('连接数据库服务器失败<br>'.mysql_error()); mysql_select_db("db_mall",$con) or die('连接数据库失败 ' .mysql_error()); mysql_query("set names 'utf8'"); $sql="DELETE FROM tb_commodity"; $sql=$sql." WHERE cno=10"; 注意这地方要有个空格,以免 commodity Where 拼接在一起 if(mysql_query($sql,$con)){ echo "客户删除成功<br>"; }else{ echo "客户删除失败".mysql_error(); } mysql_close($con); ?>
<meta charset="utf-8"> <?php $con=mysql_connect("localhost:3306","root","") or die("数据库连接失败".mysql_error()."<br>"); $db=mysql_select_db("db_mall",$con) or die("选择数据库失败".mysql_error()."<br>"); mysql_query("set names utf8"); $sql="select * from tb_commodity"; $sql=$sql." where 1=1"; $result=mysql_query($sql,$con); echo $result."<br>";//返回指针,在php中指针是Resource类型 ,Resource id #2 ,默认是指向第1条记录,即下标为0
$result=mysql_query($sql,$con);
echo $result."<br>";//返回指针,在php中指针是Resource类型 ,Resource id #3
$result=mysql_query($sql,$con);
echo $result."<br>";//返回指针,在php中指针是Resource类型 ,Resource id #4
if($result){ echo "查询到了信息<br>";
$array=mysql_fetch_array($result,MYSQL_NUM);
echo implode(",",$array)."<br>"; //将数组转为字符串 ,可以验证出$array是数组类型,一条record记录放在一个数组里,虽然数据类型各不相同
if($array){
echo "读取到了客户信息<br>";
echo "cno为9的名字为".$array[2]."<br>";
}else{
echo "没有读取到客户信息<br>";
} }else{
echo "查询失败<br>";
}
?>
返回一个句柄,内容为“Resource id #2”或“Resource id #3”类推,该句柄指向缓存中的搜索结果数据类,
不能直接访问,可以用mysql_fetch_row()等相应函数,得到你所要的信息、数据。只到调用mysql_free_result();或mysql_close();或者用户关闭页面。


浙公网安备 33010602011771号