www.ms577.com【SOS】nginx无法解析php文件?

( www.ms577.com )

已经在服务器上装了nginx和php,php-fpm(监听9000端口)
可以正常显示html,但是每当输入url打开一个php时,无法正常解析,导致变成下载模式

nginx.conf如下

现在打开php直接变成404…Orz

干脆贴出来吧,估计是这一段的问题,搞了好久都没进展….

location ~ .php$ {
    fastcgi_split_path_info ^.+.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 -t命令检查你的nginx配置文件是否有错误
location /index.php {

    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;

}

我以前也有过,当时是centos6,后来换成7了。
之后绑定好域名就好了

还能显示nginx的画面
问题是我用域名安装源码怎么就显示404
用ip安装弹出php文件的下载,php我也运行了啊。
网站默认主目录我也已经定位到www.38934.tech上面了。
苦恼啊!
2016-10-26 09:33:34
管理员
请您确保以下3个设置:

  1. 域名解析到服务器IP

  2. Nginx网站管理里有配置这个域名

  3. 修改完配置后有重载或重启Nginx
    目前已为你修正配置。

第一步 nginx.conf的配置

location / {
        if !-e $request_filename {
             rewrite  ^/.*$  /index.php/$1  last;
             break;
        }
    }

    location ~ ^/s-[0-9a-z]+-.* {
        rewrite ^/s-[0-9a-z]+-.* /shtmls/$1/$2 last;
        break;
    }

    location ~ .+.php$|/ {
        set $script    $uri;
        set $path_info  "/";
        if $uri ~ "^.+.php/.+" {
              set $script     $1;
              set $path_info  $2;
        }

        fastcgi_pass 127.0.0.1:9000;
        include fastcgi_params;
        fastcgi_param PATH_INFO $path_info;
        fastcgi_param SCRIPT_FILENAME  $document_root/$script;
        fastcgi_param SCRIPT_NAME $script;

    }

第二步 sudo vim /etc/php5/fpm/pool.d/www.conf
将 ;listen = /var/run/php5-fpm.sock
改成 listen = 127.0.0.1:9000

你的代码直接放在/root里么?你改过之后的完成配置也发一下吧。

(看完/读完)这篇文章有何感想! www.ms577.com的分享…

ms577明仕亚洲娱乐平台如何在自己的项目中实现word在线编辑

( ms577明仕亚洲娱乐平台 )

希望能在自己(公司)的项目中实现word在线编辑,感觉无从下手

(不好意思,没说清楚,我补充一下:比如我上传了一份word,然后能在线编辑这个word文件,编辑之后能保存)

谢邀~
富文本编辑器
http://summernote.org/

你可以使用百度的ueditor
http://ueditor.baidu.com/webs…

如果不考虑富文本编辑器的话,硬要实现office系列的在线编辑。

你大概有以下几条路走:
1、只考虑IE,用专有ActiveX插件,实现浏览器里面编辑office文档。https://github.com/stone0090/…
2、现代浏览器,接入在线的office online 。

不要说在线 Word 编辑,就是在线 Word 阅读都已经很不容易了,这个功能太专业了。

网上能搜到一些阅读组件,大部分是收费的,比如永中的高清服务器版本收费大概是80K。

另外,你可以去看看 Open Office 有没有提供相关的组件。Open Office 一直是开源的 Office 解决方案。

(看完/读完)这篇文章有何感想! ms577明仕亚洲娱乐平台的分享…

www.ms577.comphp中的字符编码

( www.ms577.com )

$str1 = "xe4xb8xad";

$str2 = xe4xb8xad;

$str3 = 中;

能否详细解释一下三者的区别,是否可以相互转化

第一次在segmentfault上回答问题。。

PHP字符串变量,双引号和单引号的意义是不同的

使用双引号时会转义 单引号时不转义
使用双引号时,$xxxx文本会被相应变量的值替换,单引号没有这个效果

Eg.

$abc=123;
echo "$abc"; //这样会输出123
echo $abc; //这样会输出$abc
echo "
"; //这样会输出一个换行符
echo 
; //这样会输出
两个字符(一个斜杠一个n)

回到问题,
“中”这个汉字在UTF-8的16进制编码是0xe4,0xb8,0xad
因此在双引号字符串中,会被转义为 “中” x开头表示这是一个以十六进制表达的字符,就和HTML中&xe4; 一样
单引号字符串中,直接输出xe4xb8xad

如果你的环境编码是在UTF-8下面, str1和str3等价, 如果直接echo, 都会输出”中”, 如果是二进制层面三个字节比较, 也是完全相等, PHP中的字符串就是直接本地编码二进制存储的

如果你的环境编码是非UTF-8例如GBK, str1基本上是个乱码, str1和str3也不再等价

至于str2, 它无论什么时候都会输出 xe4xb8xad 不含引号, 在单引号的字符串中, 只有单引号本身需要转义成, 其它情况的都视为普通字符处理

只解释第一个与第二个的区别,也就是单引号与双引号的区别

双引号:引号内部会被转义
单引号:引号内部不会被转义

$a = 123;

echo "output:$a";//output:123
echo output:$a;//output:$a

//下面的示例仅限linux的php-cli
echo "new line
second line";
/*
会换行,输出:
new line
second line
*/

echo no new line
 aaa;
/*
不会换行,输出:
no new line
 aaa
*/

x后跟着十六进制数字的属于转义字符,转义字符只有在双引号"中才起作用。单引号中只有对单引号本身和反斜杠的转义有效,其他的都无效。

PHP本身不区分字符编码。也就是说,$str1是一个三字节的字符串,字符串的三个字节分别是(十六进制编码)E4 B8 AD。如果在UTF-8编码中,就是字。其他编码中就不一定了。

$str2则是一个12字节的字符串,就是你输入的那些字符。

$str3则是一个字符串,如果你把文件以UTF-8编码保存,那就和$str1是一样。如果你以GBK保存,那就是两个字节的D6 D0,如果你以BIG5保存,就是A4 A4


不管是UTF-8、GBK还是BIG5,甚至于很多其他的语言编码,都是遵循EUC的,也就是说对于ASCII字符,他们的编码都是一致的,所以无论用哪种编码保存,对PHP的代码工作都不会有影响。但是对于非ASCII字符就有很大的区别。

所以PHP中的非ASCII字符要正常显示,就要保证你的保存编码和输出编码是一致的。如果是输出的是HTML,是通过meta标签或者在HTTP Header中声明编码的。如果不一致,那就会出现乱码了。

(看完/读完)这篇文章有何感想! www.ms577.com的分享…

ms577明仕亚洲娱乐平台微信第三方图片多选

( ms577明仕亚洲娱乐平台 )

微信使用第三方的上传插件不能多选,用微信的又因为一套appid多个系统使用,总会出一些奇葩问题,请问各位怎么解决在微信浏览器下图片上传多选的问题?

(看完/读完)这篇文章有何感想! ms577明仕亚洲娱乐平台的分享…

ms577明仕亚洲php命令行无法运行php脚本

( ms577明仕亚洲 )

谢谢各位大神进来,我的问题是这样的:
我有一个项目中向外请求的次数很多,于是我就单独写了一个脚本开启多进程,在这个多进程脚本中需要先加载项目的头文件,问题就出在这里,我用浏览器直接访问这个脚本是可以加载的,但是用命令行“php+多进程脚本”来开启这个脚本时,头部文件就无法加载,这个无法加载主要是在数据库无法连接的问题。由于项目代码特别大,这边也无法全部贴出来。
所以想请教一下:是不是数据库的加载对方式也有要求,有什么方式能够实现我的需求吗?

应该是命令行的脚本执行方法问题:

  • php /path/a/b/c/index.php 该写法对项目的路径有要求。如果项目中如require等引入的路径是相对路径,那容易出问题

  • cd /path/a/b/c; php index.php 该写法可避免上面问题。

看你是不是属于这种情况。

(看完/读完)这篇文章有何感想! ms577明仕亚洲的分享…

ms577明仕亚洲php数组合并

( ms577明仕亚洲 )

有三个一维数组,
Array [0] => 12312 [1] => 2321 [2] => 12321
Array [0] => 133 [1] => 444 [2] => 888
Array [0] => qqqqqqq [1] => wqwq [2] => wqe

合并成
array [orderno] => 12312 [deliverysn] => 133 [deliverycorpname] => qqqqqqq

array [orderno] => 2321 [deliverysn] => 444 [deliverycorpname] => wqwq   一次类推怎么做

不知道题主是不是这个意思,效果如下
https://3v4l.org/8r0ko

//首先要确定这3个数组是关联数组和所包含的元素个数都是一样的
$arr_orderno = [12321,321,321];
$arr_deliverysn = [7,8,9];
$arr_deliverycorpname = [asd,qwe,zxc];

$arr_merge= [];
for$i = 0; $i < count$arr_orderno; $i++{
  $arr_merge[$i] = [$arr_orderno[$i], $arr_deliverysn[$i], $arr_deliverycorpname[$i]];
}

$arr_key = [orderno, deliverysn, deliverycorpname];

$arr = [];
foreach $arr_merge as $value {
  $arr[] = array_combine$arr_key, $value;
}


print_r$arr;

foreach$arr_a as $k=>$v{
    $arr_{$k}[orderno] = $v;
    $arr_{$k}[deliverysn] = $arr_b[$k];
    $arr_{$k}[deliverycorpname] = $arr_c[$k];
}

$arr_key = [orderno, deliverysn, deliverycorpname];
$map_arr=array_mapnull,$arr_orderno,$arr_deliverysn,$arr_deliverycorpname;
$res=array_mapfunction$i use$arr_key{
return array_combine$arr_key,$i;
},$map_arr;
/*
[
     [
       "orderno" => 12321,
       "deliverysn" => 7,
       "deliverycorpname" => "asd",
     ],
     [
       "orderno" => 321,
       "deliverysn" => 8,
       "deliverycorpname" => "qwe",
     ],
     [
       "orderno" => 321,
       "deliverysn" => 9,
       "deliverycorpname" => "zxc",
     ],
   ]
*/

(看完/读完)这篇文章有何感想! ms577明仕亚洲的分享…

ms577明仕亚洲娱乐平台php 路径问题?

( ms577明仕亚洲娱乐平台 )

index.php里头
注意到这两个:

require __DIR__ . /vendor/autoload.php;

require vendor/autoload.php;

上面两句话还是有区别的,第二句话在有些时候会出问题的,是在命令行执行的时候

__DIR__,指向当前执行的PHP脚本所在的目录
显然2个require的路径不是同一个东西,只是有时候正好相等。

(看完/读完)这篇文章有何感想! ms577明仕亚洲娱乐平台的分享…

www.ms577.comphpQuery获取网页里的js变量,如何获取

( www.ms577.com )

获取:view-source:http://www.dianping.com/shop/…网页里的
window.shop_conifg变量,如何获取?

<script>
window.shop_config={
        userId: 0,
        shopId: 11576689,
        shopName: "优尼牙科",
        cityId: 2,
        power:5,
        shopType:85,
        map:{
            power:5,
        manaScore:0
        },
        licensePics:[http://mss.sankuai.com/v1/mss_bccd2477df9e492ca0baeb67e4eb3491/qualification/8723a20a-a40c-11e3-8fb0-a254baaa25bb?temp_url_sig=c17ff6525cfabce9e5f94b46ca3f9ee5115a1309&temp_url_expires=1479364038,],
    mainCategoryId:182,
     defaultPic:"http://qcloud.dpfile.com/pc/hhF4nWJIwWw4FXmGBaW39dKYr5NdlHLz5G64Lx3QSTypRKzSBzQnLPwzWURFZUAvtOnd3gXQdDYlAqlaVaAFeZ0rYYyiRo_EhzufqWWjTjs.jpg"
    }
</script>

没用过phpquery,这里用正则

//$str就当phpquery获取的字符串
$str="<script>
window.shop_config={
        userId: 0,
        shopId: 11576689,
        shopName: "优尼牙科",
        cityId: 2,
        power:5,
        shopType:85,
        map:{
            power:5,
        manaScore:0
        },
        licensePics:[http://mss.sankuai.com/v1/mss_bccd2477df9e492ca0baeb67e4eb3491/qualification/8723a20a-a40c-11e3-8fb0-a254baaa25bb?temp_url_sig=c17ff6525cfabce9e5f94b46ca3f9ee5115a1309&temp_url_expires=1479364038,],
    mainCategoryId:182,
     defaultPic:"http://qcloud.dpfile.com/pc/hhF4nWJIwWw4FXmGBaW39dKYr5NdlHLz5G64Lx3QSTypRKzSBzQnLPwzWURFZUAvtOnd3gXQdDYlAqlaVaAFeZ0rYYyiRo_EhzufqWWjTjs.jpg"
    }
</script>";

preg_match#<script>
window.shop_config=[sS]*</script>#,$str,$match;

print_r$match[1];

/*
{
        userId: 0,
        shopId: 11576689,
        shopName: "优尼牙科",
        cityId: 2,
        power:5,
        shopType:85,
        map:{
            power:5,
        manaScore:0
        },
        licensePics:[http://mss.sankuai.com/v1/mss_bccd2477df9e492ca0baeb67e4eb3491/qualification/8723a20a-a40c-11e3-8fb0-a254baaa25bb?temp_url_sig=c17ff6525cfabce9e5f94b46ca3f9ee5115a1309&temp_url_expires=1479364038,],
    mainCategoryId:182,
     defaultPic:"http://qcloud.dpfile.com/pc/hhF4nWJIwWw4FXmGBaW39dKYr5NdlHLz5G64Lx3QSTypRKzSBzQnLPwzWURFZUAvtOnd3gXQdDYlAqlaVaAFeZ0rYYyiRo_EhzufqWWjTjs.jpg"
    }
*/

(看完/读完)这篇文章有何感想! www.ms577.com的分享…

ms577明仕亚洲字典排序的问题?

( ms577明仕亚洲 )

$a=array2,1,4,7,1,4,1,9

想得到key/value,其中key是值,value是该值出现的次数,如下所示:

$b={2:1,1:3,4:2,7:1,9:1}

$a中元素比较多,如何用最少的循环解决这个问题?

// 直接用函数
>>> array_count_values$a
=> [
     2 => 1,
     1 => 3,
     4 => 2,
     7 => 1,
     9 => 1,
   ]

$b = [];
foreach $a as $i {
   $b[$i] =  isset$b[$i] ? $b[$i] + 1 : 0;
}

循环一次

(看完/读完)这篇文章有何感想! ms577明仕亚洲的分享…

www.ms577.com为什么ImageMagick转换PDF为png,小文件可以,稍大点就不行?

( www.ms577.com )

php里用imagick扩展调用imagemagick,把pdf转化成png文件,几个中英文字的小文件转换成功,稍大点就不行,登录LINUX命令行方式转化也不行,请问是什么原因?

这个问题是弄错了,实际情况是imagick无法转换非内嵌字体的PDF文件,我重新提了一个问题,希望能帮我解答一下,谢谢。
https://segmentfault.com/q/10…

看下这文章ImageMagick转PDF为png,最好使用最新版本的ImageMagick。
首先不确定你是怎么操作的,至于你命令行是如何调用的也无从获知,希望能帮到你。

(看完/读完)这篇文章有何感想! www.ms577.com的分享…