Linux.中国 - 开源社区

 找回密码
 骑士注册

QQ登录

微博登录


在 Ubuntu 16.04 为 Nginx 服务器安装 LEMP 环境(MariaDB,PHP 7 并支持 HTTP 2.0)

2016-7-8 09:56    评论: 5 收藏: 3    

第 3 步:安装 PHP 7 解释器

通过 FastCGI 进程管理程序的协助,Nginx 能够使用 PHP 动态语言解释器生成动态网络内容。FastCGI 能够从 Ubuntu 官方仓库中安装 php-fpm 二进制包来获取。

9、 在你的服务器控制台里输入下面的命令来获取 PHP7.0 和扩展包,这能够让 PHP 与 Nginx 网络服务进程通信。

$ sudo apt install php7.0 php7.0-fpm 

安装 PHP 7 以及 PHP-FPM

10、 当 PHP7.0 解释器安装成功后,输入以下命令启动或者检查 php7.0-fpm 守护进程:

$ sudo systemctl start php7.0-fpm
$ sudo systemctl status php7.0-fpm

开启、验证 php-fpm 服务

11、 当前的 Nginx 配置文件已经配置了使用 PHP FPM 来提供动态内容。

下面给出的这部分服务器配置让 Nginx 能够使用 PHP 解释器,所以不需要对 Nginx 配置文件作别的修改。

location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        }

下面是的截图是 Nginx 默认配置文件的内容。你可能需要对其中的代码进行修改或者取消注释。

启用 PHP FastCGI

12、 要测试启用了 PHP-FPM 的 Nginx 服务器,用下面的命令创建一个 PHP 测试配置文件 info.php。接着用 http://IP_or domain/info.php 这个网址来查看配置。

$ sudo su -c 'echo "<?php phpinfo(); ?>" |tee /var/www/html/info.php'

创建 PHP Info 文件

检查 PHP FastCGI 的信息

检查服务器是否宣告支持 HTTP/2.0 协议,定位到 PHP 变量区域中的 $_SERVER[‘SERVER_PROTOCOL’] 就像下面这张截图一样。

检查 HTTP2.0 协议信息

13、 为了安装其它的 PHP7.0 模块,使用 apt search php7.0 命令查找 php 的模块然后安装。

如果你想要 安装 WordPress 或者别的 CMS,需要安装以下的 PHP 模块,这些模块迟早有用。

$ sudo apt install php7.0-mcrypt php7.0-mbstring

安装 PHP 7 模块

14、 要注册这些额外的 PHP 模块,输入下面的命令重启 PHP-FPM 守护进程。

$ sudo systemctl restart php7.0-fpm.service
查看其它分页:

发表评论


最新评论

我也要发表评论

青莲居士 [Chrome 51.0|GNU/Linux] 2016-8-5 13:26
1
青莲居士 [Chrome 51.0|GNU/Linux] 发表于 2016-8-4 15:47 的评论:
亲测不能完成搭建。在第二页新建一个default文件,内容完全复制于本页例子,将server_name全部改成本机ip,我尝试重启了一次nginx,结果重启失败。
-- 启动结果为“done”。
8月 04 15:43:50 PHOENIX sudo[14530]: pam_unix(sudo:session): session closed for user root
8月 04 15:43:54 PHOENIX sudo[14551]:      lzh : TTY=pts/4 ; PWD=/etc/nginx/sites-available ; USER=roo
8月 04 15:43:54 PHOENIX sudo[14551]: pam_unix(sudo:session): session opened for user root by (uid=0)
8月 04 15:43:54 PHOENIX systemd[1]: Starting A high performance web server and a reverse proxy server
-- Subject: nginx.service 单元已开始启动
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- nginx.service 单元已开始启动。
8月 04 15:43:54 PHOENIX nginx[14557]: nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address alread
8月 04 15:43:54 PHOENIX nginx[14557]: nginx: [emerg] bind() to [::]:443 failed (98: Address already i
8月 04 15:43:54 PHOENIX nginx[14557]: nginx: [emerg] bind() to 0.
2
linux [Chrome 52.0|Mac 10.11] 发表于 2016-8-4 21:22 的评论:
你这里的错误是,你的443 端口已经被占用了。
谢谢,找到原因了,vmware-hostd进程占用了443端口,找了一天也没找到ubuntu中关闭这个进程自启动的方法,于是想让机器关闭vmware-workstation-server自启动,现在越找越困惑,ubuntu16怎么有的服务用systemctl disable管理,有的用update-rc.d 管理?我用update-rc.d关闭了vmware-workstation-server自启动后,再也不能启动这个服务了,无论是用update-rc.d还是sysv-rc-conf设置。真头痛啊。
回复
linux [Chrome 52.0|Mac 10.11] 2016-8-4 21:22
1
青莲居士 [Chrome 51.0|GNU/Linux] 发表于 2016-8-4 15:47 的评论:
亲测不能完成搭建。在第二页新建一个default文件,内容完全复制于本页例子,将server_name全部改成本机ip,我尝试重启了一次nginx,结果重启失败。
-- 启动结果为“done”。
8月 04 15:43:50 PHOENIX sudo[14530]: pam_unix(sudo:session): session closed for user root
8月 04 15:43:54 PHOENIX sudo[14551]:      lzh : TTY=pts/4 ; PWD=/etc/nginx/sites-available ; USER=roo
8月 04 15:43:54 PHOENIX sudo[14551]: pam_unix(sudo:session): session opened for user root by (uid=0)
8月 04 15:43:54 PHOENIX systemd[1]: Starting A high performance web server and a reverse proxy server
-- Subject: nginx.service 单元已开始启动
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- nginx.service 单元已开始启动。
8月 04 15:43:54 PHOENIX nginx[14557]: nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address alread
8月 04 15:43:54 PHOENIX nginx[14557]: nginx: [emerg] bind() to [::]:443 failed (98: Address already i
8月 04 15:43:54 PHOENIX nginx[14557]: nginx: [emerg] bind() to 0.
你这里的错误是,你的443 端口已经被占用了。
1 回复
青莲居士 [Chrome 51.0|GNU/Linux] 2016-8-4 15:50
1
青莲居士 [Chrome 51.0|GNU/Linux] 发表于 2016-8-4 15:47 的评论:
亲测不能完成搭建。在第二页新建一个default文件,内容完全复制于本页例子,将server_name全部改成本机ip,我尝试重启了一次nginx,结果重启失败。
-- 启动结果为“done”。
8月 04 15:43:50 PHOENIX sudo[14530]: pam_unix(sudo:session): session closed for user root
8月 04 15:43:54 PHOENIX sudo[14551]:      lzh : TTY=pts/4 ; PWD=/etc/nginx/sites-available ; USER=roo
8月 04 15:43:54 PHOENIX sudo[14551]: pam_unix(sudo:session): session opened for user root by (uid=0)
8月 04 15:43:54 PHOENIX systemd[1]: Starting A high performance web server and a reverse proxy server
-- Subject: nginx.service 单元已开始启动
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- nginx.service 单元已开始启动。
8月 04 15:43:54 PHOENIX nginx[14557]: nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address alread
8月 04 15:43:54 PHOENIX nginx[14557]: nginx: [emerg] bind() to [::]:443 failed (98: Address already i
8月 04 15:43:54 PHOENIX nginx[14557]: nginx: [emerg] bind() to 0.
删除新建的default后将备份的此文件恢复,nginx服务又可重新启动。
1 回复
青莲居士 [Chrome 51.0|GNU/Linux] 2016-8-4 15:49
表示对default文件不理解,
ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
这一行照着例子复制可以?
3 回复
青莲居士 [Chrome 51.0|GNU/Linux] 2016-8-4 15:47
亲测不能完成搭建。在第二页新建一个default文件,内容完全复制于本页例子,将server_name全部改成本机ip,我尝试重启了一次nginx,结果重启失败。
-- 启动结果为“done”。
8月 04 15:43:50 PHOENIX sudo[14530]: pam_unix(sudo:session): session closed for user root
8月 04 15:43:54 PHOENIX sudo[14551]:      lzh : TTY=pts/4 ; PWD=/etc/nginx/sites-available ; USER=roo
8月 04 15:43:54 PHOENIX sudo[14551]: pam_unix(sudo:session): session opened for user root by (uid=0)
8月 04 15:43:54 PHOENIX systemd[1]: Starting A high performance web server and a reverse proxy server
-- Subject: nginx.service 单元已开始启动
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- nginx.service 单元已开始启动。
8月 04 15:43:54 PHOENIX nginx[14557]: nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address alread
8月 04 15:43:54 PHOENIX nginx[14557]: nginx: [emerg] bind() to [::]:443 failed (98: Address already i
8月 04 15:43:54 PHOENIX nginx[14557]: nginx: [emerg] bind() to 0.
4 回复

热点评论

青莲居士 [Chrome 51.0|GNU/Linux] 2016-8-4 15:47
亲测不能完成搭建。在第二页新建一个default文件,内容完全复制于本页例子,将server_name全部改成本机ip,我尝试重启了一次nginx,结果重启失败。
-- 启动结果为“done”。
8月 04 15:43:50 PHOENIX sudo[14530]: pam_unix(sudo:session): session closed for user root
8月 04 15:43:54 PHOENIX sudo[14551]:      lzh : TTY=pts/4 ; PWD=/etc/nginx/sites-available ; USER=roo
8月 04 15:43:54 PHOENIX sudo[14551]: pam_unix(sudo:session): session opened for user root by (uid=0)
8月 04 15:43:54 PHOENIX systemd[1]: Starting A high performance web server and a reverse proxy server
-- Subject: nginx.service 单元已开始启动
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- nginx.service 单元已开始启动。
8月 04 15:43:54 PHOENIX nginx[14557]: nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address alread
8月 04 15:43:54 PHOENIX nginx[14557]: nginx: [emerg] bind() to [::]:443 failed (98: Address already i
8月 04 15:43:54 PHOENIX nginx[14557]: nginx: [emerg] bind() to 0.
4
青莲居士 [Chrome 51.0|GNU/Linux] 2016-8-4 15:49
表示对default文件不理解,
ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
这一行照着例子复制可以?
3
linux [Chrome 52.0|Mac 10.11] 2016-8-4 21:22
你这里的错误是,你的443 端口已经被占用了。
1
青莲居士 [Chrome 51.0|GNU/Linux] 2016-8-4 15:50
删除新建的default后将备份的此文件恢复,nginx服务又可重新启动。
1
返回顶部

分享到微信朋友圈

打开微信,点击底部的“发现”,
使用“扫一扫”将网页分享至朋友圈。