linux之ubuntu16.04换掉apache安装Nginx

网站一直跑的是apache,觉得卡卡的。换nginx玩玩喽。nginx还是很强大的,感觉速度有些提升,奥力给!!!

已经安装了Apache2的话,要先删除再安装nginx!

删除Apache2

service apache2 stop
update-rc.d -f apache2 remove
apt-get remove apache2

安装nginx

apt-get -y install nginx

service nginx start

输入ip或域名就能看到 Welcome to Nginx!

安装 PHP 7

我们可以通过使nginx的PHP工作PHP-FPM(PHP-FPM(FastCGI进程管理器)是为任何规模的网站,尤其是繁忙的网站有用的一些附加功能的替代PHP的FastCGI实现),我们安装如下:

apt-get -y install php7.0-fpm

配置 nginx

虚拟主机服务器{}容器定义。默认的虚拟主机是在文件中定义的/etc/nginx/sites-available/default

将index index.html index.htm index.nginx-debian.html;

改成index index.html index.htm index.php;

server_name _;这里改成你的主机名,一般是域名。例如:server_name zerlong.com;

找到下边这一段,把注释去掉

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ \.php$ {
                include snippets/fastcgi-php.conf;

                # With php7.0-cgi alone:
                #fastcgi_pass 127.0.0.1:9000;
                # With php7.0-fpm:
                fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        }

注意上边fastcgi_pass只能用一个,不然会出错类似”fastcgi_pass” directive is duplicate in /etc/nginx/sites-enabled/default

保存完重新加载nginx:service nginx reload

 编辑/etc/php/7.0/fpm/php.ini   设置 cgi.fix_pathinfo=0

service php7.0-fpm reload

建立个探针文件访问一下能出信息了,<?php phpinfo(); ?>

linux之ubuntu16.04换掉apache安装Nginx

 MySQL 获得 PHP 7支持

使用下面的命令安装:

apt-get -y install php7.0-mysql php7.0-curl php7.0-gd php7.0-intl php-pear php-imagick php7.0-imap php7.0-mcrypt php-memcache  php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl php7.0-mbstring php-gettext

APCu是随PHP7 PHP Opcache模块的扩展,它增加了一些兼容性功能的支持APC缓存(例如WordPress的插件缓存)软件。

APCu可以安装如下:

apt-get -y install php-apcu

重新加载 PHP-FPM:

service php7.0-fpm reload

好了,跑起来吧网站!

附送nginx+https SSL配置

同时启用HTTP和HTTPS

server {
    listen              80;
    listen              443 ssl;
    server_name         zerlong.com;    #最好写绝对路径,你懂的
    ssl_certificate     zerlong.com.crt;
    ssl_certificate_key zerlong.com.key;
    ...
}

自动跳转https

server {
		listen	 80;
		server_name zerlong.com;
		rewrite ^ https://$http_host$request_uri? permanent;	# force redirect http to https
		#return 301 https://$http_host$request_uri;
	}

server {
		listen 443 ssl;

		ssl_certificate /etc/nginx/ssl/nginx.crt;
		ssl_certificate_key /etc/nginx/ssl/nginx.key;

		server_name zerlong.com;
		#禁止在header中出现服务器版本,防止黑客利用版本漏洞攻击
		server_tokens off;
		#如果是全站 HTTPS 并且不考虑 HTTP 的话,可以加入 HSTS 告诉你的浏览器本网站全站加密,并且强制用HTTPS 访问
		#add_header Strict-Transport-Security "max-age=31536000; includeSubdomains";
		# ......
		fastcgi_param   HTTPS			   on;
		fastcgi_param   HTTP_SCHEME		 https;

	}

wordpress的nginx伪静态规则

在站点配置文件的server   { } 大括号里面添加下面的代码,然后重启nginx

location / {
if (-f $request_filename/index.html){
                rewrite (.*) $1/index.html break;
        }
if (-f $request_filename/index.php){
                rewrite (.*) $1/index.php;
        }
if (!-f $request_filename){
                rewrite (.*) /index.php;
        }
}

 

转载请注明出处与链接,如有其他疑问或交流,请加QQ交流群或关注公众号加我微信

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注