zoukankan      html  css  js  c++  java
  • 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;

    积累知识,分享知识,学习知识。
  • 相关阅读:
    Git 远程分支的查看及相关问题
    Clean Code – Chapter 6 Objects and Data Structures
    Clean Code – Chapter 5 Formatting
    Clean Code – Chapter 4: Comments
    利用 SerialPort 控件实现 PC 串口通信
    Clean Code – Chapter 3: Functions
    oracle如何查看当前有哪些用户连接到数据库
    c++ Ansi和Unicode相互转换
    c++ Utf8和Unicode相互转换
    c++ 根据某个字符或者字符串分割另外一个字符串
  • 原文地址:https://www.cnblogs.com/bin-pureLife/p/4012106.html
Copyright © 2011-2022 走看看