新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
参考内容:http://www.cnblogs.com/argb/p/3604340.html
创新互联-专业网站定制、快速模板网站建设、高性价比杭锦网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式杭锦网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖杭锦地区。费用合理售后完善,十年实体公司更值得信赖。早上修改了php的配置文件,php-fpm.conf,重启nginx,php-fpm后发现网站启动不来了。nginx错误日志为:
2015/09/18 10:11:30 [error] 15081#0: *1073 FastCGI sent in stderr: "PHP message: PHP Warning: require_once(Zend/Application.php): failed to open stream: No such file or directory in /web/www.XXX.com/wwwroot/public/index.php on line 18 PHP message: PHP Fatal error: require_once(): Failed opening required 'Zend/Application.php' (include_path='/web/www.XXX.com/wwwroot/library:.:/usr/local/lib/php') in /web/www.XXX.com/wwwroot/public/index.php on line 18" while reading response header from upstream, client: xxx.19.116.133, server: www.XXX.com, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/usr/local/php/var/run/www.XXX.com.socket:", host: "www.XXX.com"通过好长时间的分析,是php.ini里面的zend配置没有生效,因此有可能是php.ini文件没有被加载。
首先检查PHP的编译参数
[huwei@xxx ~]$ /usr/local/php/bin/php -i|grep configure Configure Command => './configure' '--prefix=/usr/local/php' '--with-config-file-path=/usr/local/php/etc' '--with-mysql=/usr/local/mysql' '--with-mysqli=/usr/local/mysql/bin/mysql_config' '--with-mysql-sock=/tmp/mysql.sock' '--with-pdo-mysql=/usr/local/mysql' '--with-gd' '--enable-libxml' '--enable-xml' '--enable-bcmath' '--enable-shmop' '--enable-sysvsem' '--enable-inline-optimization' '--with-curlwrappers' '--enable-mbregex' '--enable-fpm' '--enable-mbstring' '--enable-ftp' '--enable-gd-native-ttf' '--with-openssl' '--enable-pcntl' '--enable-sockets' '--with-xmlrpc' '--enable-zip' '--enable-soap' '--without-pear' '--with-gettext' '--enable-session' '--with-mcrypt' '--with-curl' '--enable-ctype' '--with-freetype-dir'--with-freetype-dir参数是后面重新编译添加的参数,也就是说,PHP经历过两次编译.
查看php的php.ini文件默认路径:
[huwei@xxx ~]$ /usr/local/php/bin/php -i|grep php.ini Configuration File (php.ini) Path => /usr/local/php/etc Loaded Configuration File => /usr/local/lib/php.ini由此可以看出,此时php默认加载的php.ini文件存在路径是:/usr/local/lib/php.ini
而我的正确的php.ini文件存在路径为:/usr/local/php/etc/php.ini
经检查,/usr/local/lib/php.ini的确没有配置zend扩展,因此网站无法启动.
cp /usr/local/php/etc/php.ini /usr/local/lib/php.ini
将php.ini文件覆盖过去,重启php-fpm,网站OK
或者使用命令直接加载php.ini文件
[root@test31 etc]# /usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini解决问题
思考:php文件:php-fpm.conf php.ini两个文件,php-fpm.conf是php-fpm进程服务的配置文件
php.ini是php运行核心配置文件,也是php扩展的配置文件,比如
extension=memcache.so extension=yaf.so extension=redis.so在php.ini里面将扩展内容配置才能生效.
因此本案件中,zend扩展没有生效,就可以查找php.ini文件是否生效.
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。