本篇开启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.socklisten = 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/apache2vim apache2.conf
#找到下面这行东西<Directory /> ???????Options FollowSymLinks ???????AllowOverride None #修改成AllowOverride ALL ???????#Require all denied #把这行屏蔽掉,拒绝一切链接</Directory>
#保存重启apache
这时候访问http://tp5.aaa.com:8888 OK 大功告成!
Vagrant搭建虚拟化开发环境(四)PHP框架配置
原文地址:https://www.cnblogs.com/phperpxy/p/10338940.html