很早之前,我把自己的vps从apache切换到了nginx,那时候是因为vps性能不好,能省就省。

后来经常遇到php5-fpm挂掉等各种情况导致跑php程序经常会502,于是,从去年开始,我开始将我的php站点逐步切换至apache,并使用nginx进行反代。

这时候,其实很想吐槽php,还得弄个apache来跑….

后来,当开始反代一些laravel写的网站的时候,遇到了一些坑,所以写这篇文章记录下。

Apache配置

假设我们这里用9000端口在apache监听了一个vhost,具体配置就不写了XD

Nginx配置

http的vhost配置:

如果是https反代,我们需要进行额外的配置:

注意新增的几个ssl相关的配置来告诉Laravel是ssl访问哦,同时,我们还要配置下Laravel。

Laravel 配置

以下配置以Laravel5.2为例。

在 app\Providers\RouteServiceProvider.php 中,我们需要修改以下函数:

至此,反代的laravel app中,通过assets(),url()等函数产生的url都会是https.

 

安装Nginx
Debian官方源里面的Nginx比较老,所以我们用Dotdeb源来安装Nginx。
添加Dotdeb源,使用vim打开 /etc/apt/sources.list:

vim /etc/apt/sources.list

添加如下两行:

deb http://packages.dotdeb.org wheezy all

deb-src http://packages.dotdeb.org wheezy all

导入GnuPG key:

wget http://www.dotdeb.org/dotdeb.gpg cat dotdeb.gpg | apt-key add –

然后安装Nginx

apt-get install -y nginx-full

继续阅读

WordPress

最近一年换了挺多VPS,连Linux发行版也试过不少,当然,也从Apache转到了Nginx。刚刚用Nginx的时候,发现了个问题,WordPress后台主题管理,只有一个主题,之前安装的主题都不见了,Google之,原来是php的scandir函数被禁用了。

解决方法如下:

首先找到php.in文件,可以用find命令搜索下。

然后编辑:

vim php.ini
找到disable_functions这行,然后将
disable_functions = passthru,exec,system,scandir,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server
里面的scandir删除即可,最后保存并重启php:
/etc/init.d/php-fpm restart