Ubuntu 运行PHP 项目 可能遇到的问题

最近装了ubuntu.初次接触linux系统遇到一些问题。这里一一记录下。

我装的是nginx php mysql

用ezhttp装的。曾经去贴吧发帖求助过虚拟机配置出错问题。别人都反应我的配置比较乱。个人感觉还是比较清晰的。

一:配置虚拟机遇到的问题。

(我用的是doitphp开发的项目,需要url重写。)

  当时我是如下配置的:

 sudo ez vhost add 并且选择了重写规则,在挑选重写规则的时候他只会列出其中的9个,我自己新加的配置文件没有读出来,不在多怎么回事,我用的是sudo 最高级别 应该不存在文件读写权限问题。并且选择了支持phpinfo

  配置后在nginx vhost 中会生成相应的虚拟机配置文件如www.admin.com.conf,由于我当时不能选择自己新加的重写规则,所以无奈选择了wordpress 的重写规则,事后我再把www.admin.com.conf 中的重写规则文件路径改成了相对应的doitphp的,后来发现,访问总是跳转到国外的一个网站。

我不禁想起,这应该是没有配置hosts. 的确如此,于是我加入了127.0.0.1 www.admin.com

  修改后访问不会跳转出去,但是总是找不到资源。

      我找了下nginx的api文档,改了一个小地方。我发现api中把重写规则写在了虚拟机配置文件的 server{}中,于是我sudo ez vhost delete 删掉之前的虚拟机配置,重新配置了一便,把重写规则加在了server{}里面,重启nginx后发现,页面什么也没有,抓了下包,什么也没返回。一开是我没什么把握,在入口文件同目录用了个html 文件测试了下,发现能够成功访问。于是我在入口文件一行行打印,发现能打印出来。某句代码后,死活打印不了。这就出现了第二个问题。

二:PHP 错误提示不显示在页面。

    注意两个地方: 一个是php.ini

    error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT

    display_errors = on

    第二处:php-fpm.conf

  句首加上;或者 php_admin_flag[log_errors] = on

    然后重启 service php-fpm restart

三:用命令配置好虚拟机后open_basedir 导致项目主目录以外文件无法引入的问题。

这是我当时启动项目报错,框架文件无法加载。

Warning: require_once(): open_basedir restriction in effect. File(/home/wwwroot/jkpt/doitphp/DoitPHP.php) is not within the allowed path(s): (/home/wwwroot/jkpt/user/public:/tmp/:/proc/) in /home/wwwroot/jkpt/user/public/index.php on line 22

Warning: require_once(/home/wwwroot/jkpt/doitphp/DoitPHP.php): failed to open stream: Operation not permitted in /home/wwwroot/jkpt/user/public/index.php on line 22

Fatal error: require_once(): Failed opening required '/home/wwwroot/jkpt/doitphp/DoitPHP.php' (include_path='.:') in /home/wwwroot/jkpt/user/public/index.php on line 22

解决方法是找到你的虚拟机配置文件 修改对应项,例如我的。

server {
    server_name www.admin.com;
    listen 80;
    index index.php index.html index.htm;
    root /home/wwwroot/jkpt/admin/public;
    if (!-e $request_filename) {
    rewrite ^/(.*)  /index.php/$1 last;
    }
    location ~ \.php($|/){
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            include        fastcgi_params;
            set $path_info "";
            set $real_script_name $fastcgi_script_name;
            if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
                set $real_script_name $1;
                set $path_info $2;
            }
            fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
            fastcgi_param SCRIPT_NAME $real_script_name;
            fastcgi_param PATH_INFO $path_info;
            fastcgi_param  PHP_VALUE         open_basedir=/home/wwwroot/;
    }
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
            expires      30d;
    }

    location ~ .*\.(js|css)?$ {
            expires      12h;
    }

    access_log  /home/wwwlog/www.admin.com/access.log access;
    error_log  /home/wwwlog/www.admin.com/error.log error;
}

然后重启 service nginx restart;

 

posted @ 2014-10-08 21:38  鱼尾纹  阅读(829)  评论(0编辑  收藏  举报