Vagrant搭建虚拟化开发环境(四)PHP框架配置

本篇开启PHP框架配置(以ThinkPHP5为例)

上一篇文章地址:https://www.cnblogs.com/phperpxy/p/10338427.html

配置nginx虚拟主机

cd /etc/nginx/conf.d #nginx存放虚拟主机配置文件的地方
sudo touch tp5.conf  #新建一个配置文件
sudo vim tp5.conf    #编辑
sudo service nginx restart #重启nginx

首先说明下我配置的共享目录是挂载到这个目录下的/home/www/;下面配置文件有些注释 不要把注释复制进去了

server{
   server_name tp5.aaa.com;    #指定一个访问域名                 
   root /home/www/tp5/public;  #指定Web运行目录,tp5入口文件是在public目录下面
   index index.php index.html;  #默认访问的文件
   location / {            #下面这一段是将请求转发,所有的文件都转发到index.php,因为PHP的框架基本上是单一入口
    if ( -f $request_filename ){
       break;
    }
    if ( !-e $request_filename ){
       rewrite ^/(.*)$ /index.php/$1 last;
       break;
    }
   }

   location ~ \.php {      #下面这一段是配置PATH_INFO方式访问,通过传递一个变量来给框架解析 比如通过article/id/1 这样路径得到文章id
        set $script $uri;
            set $path_info "";
            if ($uri ~ "^(.+\.php)(/.+)") {
                set $script $1;
                set $path_info $2;
            }
            include   fastcgi_params;
            fastcgi_index    index.php?IF_REWRITE=1; #隐藏入口文件index.php
            fastcgi_pass     127.0.0.1:9000;
            fastcgi_param    PATH_INFO    $path_info;
            fastcgi_param    SCRIPT_FILENAME    $document_root$fastcgi_script_name;
            fastcgi_param    SCRIPT_NAME    $script;
            try_files $uri =404;
   }
}

编辑本机的hosts文件,添加一行,我是Win7系统这个文件的位置C:\Windows\System32\drivers\etc

192.168.33.10   tp5.aaa.com

直接访问会出现502错误

#支持nginx fastcgi
sudo apt-get install php5-cgi php5-fpm
#监听方式修改成9000端口默认sock模式
cd /etc/php5/fpm/pool.d/
vim www.conf
#找到下面这行将注释掉;代表注释,在添加一行后保存退出
;listen = /var/run/php5-fpm.sock
listen = 127.0.0.1:9000
#上面的东西具体含义是修改php-fpm监听方式,之前的方式不稳定
#科普下nginx没有处理php文件的能力,它会把php的文件转发到php-fpm处理,处理完在返回给nginx
sudo service php5-fpm restart  #重启php-fpm 

再次访问OK

配置Apache虚拟主机

cd /etc/apache2/sites-enabled/  #apache配置文件目录
sudo touch tp5.conf #新建一个配置文件
sudo vim apache2.conf  #修改apache配置文件
sudo service apache2 restart #重启

配置如下

<VirtualHost *:8888>    #监听端口
        ServerName tp5.aaa.com   #访问域名
        DocumentRoot /home/www/tp5/public  #web运行目录
        ErrorLog ${APACHE_LOG_DIR}/error.log     #错误日志文件位置
        CustomLog ${APACHE_LOG_DIR}/access.log combined #访问日志
</VirtualHost>

Apache默认也是无法处理php文件,它需要一个模块支持

#安装支持apache2的php模块
sudo apt-get install libapache2-mod-php5
#开启rewrite功能--隐藏入口文件--apache隐藏路口文件是通过重写。htaccess文件,具体看tp5手册 搜索URL重写
sudo a2enmod rewrite 

这时候访问会出现403错误,403一般是拒绝访问

#编辑配置文件
cd /etc/apache2 vim apache2.conf
#找到下面这行东西
<Directory /> Options FollowSymLinks AllowOverride None #修改成AllowOverride ALL #Require all denied #把这行屏蔽掉,拒绝一切链接 </Directory>
#保存重启apache

这时候访问http://tp5.aaa.com:8888  OK 大功告成!

猜你喜欢

转载自www.cnblogs.com/phperpxy/p/10338940.html