前几天搞了个腾讯云的服务器,想用来学习学习redis,所以在服务器上手动安装了lnmp环境。现在是给大家分享一下安装步骤以及安装中遇到的问题和解决方法。
安装步骤
一、安装nginx和php
1 2 3 4 5 6 7 8 |
#添加nginx和php的ppa源 sudo apt-add-repository ppa:nginx/stable sudo apt-add-repository ppa:ondrej/php sudo apt update #安装nginx sudo apt install nginx #安装php,我这里安装的是php7.0,如需安装其他版本只需要修改版本号即可 sudo apt install php7.0 |
执行完上述步骤安装nginx之后,打开浏览器输入你服务器的ip(例:http://xx.xx.xx.xx)访问,看到如下页面就说明nginx安装成功了。关于上述中的什么是ppa源,请参考我这篇文章:什么是Ubuntu中的PPA源?

二、安装mysql环境
ubuntu安装mysql的话很简单,只需一行代码即可安装mysql:
1 |
sudo apt install mysql-server |
三、安装PHPFastCGI管理器
1 2 |
#安装phpfastcgi管理器,这里版本号应该和第一步中安装的php版本一致,我这里还是php7.0 sudo apt install php7.0-fpm |
四、修改phpfastcgi和nginx的配置文件
使用vim或vi编辑phpfastcgi配置文件:
1 |
sudo vim /etc/php/7.0/fpm/pool.d/www.conf |
这里要说明一下,nginx和fastcgi通信有两种方式,一种是TCP方式,另一种是UNIX Socket方式,并且默认是socket方式。
1 2 3 4 |
#默认的是socket方式 listen = /run/php/php7.0-fpm.sock #你也可以改成TCP方式 #listen = 127.0.0.1:9000 |
你可以使用如下方式来检查一下所写的配置文件是否有错误:
1 |
sudo php7.0-fpm -t |
修改完fpm配置文件后,重启一下php7.0-fpm(养成修改完配置文件重启服务的好习惯):
1 |
sudo service php7.0-fpm restart (/etc/init.d/php7.0-fpm restart) |
修改nginx配置文件:
1 |
sudo vim /etc/nginx/sites-enabled/default |
1 2 3 4 5 6 7 8 |
root/var/www/html # Add index.php to the list if you are using PHP index index.php index.html index.htm index.nginx-debian.html; # 找到 location ~ \.php$ { 修改里面 # socket 方式 必须和上面socket的listen路径一样 fastcgi_pass unix:/run/php/php7.0-fpm.sock; # TCP方式 #fastcgi_pass 127.0.0.1:9000; |
特别说明:不论使用哪种方式,通信方式一定要对应。
修改完成后重启一下nginx:
1 |
sudo service nginx restart |
检查配置文件命令是:
1 |
sudo nginx -t |
正常的话到这里lnmp环境就配置完成了。
遇到的问题及解决方法
在配置完环境后,我在根目录/var/www目录下新建一个index.php文件之后,访问的时候页面是空白的。原因是nginx无法解析php文件,虽然状态码为200,但也没有nginx错误日志。这种问题解决方法如下:
修改nginx配置文件为:
1 2 3 4 5 6 |
location ~.php${ fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root $fastcgi_script_name; include fastcgi_params; } |
修改完重启nginx和php7.0-fpm即可。

另外提供一份php常用的扩展库:
php7.0 php7.0-fpm php7.0-mysql php7.0-sqlite3
php7.0-bcmath php7.0-gd php7.0-odbc php7.0-sybase
php7.0-bz2 php7.0-gmp php7.0-opcache php7.0-tidy
php7.0-cgi php7.0-imap php7.0-pgsql php7.0-xml
php7.0-cli php7.0-interbase php7.0-phpdbg php7.0-xmlrpc
php7.0-common php7.0-intl php7.0-pspell php7.0-xsl
php7.0-curl php7.0-json php7.0-readline php7.0-zip
php7.0-dba php7.0-ldap php7.0-recode
php7.0-dev php7.0-mbstring php7.0-snmp
php7.0-enchant php7.0-mcrypt php7.0-soap
挺好
@ROBIN 好个蛇皮
这还是一条测试的
这是一条测试评论