Linux下PHP开发之旅-2.开发环境相关设置探索

一.默认目录在哪儿?

开始时面对该xampp集成开发环境的相关配置有点不知所错,于是便先想着找httpd.conf,通过该文件,对该集成环境的配置文件关系有了大致了解,具体操作如下;

cd /opt/lampp/etc

vi httpd.conf

默认ServerName

默认网页等资源所在目录:

对其它配置文件的包含引入:

打开linux的hosts文件,我们可以看到对应的主机名(Hostname)和域名(Domain)映射关系:
             vi /etc/hosts

二.让php在命令行中跑起来

经过查阅相关资料,要让lampp的php在ubuntu中能执行起来,需要添加相关的环境变量:

sudo gedit /etc/profile

export PATH=/opt/lampp/bin:$PATH

           使配置立即生效:

source /etc/profile

查看环境变量是否成功加入:

echo $PATH

 这时建立一个用来测试的php文件,存放在 /home/yang/Downloads/1.php

<?php
   $i="hello world";
   echo "该变量是:"."$i";
   echo "\n";
?>

在命令行中进行执行测试:

             nice! 测试通过,可以进行下一步了.

三.php的相关配置

1.查看php在apache中的相关配置

打开/opt/lampp/etc/httpd.conf文件,可看到php模块的载入部分为:

            在该文件此处可配置.php文件的执行方式:

            增添内容为:

             #设定三种文件后缀都又php模块来"执行"

             Add AddType application/x-httpd-php .php   .php3    .ppp

             在/opt/lampp/etc/extra/httpd-xampp中,也可以发现起到相同作用的配置语句:

2.配置php.ini

          通过localhost--->点击主页中的php.ini 我们可知php.ini在该集成环境中的默认位置

         

         用vi 打开该文件并使用vi 的search功能找到时区设置:

          sudo vi /opt/lampp/etc/php.ini

          按住 shift+:  -----> 输入 /timezone ----> n键查找下一个-->退出并保存

          这样就将时区设置成我国本地.

四.测试数据库连接

        在/opt/lampp/htdocs/ 目录下,我们写测试文件 2.php

<?php
        //数据库连接测试
        $conn = mysql_connect("localhost","root","123");
        if($conn)
        {
                echo "数据库连接成功";
        }
        
?>

       在浏览器中地址拦输入如下地址,如果显示"数据库连接成功"则说明该部分工作正常.

五.虚拟主机配置

1.端口监听

    端口:就是一个数字,目的是让一台电脑(对外只有一个IP)能够对外提供多项服务,行业默认的有如下常见服务和端口号:

    web服务:80

    ftp服务:21

    邮件收取服务:110

    mysql数据库服务:3306

    一台电脑中,有6万个端口,但通常一台服务器,一般只提供几个或10几个服务.apache的端口监听设置,是指apache这个软件针对当前服务器哪些端口提供web服务.

   apache中的端口监听设置为:

     我们新增一个808端口进行测试:

   

      可见,新增的端口号起到了作用.

2.主机配置关键项

    主机,虚拟主机,web站点,是指一个可以通过浏览器并使用某个域名进行访问的"web应用".

    一个主机(站点),最核心的就两件事:

             主机(站点)的名字: ServerName "主机名"

             主机(站点)的实际文件夹位置: Documentot    "站点的实际完整路径"

      apache 的作用其实就是一个"转换"角色:将当前电脑中的某个文件夹,对外以某个域名(站点)的方式展现出来,换句话说站点的本质就是一个文件夹.

      /opt/lampp/etc/httpd.conf 中的默认有关配置为:

             当一个请求通常域名解析进入到当前apache并端口匹配成功后,apache就会开始提供服务:
             1.在站点设置中找ServerName项,看是否匹配请求中的主机名;

             2.如果找到,则在对应的目录(DucumentRoot配置项)中找相应的文件(可能是index.php或其他)

             3.如果找到,则返回该文件(或调用php语言模块执行后返回)

             4.如果没找到对应请求中的主机名,那么就将第一个主机当做准备提供服务的主机

                 由此可见,只要ip解析和端口能够进入到当前服务器并匹配apache的端口设定,则apache一定会提供服务,即使主机名不匹配.

           根据上述思想我们来进行一些测试:

           将/opt/etc/httpd.conf 中的三个地方修改:

并在 /etc/hosts中进行如下增添:

/opt/lampp 用来测试的php文件为:

<?php
        echo "you are visiting the resource by self configuration";
?>

在浏览器中测试:

 
 

3.配置文件夹访问权限

        文件夹的访问权限在该标签下进行:

      常见设置语句:

       <Directory "/opt/lampp/htdocs/">
            #下一行用于设定"可显示文件列表"(当无显示网页的时候)
            Options Indexes
            #用于设定权限的判断顺序:先拒绝,后允许
            Order deny,allow
            #允许所有(这里没有设定拒绝)
            Allow from all
       </Directory>

      我们访问一个站点的时候,可以设定要访问的网页,比如 www.dachongzi.com/index.php,也可以不指定如:www.dachongzi.com

      对于后一种情况,apache就可以设定"默认网页"以提供给用户,形式为:

      此时,对于没有明确要访问网页的请求,会按顺序从前往后找这些文件,找到后就"返回"给用户.但是,如果最终都没有找到,Options中的Indexes 就发挥作用了:显示该文件夹中的所有文件.

       我们也可以将DirectoryIndex设置项放在一个单独的站点或单独的文件夹中,则只对该单独的站点或单独的文件夹起作用.

<Directory "/opt/lampp/htdocs/">
            #下一行用于设定"可显示文件列表"(当无显示网页的时候)
            Options Indexes
            #用于设定权限的判断顺序:先拒绝,后允许
            Order deny,allow
            #允许所有(这里没有设定拒绝)
            Allow from all
            #DirectoryIndex设置,此时只对该文件夹有效
            DirectoryIndex 1.php
       </Directory>

4.主机别名设置

在应用中,我们常常可以使用以下两种方式来访问一个站点:

             http://www.dachongzi.com

             http://abc.com

            通常,现在越来越流行后者,此时,就相当于"2个站点(主机名)"但访问的是一个内容

            此时就需要使用主机别名来实现:

            ServerAlias     别名1    别名2    别名3      ...

 

5.文件夹访问控制的文件控制方式

          通常,我们在config配置文件中,使用Directory 配置项,目的是用来控制文件夹的访问权限.我们也可以使用一个独立的文件来控制文件某文件夹的访问权限,该文件名必须是: .htaccess

         注意:

          1.只有后缀和点号(无文件名部分);

          2.该文件必须放在要被控制访问权限的文件夹中(不同的文件夹可以放不同的该文件);

          3.其"上级文件夹"(通常是Directory设定中的文件夹)必须使用如下代码允许 .htaccess发挥作用:

              AllowOverride All

          4.  .htaccess 文件中出现代码,几乎可以跟Directory设定出现的代码一样;

          5.如果 .htaccess 文件有效,则其设置会覆盖上级设置;

          6.此.htaccess文件修改后可以立即发挥作用,无需重启apache.

6.目录别名设置Alias

      在一个站点中,如果不存在某个文件夹(目录),我们可以通过配置项,来做到"对外"看起来却存在一样,比如:

       http://www.dachongzi.com/phpmyadmin/           假设站点中不存在 phpadmin 目录

       但是我们可以让该地址"可访问",这就是目录别名(虚拟目录)

       打开 /opt/lampp/etc/extra/httpd-xampp.conf 我们能看到相关设置:

7.多站点配置

      首先,在/opt/etc/httpd.conf 中打开多站点配置文件:

      

      对httpd-vhosts.conf文件修改进行多站点配置:

#设置 www.dachongzi.com 站点
<VirtualHost *:80>
    ServerName www.dachongzi.com
    #设置主机别名,即用该别名也可以访问(前提是域名解析正确)
    ServerAlias dachongzi.com
    #设置主机目录
    DocumentRoot "/opt/lampp/htdocs/myweb"
    #下一行的文件夹路径要跟上一行的DocumentRoot一样
    <Directory "/opt/lampp/htdocs/myweb">
        Options Indexes
        AllowOverride All
        Order allow,deny
        allow from all
        deny from 192.168.3.33
        DirectoryIndex index.php page1.php page2.php
    </Directory>
</VirtualHost>

        经测试,多站点配置成功起作用!


      下部分,将通过大量的php示例从简单到复杂探索php

猜你喜欢

转载自blog.csdn.net/qq_36546956/article/details/85239021