我很难尝试在Bluehost VPS服务器中将用户“nobody”更改为“www-data”。 它非常混乱。 我不知道为什么他们有一个初始的“nobody”用户运行Apache,因为这可以通过networking服务器公开文件。 所以看起来Apache是好的,但我无法让PHP工作。 所以我采取的步骤是: 1)创build一个用户www-data; 2)将apache config /etc/apache2/conf/httpd.conf中的用户和组更改为www-data; 在conf里面也改变了一些指令给SUPHP。 3)更改了configuration文件/var/cpanel/php-fpm.d/socieda5.conf以更改用户和组。 4)更改了服务器根目录上的文件权限:我做了一些修改,没有解决。 我将用户和组更改为/ home / myuser / public_html(VPS中的服务器根文件夹)下的文件夹中的www-data。 我也尝试了一些使用我的用户作为所有者的其他更改。 apache日志说:权限被拒绝:[client 187.10.14.3:46744]无法创buildsubprocess:/ usr / sbin / suphp for /home/socieda5/public_html/index.php 我找不到重启php-fpm的方法。 我已经达到了bluehost支持和cpanel文档,但没有提供的信息是值得解决的问题。 所以我重新启动了服务器。 但是我得到了同样的错误。 任何有Bluehost VPS经验的人都可以帮助我呢? 非常感谢!!!
所以这不是让PHP工作,而是关于混合语法结构。 具体而言,我正在寻找一种方法来使用一个优雅的Action 速记绑定PHP-FPM在不同的虚拟主机。 所有工作选项: 你好, mod-fastcgi的方式: 以前我曾经使用FastCGIExternalServer和ScriptAlias等人的虚拟path: FastCGIExternalServer /www/fcgi/api5 -flush -socket /var/run/php-fpm-api.sock ScriptAlias /..A5.. /www/fcgi/api5 Action php5-api /..A5.. AddHandler php5-api .php 现在这既不是非常现代的,也不是很可读。 除了AddHandler php5-user部分。 这正是我想在整个configuration中继续使用的。 用于mod-proxy-fcgi的 ProxyPassMatch 对于PHP-FPM设置,通常首先推荐这种设置: ProxyPassMatch ^/(.*\.php(/.*)?)$ proxy:unix:/run/php-fpm.sock|fcgi://localhost 正则expression式匹配当然有它的魅力。 但它很容易干扰RewriteRule集。 所以这也不是最好的select。 SetHandler与<FilesMatch> 当然是更好和常见的select: <FilesMatch ".+\.ph(p[3457]?|t|tml)$"> SetHandler "proxy:unix:/run/php/php7.0-fpm.sock|fcgi://localhost" </FilesMatch> 但是我仍然认为这太冗长了,相比于AddHandler php7-whatever .php 带代理指定符的AddHandler 没有看到这个在Apache手册中的任何地方提到,也没有看到。 但是,您也可以使用更简单的AddHandler方法来映射.php文件: AddHandler "proxy:unix:/run/php-fpm.sock|fcgi://localhost" .php 这是我喜欢的东西。 但是我仍然需要在整个虚拟主机configuration中复制代理string。 当然,我可以使用Include一堆vhost / fpm-pool变体,我宁愿有预定义的名称。 […]
这是我在这里的第一篇文章,我会尽我所能做到尽可能清晰和短小。 所以我有一个运行在Apache 2.4上的服务器。 客户端可以上传文件,这些文件只能压缩成.gz格式。 为每个文件也创build一个包含该文件的mimetype的文本文件。 当客户端下载文件时,我希望服务器从这个文本文件中读取mimetype,并分别设置HTTP Content-Type Header。 我到现在为止:我做了一个Python脚本,它获得正确的MIMEtypes,并写入标准输出: #!/usr/bin/python import sys, os while True: sha256hash = sys.stdin.readline().strip().lstrip('/') directory = '/var/www/path/to/mimetypes' mimetype = open(directory + sha256hash,'rb').read() sys.stdout.write(mimetype + '\n') sys.stdout.flush() 并将这些指令添加到相关的Apacheconfiguration文件 RewriteEngine On RewriteMap mimetype prg:/home/user/scripts/mimetype.py RewriteRule ^(.*)$ – [ENV=CONTENTTYPE:${mimetype:%{REQUEST_FILENAME}}] Header append Content-Type "%{CONTENTTYPE}e" env=CONTENTTYPE 所以脚本被调用。 问题 :它只适用于service apache2 reload 。 但是,当上传新文件(甚至上传失败并且没有添加新文件时),系统就会崩溃。 这意味着下列内容的内容types标题是空的(即使是之前的文件也是如此)。 示例响应标题: HTTP/1.1 […]
我有一个运行在Docker容器上的网站,并且在主机的Apache上创build了一个虚拟主机,这个虚拟主机正在对容器做一个反向代理(在主机的8280端口上)。 所以我有: <VirtualHost *:443> ServerName www.example.com DirectoryIndex index.php index.html SetOutputFilter SUBSTITUTE,DEFLATE ProxyPass / http://localname:8280/ ProxyPassReverse / http://localname:8280/ Substitute "s|http://localname:8280/|https://www.example.com/|i" SSLEngine on SSLProtocol all -SSLv2 SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW SSLCertificateKeyFile /path-to/privkey.pem SSLCertificateFile /path-to/cert.pem SSLCertificateChainFile /path-to/chain.pem <Proxy *> Order deny,allow Allow from all Allow from localhost </Proxy> </VirtualHost> <VirtualHost *:80> ServerName www.example.com ServerAlias www.example.com Redirect permanent / https://www.example.com/ </VirtualHost> […]
我想设置一个免费的代理服务器,而不是在每个页面中replacehtml代码,以便在每个访问过的页面中向用户显示一条消息/注释。 到目前为止,它可以通过httpd.conf中的代码正常工作:此代码将body2replace为body 问题是,如果我访问一个https:// url它不会取代html内容 ,因为它应该被encryption是有道理的。 但是,如果在https请求中无法replace代码,是否可以configurationmod_proxy将所有https://请求redirect到http://? ProxyRequests On ProxyVia On <Proxy "*"> </Proxy> RequestHeader unset Accept-Encoding AddOutputFilterByType SUBSTITUTE text/html Substitute "s|body|body2|i"
我有跟随情景, 我有一个代理(Apache Web服务器2.4)和glassfish应用服务器(版本3.1)。 我正在尝试authentication用户,并将authentication的用户发送到glassfish服务器,所以我可以在那里使用它作为一个值得信赖的用户。 我已经尝试将validation的用户设置为请求 AuthName“限制文件”AuthUserFile //.htpasswd.txt要求用户ProxyPass平衡器:// appcluster / RequestHeader set X-Auth-User "%{AUTH_USER}e" env=AUTH_USER RequestHeader set X-Remote-User %{R_U}e 还有更多,但它不起作用。 有人解决了这个问题吗?
我有一个SSI的HTML页面,我试图在我的Apache(V 2.4.18)在Ubuntu 16.04上运行SSI。 按照这里的准则,我尝试编辑/etc/apache2/apache2.conf文件,现在包含以下指令, <Directory /var/www/> Options FollowSymLinks AddType text/html .shtml AddOutputFilter INCLUDES .shtml AllowOverride None Require all granted </Directory> 但SSI不工作。 任何人都可以给方向?
得到了一个新的VPS,安装了一切,有时间来设置虚拟主机 #vim /etc/httpd/conf.d/project.conf <VirtualHost *:80> DocumentRoot "/var/www/html/project.net/wordpress" ServerName project.net ServerAlias www.project.net Options -Indexes +FollowSymLinks +MultiViews </VirtualHost> 要求所有授权在主httpd文件中设置。 #systemctl restart httpd project.net是可访问的,但显示默认的httpd页面 系统信息: Linux dev 2.6.32-042stab116.2 #1 SMP Fri Jun 24 15:33:57 MSK 2016 x86_64 x86_64 x86_64 GNU/Linux with Apache/2.4.6 (CentOS) Server built: Oct 19 2017 20:39:16
我有mod_proxyconfiguration为公共代理,所以用户可以使用我的服务器(/ IP),而浏览网页… 我怎么能设置mod_proxy忽略像“谷歌”的特定url/域名,并直接向用户显示该请求(就像它不会使用代理)?
我只想用https打开我的网站login页面,我在服务器上检查SSL是否启用,这里是通过phpinfo()返回服务器的基本信息; PHP Version 5.2.14 Configure Command '–with-openssl' '–enable-zip' Registered Stream Socket Transports tcp, udp, unix, udg, ssl, sslv3, sslv2, tls curl cURL support enabled cURL Information libcurl/7.10.6 OpenSSL/0.9.7a ipv6 zlib/1.2.3 openssl OpenSSL support enabled OpenSSL Version OpenSSL 0.9.7a Feb 19 2003 我在header.php上的基本代码是 if($_SERVER['SERVER_PORT'] != 443) { header("HTTP/1.1 301 Moved Permanently"); header("Location: https://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']); exit(); } 但它总是给出以下错误: […]