各种问题解决方案总结【记录】(持续更新)

来源:互联网 发布:手机游戏优化器在哪 编辑:程序博客网 时间:2024/05/22 04:29

apache虚拟主机的配置方法和示例

1.首先修改C:/WINDOWS\system32\drivers\etc目录下的 hosts 文件,比如原来用【localhost】访问【htdocs】文件夹里的项目,现在想用www.test.com来访问本地项目,操作如下:

127.0.0.1 www.test.com

添加成功后即可用 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>

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

对于无法捕获的POST参数,如何抓去

$POST

$_POST是我们最常用的获取POST数据的方式,它是以关联数组方式组织提交的数据,并对此进行编码处理,如urldecode,甚至编码转换,识别的数据类型是PHP默认识别的数据类型 application/x-www.form-urlencoded

无法解析如text/xml,application/json等非 application/x-www.form-urlencoded 数据类型的内容

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 替代

php://input
php://input 可通过输入流以文件读取方式取得未经处理的POST原始数据,允许读取 POST 的原始数据。和 $HTTP_RAW_POST_DATA 比起来,它给内存带来的压力较小。

不需要任何特殊的 php.ini 设置不能用于 enctype="multipart/form-data"

小结
上面了介绍了一下我们目前使用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,搞定!

解决启用本地软件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>

编码格式总结
● 中国人民通过对 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。      

0 0
原创粉丝点击