Linux系统LNMP架构

一. 安装nginx服务

1. 进行nginx软件下载

cd   /opt

wget http://nginx.org/download/nginx-1.12.2.tar.gz

2.安装依赖软件

yum install -y pcre-devel openssl-devel

3.解压软件,创建虚拟用户,进行编译安装

命令:(解压)tar xf nginx-1.12.2.tar.gz

命令:(检查)ll  /server/tools

drwxr-xr-x 8 1001 1001   4096 Oct 17 21:16 nginx-1.12.2

-rw-r--r-- 1 root root 981687 Oct 17 21:20 nginx-1.12.2.tar.gz

命令:(切换)cd nginx-1.12.2/

命令:(查看路径)pwd

/opt/nginx-1.12.2

4.创建nginx管理用户

命令:(创建虚拟管理用户)useradd -s /sbin/nologin -M www

5.创建nginx命令安装的所在地

命令:(创建)mkdir  -p /application/nginx-1.12.2/

6.进行指定nginx安装参数

./configure --prefix=/application/nginx-1.12.2 --user=www --group=www --with-http_ssl_module --with-http_stub_status_module

配置参数说明:

--prefix=PATH                      set installation prefix

                                      指定软件程序安装的路径信息

--user=USER                        set non-privileged user for

                                    worker processes

                                   创建一个虚拟用户,用于管理nginx服务的worker进程

--group=GROUP                      set non-privileged group for

                                      worker processes

                                创建一个虚拟用户组,用于管理nginx服务的worker进程

--with-http_ssl_module             enable ngx_http_ssl_module

                       让nginx服务可以支持https访问

--with-http_stub_status_module     enable ngx_http_stub_status_module

                       便于监控软件监视nginx服务运行状态

说明:编译过程实质是将各种程序语言转换为系统可以识别的二进制信息

7.进行编译

把代码---->二进制

make

8.编译安装

make install

9.创建程序目录软链接文件

cd   /application/  &&  ln -s /application/nginx-1.12.2/ /application/nginx

ll /application/

total 4

lrwxrwxrwx 1 root root   26 Feb  2 17:14 nginx -> /application/nginx-1.12.2/

drwxr-xr-x 6 root root 4096 Feb  2 17:13 nginx-1.12.2

10.网站服务启动成功

/application/nginx/sbin/nginx   

加入开机自启

echo 'export PATH=$PATH:/application/nginx/sbin' >>/etc/profile

 source /etc/profile

11.:检查测试

进程检查:

ps -ef |grep nginx

root       6948      1  0 17:17 ?        00:00:00 nginx: master process /application/nginx/sbin/nginx

www        6949   6948  0 17:17 ?          00:00:00 nginx: worker process       

root       6951   1279  0 17:17 pts/1        00:00:00 grep nginx     

说明:master进程表示nginx主进程,负责nginx服务的启动 停止等操作

 worker进程表示真正处理用户请求的进程

检查80端口是否开启

netstat -lntup|grep nginx

tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      12684/nginx 

12.检查nginx软件是否安装成功

windows   192.168.198.137

欢迎使用nginx的界面

 

13.基于域名的虚拟主机配置

pwd

/application/nginx/conf

进行nginx的配置文件的备份

cp nginx.conf{,.bak}

进行nginx的配置文件的简化

egrep -v "#|^$" nginx.conf.bak >nginx.conf   

=========(配置nginx配置文件)===========

vim  nginx.conf (配置nginx的配置文件的主配置文件)

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  www.huchangxi.com;

        root   html/blog;

        index  index.html index.htm;

    }

}

14.网站目录和文件环境准备

创建站点目录:

mkdir  -p  /application/nginx/html/blog

输入静态文字:

touch /application/nginx/html/blog/index.html 

vim /application/nginx/html/blog/index.html 

192.168.198.137  web www.dada.com

检查:                 

cat /application/nginx/html/blog/index.html 

192.168.198.137 web www.dada.com

15.检查配置文件语法,进行服务重启或者启动

/application/nginx/sbin/nginx -t                   检查语法

nginx: the configuration file /application/nginx-1.12.2/conf/nginx.conf syntax is ok

nginx: configuration file /application/nginx-1.12.2/conf/nginx.conf test is successful

/application/nginx/sbin/nginx  -s reload                   

利用curl或者浏览器进行访问测试

需要对虚拟主机域名进行解析(编写hosts文件-linux/ windows里面hosts)

添加blog的解析

命令:(添加)vim   /etc/hosts   

192.168.198.137 www.dada.com

16.设置开机自启nginx服务

把启动nginx的命令添加到/etc/rc.local开启自启动里

命令:  vim  /etc/rc.local

/application/nginx/sbin/nginx

进行文件授权

chmod  +x  /etc/rc.local

二.安装MySQL服务

1.进行编译下载MySQL软件

把安装包上传到/opt目录中

2.解压软件程序

cd  /opt

tar  xf  mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz

ll 

drwxr-xr-x 13 root root      4096 Feb  7 15:19 mysql-5.6.34-linux-glibc2.5-x86_64

-rw-r--r-- 1 root root 314149697 Mar 23  2017 mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz

3:将解压后的程序目录移动到/application/目录中,创建软连接

cp  -r  mysql-5.6.34-linux-glibc2.5-x86_64 /application/

mv  /application/ mysql-5.6.34-linux-glibc2.5-x86_64      /application/ mysql-5.6.34       

创软连接

ln -s /application/mysql-5.6.34/ /application/mysql

ll /application/

lrwxrwxrwx  1 root root   48 Feb  6 20:18 mysql -> /application/mysql-5.6.34-linux-glibc2.5-x86_64/

drwxr-xr-x 13 root root 4096 Feb  6 20:18 mysql-5.6.34-linux-glibc2.5-x86_64

4.创建数据目录管理用户

useradd -M -s /sbin/nologin mysql

进行数据目录授权

chown -R mysql.mysql /application/mysql/data/

5.初始化数据库程序

1. 确认软件安装在哪里

2. 确认数据存放在哪里

3. 确认MySQL使用的用户谁?(/server/scripts)

初始化

/application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data --user=mysql

6.复制启动脚本,并且进行授权

cp /application/mysql/support-files/mysql.server  /etc/init.d/mysqld

进行添加执行权限

chmod +x /etc/init.d/mysqld

7.修改启动脚本 和 mysql命令中的路径

sed -i 's#/usr/local/mysql#/application/mysql#g' /application/mysql/bin/mysqld_safe /etc/init.d/mysqld

8.复制默认的配置文件

进行添加配置文件

\cp /application/mysql/support-files/my-default.cnf /etc/my.cnf

9.启动mysql服务并添加mysql的命令的绝对路径

/etc/init.d/mysqld start

添加路径

echo  "export PATH=/application/mysql/bin:$PATH" >>/etc/profile

生效

source   /etc/profile

10.给数据库设置一个密码(在mysql启动后配置)

/application/mysql/bin/mysqladmin -u root password 'password'

11.进入数据库

mysql  -uroot  -p1234356

Warning: Using a password on the command line interface can be insecure.

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 16

Server version: 5.6.34 MySQL Community Server (GPL)

 

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

 

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

 

mysql>

12.添加mysql服务开机自启

因为mysql的配置文件已经放到/etc/init.d/目录下了,并且经过了授权

命令:(让chkconfig管理)chkconfig --add mysqld

命令:(设置mysql开机自启)chkconfig mysqld on

 

数据库的基本操作

show databases;                <--- 查询默认的数据库信息

create database oldboy;        <---创建新的数据库

drop database oldboy;          <---删除存在的数据库

use mysql;                     <--- 表示选择使用一个数据库,相当于cd进入一个数据库

show tables;                  <---查看数据库中表信息

select database();             <--- 表示查看当前所在数据库,类似于pwd命令的功能

select user();                 <--- 查看当前登录数据库的用户,类似于whoami命令

                                    并且mysql还可以限制指定用户可以从哪里进行连接登录数据库

select * from user\G;          <---查看user表中所有信息,并且纵行显示

select user,host from user;         ---查看user表中指定信息,并且横行显示

select user,host from mysql.user;   ---查看可以登录mysql数据库的目录,以及都可以从哪里进行管理mysql数据库

grant all on *.* to user@'host' identified by 'oldboy123';           ---创建用户

grant all on *.* to Old_Boy@'localhost' identified by 'oldboy123';   ---创建用户(大写用户)

drop user 'user'@'host';

flush privileges;                  --- 刷新权限

 

三.安装PHP

1.进行编译下载到/server/tools/目录中

上传到/opt目录中

2.安装PHP软件的依赖关系

yum  install -y zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel

rpm -qa zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel

3.libiconv软件安装---字符集转换库(默认可以不进行安装了)

cd  /opt

wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz

tar zxf libiconv-1.14.tar.gz

cd /opt/libiconv-1.14

/opt/libiconv-1.14/configure --prefix=/usr/local/libiconv

Make(会有报错,详细看我的另一个博客:https://www.cnblogs.com/A121/p/10069601.html)

make install

cd   /opt/

yum  install libmcrypt-devel mhash mcrypt   -y

rpm -qa libmcrypt-devel mhash mcrypt

4.下载解压PHP软件

cd /opt/

tar xf php-5.5.32.tar.gz

cd /opt/php-5.5.32

命令:(进行配置)

./configure \
--prefix=/application/php-5.5.32 \
--with-mysql=mysqlnd \
--with-pdo-mysql=mysqlnd \
--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-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--with-curl \
--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-soap \
--enable-short-tags \
--enable-static \
--with-xsl \
--with-fpm-user=www \
--with-fpm-group=www \
--enable-ftp \
--enable-opcache=no

注:说明:LNMP架构部署时,如果mysql服务和web服务不在一台主机上,php配置参数需要进行调整

              --with-mysql=/application/mysql/  =>  --with-mysql=mysqlnd

===========================================================

PHP扩展参数:(配置没有问题可以省略以下配置参数,以下参数和PHP优化有关)

              --with-curlwrappers \

        --enable-zip \

        --enable-zend-multibyte \

怕出错(防错)(以下信息可以不进行配置了)

命令:(创建软连接)ln -s /application/mysql/lib/libmysqlclient.so.18  /usr/lib64/

命令:(创建文件)touch ext/phar/phar.phar

命令:(进行翻译php)make

命令:(进行编译安装php)make install

PHP软件程序创建软链接

命令:(进行移动)cp -r /opt/php-5.5.32  /application/

命令:(创建软连接)ln -s /application/php-5.5.32/ /application/php

配置php解析文件/配置php-fpm配置文件

命令:(切换)cd /opt/php-5.5.32

命令:(查看)ll php.ini*

-rw-r--r--. 1 1001 1001 69236 2016-02-02 21:33 php.ini-development

-rw-r--r--. 1 1001 1001 69266 2016-02-02 21:33 php.ini-production

(php.ini-developments是开发人员调试用配置文件,php.ini-production是生产常见所有配置文件)

命令:(复制)cp php.ini-production /application/php/lib/php.ini

php.ini-production 与 php.ini-development 文件区别关系对比

扩展:文件比较命令 diff zdiff vimdiff windows上的文件比较

命令:(切换)cd /application/php/etc/

命令:(切换)cp php-fpm.conf.default php-fpm.conf

(以下内容看情况)

# 编译安装PHP时,若配置未正确指定PHP进程用户信息,可以修改PHP文件进行调整

sed -i 's#user = www#user = nginx#g;s#group = www#group = nginx#g' /application/php-5.5.32/etc/php-fpm.conf

启动php-fpm程序

命令:(启动)/application/php/sbin/php-fpm     

命令:(进行检查端口)lsof -i :9000                    <--- 确认php 9000端口是否正确

LNMP架构环境部署完成

四.wordpress博客站点部署配置

1.nginx与php建立连接

vim /application/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;

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
server {
listen 80;
server_name blog.etiantian.org;
root html/blog;
index index.php index.html index.htm;
access_log logs/access.log main;
location ~ .*\.(php|php5)?$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}

}
}

注:上面的配置文件可以修改

index  index.html index.htm;     <-- 需要注意编辑修改默认首页文件  index  index.php index.html index.htm;

编辑nginx与php连通性测试文件,并进行测试

cd /application/nginx/html/blog/

echo '<?php phpinfo(); ?>'  >/application/nginx/html/blog/test_info.php

测试站点

curl  http://blog.etiantian.org/index.html            <-- 静态请求站点文件信息测试    

curl  http://blog.etiantian.org/test_info.php         <-- 动态请求站点文件信息测试

说明:当php服务停止时,9000端口信息消失,即停止PHP错误报502错误

linux系统测试完毕后,建议利用浏览器进行最终测试,测试效果更明显些

编辑php与mysql连通性测试文件,并进行测试

cd /application/nginx/html/blog/

echo '<?php phpinfo(); ?>'  >/application/nginx/html/blog/test_info.php

测试站点

curl  http://blog.etiantian.org/index.html            <-- 静态请求站点文件信息测试    

curl  http://blog.etiantian.org/test_info.php         <-- 动态请求站点文件信息测试

说明:当php服务停止时,9000端口信息消失,即停止PHP错误报502错误

linux系统测试完毕后,建议利用浏览器进行最终测试,测试效果更明显些

注:上面的配置文件可以修改

index  index.html index.htm;     <-- 需要注意编辑修改默认首页文件  index  index.php index.html index.htm;

编辑nginx与php连通性测试文件,并进行测试

cd /application/nginx/html/blog/

echo '<?php phpinfo(); ?>'  >/application/nginx/html/blog/test_info.php

测试站点

curl  http://blog.etiantian.org/index.html            <-- 静态请求站点文件信息测试    

curl  http://blog.etiantian.org/test_info.php         <-- 动态请求站点文件信息测试

说明:当php服务停止时,9000端口信息消失,即停止PHP错误报502错误

linux系统测试完毕后,建议利用浏览器进行最终测试,测试效果更明显些

编辑php与mysql连通性测试文件,并进行测试

cd /application/nginx/html/blog/

echo '<?php phpinfo(); ?>'  >/application/nginx/html/blog/test_info.php

测试站点

curl  http://blog.etiantian.org/index.html            <-- 静态请求站点文件信息测试    

curl  http://blog.etiantian.org/test_info.php         <-- 动态请求站点文件信息测试

说明:当php服务停止时,9000端口信息消失,即停止PHP错误报502错误

linux系统测试完毕后,建议利用浏览器进行最终测试,测试效果更明显些

下载部署wordpress博客程序

下载部署wordpress博客程序(https://cn.wordpress.org/   英文官网:https://www.wordpress.org/ )

 wget https://cn.wordpress.org/wordpress-4.5.1-zh_CN.tar.gz

tar xf wordpress-4.5.1-zh_CN.tar.gz              解压

mv wordpress/*  /application/nginx/html/blog/    移动

 chown -R www.www /application/nginx/html/blog/  授权

注意:确认hosts文件进行了解析

浏览器页面进行wordpress部署      

浏览器页面进行wordpress部署:http://blog.etiantian.org/

登录主页面点击直接就可以生成wp-config.php配置文件

vim wp-config.php  可以修改wordpress上的数据库连接参数信息  

编辑php与mysql连通性测试文件,并进行测试

创建数据库

命令:(进入mysql)mysql -uroot -p123456;

命令:(查看当前的mysql信息)show databases;                      <--- 查看当前数据库信息

命令:(创建库)create database wordpress;

添加用户信息

grant all on wordpress.* to 'wordpress'@'localhost' identified by 'oldboy123';  授权本地

grant all on wordpress.* to 'wordpress'@'172.16.1.0/255.255.255.0' identified by 'oldboy123';  授权远程

flush privileges;

drop user wordpress@'172.16.1.8';    <--- 删除用户信息

select user,host from mysql.user;    <--- 查看用户信息

mysql -uwordpress -p123456           <--- 测试创建的用户连接

show databases;                      <--- 查看当前数据库信息

delete from mysql.user where user='wordpress' and host='localhost';  删除用户信息          

利用mysql命令进行指定用户登录测试

/application/mysql/bin/mysql -uwordpress -poldboy123       绝对路径登录MySQL数据库

测试php与mysql数据库连通性

# cd  /application/nginx-1.12.2/html/blog

 vim test_mysql.php

<?php

//$link_id=mysql_connect('主机名','用户','密码');

//mysql -u用户 -p密码 -h 主机

$link_id=mysql_connect('localhost','root','oldboy123') or mysql_error();

if($link_id){

             echo "mysql successful by oldboy !\n";

            }else{

             echo mysql_error();

            }

?>

测试:

curl blog.etiantian.org/test_mysql.php       <-- 测试php与数据库的连通性            

五。搭建网站流程:

blog

1.要有网站代码(向开发人员要)

博客软件见压缩包

tar xf wordpress-4.7.3-zh_CN.tar.gz

2.进入到代码程序目录中,将代码信息移动到站点目录下

mv ./* /application/nginx/html/blog/

3.修改站点目录权限

chown -R www.www /application/nginx/html/blog/

4.进行网站初始化

create database wordpress;

grant all on wordpress.* to 'wordpress'@'192.168.198.%' identified by '123456';

grant all on wordpress.* to 'wordpress'@'localhost' identified by '123456';

flush privileges;

posted @ 2018-12-07 17:10  呼长喜  阅读(156)  评论(0编辑  收藏  举报