各种问题解决方案总结【记录】(持续更新)
apache虚拟主机的配置方法和示例
1.首先修改C:/WINDOWS\system32\drivers\etc目录下的 hosts 文件,比如原来用【localhost】访问【htdocs】文件夹里的项目,现在想用www.test.com来访问本地项目,操作如下:
127.0.0.1 www.test.com
- 1
添加成功后即可用 www.test.com访问
2.打开xampp\apache\conf\httpd.conf文件,搜索 “Include conf/extra/httpd-vhosts.conf”,确保前面没有 # 注释符,也就是确保引入了 vhosts 虚拟主机配置文件。
3、添加VirtualHost以支持多个站点,比如想把站点放在 C://php下,用www.test.com访问
在e:\xampp\apache\conf\extra\httpd-vhosts.conf文件中添加如下内容:
复制代码 代码如下:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.test.com
DocumentRoot "C:/php"
<Directory "C:/php">
Options FollowSymLinks IncludesNOEXEC Indexes
DirectoryIndex index.html index.htm index.php
AllowOverride all
Order Deny,Allow
Allow from all
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName localhost
DocumentRoot "E:/xampp/htdocs"
<Directory "E:/xampp/htdocs">
Options FollowSymLinks IncludesNOEXEC Indexes
DirectoryIndex index.html index.htm index.php
AllowOverride all
Order Deny,Allow
Allow from all
Require all granted
</Directory>
</VirtualHost>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
nginx虚拟主机的配置方法和示例
location 定义文件类型,
.php$ 代表所有以 php 作为文件后缀的文件类型.
root 定义 php 文件存放的路径, 当前以 “/www” 作为默认存放位置.
fastcgi_index 定义 php 文件类型中的默认索引页
fastcgi_param SCRIPT_FILENAME 定义了页面请求参数, 如客户端需要访问 /t1.php 则会自动读取 /www/t1.php文件, 如客户端访问 / 则自动读取 /www/index.php 文件
include 定义fastcgi 配置信息将会被保存到 /usr/local/nginx/conf/fastcgi_params 文件中
nginx最常用的方法是利用 tcp/ip 协议连接 phpfastcgi 接口, 因此要连接php必须先启动fastcgi程序.
找到nginx的配置文件【nginx.conf】
下边加入:include vhosts;
同级路径下创建vhosts文件,编辑加入以下内容
server{
listen 80;
server_name www.test.com;
root /www;
if ($uri ~ ^/MP_verify_(.+)\.txt$) {
return 200 $1;
}
location ~* \.(eot|ttf|woff|svg|otf)$ {
add_header Access-Control-Allow-Origin 'http://www.test.com';
add_header Access-Control-Allow-Methods 'GET, POST';
}
location / {
index index.html index.htm index.php;
#autoindex on;
}
location ~ \.php(.*)$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
#所有静态文件由nginx直接读取不经过tomcat或resin
location ~ .*.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$
{ expires 15d; }
location ~ .*.(js|css)?$
{ expires 1h; }
}
kill -HUP `cat /usr/local/nginx/logs/nginx.pid` #重启nginx
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
对于无法捕获的POST参数,如何抓去
$POST
$_POST是我们最常用的获取POST数据的方式,它是以关联数组方式组织提交的数据,并对此进行编码处理,如urldecode,甚至编码转换,识别的数据类型是PHP默认识别的数据类型 application/x-www.form-urlencoded
无法解析如text/xml,application/json等非 application/x-www.form-urlencoded 数据类型的内容
- 1
HTTP_RAW_POST_DATA
前面说过PHP默认识别的数据类型是application/x-www.form-urlencoded,用Content-Type=application/json 类型,提交的POST数据这时候 POST就无法获取到了,但是使用GLOBALS[‘HTTP_RAW_POST_DATA’] 可以获取到。因为在PHP无法识别Content-Type的时候,就会把 POST 数据填入到 $HTTP_RAW_POST_DATA 中。
1.需要设置 php.ini 中的 always_populate_raw_post_data 值为 On 才会生效
2.当$_POST 与 php://input可以取到值时 $HTTP_RAW_POST_DATA 为空
3.不能用于 enctype="multipart/form-data"
4.PHP7中已经移除了这个全局变量,用 php://input 替代
- 1
- 2
- 3
- 4
php://input
php://input 可通过输入流以文件读取方式取得未经处理的POST原始数据,允许读取 POST 的原始数据。和 $HTTP_RAW_POST_DATA 比起来,它给内存带来的压力较小。
不需要任何特殊的 php.ini 设置
不能用于 enctype="multipart/form-data"
- 1
- 2
小结
上面了介绍了一下我们目前使用PHP获取POST数据的三种方式,当我们以后使用PHP来获取POST数据的时候用$_POST或者php://input就好了。虽然HTTP_RAW_POST_DATA可以达到和php://input一样的目的,但是会给内存带来较大的压力,官方也注意到了这个问题,所以在PHP7就果断移除了这个不好用的东东。。。
WAMP不能正常启动:
WAMP不能启动, 一直处于红色图标(正常启动为绿色吧)
考虑是端口的问题,我找到wamp文件夹中的wamp\bin\apache\apache2.2.22\conf路径下的httpd.conf文件,将:
#Listen 12.34.56.78:80
Listen 80
把Listen 80改成Listen 8088(因为tomcat默认是8080,不想以后冲突),然后再启动wampapache发现可以了,wamp显示为绿色,OK,搞定!
- 1
- 2
- 3
- 4
- 5
- 6
解决启用本地软件xampp端口被占用6种方法
我们在学做网站教程中讲到,做网站可以先使用本地环境来模拟网站空间制作网站,这样很方便的修改网站各方面内容。但很多学建站学员都会遇到启用本地环境软件时,会提示端口被占用,无法启动成功。那么应该如何解决本地软件xampp端口被占用的问题,这里学做网站论坛提供了6种方法。
**第一种解决方法:**
检查自己的本地环境软件安装路径中是否有中文,如地址栏中的路径为:J:\常用图标\常用网站,这就是包含了中文。解决方法:重新下载xampp软件安装到英文或是拼音的文件夹中(不要直接复制之前的文件。)
**第二种解决方法:**
提示80端口被占用,80端口是网络访问端口,是本地环境默认的访问端口。我们在学习如何做网站时,用的最多的就是80端口,但很多学员的电脑里安装了某个软件,它已经占用了80端口,那么本地环境就无法再启用80端口了。
我们可以将本地环境的80端口改成8080端口。方法如下:
找到你的xampp安装的文件夹,进入apache文件夹,再进入conf文件夹,找到httpd.conf文件,用记事本打开。
在httpd.conf这个记事本中,点击编辑---查找,查找Listen 80,可以看到如下内容:
#Listen 0.0.0.0:80
#Listen [::]:80
Listen 80
把上面的80改成8080,如下:
#Listen 0.0.0.0:8080
#Listen [::]:8080
Listen 8080
然后打开xampp软件,就可以启用了。这个时候本地路径访问地址变成了http://127.0.0.1:8080/。
**第三种解决方法:**
用一个进程结束软件“加速人生”结束所有进行,这样电脑中占用80端口的软件也会被停掉,然后直接开启XAMPP服务即可。软件下载地址:http://www.updrv.com/fast/
**第四种解决方法:**
使用软件IceSword来停止端口。(软件下载地址:http://u.115.com/file/f42e2e8a40)
打开软件,点击端口,在本地地址列表下找到***.***.***.***:80形式的地址,然后查看它所属的进程ID
点击进程,根据第一步找的进程ID,找到进程,然后结束掉,这样就可以把占用80端口的程序关掉。
**第五种解决方法:**
win7系统用户无法使用IceSword软件,可以使用和IceSword一样功能的能在win7下运行的软件: XueTr(软件下载地址:http://u.115.com/file/f4ce8a8570)
使用方法:
打开软件,点击网络选项,在本地地址列表下找到***.***.***.***:80形式的地址,然后查看它所属的进程ID
点击进程,根据第一步找的进程ID,找到进程,然后结束掉,这样就可以把占用80端口的程序关掉。
**第六种解决方法(推荐使用):**
打开“运行”,windows系统打开方式如下图:启用本地软件xampp端口被占用6种方法1
在弹出的窗口中输入cmd,并确认:
启用本地软件xampp端口被占用6种方法2
在打开的命令提示符中输入:netstat -ano 命令,然后回车:启用本地软件xampp端口被占用6种方法3
打开任务管理器(打开方式:按键Ctrl+ALT+Delete),打开服务,找到PID并选择软件结束进程:启用本地软件xampp端口被占用6种方法4
重启XAMPP软件。/li>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
编码格式总结
● 中国人民通过对 ASCII 编码的中文扩充改造,产生了 GB2312 编码,可以表示6000多个常用汉字。
● 汉字实在是太多了,包括繁体和各种字符,于是产生了 GBK 编码,它包括了 GB2312 中的编码,同时扩充了很多。
● 中国是个多民族国家,各个民族几乎都有自己独立的语言系统,为了表示那些字符,继续把 GBK 编码扩充为 GB18030 编码。
● 每个国家都像中国一样,把自己的语言编码,于是出现了各种各样的编码,如果你不安装相应的编码,就无法解释相应编码想表达的内容。
● 终于,有个叫 ISO 的组织看不下去了。他们一起创造了一种编码 UNICODE ,这种编码非常大,大到可以容纳世界上任何一个文字和标志。
所以只要电脑上有 UNICODE 这种编码系统,无论是全球哪种文字,只需要保存文件的时候,保存成 UNICODE 编码就可以被其他电脑正常解释。
● UNICODE 在网络传输中,出现了两个标准 UTF-8 和 UTF-16,分别每次传输 8个位和 16个位。
于是就会有人产生疑问,UTF-8 既然能保存那么多文字、符号,为什么国内还有这么多使用 GBK 等编码的人?因为 UTF-8 等编码体积比较大,
占电脑空间比较多,如果面向的使用人群绝大部分都是中国人,用 GBK 等编码也可以。但是目前的电脑来看,硬盘都是白菜价,
电脑性能也已经足够无视这点性能的消耗了。所以推荐所有的网页使用统一编码:UTF-8。
上一篇: Java开发常用类库之Hutool
下一篇: 各种问题解决方案积累