|-转 Yii2.0框架部署nginx服务器
关键代码: location / { # 如果找不到真实存在的文件,把请求分发至 index.php try_files $uri $uri/ /index.php?$args; }
一直在apache服务器下开发yii2.0的项目,apache下的部署可能没有什么。起码我没有遇到问题。
服务器环境是nginx,在部署的时候发现了一个问题。
按照正常的配置写入配置完成之后,访问报404错误。
项目中的代码肯定是没有问题的。这个可能是什么情况。
找了好久,也没有找到解决办法,后来看了下官方社区,哪里给出的配置,我试了一下,竟然好用,配置如下:
重点是找不到真实存在的文件,把请求分发至 index.php
server { charset utf-8; client_max_body_size 128M; listen 80; ## 监听 ipv4 上的 80 端口 #listen [::]:80 default_server ipv6only=on; ## 监听 ipv6 上的 80 端口 server_name mysite.local; root /path/to/basic/web; index index.php; access_log /path/to/basic/log/access.log main; error_log /path/to/basic/log/error.log; ############### 重点 ######################## location / { # 如果找不到真实存在的文件,把请求分发至 index.php try_files $uri $uri/ /index.php?$args; } ############### 重点 ######################## # 若取消下面这段的注释,可避免 Yii 接管不存在文件的处理过程(404) #location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ { # try_files $uri =404; #} #error_page 404 /404.html; location ~ \.php$ { include fastcgi.conf; fastcgi_pass 127.0.0.1:9000; #fastcgi_pass unix:/var/run/php5-fpm.sock; try_files $uri =404; } location ~ /\.(ht|svn|git) { deny all; } }
使用上面配置时,你还应该在 php.ini 文件中设置 cgi.fix_pathinfo=0 ,能避免掉很多不必要的 stat() 系...
|-转 【已完成】PHP 8.2 如何安装 exif 和 imagick
查问我看,上传图片要使用到Imagick类,搭建服务器后,要安装对应的PHP扩展imagick堡塔运维小林发表于 2023-4-24 22:48:22|只看该作者您好,目前面板上面还没有这个两个扩展安装,您可以在命令行中通过我们的脚本安装这两个扩展,命令如下,82为您的php版本,如果是其它版本改成对应的即可:imagick:wget https://download.bt.cn/in
|-转 解决宝塔面板安装phpMyAdmin报错502 Bad Gateway nginx
解决宝塔面板安装phpMyAdmin报错502 Bad Gateway nginx
检查是否安装php
到软件商店检查是否安装php
没有安装的话选择php版本安装
phpMyAdmin配置php版本
进入phpMyAdmin配置页
纯静态更换为对应的php版本
保存配置
重新访问phpMyAdmin
总结
本问题主要是phpMyAdmin没有选中php版本导致不能运行。...
|-转 宝塔的phpmyadmin 安装在哪里了
/www/server/phpmyadmin
正确的路径,请自行利用“文件管理”到,“/www/server/phpmyadmin”下面去查找以phpmyadmin开头,而以一串随机数结尾的这个文件夹。...
|-转 运行php报错 Fatal error: require(): Failed opening required ‘/www/wwwroot/xxxxxx/public/../thinkphp/start.php
这是因为站点开启了open_basedir防止跨站攻击
项目场景:
在CentOS8中安装了宝塔,配置thinkphp5.1版本环境时出了问题,在此之前网站虚拟域名成功配置,能够访问站点创建成功的页面
问题描述:
在访问tp5默认页面时报错
Warning: require(): open_basedir restriction in effect. File(/home/wwwroot/xxxxxx/thinkphp/start.php) is not within the allowed path(s): (/home/wwwroot/xxxxxx/public/:/tmp/:/proc/) in /home/wwwroot/xxxxxx/public/index.php on line 16Warning: require(/home/wwwroot/xxxxxx/thinkphp/start.php): failed to open stream: Operation not permitted in /home/wwwroot/xxxxxx/public/index.php on line 16Fatal error: require(): Failed opening required ‘/www/wwwroot/xxxxxx/public/../thinkphp/start.php’ (include_path=’.:/usr/local/php/lib/php’) in /home/wwwroot/xxxxxx/public/index.php on line 16
原因分析:
起初看英文提示,以为是文件缺少,随后找了一下,发现文件都是在的。然后第二段警告提示了权限不足,又去修改权限,还是不行。后来发现是open_basedir的问题,那么有两个方法来解决这个问题。 ...
|-转 【PHP】问题已解决:宝塔面板搭建php网站无法上传图片或是文件(GPT3.5回答的不行)
可以看到PHP的fileinfo扩展没有安装
问题情况
宝塔面板搭建php网站无法上传图片或是文件。
原因和解决方法
检查你的php里是否安装了 fileinfo 扩展,这会影响文件上传,而且因为宝塔面板让你有多个版本的php,所以要注意是你的网站对应的php版本下要安装拓展。
下图我们去 查看php 5.6的拓展
软件商店下的php 5.6的设置
安装必要的 fileinfo 扩展,解决问题。
总结
大家喜欢的话,给个????,点个关注!给大家分享更多有趣好玩的PHP知识!
版权声明:
发现你走远了@mzh原创作品,转载必须标注原文链接
Copyright 2022 mzh
Crated:2022-2-26
————————————————
版权声明:本文为CSDN博主「发现你走远了」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u011027547/article/details/1...
去chatgpt上提问,并没有得到解决办法
宝塔面板搭建php网站无法上传图片或是文件
GPT3.5的回答
宝塔面板是一个用于管理服务器的工具,它本身不会限制文件上传。如果您在使用宝塔面板搭建的PHP网站中无法上传图片或文件,这可能是由于以下原因之一:
- 权限配置:请确保您的网站目录(通常是/www目录下的某个子目录)具有足够的写权限。您可以使用以下命令为该目录设置适当的权限:
chmod 755 /path/to/your/website/directory
- PHP配置:检查PHP配置文件(通常是php.ini),确保以下配置项设置正确:
file_uploads = On upload_max_filesize = 20M ; 设置允许上传的最大文件大小 post_max_size = 20M ; 设置POST请求的最大允许大小
保存并重新启动Web服务器(如Nginx或Apache),以使更改生效。
- Web服务器配置:某些Web服务器可能会有额外的配置限制文件上传。例如,Nginx可能需要在server块中添加以下指令:
client_max_body_size 20M; # 设置允许接收的最大HTTP请求体大小
记得重新加载或重启Web服务器以应用更改。...
|-摘 linux宝塔面板安装composer的方法
宝塔的软件商店里没有composer,要在终端用命令自行安装,安装前先把几个要依赖的php函数如果被禁的,解除putenv() 、 pcntl_signal() 、 proc_open()这3个被禁用的php函数 PHP Fatal error: Uncaught Error: Call to undefined function Composer\XdebugHandler\putenv() in phar:///usr/local/bin/composer/vendor/composer/xdebug-handler/src/Process.php:97---------------------报错信息中显示的函数调用Composer\XdebugHandler\putenv()意味着是在特定的命名空间中进行的调用。
卡住了,一个小时都没有成功安装composer
PHP Fatal error: Uncaught Error: Call to undefined function Composer\XdebugHandler\putenv() in phar:///usr/local/bin/composer/vendor/composer/xdebug-handler/src/Process.php:97
print_r(get_defined_functions());die;
查看了的确有putenv()这个函数
最后考虑是不是composer和php8.0这个版本不兼容,换成了PHP8.1,成功安装了PHP8.1后,执行查看了php版本,是php8.1,没有再重新安装Composer,直接运行composer 就正常了。
后面再安装composer的应用时又遇到报错
Uncaught Error: Call to undefined function Composer\Util\symlink()
宝塔的软件商店里没有composer
PHP Fatal error: Uncaught Error: Call to undefined function Composer\XdebugHandler\putenv() in phar:///usr/local/bin/composer/vendor/composer/xdebug-handler/src/Process.php:97 提示函数putenv()没有定义,但是查看了函数被定义了,是为什么,是不是PHP报错出了问题
11/26/2023, 2:06:47 PMPHP致命错误:未捕获的错误:在phar:///usr/local/bin/composer/vendor/composer/xdebug-handler/src/Process.php的第97行调用了未定义的函数Composer\XdebugHandler\putenv()。请注意,根据报错信息,系统在调用putenv()函数时无法找到它的定义。您提到已经检查了函数的定义,这意味着函数确实是存在的。那么,导致这个错误的可能原因可能是以下几点之一:PHP版本问题:确保正在运行的PHP版本是支持putenv()函数的版本。某些PHP版本或编译配置可能会禁用或移除某些函数。您可以通过运行php -v命令来查看PHP版本,并确保它满足函数的最低要求。命名空间问题:检查代码中是否存在命名空间的问题。报错信息中显示的函数调用Composer\XdebugHandler\putenv()意味着是在特定的命名空间中进行的调用。请确保在正确的命名空间中使用该函数。您可以查看相关代码,特别是Process.php文件中的命名空间声明和使用。自动加载问题:如果使用了自动加载机制(如Composer),请确保相关的类和函数已经正确加载。您可以尝试运行composer dump-autoload来重新生成自动加载文件,并确保所有依赖项都被正确加载。如果您确定函数的定义正确且存在,并且以上解决方法都无效,那么可能存在其他更复杂的问题,如编译配置或环境设置的问题。在这种情况下,建议您查找更详细的错误日志,或在相关的开发者社区中寻求帮助,以便能够更准确地诊断和解决该问题。
概念:
Composer是一个PHP依赖管理器,可以方便地管理和安装PHP项目所依赖的库和软件包。它可以自动下载、安装和更新这些库,同时确保它们与项目的其他部分兼容。Composer可以通过一个名为composer.json的配置文件来配置,该文件列出了项目所依赖的库、版本等信息。Composer还可以从Packagist等仓库中查找和下载各种PHP库和软件包。由于Composer的出现,开发人员不再需要手动下载、安装和配置PHP库,从而大大简化了PHP项目的开发和维护过程。...
|-转 宝塔面板如何配置node.js环境变量
问题:在搭建服务器环境的时候,发现pm2明明安装了,但是敲pm2命令的时候,却还提示Command not found。
原因:这是因为pm2没有加到环境变量中所导致的。
pm2中自动安装node,因此这里不描述安装node的过程了
配置nodejs环境
首先:
找到自己的node.js的安装目录,以及版本号,
我的面板直接安装到了:/www/server/nvm/versions/目录下
运行以下命令
ln -s /www/server/nvm/versions/node/12.xxx/bin/node /usr/local/bin/node...