![为什么 PHPStorm (flatpak) 无法访问 /var/www?](https://linux22.com/image/173293/%E4%B8%BA%E4%BB%80%E4%B9%88%20PHPStorm%20(flatpak)%20%E6%97%A0%E6%B3%95%E8%AE%BF%E9%97%AE%20%2Fvar%2Fwww%EF%BC%9F.png)
关于我自己的简短介绍
我刚刚安装了费伦操作系统。作为一名网络开发人员,我每天都会使用 Linux 和 Unix 命令行,但仅限于非常简单的事情。所以我仍然认为自己是一个Linux菜鸟。
编辑:这个问题现在已经被否决了一次。如果您否决它,请考虑让我知道它有什么问题。
我的问题
首先,我从命令行安装了 Apache2(使用 apt)。我在 /var/www/projects/some_website/web 中创建了一个功能齐全的工作网站。这部分也是我日常工作中熟悉的部分。
我还从商店安装了 PHPStorm (flatpak)。该商店本身(根据它的有关盒子)是一个 Feren OS 定制商店。但是,我想说这与我遇到的问题无关。
在 Feren OS 中,我以用户“paul”身份登录。
现在,当我作为用户“paul”打开终端时,我可以去任何地方。例如我可以转到“/var/www”。我可以在那里创建目录,chown它们等等。就像我说的,这部分我很熟悉。
然而,从 PHPStorm 我可以转到“/var”,但在那里我看不到所有目录。即使我在地址框中输入“/var/www”,它也无法到达那里。
作为比较,我还打开了文本编辑器 Kate。这个程序可以像我期望的那样访问“/var/www”。
我尝试修复它的方法
我在互联网上找到的答案主要提到用户应该添加到 www-data 组,并且 /var/www/ 应该由该组 chowned 。
例如这个
虽然我认为这个解决方案对我来说毫无意义,但我确实尝试过。我认为这是无稽之谈,因为同一用户下运行的其他应用程序可以访问该目录。当然,我可能在这里错了,所以请告诉我:)
可以肯定的是,我已将用户“paul”添加到“www-data”组,并且我已将 /var/www 添加到该组,如所附屏幕截图中所示。
我发现的另一个可能的解决方案是通过 snap 安装 PHPStorm反而。我还没有尝试过,因为我想先了解我做错了什么。
最后但并非最不重要的一点是,我在 Feren OS 商店中卸载了 flatpak 软件包,然后从命令行重新安装了 flatpak 软件包:
Flatpak 安装 PhpStorm
这也不会改变任何事情。
我的问题
1. PHPStorm 与 Konsole 和 Kate 之间有什么区别,这使得 PHPStorm 无法访问 /var/www/,而所有其他工具都可以。
- 我应该怎么做才能解决这个问题?
调查
正如评论中所询问的,我已经检查了哪些用户正在运行 PHPStorm:
ps -ef | grep -i phpstorm
paul 2241 1332 0 13:09 ? 00:00:00 /usr/libexec/flatpak-bwrap --args 31 phpstorm
paul 2267 2241 0 13:09 ? 00:00:00 /usr/libexec/flatpak-bwrap --args 31 phpstorm
paul 2268 2267 0 13:09 ? 00:00:00 /bin/sh /app/extra/phpstorm/bin/phpstorm.sh
paul 2309 2268 99 13:09 ? 00:00:19 /app/extra/phpstorm/jbr/bin/java -classpath /app/extra/phpstorm/lib/bootstrap.jar:/app/extra/phpstorm/lib/extensions.jar:/app/extra/phpstorm/lib/util.jar:/app/extra/phpstorm/lib/jdom.jar:/app/extra/phpstorm/lib/log4j.jar:/app/extra/phpstorm/lib/trove4j.jar:/app/extra/phpstorm/lib/jna.jar -Xms128m -Xmx968m -XX:ReservedCodeCacheSize=240m -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -ea -XX:CICompilerCount=2 -Dsun.io.useCanonPrefixCache=false -Djdk.http.auth.tunneling.disabledSchemes="" -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -Djdk.attach.allowAttachSelf=true -Dkotlinx.coroutines.debug=off -Djdk.module.illegalAccess.silent=true -Dawt.useSystemAAFontSettings=lcd -Dsun.java2d.renderer=sun.java2d.marlin.MarlinRenderingEngine -Dsun.tools.attach.tmp.only=true -XX:ErrorFile=/home/paul/java_error_in_PHPSTORM_%p.log -XX:HeapDumpPath=/home/paul/java_error_in_PHPSTORM.hprof -Didea.paths.selector=PhpStorm2020.1 -Djb.vmOptionsFile=/home/paul/.var/app/com.jetbrains.PhpStorm/config/JetBrains/PhpStorm2020.1/phpstorm64.vmoptions -Didea.platform.prefix=PhpStorm com.intellij.idea.Main
paul 2403 2387 0 13:09 pts/1 00:00:00 grep --color=auto -i phpstorm
作为比较,我对 Kate 做了同样的事情(可以访问该目录):
ps -ef | grep -i kate
paul 2761 1332 4 13:12 ? 00:00:00 /usr/bin/kate -b --tempfile
paul 2767 1271 0 13:12 ? 00:00:00 tags.so [kdeinit5] tags local:/run/user/1000/klauncherkWHCgQ.1.slave-socket local:/run/user/1000/kateencBio.1.slave-socket
paul 2776 1271 0 13:12 ? 00:00:00 file.so [kdeinit5] file local:/run/user/1000/klauncherkWHCgQ.1.slave-socket local:/run/user/1000/kateSKaSMP.2.slave-socket
paul 2780 1271 0 13:12 ? 00:00:00 thumbnail.so [kdeinit5] thumbnail local:/run/user/1000/klauncherkWHCgQ.1.slave-socket local:/run/user/1000/kateVcVjeG.4.slave-socket
paul 2791 2387 0 13:12 pts/1 00:00:00 grep --color=auto -i kate
答案1
Feren OS的开发者告诉我,问题很可能是因为Flatpak包“用户”的权限而出现的。
然后 JetBrains 支持台告诉我类似的事情,并建议使用 Snap 或 JetBrains Toolbox 来安装 PHPStorm。我现在已经通过他们的工具箱安装了 PHPStorm,它运行得非常顺利。