我已经使用this tutorial在Amazon EC2上设置了一个简单的网络服务器,包括PHP,mySQL,nginx和php-fpm。一切似乎都在运行,html页面开启得很好。我的phpinfo()工作正常,显示Server API为FPM / FastCGI,php-fpm为活动状态。到目前为止一切都很好。
我现在复制了一个旧网站,它使用php并且在我的旧服务器(顺便运行没有php-fpm的Apache)上工作正常,到新服务器并打开index.php页面。它打开,显示正常,但Twitter登录按钮继续进入应用程序显示此链接:
<? echo $content;?>
而不是像在现场网站上那样显示“redirect.php”。所以看起来似乎页面中的php不起作用。使用干净的nginx error.log,重新加载此页面会在日志中生成以下输出:
2016/10/29 12:32:58 [error] 2936#0: *1 FastCGI sent in stderr: "PHP message: PHP Warning: session_start(): open(/var/lib/php/session/sess_45g3uvcilj8913naoa1nrenfn3, O_RDWR) failed: Permission denied (13) in /var/www/html/*****/index.php on line 2
PHP message: PHP Notice: A session had already been started - ignoring session_start() in /var/www/html/*****/index.php on line 6
PHP message: PHP Notice: Undefined index: access_token in /var/www/html/*****/index.php on line 15" while reading response header from upstream, client: *****, server: *****, request: "GET /tlm/ HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm/php-fpm.sock:", host: "*****"
我猜测许可被拒绝错误可能是原因,但我很难搞清楚原因。特别是因为phpinfo()文件工作得很好。你可能会说,我对这些事情是个新手。
关于我的配置:nginx.conf中的用户设置为nginx,而/etc/php-fpm.d/www.conf至少包含以下内容:
listen = /var/run/php-fpm/php-fpm.sock
listen.allowed_clients = 127.0.0.1
listen.owner = nginx
listen.group = nginx
listen.mode = 0664
user = nginx
group = nginx
所以,我甚至不确定我的问题比“为什么这个页面不起作用?”更具体。但我希望有人能够提供帮助。
我见过很多类似的问题,有时在某些文件夹上没有+ x导致网络服务器内容出现问题,但我已经验证了,并且每个文件夹上的世界都有+ x导致我webserver文件夹使这不应该是问题。
任何能够指出我正确方向的人?提前感谢您的耐心:)
答案 0 :(得分:0)
似乎你的新安装的php不允许短标记http://php.net/manual/en/ini.core.php#ini.short-open-tag