本帖最后由 ZZP 于 2017-6-21 09:39 编辑
一、什么是LNMP
LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。
Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntu、fedora、gentoo等。
Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。
Mysql是一个小型关系型数据库管理系统。
PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。
这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。
二、开始搭建环境开始之前先更新系统源
1、安装mysql数据库
- sudo apt-get install mysql-server
复制代码
说明:安装过程会提示设置root超级用户密码
2、安装nginx和php
- #添加nginx和php的ppa源
- sudo apt-add-repository ppa:nginx/stable
- sudo apt-add-repository ppa:ondrej/php
- sudo apt-get update
-
- #安装nginx和php
- sudo apt-get install nginx
- sudo apt-get install php
复制代码
说明:安装好nginx,打开浏览器输入 http://localhost 看到 Welcome to nginx! 说明安装成功了。 当前默认安装的版本: nginx对应1.12.0, php对应7.1 (通常是向下兼容,根据特殊需要,可以制定版本安装,例如 sudo apt-get install php5.6)
3、安装PHPFastCGI管理器
4.修改配置文件 a、修改php-fpm配置文件
- sudo vim /etc/php/7.1/fpm/pool.d/www.conf
复制代码
- #nginx 和fastcgi通信有2种方式,一种是TCP方式,还有种是UNIX Socket方式
- #默认是socket方式
- listen = /run/php/php7.1-fpm.sock
- #TCP方式
- #listen = 127.0.0.1:9000
复制代码
可以用如下方式检查下配置文件是否有错误
修改完www.conf配置文件,需要重启下 php-fpm7.1
- sudo service php-fpm7.1 restart
复制代码
b、修改nginx配置文件
- sudo vim /etc/nginx/sites-enabled/default
复制代码
================================
#指定localhost默认路径
root /var/www;
# Add index.php to the list if you are using PHP
index index.php index.html index.htm index.nginx-debian.html;
#找到 location ~ \.php$ { ,取消注释,并修改里面内容如下:
location ~ \.php$ {
# include snippets/fastcgi-php.conf;
#
# # With php-fpm (or other unix sockets):
# socket 方式 必须和上面socket的listen路径一样
fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
# # With php-cgi (or other tcp sockets):
# TCP方式
# fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
}
====================================
说明:
1)特别注意红色标记部分为修改或添加部分;
2)不管用那种方式,通信方式一定要对应。
修改重启下 nginx
- sudo service nginx restart
复制代码
nginx 检查配置文件命令是
说明:可以根据自己项目环境进行配置
5、测试 php 我们在/var/www目录下,新建个index.php测试下看看
解决问题: 此时我们发现,在浏览器里边测试localhost/index.php显示空白,经过百度找到解决方案如下: 由于nginx与PHP-fpm之间的一个小bug,会导致这样的现象: 网站中的静态页面 *.html 都能正常访问,而 *.php 文件虽然会返回200状态码, 但实际输出给浏览器的页面内容却是空白。 简而言之,原因是nginx无法正确的将 *.php 文件的地址传递给php-fpm去解析,相当于php-fpm接受到了请求,但这请求却指向一个不存在的文件,于是返回空结果。 为了解决这个问题,需要改动nginx默认的fastcgiparams配置文件:
- sudo vim /etc/nginx/fastcgi_params
复制代码
在文件的最后增加两行:
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
- fastcgi_param PATH_INFO $fastcgi_script_name;
复制代码
然后重启Firefly,重新访问localhost/index.php即可显示如图:
6、显示上图说明已配置成功,默认安装php缺少很多拓展库,可以根据需要自行安装 a、查看PHP已安装的拓展库[php -m]: - firefly@firefly:~$ php -m
- [PHP Modules]
- calendar
- Core
- ctype
- date
- exif
- fileinfo
- ...
-
复制代码
b、安装拓展库,例如php-mysql - firefly@firefly:~$ php apt-get install php-mysql
复制代码
7、安装phpMyAdmin phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。
a、安装phpmyadmin之前,先安装mysql,搭建LNMP环境时候已经安装过mysql可以跳过此步骤:
- $ sudo apt-get install mysql-server
- $ sudo apt-get install mysql-client
复制代码
说明:安装过程中需要输入root用户密码
b、安装phpmyadmin
- $ sudo apt-get install phpmyadmin
- $ sudo apt-get install php-mbstring
- $ sudo apt-get install php-gettext
复制代码
安装时选择自动配置数据库,输入数据库root帐号的密码
c、建立/var/www 下的软链接
- $ sudo ln -s /usr/share/phpmyadmin /var/www/phpmyadmin
复制代码
配置成功后可通过 localhost/phpmyadmin 进行访问,默认帐号为root,密码为安装phpmyadmin时设置的初始密码
说明:如果web服务器是apache,则需要修改PHP配置文件
[附录] 一些引用和常见问题 1、安装lnmp环境
http://www.cnblogs.com/ddling/p/5906109.html
2、nginx+php-fpm配置后页面显示空白的解决方法
http://blog.csdn.net/feiniao8651/article/details/52768911
3、重启 php-fpm7.1用这个:sudo service /etc/init.d/php-fpm7.1 restart
不知为何报错:Failed to restart etc-init.d-php\x2dfpm7.1.service.mount: Unit etc-init.d-php\x2dfpm7.1.service.mount not found.
解决,改用重启:/etc/init.d/php7.1-fpm restart
4、phpmyadmin 提示:The mbstring extension is missing. Please check your PHP configuration.
https://jingyan.baidu.com/article/c14654139b65ae0bfcfc4cf8.html
php -m 查看,没有对应模块
sudo apt-get install php7.1-mbstring 还需要手动添加扩展
5、phpmyadmin 提示:
The mysqli extension is missing. Please check your PHP configuration. See our documentation for more information.
http://www.cnblogs.com/pualus/p/6829644.html
sudo apt-get install php7.1-mysql 直接解决
|