PHP -- 问题
@、源码安装,最开始,自己通过 ./config make make install三步,啥参数也没加,安装好之后,发现/usr/local/php下就一个man文件夹,死都没找到php-fpm之类的东东。后来终究在网上找了个教程:https://www.linuxidc.com/Linux/2016-08/134081.htm
./configure --prefix=/usr/local/php --enable-fpm --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-opcache --with-mysql --with-mysqli --with-mysql-sock --enable-pdo --with-pdo-mysql --with-gettext --enable-mbstring --with-iconv --with-mcrypt --with-mhash --with-openssl --enable-bcmath --enable-soap --with-libxml-dir --enable-pcntl --enable-shmop --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-sockets --with-curl --with-zlib --enable-zip --enable-bz2 --with-readline --without-sqlite3 --without-pdo-sqlite --with-pear --with-libdir=/lib/x86_64-linux-gnu --with-gd --with-jpeg-dir=/usr/lib --with-freetype-dir=/usr/local/freetype --enable-gd-native-ttf --enable-xml
。启动后,修改了下nginx的php配置,把相关的#号去掉,重启nginx,在网站目录下增加一个php文件,然后localhost/phpinfo.php,出现了错误,查看nginx错误日志:
connect() failed (111: Connection refused) while connecting to upstream
这个是没有启动php-fpm,执行php-fpm可启动,比如我的是:sudo /usr/local/php/sbin/php-fpm
刷新页面,得到 File Not Found,查看nginx日志:
FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client
对于这个错误,看了网上两个答案:
一个是关于文件权限的:https://blog.csdn.net/twqzy/article/details/70214031
一个是关于nginx配置文件的:http://www.jb51.net/article/47916.htm
我的是后者,通过修改nginx配置文件:
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
改为
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
最终,测试文件phpinfo.php正确的输出到浏览器了,哈哈。。
--with-freetype-dir=/usr/local/freetype
这个是后续加入的。
开始下载的是freetype2.9.1,但是安装不成功,在安装目录下都没有bin目录。
后来下载了freetype2.7,安装成功了。
下载:https://sourceforge.net/projects/freetype/files/freetype2/2.7/freetype-2.7.tar.gz/download
解压,进入解压目录,
./configure -prefix=/usr/local/freetype
make
sudo make install
然后停掉PHP
sudo pkill php-fpm
接下来进入当初安装PHP的解压目录
make clean //之前没有执行这条命令,freetype已经没有添加到php中
然后就安装上面安装PHP的步骤走。。
@、连接mysql
作为一个大龄php新手,我决定从w3school下手,学习php。花了几个小时,把基础教程过了一遍。
现在php环境调通了,于是乎,我打算试试php访问mysql。然后,就安装w3school的教程,一步步做。然而的然而是,页面竟然没有反应,没有走报错的分支,也没有走成功的分支。好吧,网上继续找教程,然后到了菜鸟教程网,发现里面的mysql处理方式跟w3school不一样,显然学校的已经过时了。然后到php配置文件中放开扩展 mysqli。重启php-fpm,然后安装菜鸟教程走代码,按对象模式,最终成功了,哈哈。。
@、win7下安装php
原文:https://blog.csdn.net/tdcqfyl/article/details/52351140
参考上文提示的步骤进行操作,服务起不来,直接在命令行输入httpd.exe 运行,提示缺少libssh2.dll,php7ts.dll的报错,后来把服务卸载掉,然后在环境变量path中添加php安装路径和php/ext的路径,然后再重新安装服务(httpd.exe -k install -n Apache2.4),就可以了。
@、php7连接ms sql server
原文:https://blog.csdn.net/sangjinchao/article/details/63678481
https://blog.csdn.net/lilinoscar/article/details/68943994?locationNum=6&fps=1
需要注意的是:官网下载的SQLSRV40.EXE好像只支持php7.0.X版本,开始我用php7.1.19,通过phpinfo()查看,并没有把pdo_sqlsrv扩展加载成功,这样会报sqlsrv_connect未定义的错误。
@、php从ms sql server取数据中文乱码
原文:https://blog.csdn.net/sunchanglong/article/details/50501752
关键:使用php内置函数iconv进行编码转换。
@、解决json_encode对中文进行unicode转码问题
原文:https://www.cnblogs.com/vanone/p/5600728.html
随机推荐
- Flash 3D学习计划
1.理解并记住3D渲染的一般管线流程(一天). 2.理解世界,取景,投影变换,并理解投影坐标系(一天). 3.学习VB,IB相关,理解三角形顶点顺序:在屏幕上显示2D矩形,并实现缩放,平移,旋转(三天 ...
- 关于MapControl和PageLayout地图同步的问题
按照ArcMap的处理方式,地图和制图是分两个页面的,他们之间通过共享同一个Map对象来实现地图同步,具体做法就是在PageLayoutControl的PageLayoutReplaced事件发生时, ...
- 阿里云ECS在CentOS 6.9中使用Nginx提示:nginx: [emerg] socket() [::]:80 failed (97: Address family not supported by protocol)的解决方法
说明: 1.[::]:80这个是IPv6的地址. 2.阿里云截至到今天还不支持IPv6. 解决方式: 1.普通解决方式:开启IPv6的支持,不过这个方法在阿里云行不通. vim /etc/nginx/ ...
- java amr格式转mp3格式(完美解决Linux下转换0K问题)
原文:http://linjie.org/2015/08/06/amr%E6%A0%BC%E5%BC%8F%E8%BD%ACmp3%E6%A0%BC%E5%BC%8F-%E5%AE%8C%E7%BE% ...
- ulimit 不生效
ulimit is a shell builtin like cd, not a separate program. sudo looks for a binary to run, but there ...
- 深度学习和web安全最新文章一览
先囤几篇文章: 1.https://www.cdxy.me/?p=773 2.https://segmentfault.com/a/1190000009052376 3.https://segment ...
- Makefile文件的使用
编译程序: vi Makefile exe:a.c b.c gcc a.c b.c -o exe clean: rm exe 保存并退出: 这里exe:a.c b.c面的exe称为目标:a.c b.c ...
- ES6中Set集合(与java里类似)
一.引入背景 Set集合是一种无重复元素的列表,开发者们一般不会逐一读取数组中的元素,也不太可能逐一访问Set集合中的每个元素,通常的做法是检测给定的值在某个集合中是否存在 Map集合内含多组键值对, ...
- Java源码阅读ArrayList
1简介 public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAc ...
- [Algorithms] Refactor a Linear Search into a Binary Search with JavaScript
Binary search is an algorithm that accepts a sorted list and returns a search element from the list. ...