最近自己想搭建一个博客平台,采取的技术方案当然是LNMP。网上关于LNMP的教程有很多,但很多都不是最新版本的,有时候会有很多莫名奇怪的错误。经过自己的一番摸索,终于配置成功。
如果直接使用apt-get
安装MySQL,会发现安装的是MySQL5.6,而且还附带了像Apache服务器之类的额外包,所以还是需要手动安装,但也没必要编译安装,直接去官网下deb包安装即可。
这里有一个坑,安装好MySQL后登陆可能会出现MySQL ERROR 1698 (28000)
错误。
~$ mysql -u root -p
Enter password:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
这个问题的解决可以参看MySQL ERROR 1698 (28000) 错误。
PHP7采用编译安装。先做准备工作,配置好环境。
~$ sudo apt-get update
~$ sudo apt-get install openssl libssl-dev curl libcurl4-gnutls-dev libjpeg-dev libxml2-dev libpng-dev libmcrypt-dev libreadline6 libreadline6-dev libpcre3 libpcre3-dev zlib1g-dev
到官网下载源码,解压。
~$ ./configure --prefix=/usr/local/php7 --with-config-file-path=/usr/local/php7/etc --with-mcrypt=/usr/include --enable-mysqlnd --with-iconv --with-zlib --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-gettext --with-curl --with-jpeg-dir --with-mysqli --enable-embedded-mysqli --with-pdo-mysql
其中--prefix
是你想把PHP7安装到的地方,按惯例是/usr/local/php7
。在这之后就可以开始编译了。
~$ make
~$ make test
~$ sudo make install
~$ sudo cp /usr/local/php7/bin/ph* /usr/bin/
注意一下make test
有没有出现问题,如果问题很少(一两个)的话就不管了(反正我是不管了,懒得去查)。之后配置PHP7。
~$ cd /usr/local/php7/etc/
~$ sudo cp php-fpm.conf.default php-fpm
~$ cd php-fpm.d
~$ sudo cp www.conf.default www.conf
记得修改www.conf
里的用户名和组名(23、24行)。之后测试一下PHP安装成功与否。
~$ touch test.php
#文件内容如下
#<?php
# echo phpinfo();
#
~$ php test.php
如果出现了正常的输出就说明PHP7已经成功安装了。
Nginx1.9.9同样采用编译安装。到官网下Nginx的源码,此外Nginx1.9.9的编译需要zlib的源码,还需要去zlib官网下zlib的源码。将zlib的源码解压到/usr/local/zlib-1.2.8
。
~$ ./configure --prefix=/usr/local/nginx --with-ipv6 --with-http_dav_module --with-http_gzip_static_module --with-http_realip_module --with-http_ssl_module --with-pcre --with-zlib=/usr/local/zlib-1.2.8
有关Nginx的编译参数,可以参看Nginx编译参数详解。然后编译并且安装。
~$ make
~$ sudo make install
安装好后开始配置Nginx。由于只是刚开始尝试Nginx,所以只是简单配置一下,修改/usr/local/nginx/conf/nginx.conf
。
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
include fastcgi_params;
}
在/usr/local/nginx/html
下新建index.php
<?php
echo phpinfo();
之后启动php-fpm和Nginx。
~$ sudo /usr/local/php7/sbin/php-fpm -R
~$ sudo /usr/local/nginx/sbin/nginx
访问localhost
和localhost/index.php
,如下图
搞定!