我正在收到错误 Failed to connect to MySQL: Permission denied 从PHP连接MySQL,MySQLI和PDO到远程MySQL主机. 但是,如果我连接到同一主机,则通过命令行上同一主机的MySQL具有相同的凭据,它将完美工作. 所以我正在做假设是PHP配置问题? 从 连接 PHP 5.6.40 (Client API version => mysqlnd 5.0.11-dev) MySQL 5.5.59 连接到 PHP 5.6.23 (Client API version => mysqlnd 5.0.11-dev) MySQL 5.5.52 有人有任何想法,为什么我可以从命令行连接到MySQL,而不是从PHP到同一主机,具有完全相同的凭据? 解决方案 我想您在服务器上启用了SELINUX. 默认情况下,它不允许Apache进程初始化传出网络连接. https://serverfau
以下是关于 selinux 的编程技术问答
考虑以下系统配置: fedora 27 启用Selinux Apache/2.4.33 PHP 7.1.17 和以下代码段用于向 sphere-egner-egner-egnere-egnine-egnine compilers api : $ch = curl_init('http://xxxxxxxx.compilers.sphere-engine.com/api/v4/test?access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_TIMEOUT, 3.0); $x = curl_exec($ch); print_r($x); 当我运行以下CLI: 时,上面的脚本完全
我在这里做错了什么? 我在.ini文件中设置了error_log以及error_reporting = E_ALL | E_STRICT. 我还想念什么?这通常给了我.我希望在.ini文件中而不是在我的脚本中设置此设置. 正在发生的另一件事是,当我故意尝试在我的一个脚本中丢弃错误时,Apache一遍又一遍地重新启动. 这是一个错误后我的事件日志.查看时间戳. Wed Nov 04 19:34:23 2009] [notice] Apache/2.2.14 (Win32) PHP/5.3.0 configured -- resuming normal operations [Wed Nov 04 19:34:23 2009] [notice] Server built: Sep 28 2009 22:41:08 [Wed Nov 04 19:34:23 2009] [notice] Parent: Created child process 1700 [Wed
我有一个以前工作的PHP脚本,能够使用mkdir创建目录: $webfolder = "/var/www/html/images/user"; mkdir($webfolder, 0770); 我对文件夹/var/www/html/images的权限设置进行了一些更改,该设置现在是: drwxrwx---. myself apache system_u:object_r:httpd_sys_content_t:s0 images 我认为以前此文件夹是apache所有.但是,由于apache具有读,写和执行为用户组的完整特权,所以我想知道为什么它不能在其中创建一个文件夹.使用mkdir产生false布尔值. 问题是由于目录所有权引起的还是其他原因?请注意,我正在使用PHP版本5.4. 添加了错误日志: [2012年12月17日星期一11:12:34] [错误] [客户127.0.0.1] PHP警告: mkdir():在/var/www/html/上载
我当前有一个PHP脚本,当浏览器浏览器浏览到网页时正在运行.我要做的是在存储变量的脚本运行时编写文本文件.该文件夹的所有者是Apache,但每个人都读写,严格用于测试目的. (我认为这可能是一个权限问题)SELINUX已在服务器上启用,当我从控制台运行脚本时,它会在正确的目录中创建文本文件. file_put_contents("My working file location", $myString); 我正在使用此行尝试编写和创建文本文件,我知道我的文件位置可以运行,因为我可以运行它并在离线模式下创建它,即.通过控制台运行它.问题在于,我要编写的变量是通过HTTP帖子填充的,当我通过浏览器运行脚本,或者当Apache运行脚本时,它不会编写或创建文件.我需要做什么才能允许访问写/更改语法以获取此脚本来编写此文本文件? 解决方案 您的问题可能是由于Apache没有权限写入您指定的文件位置.转到该目录,并使用ls命令检查权限和组所有权: cd "My working
我在Android上,使用adb shell对我的应用程序对文件系统遇到的问题进行故障排除.使用Tinyalsa时,我正在遇到权限错误,所以我希望调查涉及的目录. cannot open device '/dev/snd/pcmC1D0c': Permission denied 如果i su,然后stat路径中的每个项目,壳会告诉我以下权限: / (755/drwxr-xr-x) /dev/ (755/drwxr-xr-x) /dev/snd/ (755/drwxr-xr-x) 如果我尝试不stat /dev/snd没有su,但是,我得到Permission denied. 为什么会这样?我什至尝试过su -c 'chmod -R a+rx /dev/snd',但这没什么区别. 解决方案 我在这个领域不了解,但是Selinux似乎正在干扰.如果您禁用它: # In a "su" adb shell printf 0 > /s
我正在尝试在 Centos 6.3 上安装 redmine ,但我继续在日志文件中遇到此错误 Passenger could not be initialized because of this error: Unable to start the Phusion Passenger watchdog (/usr/lib/ruby/gems/1.8/gems/passenger-4.0.20/buildout /agents/PassengerWatchdog): Permission denied (errno=13) 我一直在网上寻找,在任何地方或任何方法可以解决此错误.我尝试将文件夹的权限更改为777和apache:apache,但两项工作都没有起作用. 我想到的唯一解决 redmine 工作的解决方案是将 selinux 设置为禁用或宽容(我不想这样做). 是否有人有另一种方法可以解决此问题,该问题留下了 selinux 启用? 在/var/log
昨天,我已经花了5个小时发现了一个看似不合理的错误"未能打开流.拒绝的权限",这是在对文件系统进行任何写作操作后发生的. ,move_uploaded_file,file_put_contents. 我已经重新检查了很多次目录所有者(用户和组-CHOWN,CHGRP),具有更改文件夹属性,可将文件夹属性属于Unsecure 777(带有chmod的RWX),但没有效果.我什至重新安装了一个Apache和PHP,但仍然面临着同样的错误. 在阅读各种文档后出现时,出现了错误的起源,因此Selinux限制自动用于Apache Service HTTPD.我只是通过更改线上的Fedora(第20版)上的编辑/etc/selinux/config来关闭Selinux: SELINUX=enforcing to SELINUX=disabled 我重新启动了计算机,烦人的错误终于消失了. 我必须注意,关于灯环境中"拒绝许可"问题的所有问题溢出仅触及文件夹许可问题
我正在侦听端口8081和nginx在端口8080上运行的应用程序.代理通行证语句看起来像: $ cat /var/etc/opt/lj/output/services/abc.servicemanager.conf location /api/abc.servicemanager/1.0 { proxy_pass http://localhost:8081;} 在nginx.conf中,我将此文件包括为: include /etc/nginx/conf.d/services/*.conf; /etc/nginx/conf.d/service是一个符号链接: # ll /etc/nginx/conf.d/ lrwxrwxrwx. 1 root root 39 Dec 10 00:19 services -> ../../../var/etc/opt/lj/output/services 这是启用SELINUX的CentOS 7.0系统.如果我s
我已经配置了UWSGI,可以在UNIX插座上使用我的Django应用程序,而Nginx则作为该套接字的代理.服务器正在运行CentOS7.我认为我已经配置了NGINX,因此它具有读写和写入UWSGI套接字的权限,但是我仍会获得拒绝错误的权限.为什么Nginx无法在CentOS 7上访问UWSGI插座? [uwsgi] socket=/socket/uwsgi.sock virtualenv=/home/site/virtsite/ chdir=/home/site/wsgitest/ module=wsgitest.wsgi:application vhost = true master=True workers=8 chmod-socket=666 pidfile=/home/site/wsgitest/uwsgi-master.pid max-requests=5000 chown-socket=nginx:nginx uid = nginx gid = nginx liste
到目前为止,我至少在这个问题上挣扎了14个小时:(. 我正在使用Docker,Jenkins,Java,Scala配置构建服务器7. 在使用Liquibase和Jooq:Codegen时,我需要设置适当的MySQL(Percona:5.6)容器设置,但不幸的是,似乎官方Percona Image(Percona:5.6)没有加载 *.cnf文件.适当地,我认为这是我的问题,例如文件权限问题. 我正在按照以下说明进行说明: 但这对我不起作用,我尝试了很多错误的方法,没有任何作用. 文件/文件夹权限如下图: 安装到容器中后,它们如下图: 和docker-compose.yaml如下: 官方Percona 5.6提供的默认my.cnf如下: root@25295730da09:/etc/mysql# cat my.cnf # # The MySQL database server configuration file. # # You can copy this
docker:来自守护程序的错误响应:oci运行时创建失败:container_linux.go:345:启动容器进程引起的" process_linux.go:430:container init condocy \" write/proc/proc/proc/proc/self/atter/keycreate:clibression \' "":未知. ERRO [0000]错误等待容器:Fedora 28 中取消的上下文 解决方案 $ /usr/sbin/getenforce enforcing 编辑/etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. #
我试图使用docker下的(任何)容器,并启用了No-Privileges标志和Selinux. 基本信息: CentOS 7.3 on bare metal docker-ce 17.05.0-ce (edge) from official repo docker-ce-selinux 17.05.0-ce (edge) from official repo (我最初是在稳定运行,并切换到Edge释放,希望修复) 我要做的事情: docker run --security-opt "no-new-privileges" -it --rm busybox /bin/sh 发生了什么: standard_init_linux.go:178: exec user process caused "operation not permitted" 所有功能均得到支持-SELINUX在未指定无新特性时起作用;当守护程序在没有SELINUX支持的情况下运行时
我正在尝试安装apiVersion: v1 kind: Pod metadata: name: test-pd spec: containers: - image: k8s.gcr.io/test-webserver name: test-container volumeMounts: - mountPath: /test-pd name: test-volume volumes: - name: test-volume hostPath: # directory location on host path: /data # this field is optional type: Directory 当我的POD试图从基础主机上安装的文件中读取时,我会发现"拒绝"错误.当我运行setenforce 0以关闭Selinux时,错误会消失,我可以访问该文件.当我将安装目录绑定到Docker容器中时,我会遇到相同的错误. 该问题被描述此处使用Docker时,可以通过使用z或Z绑定
我在Centos7上有Docker,Selinux设置了主机上的执行和Docker守护程序,并以-selinux启用标志开始. 当我尝试运行以下命令 时 docker run -it -v /usr/local/xya/log:/usr/local/xya/log:z centos/systemd touch /usr/local/xya/log/test 我收到以下错误: docker: Error response from daemon: error setting label on mount source '/usr/local/xya/log': relabeling content in /usr is not allowed. 根据某些文章( Docker版本19.03.3,构建A872FC2F86 CentOS版本:Centos Linux版本7.5.1804 解决方案 我最近有一个类似的(尽管有不同的问题),但我发现Juan的 S
我正在设置复制服务器,当我第一次尝试启动MySQL服务时,它会失败: [root@ravioli mysql]# service mysqld start MySQL Daemon failed to start. Starting mysqld: [FAILED] [root@ravioli mysql]# tail /var/log/mysqld.log 151013 13:41:27 [ERROR] Plugin 'InnoDB' init function returned error. 151013 13:41:27 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. /usr/libexec/mysqld: File '/databases/mysql/mysql_slow_queries.log' not
我想知道avc: denied我的logcat中的消息. W/RenderThread: type=1400 audit(0.0:631436): avc: denied { read } for name="perf_ioctl" dev="proc" ino=4026533695 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:proc:s0 tclass=file permissive=0 这是什么意思? 解决方案 这取决于Selinux限制. 您不能做太多避免它. 简单地说:这意味着有"某人"试图" {read}"某物,但Selinux停止了它,因为该应用程序在Selinux的"可信赖"列表中未找到. 通常,系统的某些特定且危险的位置受到安装的应用程序的限制,因此Selinux停止在该位置读取/写作/执行内容. (1)执行的Selinux写入日志并拒绝访问权限. (2)允许