LNMP搭建流程
编译和安装
tar xf nginx-1.10.2.tar.gz -C /usr/src/
cd /usr/src/nginx-1.10.2
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make && make install
做Nginx软链接
ln -s /usr/local/nginx/sbin/* /usr/local/sbin
首先搭建Nginx服务
用本地yum仓库安装依赖包
yum install -y pcre-devel openssl-devel gcc gcc-c++ make automake
下载软件源码包
wget -q http://nginx.org/download/nginx-1.10.2.tar.gz
没有wget命令需要手动安装
yum -y install wget

创建程序用户
useradd -s /sbin/nologin -M www

编译和安装
tar xf nginx-1.10.2.tar.gz -C /usr/src/
cd /usr/src/nginx-1.10.2
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make && make install
做Nginx软链接
ln -s /usr/local/nginx/sbin/* /usr/local/sbin

修改Nginx配置文件
cd /usr/local/nginx/conf
egrep -v "#|^$" nginx.conf.default > nginx.conf

特别提示
因为安装PHP需要MySQL的安装环境,所以需要先安装MySQL,不然PHP编译会报错
如何没有安装MySQL需要把--with-mysql=/usr/local/mysql改成--with-mysql=mysqlnd
MySQL二进制搭建方法
创建程序用户
useradd -s /sbin/nologin -M mysql

获取MySQL二进制软件包
链接:https://pan.baidu.com/s/1dzCH1GsOiMR3i_omOZliHA
提取码:u6h8
二进制方式安装MySQL
- [root@localhost ~]# tar xf mysql-5.5.32-linux2.6-x86_64.tar.gz -C /usr/local/
- [root@localhost ~]# cd /usr/local/
- [root@localhost local]# mv mysql-5.5.32-linux2.6-x86_64 mysql-5.5.32
- [root@localhost local]# ln -s mysql-5.5.32 mysql
- [root@localhost local]# ls
- bin games lib libexec mysql-5.5.32 nginx-1.10.2 share
- etc include lib64 mysql nginx sbin src
![]()
- [root@localhost local]# cd /usr/local/mysql
- [root@localhost mysql]# ls
- bin data include lib mysql-test scripts sql-bench
- COPYING docs INSTALL-BINARY man README share support-files

初始化MySQL配置文件my.cnf
命令如下:
- [root@localhost ~]# cd /usr/local/mysql
- [root@localhost mysql]# ls -l support-files/*.cnf
- -rw-r--r--. 1 7161 wheel 4691 Jun 19 2013 support-files/my-huge.cnf
- -rw-r--r--. 1 7161 wheel 19759 Jun 19 2013 support-files/my-innodb-heavy-4G.cnf
- -rw-r--r--. 1 7161 wheel 4665 Jun 19 2013 support-files/my-large.cnf
- -rw-r--r--. 1 7161 wheel 4676 Jun 19 2013 support-files/my-medium.cnf
- -rw-r--r--. 1 7161 wheel 2840 Jun 19 2013 support-files/my-small.cnf

提示:
- support-files下有my.cnf的各种配置样例。
- 使用cp全路径/bin/cp,可实现拷贝而不出现替换提示,即如果有重名文件会直接覆盖
- 本例为测试安装环境,因此选择参数配置小的my-small.cnf配置模版,如果是生产环境可以根据硬件选择更高级的配置文件,上述配置文件模版对硬件的要求从低到高依次为:
- my-medium.cnf (最低)
- my-small.cnf
- my-large.cnf
- my-huge.cnf
- my-innodb-heavy-4G.cnf(最高)
(5)初始化MySQL数据库文件
初始化命令如下:
- [root@localhost ~]# mkdir -p /usr/local/mysql/data #建立MySQL数据文件目录
- [root@localhost ~]# chown -R mysql.mysql /usr/local/mysql #授权mysql用户管理MySQL的安装目录
- [root@localhost ~]# yum -y install libaio #光盘源安装依赖包,否则下一步的编译会报错
- [root@localhost ~]# /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
- #初始化MySQL数据库文件,会有很多信息提示,如果没有ERROR级别的错误,会有两个OK的字样,表示初始化成功,否则就要解决初始化的问题

配置并启动MySQL数据库
(1)设置MySQL启动脚本,命令如下:
- [root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld
- #拷贝MySQL启动脚本到MySQL的命令路径
- [root@localhost mysql]# chmod +x /etc/init.d/mysqld
- #使脚本可执行
(2)MySQL二进制默认安装路径是/usr/local/mysql,启动脚本里是/usr/local/mysql。如果安装路径不同,那么脚本里路径等都需要替换
(3)启动MySQL数据库,命令如下:
- [root@localhost mysql]# /etc/init.d/mysqld start
- Starting MySQL.. SUCCESS!
ss -antup | grep mysql
-
设置MySQL开机自启动,命令如下:
- [root@localhost mysql]# chkconfig --add mysqld
- [root@localhost mysql]# chkconfig mysqld on
- [root@localhost mysql]# chkconfig --list mysqld
配置mysql命令的全局使用路径,命令如下:
- [root@localhost mysql]# ln -s /usr/local/mysql/bin/* /usr/local/bin/
- [root@localhost mysql]# which mysqladmin
- /usr/local/bin/mysqladmin
登陆MySQL测试,命令如下
MySQL安全配置
[root@localhost mysql]# mysqladmin -u root password '123123'
查看mysql ,ngnix 开启情况:
ss -antup | grep -E "80|3306"

测试访问Nginx及MySQL是否OK,命令如下:
[root@localhost ~]# wget 127.0.0.1

[root@localhost ~]# mysql -uroot -p #测试MySQL

检查安装PHP所需的lib库
- [root@localhost ~]# yum -y install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel
- [root@localhost ~]# yum -y install freetype-devel libpng-devel gd libcurl-devel libxslt-devel
安装yum无法安装的libiconv库
[root@localhost ~]# tar xf libiconv-1.14.tar.gz -C /usr/src/
cd /usr/src/libiconv-1.14/
./configure --prefix=/usr/local/libiconv && make && make install
安装libmcrypt库
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum -y install libmcrypt-devel
安装mhash加密扩展库
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum -y install mhash


安装mcrvpt加密扩展库
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum -y install mcrypt
获取PHP软件包
wget http://cn2.php.net/distributions/php-5.3.28.tar.gz
解压配置PHP
tar xf php-5.3.28.tar.gz -C /usr/src/
cd /usr/src/php-5.3.28/
./configure --prefix=/usr/local/php5.3.28 --with-mysql=/usr/local/mysql --with-iconv-dir=/usr/local/libiconv --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --enable-short-tags --enable-zend-multibyte --enable-static --with-xsl --with-fpm-user=www --with-fpm-group=www --enable-ftp
最后的正确输出提示为:Thank you for using PHP.

编译详解
- --prefix=/usr/local/php5.2.28
- 表示指定PHP的安装路径为/usr/local/php5.3.28
- --with-mysql=/usr/local/mysql
- 表示需要指定MySQL的安装路径,安装PHP需要的MySQL相关内容。当然,如果没有MySQL软件包,也可以不单独安装,这样的情况可使用--with-mysql=mysqlnd替代--with-mysql=/usr/local/mysql,因为PHP软件里已经自带了连接MySQL的客户端工具。
- --with-fpm-user=www
- nginx表示指定PHP-FPM进程管理的用户为www,此处最好和Nginx服务用户统一
- --with-fpm-group=www
- 表示指定PHP-FPM进程管理的组为www,此处最好与Nginx服务用户组统一。
- --enable-fpm
- 表示激活PHP-FPM方式服务,即以FastCGIF方式运行PHP服务。
编译PHP
ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64
touch ext/phar/phar.phar
Make
make最后的正确提示
Build complete.
Don't forget to run 'make test'.

安装PHP生成文件到系统
make install

设置软链接
ln -s /usr/local/php5.3.28/ /usr/local/php

PHP配置默认模版文件
生产环境:php.ini-development 开发环境:php.ini-production
开发环境更多的是开启日志,调试信息,而生产环境都是关闭状态
cd /usr/src/php-5.3.28
cp php.ini-production /usr/local/php/lib/php.ini
cd /usr/local/php/etc/
cp php-fpm.conf.default php-fpm.conf
关于php-fpm.conf,暂时可用默认的配置,先把服务搭好,以后再进行优化。

分离式部署特别提示
[root@localhost etc]# vim php-fpm.conf
listen = 127.0.0.1:9000 --->如何要分离式部署,需要把本地IP改成远程IP

启动PHP服务
/usr/local/php/sbin/php-fpm
ss -antup | grep 9000

修改Nginx配置文件
cd /usr/local/nginx
vim conf/nginx.conf
配置文件如下:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name blog.yunjisuan.com;
location / {
root html/blog;
index ald.html index.htm;
}
location ~ .*\.(php|php5)?$ {
root html/blog;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
}
}
检查配置文件nginx,conf有无问题:
/usr/local/nginx/sbin/nginx -t

检查ngnix,conf 是否启动:
ss -antup | grep 80

创建网页目录
cd /usr/local/nginx/html/
mkdir blog

针对静态网页测试
Cd blog
echo "`hostname -I` blog.yunjisuan.com" > index.html
echo "old" > index.html
注意主机映射

curl 测试如下:

针对动态网页测试
[root@localhost html]# echo "<? php phpinfo(): ?>" > test_info.php

添加windows映射并测试动态
C:\Windows\System32\drivers\etc --->windows映射文件位置
192.168.200.150 blog.yunjisuan.com

在浏览器输入blog.yunjisuan.com/test_info.php
针对MySQL测试
cd blog
vim test_mysql.php
- <?php
- $link_id=mysql_connect('localhost','root','linyaonie');
- if($link_id){
- echo "mysql successful by Mr.sl !\n";
- }else{
- echo mysql_error();
- }
- ?>
用PHP命令测试
如果没有PHP命令就是没做软链接
ln -s /usr/local/php/bin/* /usr/local/bin
编辑test_mysql.php,加入如下内容:
[root@localhost blogcom]# vim test_mysql.php
<?php
//$link_id=mysql_connect('主机名','用户','密码');
$link_id=mysql_connect('localhost','root','123123');
if($link_id){
echo "mysql successful by liuwei !";
}else{
echo mysql_error();
}
?>
![]()
虚拟机测试:php test_mysql.php
浏览器测试:http://blog.yunjisuan.com/test_mysql.php
![]()
部署一个blog程序服务:
WordPress 博客程序的搭建准备
(1)MySQL数据库配置准备
[root@localhost blog]# mysql -uroot -p
2)创建一个专用的数据库WordPress,用于存放blog数据,操作如下:
mysql> create database wordpress;
mysql> show databases like 'wordpress';
3)创建一个专用的WordPress blog管理用户,命令如下:
mysql> grant all on wordpress.* to wordpress@'localhost' identified by '123123'; #localhost为客户端地址
![]()
-
![]()
-
mysql> show grants for wordpress@'localhost'; #查看用户对应权限
mysql> select user,host from mysql.user; #查看数据库里创建的wordpress用户
(2)Nginx及PHP环境配置准备
1)选择之前配置好的支持LNMP的blog域名对应的虚拟主机,命令如下:
[root@localhost ~]# cat /usr/local/nginx/conf/nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name blog.yunjisuan.com;
location / {
root html/blog;
index index.html index.htm;
}
location ~ .*\.(php|php5)?$ {
root html/blog;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
}
2)获取WordPress博客程序,并放置到blog域名对应虚拟主机的站点目录下,
Cd /usr/local/nginx/html/blog/
Ls
(2)Nginx及PHP环境配置准备
1)选择之前配置好的支持LNMP的blog域名对应的虚拟主机,命令如下:
[root@localhost ~]# cat /usr/local/nginx/conf/nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name blog.yunjisuan.com;
location / {
root html/blog;
index index.html index.htm;
}
location ~ .*\.(php|php5)?$ {
root html/blog;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
}
2)获取WordPress博客程序,并放置到blog域名对应虚拟主机的站点目录下,
Cd /usr/local/nginx/html/blog/
Ls
[root@localhost blog]# tar xf wordpress-4.7.4-zh_CN.tar.gz #解压
[root@lnmp blog]# mv *.html /tmp
[root@lnmp blog]# mv *.php /tmp
[root@lnmp blog]# mv wordpress/* .
[root@lnmp blog]# /bin/mv wordpress-4.7.4-zh_CN.tar.gz /root/ #移走源程序
[root@lnmp blog]# chown -R www.www ../blog/
![]()
(2)Nginx及PHP环境配置准备
1)选择之前配置好的支持LNMP的blog域名对应的虚拟主机,命令如下:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name blog.yunjisuan.com;
location / {
root html/blog;
index index.html index.htm index.php; #index.php新加的
}
location ~ .*\.(php|php5)?$ {
root html/blog;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
}
}
最后输入域名出现






浙公网安备 33010602011771号