WAMP 环境中出现过的一些错误及其解决,放在这里。
Apache
1、 Apache 服务不能启动?虚拟主机配置时也会报错?( Windows 8.1_x64 )
解决方案
① httpd.conf 中更改 Apache 监听的端口:Listen 80 -> Listen 8080
② 我是因为虚拟主机中设置与 httpd.conf 中设置相冲突。
·其他:netstat
命令的使用之查看 某个端口被谁占用
输入命令:netstat -ano
,列出所有端口的情况。在列表中我们观察被占用的端口,比如是 49157,首先找到它。
查看被占用端口对应的 PID,输入命令:
netstat -ano|findstr "49157"
回车,记下最后一位数字,即 PID, 这里是 2720。
继续输入 tasklist|findstr "2720"
,回车,查看是哪个进程或者程序占用了 2720 端口,结果是:svchost.exe。
结束该进程:在任务管理器中选中该进程点击 “结束进程” 按钮,或者是在 cmd 的命令窗口中输入:
taskkill /f /t /im svchost.exe
2、 Apache 服务器下的网站加载巨慢?
回答:一般都是 PHP 程序写得有问题。
3、如何改变 Apache 的默认监听端口号?
解决办法
在 httpd.conf 中通过修改 80 即可:
#Listen 12.34.56.78:80
Listen 80
4、 Apache 只能监听一个端口吗?
回答:一个 Apache 服务器上可以监听多个端口,即可以设置多个 Listen port
。但是 一个端口只能被一个程序监听。
5. You don’t have permission to access /Discuz/ on this server.?
解决办法:将 DocumentRoot “” 前的注释符号 # 删除。
原因
① index.html 是用 root 用户建的文件,Apache 权限不够。
解决方法:更改文件权限;chmod 755 index.html
如果是 WIN 下出现这个问题,请按以下方式解决:
打开 Apache 2.2 的配置文件 httpd.conf,找到这么一段:
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
deny from all
Satisfy all
</Directory>
然后试着把 deny from all
中的 deny
改成了 allow
,保存后重启 Apache ,然后再一测试网页,访问网站完全正常。
② Apache 的配置文件 httpd-vhosts.conf 里,如果打开了虚拟主机的扩展配置,即:
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
把 Include
前面的 # 去掉了,就引入了扩展配置,而扩展配置文件里又没配好相应的权限 Allow from all
,所以提示此错误。
之所以出现这个错误的原因是: ** Apache 2.4 与 Apache 2.2 的虚拟主机配置写法不同** 导致。
Apache 2.2 的写法:
<VirtualHost *:80>
ServerName fdipzone.demo.com
DocumentRoot "/home/fdipzone/sites/www"
DirectoryIndex index.html index.php
<Directory "/home/fdipzone/sites/www">
Options -Indexes +FollowSymlinks
AllowOverride All
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
如果在 2.4 中使用以上写法就会有 Apache AH01630: client denied by server configuration 错误。
解决方法
Apache 2.4 中找到:
Order deny,allow
Allow from all
Allow from host ip
修改为:
Require all granted
Require host ip
修改后的配置如下:
<VirtualHost *:80>
ServerName fdipzone.demo.com
DocumentRoot "/home/fdipzone/sites/www"
DirectoryIndex index.html index.php
<Directory "/home/fdipzone/sites/www">
Options -Indexes +FollowSymlinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
6、Apache 配置虚拟主机后原域名 localhost 无权访问?
Apache 默认只有一个虚拟主机,即 httpd.conf 中实现配置好的和域名 localhost 绑定的 htdocs 路径。
当配置了其他的虚拟主机后,原有虚拟主机的 DocumentRoot 及其配置将被覆盖。
解决办法
在 httpd-vhosts.conf 中按虚拟主机的配置方法加入把 htdocs 目录的重新与 localhost 域名绑定即可即可。
MySQL
MySQL 无法远程访问?
检查思路:
-
MySQL 服务器地址有无写错,不要带端口号。
-
/etc/mysql/my.cnf 中注释掉
bind_address
和skip_networking
。 -
防火墙
详见:LEMPA 环境搭建。
MySQL 忘记密码重置
进入 MySQL 安全模式,即当 MySQL 起来后,不用输入密码就能进入数据库。 命令为:
mysqld-nt --skip-grant-tables
使用空密码登录后:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('your_password');
或者:
use mysql
update mysql.user set password=PASSWORD('your_password') where user='root';
flush privileges;
如果出现错误请检查环境变量或者是否 MySQL 服务未关闭。
如果知道原来密码的情况下可以直接修改:
mysqladmin -uroot -p oldpwd password
然后输入新密码就可以了。
- 1、开机出现 “缺少根元素” 的错误提示?
解决办法
Win8/Win10 系统下,删除这个目录:C:/Users/~~~/AppData/Roaming/Oracle/MySQL Notifier/
下的配置文件即可。
~~~
是本地计算机名。其他系统应该也是大同小异,按照相应路经寻找相关文件删除就好了。