博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ubuntu apt-get 安装 lnmp
阅读量:6162 次
发布时间:2019-06-21

本文共 6456 字,大约阅读时间需要 21 分钟。

最近在 14.04 LTS 安装 LNMP 一键安装包的时候出现了问题,PHP 5 服务没有启动,只好使用 Ubuntu 官方源进行安装:

Nginx (读音 “engine x”)免费、开源、高效的 HTTP 服务。Nginx 是以稳定著称,功能丰富,结构简单,低资源消耗。本教程将演示如何在ubuntu 14.04 服务器中安装 nginx、PHP5(php-fpm)、MySQL。

----------------------------------------分割线----------------------------------------

Ubuntu 13.04 安装 LAMP\Vsftpd\Webmin\phpMyAdmin 服务及设置

6.4 下的LNMP 生产环境搭建及安装脚本

生产环境实用之LNMP架构的编译安装+SSL加密实现

LNMP 全功能编译安装 for CentOS 6.3笔记

CentOS 6.3 安装LNMP (PHP 5.4,MyySQL5.6)

在部署LNMP的时候遇到Nginx启动失败的2个问题

Ubuntu安装Nginx php5-fpm MySQL(LNMP环境搭建)

----------------------------------------分割线----------------------------------------

1 安装前提示

本文采用的主机名称: server1.example.com ,IP地址: 192.168.0.100。可能与你的主机有所不同,自行修改。

安装中我们使用root账户,先进行用户切换:

sudo su

2 安装 MySQL 5 数据库

安装 MySQL 运行命令:

apt-get install mysql-server mysql-client

安装过程中会询问建立 Root 账户密码,连续输入两次:

New password for the MySQL “root” user: <– 输入你的密码

Repeat password for the MySQL “root” user: <– 再输入一次

Mysqlpasswd

3 安装 Nginx

在安装 Nginx 之前,如果你已经安装 Apache2 先删除在安装 nginx:

service apache2 stop

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

apt-get install nginx

启动 nginx 服务:

service nginx start

试试安装是否成功,在浏览器输入IP或主机地址 (e.g. http://192.168.0.100),如下图所示,说明安装成功:

 

在 Ubuntu 14.04 中默认的根目录为 /usr/share/nginx/html.

4 安装 PHP5

我们必须通过 才能让PHP5正常工作,安装命令:

apt-get install php5-fpm

php-fpm是一个守护进程。

5 配置 nginx

使用Vi打开配置文件/etc/nginx/nginx.conf :

vi /etc/nginx/nginx.conf

配置不是很容易明白,可以参考: 和

我们需要调整工作进程数设置,如下面的值设置:

[...]worker_processes  4;[...]    keepalive_timeout   2;[...]

默认虚拟主机设置文件 /etc/nginx/sites-available/default 按如下设置:

vi /etc/nginx/sites-available/default

[...]server {        listen 80;        listen [::]:80 default_server ipv6only=on;        root /usr/share/nginx/html;        index index.php index.html index.htm;        # Make site accessible from http://localhost/        server_name _;        location / {                # First attempt to serve request as file, then                # as directory, then fall back to displaying a 404.                try_files $uri $uri/ /index.html;                # Uncomment to enable naxsi on this location                # include /etc/nginx/naxsi.rules        }        location /doc/ {                alias /usr/share/doc/;                autoindex on;                allow 127.0.0.1;                allow ::1;                deny all;        }        # Only for nginx-naxsi used with nginx-naxsi-ui : process denied requests        #location /RequestDenied {        #       proxy_pass http://127.0.0.1:8080;        #}        #error_page 404 /404.html;        # redirect server error pages to the static page /50x.html        #        error_page 500 502 503 504 /50x.html;        location = /50x.html {                root /usr/share/nginx/html;        }        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000        #        location ~ .php$ {                try_files $uri =404;                fastcgi_split_path_info ^(.+.php)(/.+)$;                # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini                # With php5-cgi alone:                #fastcgi_pass 127.0.0.1:9000;                # With php5-fpm:                fastcgi_pass unix:/var/run/php5-fpm.sock;                fastcgi_index index.php;                include fastcgi_params;        }        # deny access to .htaccess files, if Apache's document root        # concurs with nginx's one        #        location ~ /.ht {                deny all;        }}[...]

取消同时侦听 IPv4 IPv6 的80端口。

server_name _; 默认主机名 (当然你可以修改,例如修改为: www.example.com).

index主页这一行我们加入 index.php。

PHP 重要配置配置 location ~ .php$ {} 这几行我们需要启动,反注释掉。另外再添加一行:try_files $uri =404。

(其他配置查看 和 ).

保存文件并重新加载 nginx 命令:

service nginx reload

如果加载失败,直接用删除所有配置内容,用上面的信息替换。

 

打开配置文件 /etc/php5/fpm/php.ini… 

vi /etc/php5/fpm/php.ini

… 如下设置 cgi.fix_pathinfo=0:

[...]; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI.  PHP's; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok; what PATH_INFO is.  For more information on PATH_INFO, see the cgi specs.  Setting; this to 1 will cause PHP CGI to fix its paths to conform to the spec.  A setting; of zero causes PHP to behave as before.  Default is 1.  You should fix your scripts; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.; http://php.net/cgi.fix-pathinfocgi.fix_pathinfo=0[...]

重新加载 PHP-FPM:

service php5-fpm reload

现在创建一个探针文件保存在 /usr/share/nginx/html目录下

vi /usr/share/nginx/html/info.php

浏览器下访问探针文件 (e.g. http://192.168.0.100/info.php):

 

正如你看到的 PHP5 正在运行,并且是通过 FPM/FastCGI,向下滚动,我们看看那些模块已经启动,MySQL是没有列出这意味着我们没有MySQL支持PHP5。

6 下面让 PHP5 支持 MySQL

先搜索一下,看看那些模块支持:

apt-cache search php5

然后使用下面的命令安装:

apt-get install php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

APC是一个自由和开放的PHP操作码缓存器缓存和优化PHP的中间代码。这是类似于其他PHP操作码cachers,如eAccelerator、XCache。这是强烈建议有一个安装加速你的PHP页面。

使用下面的命令安装 APC:

apt-get install php-apc

有时安装完php模块,不能重启,要

sevice php5-fprm start

现在重新加载 PHP-FPM:

service php5-fpm reload

刷新 http://192.168.0.100/info.php 向下滚动看看模块是否支持:

7 让 PHP-FPM 使用 TCP 连接

默认情况下 PHP-FPM 侦听的是 /var/run/php5-fpm.sock,要让 PHP-FPM 使用 TCP 连接,需要打开编辑配置文件 /etc/php5/fpm/pool.d/www.conf…

vi /etc/php5/fpm/pool.d/www.conf

按照下面的修改信息

[...];listen = /var/run/php5-fpm.socklisten = 127.0.0.1:9000[...]

这将使php-fpm侦听端口9000上的IP 127.0.0.1(localhost)。确保你使用的端口不在你的系统上使用。

重新加载 PHP-FPM:

service php5-fpm reload

下面通过配置 nginx 修改主机,更改这一行注释掉 fastcgi_pass unix:/var/run/php5-fpm.sock; 这一行反注释 fastcgi_pass 127.0.0.1:9000;,按照下面的设置:

vi /etc/nginx/sites-available/default

[...]        location ~ .php$ {                try_files $uri =404;                fastcgi_split_path_info ^(.+.php)(/.+)$;                # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini                # With php5-cgi alone:                fastcgi_pass 127.0.0.1:9000;                # With php5-fpm:                #fastcgi_pass unix:/var/run/php5-fpm.sock;                fastcgi_index index.php;                include fastcgi_params;        }[...]

重新加载 nginx:

service nginx reload

8 CGI/Perl Scripts

如果你想 Nginx支持 CGI/Perl 脚本服务,可阅读此教程

推荐的方法是使用fcgiwrap(4章)

9 相关参考链接:

  • nginx:
  • nginx Wiki:
  • PHP:
  • PHP-FPM:
  • MySQL:
  • :

 

 转载自()

 

 

 

使用thinkphp3.2開發遇到了如下情況:

Fatal error: Call to undefined function mcrypt_get_block_size()

/etc/php5/mods-available/mcrypt.ini

復制到

/etc/php5/fpm/conf.d/mcrypt.ini

重啓

service php5-fpm restart

service nginx restart

 

 

 

 

 

转载于:https://www.cnblogs.com/yhdsir/p/4821941.html

你可能感兴趣的文章
SQL Server表分区详解
查看>>
STM32启动过程--启动文件--分析
查看>>
垂死挣扎还是涅槃重生 -- Delphi XE5 公布会归来感想
查看>>
淘宝的几个架构图
查看>>
linux后台运行程序
查看>>
Python异步IO --- 轻松管理10k+并发连接
查看>>
Oracle中drop user和drop user cascade的区别
查看>>
登记申请汇总
查看>>
Android Jni调用浅述
查看>>
CodeCombat森林关卡Python代码
查看>>
(二)Spring Boot 起步入门(翻译自Spring Boot官方教程文档)1.5.9.RELEASE
查看>>
Shell基础之-正则表达式
查看>>
JavaScript异步之Generator、async、await
查看>>
讲讲吸顶效果与react-sticky
查看>>
c++面向对象的一些问题1 0
查看>>
售前工程师的成长---一个老员工的经验之谈
查看>>
Get到的优秀博客网址
查看>>
老男孩教育每日一题-第107天-简述你对***的理解,常见的有哪几种?
查看>>
Python学习--time
查看>>
在OSCHINA上的第一篇博文,以后好好学习吧
查看>>