Linux配置PHP时遇到的问题
今天接手了一个微信小程序商城项目,项目的代码是使用PHP写的,所以就跟着工程师一起在Linux上部署的了PHP,也是费劲了周折。
1.安装了宝塔Linux
这个Linux确实是一个好东西。
1 | yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh |
2.PHP出现mkdir() access denied
(1) 开始以为是ngin没有使用root启动,然后就修改了nginx.conf的配置开头使用user root;
(2) 后来使用了chmod 777 某一个目录的方式,好像还是不行。chmod 要加参数才能应用于子目录上。
1 | chmod -Rf 777 runtime |
1.Nginx和PHP的配置
2.Fix “access denied” error when parsing HTML as PHP with Nginx
3.Access denied (403) for PHP files with Nginx + PHP-FPM
4.
mkdir()
: Permission denied to create folders with PHP5.PHP mkdir: Permission denied problem
3.微信小程序中总是出现https无法请求的问题
打开相关https链接,出现了: Provisional headers are shown。无论是怎么验证都是好的,结果是因为在宝塔Linux配置站点的ssl证书是,没有按要求进行填入PEM格式的证书。
4.nginx配置解析php
刚接手了一个项目,后台使用php写的,在服务器上使用了nginx进行了转发。
php测试文件
1 |
|
1.使用nginx配置多个php-fastcgi负载均衡
2.Linux安装最新版Nginx,配置解析php(centos7)
3.https://zhuanlan.zhihu.com/p/34363193
4.linux 下 apache php-cgi 安装及配置
5.CentOS 7安装配置LEMP(Nginx PHP FastCGI MariaDB)
6.linux下安装nginx与php
(1) nginx要完成解析php的功能,需要安装php
1 | ## 查询是否安装php |
(2) 安装php
这里有yum安装方法和php安装方法,因为服务器上已经安装了,我就没有继续尝试。
(3) No input file specified.
总是出现这个错误,因为这个php的后台不是我写的,所以部署起来有点麻烦。查看nginx的错误日志:
经过日志查看,发现了一个奇怪的目录:/www/wwwroot/,这个目录显然是宝塔的安装目录,但是在我这个电脑上是没有的,所以我顺手查询了一下,这个文件的含义。
.htaccess是伪静态环境配置文件,用于lamp。
.user.ini是lnmp文件,里面放的是你网站的文件夹路径地址。目的是防止跨目录访问和文件跨目录读取.
然后再查看web目录下,果然有这个文件。于是我将.user.ini里面的内容:open_basedir=/www/wwwroot/shop.proheng.net/:/tmp/:/proc/,改为了自己的路径,于是这个No input file 错误也就解决了。open_basedir参数的作用就是将php能打开的文件限制在特定的目录树中,默认的$document_root是nginx.conf中配置的/home/wwwroot/default目录
1.Nginx + PHP – No input file specified
2.解决NGINX PHP “No input file specified”
3.记一次php项目上线遇到的坑
4.解决NGINX PHP “No input file specified”
5..user.ini 作用和配置
6.宝塔/服务器中的项目不在wwwroot目录下,要修改的文件
(4) nginx配置php支持
1 | server { |
文件/usr/local/nginx/conf/fastcgi.conf 中的内容:
1 | fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; |
5.File not found
【尝试】
我尝试了修改nginx的配置,其中的$document_root,因为很多的文章都是这么说的。使用php-fpm解析PHP,”No input file specified”,”File not found”是常见错误,原因是php-fpm进程找不到SCRIPT_FILENAME配置的要执行的.php文件,php-fpm返回给nginx的默认404错误提示。出现这类错误,十个有九个是后端fastcgi进程收到错误路径(SCRIPT_FILENAME),而后端fastcgi收到错误路径的原因大都是配置错误。
1 | fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; |
所以我改来改去还是不行。
【解决】
最后其实是因为Linux的大小写敏感导致的问题,如果我输入 Index.php,在Windows上没有问题,但是在linux上却出现问题了,找不到 Index.php这个文件,就会报错。
1.nginx File not found 错误
2.先总结下这个问题出现的提示
3.linux严格区分大小写导致的问题
4.nginx File not found 错误
5.nginx新手配置$document_root $document_root 的参数是由root html那一行定义的,默认是在/usr/share/nginx/html/ 所以把 html换成站点根目录就正常了。
6.Linux下搭建nginx+php环境的file not found问题反省 查看error.log日志文件提示”Primary script unknown” while reading response header from upstream”
7.linux下设置php文件不区分大小写 这里有apache模块配置
8.控制器定义