我正在尝试做的是从PHP代码创build一个文件夹。 最初,这可能听起来像一个PHP的问题,但在网上发了很多时间后,我意识到,主要问题是与Apache的权限有关。 我尝试了几乎所有我可以谷歌,但无法find解决我的问题。 我用apt-get安装了Apache服务器,默认安装的web根目录是/ var / www / html,我的PHP脚本在那里。 使用默认安装,我甚至无法在该文件夹中写入文件。 后来从谷歌,我发现我必须使www数据文件夹的所有者,我试图写文件。 我这样做,文件夹被创build。 但我的主要目标是在/ root / work / temp下创build文件夹,但是如果我按照相同的过程并使www-data是该文件夹的所有者,就像我为/ var / www / html所做的那样,则不起作用。 那么在这种情况下,我需要什么不同呢? 仅供参考,我也应用了chmod使这两个文件夹有足够的读/写权限。 提前致谢。
我想对我的apache服务器做一些定制,但在这个领域并不是很有经验。 我想弄清楚的第一件事是如何添加自定义configuration,以便它不会中断,如果发生的Apache的升级或任何东西。 我在我的home目录中创build了一个apache.conf文件,我打算将它包含在/etc/apache2/apache2.conf ,这是个好主意吗? 在我弄清楚如何包含我的自定义configuration后,我想根据子域名将apache日志(访问和错误)转换为文件,例如,如果请求的是site.domain.com它必须logging在/var/log/apache2/site.domain.com-access.log 。 我找不到任何东西,但我想像的是什么 CustomLog ${APACHE_LOG_DIR}/${HTTP_HOST}-access.log combined 但是当我这样做,我看到目录中的${HTTP_HOST]-access.log文件。 另外我想避免来自两个IP的logging请求,或者以breaker=\d+ (regex)结尾。 为了这个目的,我想我必须使用If和SetEnv从句,但是我不知道如何做,并且把它们结合起来。 <If "${REMOTE_ADDR} 127.0.0.1 || ${REMOTE_ADDR} 192.168.1.1 || ${REQUEST_URI} breaker=\d+$"> SetEnv nolog </If> CustomLog ${APACHE_LOG_DIR}/${HTTP_HOST}-access.log combined env=!nolog 我无法通过Apache文档find我的方式,请帮助!
我正在尝试将客户端的网站移到新的服务器上。 mod_rewrite肯定是启用的。 testing地址是http://176.32.230.45/hubbwayhire.co.uk/加载正常。 http://176.32.230.45/hubbwayhire.co.uk/about.php也加载罚款。 我在htaccess中有这个 RewriteEngine On RewriteBase / RewriteRule ^about about.php RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d 但加载以下内容: http : //176.32.230.45/hubbwayhire.co.uk/about给我以下内容: Forbidden You don't have permission to access /about.php on this server. 权限也完全没问题。 服务器所有者根本无法帮助我们。 任何帮助赞赏?
我有一个使用Apache 2.4运行Ubuntu 14.04的Amazon EC2实例。 我已经为Apacheconfiguration了3个虚拟主机,全部仅用于HTTPS。 问题是,当我尝试从互联网上访问Web服务器时,不知何故主机名会丢失,而且Apache会尝试从默认主机提供页面,而不pipe我通过哪个主机名访问它。 /etc/apache2/sites-enabled/default-ssl.conf: <VirtualHost *:80> ServerName monitor.mydomain.net Redirect / https://monitor.mydomain.net </VirtualHost> <VirtualHost *:443> ServerAdmin webmaster@localhost ServerName monitor.mydomain.net DocumentRoot /usr/share/nagios3/htdocs <Directory /> Options FollowSymLinks AllowOverride None allow from all </Directory> <Directory /usr/share/nagios3/htdocs> Options Indexes FollowSymLinks MultiViews Options +ExecCGI AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/nagios3 /usr/lib/cgi-bin/nagios3 ScriptAlias /nagios3/cgi-bin /usr/lib/cgi-bin/nagios3 […]
我的Ubuntu Vagrant显示PHP源代码,而不是解释PHP脚本。 我究竟做错了什么? 我的apache.conf: <Directory /> Options FollowSymLinks AllowOverride None </Directory> 我的虚拟主机configuration:ServerName kunstmaan.cms DocumentRoot "/var/www/logus/web" AllowOverride All Require all granted (…) </Directory> 服务-CGI-bin.conf <IfModule mod_alias.c> <IfModule mod_cgi.c> Define ENABLE_USR_LIB_CGI_BIN </IfModule> <IfModule mod_cgid.c> Define ENABLE_USR_LIB_CGI_BIN </IfModule> <IfDefine ENABLE_USR_LIB_CGI_BIN> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Require all granted </Directory> </IfDefine> </IfModule> /etc/apache2/conf-enabled/php5-fpm.conf […]
正如你可以在主题中看到,我有一个小问题运行反向代理HTTPSstream量到第二台服务器(在网关/防火墙后面的同一networking)在Plesk: build立: 我有一台服务器运行Plesk(与Apache)。 在那里,我想redirect一个子域(xyz.domain.com)的HTTPSstream量到第二个服务器(IP 192.168.3.10),它与Plesk服务器(IP 192.168.3.2)和网关(IP 192.168.3.1)到互联网。 在第二台服务器上有一个运行在Apache反向代理之后的YouTrack实例,允许通过http / https进行连接。 它以HTTP的以下方式进行configuration: <VirtualHost *:80> ServerName xyz.domain.com Redirect permanent / https://xyz.domain.com.de </VirtualHost> 和HTTPS: <IfModule mod_ssl.c> <VirtualHost _default_:443> SSLEngine on SSLCertificateFile /etc/ssl/certs/domain.crt SSLCertificateKeyFile /etc/ssl/private/domain.key SSLCertificateChainFile /etc/ssl/bundles/root_bundle.crt <FilesMatch "\.(cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars </FilesMatch> <Directory /usr/lib/cgi-bin> SSLOptions +StdEnvVars </Directory> RewriteEngine on AllowEncodedSlashes on ProxyRequests off ServerName xyz.domain.com ProxyPass / http://127.0.0.1:8084/ ProxyPassReverse […]
我正在寻找正确的方法来处理redirect不安全(通过端口80)的请求,以确保(端口443)与Apache服务器configuration。 我不想把这个在我的.htaccess文件中。 目前我在我的httpd.conf文件中有这个: ServerName example.com ServerAlias *.example.com RewriteEngine On RewriteCond %{HTTP_HOST} ^(.+)\.example\.com$ RewriteRule ^(.*)$ https://%1.example.com/$1 [R=302,L] 目标是做一个通配符(在子域和子文件夹)redirect。 具体来说,这里有一些主要的用例: – http://subdomain.example.com到https://subdomain.example.com – http://example.com到https://www.example.com – http://www.example.com/contact/到https://www.example.com/contact – http://subdomain.example.com/contact/到https://subdomain.example.com/contact 简而言之,只要用https来replacehttp ,只要满足两个条件: 请求的URI包含mydomain.com 请求的URI不是安全的(仅限于httpstream量) 我已经尝试了许多不同的方法,但似乎没有捕获子域和子文件夹的所有变化,让我吃惊的是。 有任何想法吗? 谢谢!
我有两个IP地址在DigitalOcean上指向我的服务器Ubuntu 16.04。 对于一个IP地址,以下工作正常。 <VirtualHost 1.2.3.4:80> ServerName www.mysite.com DirectoryIndex index.php index.html DocumentRoot /home/mysite.com <Directory /home/mysite.com/> Require all granted Allowoverride ALL </Directory> </VirtualHost> 当我添加我的第二个IP地址的另一个VirtualHost <VirtualHost 5.6.7.8:80> ServerName www.mysite2.com DirectoryIndex index.php index.html DocumentRoot /home/mysite2.com <Directory /home/mysite2.com/> Require all granted Allowoverride ALL </Directory> </VirtualHost> 这不起作用,相反,我看到Ubuntu默认的index.html页面。 我跑了apache2ctl -S这是我看到的。 1.2.3.4:80 is a NameVirtualHost default server www.mysite2.com (/etc/apache2/sites-enabled/mysite2.com.conf:1) 所以看起来像1.2.3.4是一个NameVirtualHost而5.6.7.8不是? 所以我试着设置 NameVirtualHost 5.6.7.8:80 […]
我已经使用ppa:ondrej/php repository将PHP从5.5更新到了5.6版的数字海洋液滴(Ubuntu 14.04)。 我也更新mod_php使用5.6。 从那时起,我的虚拟主机停止了工作。 我到达服务器时显示的是“Apache2 Ubuntu默认页面” – /var/www/html/index.html 。 这是在apache2.conf : # Include the virtual host configurations: IncludeOptional sites-enabled/*.conf 目录/etc/apache2/sites-enabled/ : total 8 drwxr-xr-x 2 root root 4096 Nov 1 08:31 ./ drwxr-xr-x 8 root root 4096 Nov 1 08:20 ../ lrwxrwxrwx 1 root root 35 Nov 1 08:20 000-default.conf -> ../sites-available/000-default.conf lrwxrwxrwx 1 […]
我试图validation一个特定的用户,我已经颁发了一个证书来使用所提到的证书来validation我的Web代理。 我想我已经尝试了几乎20种以下选项的组合,而且没有任何东西可以用于我。 在Apache文档页面中,ssl客户端authentication的所有示例通常基于<Location>指令。 我的情况是从来没有提到,在这一点上,我想知道是否有可能: <VirtualHost *:8080> ProxyRequests On SSLCACertificateFile /etc/apache2/myca/ca.cer <Proxy "*"> SSLVerifyClient Require SSLVerifyDepth 10 SSLOptions +FakeBasicAuth +StrictRequire SSLRequire ( %{SSL_CIPHER} !~ m/^(EXP|NULL)-/ \ and %{SSL_CLIENT_S_DN_O} eq "MyComp" \ and %{SSL_CLIENT_S_DN_OU} eq "IT" \ and %{SSL_CLIENT_S_DN_Email} eq "[email protected]") </Proxy> ErrorLog ${APACHE_LOG_DIR}/proxy_error.log CustomLog ${APACHE_LOG_DIR}/proxy_access.log combined </VirtualHost> 通过上面的configuration代理工作,但不要求authentication,每个人都可以使用它。 我试图把SSLVerifyClient Require放在Proxy指令之外,没有任何改变 我已经删除了SSLRequire ,没有任何改变 我已经删除了SSLOptions ,没有任何改变 我已经在Proxy指令中添加了Require ssl-verify-client […]