一 LNMP相关概念
LNMP组成:
LNMP:Linux+Nginx+Mysql+PHP
PHP:编程语言。负责处理请求。
MySQL:数据库管理系统。
Nginx:Web服务软件。监听端口、接收请求、解析HTTP协议、转发给PHP进行处理并接收其结果响应请求。
LNMP架构:
二 LNMP部署
部署Nginx
- #添加不可登录的nginx用户
useradd -s /sbin/nologin nginx
#安装部署nginx所用到的安装工具和相关库
yum -y install gcc openssl-devel pcre-devel zlib-devel
#下载nginx源码包,并解压
wget http://nginx.org/download/nginx-1.10.3.tar.gz
tar -zxvf nginx-1.10.3.tar.gz
cd nginx-1.10.3
#设置参数 参数具体参考《nginx编译参数》
./configure \
--prefix=/usr \
--sbin-path=/usr/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_flv_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/tmp/nginx/client/ \
--http-proxy-temp-path=/var/tmp/nginx/proxy/ \
--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \
--http-scgi-temp-path=/var/tmp/nginx/scgi \
--with-pcre
#编译并安装 ,时间挺长的
- make && make install
- #使用命令启动nginx #nginx -s stop 关闭nginx
- nginx #如果启动失败报缺失某文件,mkdir -p 创建即可
- #防火墙允许策略
- firewall-cmd --permanent --add-port=80/tcp
- firewall-cmd --reload
- #访问ip测试
部署PHP
#下载php-7源码包
wget http://hk2.php.net/get/php-7.0.15.tar.gz/from/this/mirror
#下载编译工具和库
yum install -y gcc libxml2-devel openssl-devel bzip2-devel libmcrypt-devel # libmcrypt-devel是php加密,yum没有下载源码包可自行下载源码包编译安装后使用。
#安装一些库或软件可去www.sourceforge.net搜索下载
#mcrypt安装 (需安装libmcrypt mhash mcrypt,前两个是mcrypt的依赖)
- wget https://sourceforge.net/projects/mcrypt/files/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz/download
- wget https://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz/download
- wget https://sourceforge.net/projects/mhash/files/mhash/0.9.9.9/mhash-0.9.9.9.tar.gz/download
- #解压,会生成文件 libmcrypt-2.5.8 mcrypt-2.6.8 mhash-0.9.9.9
- tar -zxvf download
- tar -zxvf download.1
- tar -zxvf download.2
- #安装libmcrypt
- cd libmcrypt-2.5.8/
- ./configure
- make && make install
- #安装mhash
- cd /root/mhash-0.9.9.9/
- ./configure
- make && make install
- #安装mcrypt
- cd /root/mcrypt-2.6.8/
- LD_LIBRARY_PATH=/usr/local/lib ./configure
- make && make install
- #编译安装php
tar -zxvf mirror #会解压生成php7的文件夹
cd php-7*/
./configure \
--prefix=/usr/local/php7 \
--enable-mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-openssl \
--enable-mbstring \
--with-freetype-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--enable-xml \
--enable-sockets \
--enable-fpm \
--with-mcrypt \
--with-config-file-path=/etc \
--with-config-file-scan-dir=/etc/php.d \
--with-bz2
- make && make install
- #把php配置文件复制到默认目录
- cp php.ini-production /etc/php.ini
- #php-fpm自启设置
- cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
- chmod +x /etc/rc.d/init.d/php-fpm
- chkconfig --add php-fpm
- chkconfig php-fpm on
- #php-fpm使用service管理
- cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf
- cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf
- service php-fpm start
- #配置nginx可调用php
- vim /etc/nginx/nginx.conf
- #45行追加index.php
- #去掉php配置的注释(大约65-71行)
- vim /etc/nginx/fastcgi_params
- fastcgi_param QUERY_STRING $query_string;
- fastcgi_param REQUEST_METHOD $request_method;
- fastcgi_param CONTENT_TYPE $content_type;
- fastcgi_param CONTENT_LENGTH $content_length;
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
- fastcgi_param SCRIPT_NAME $fastcgi_script_name;
- fastcgi_param REQUEST_URI $request_uri;
- fastcgi_param DOCUMENT_URI $document_uri;
- fastcgi_param DOCUMENT_ROOT $document_root;
- fastcgi_param SERVER_PROTOCOL $server_protocol;
- fastcgi_param GATEWAY_INTERFACE CGI/1.1;
- fastcgi_param SERVER_SOFTWARE nginx;
- fastcgi_param REMOTE_ADDR $remote_addr;
- fastcgi_param REMOTE_PORT $remote_port;
- fastcgi_param SERVER_ADDR $server_addr;
- fastcgi_param SERVER_PORT $server_port;
- fastcgi_param SERVER_NAME $server_name;
- #可在nginx的html默认网站根目录创建以下文件
- #vim test.php
- #<?php
- #phpinfo();
- #登录 http://IP/test.php测试
部署mysql
#添加mysql用户组并添加mysql用户(不允许登录)
groupadd mysql
useradd -r -g mysql -s /bin/false -M mysql
#下载mysql源码包
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.17.tar.gz
#安装编译工具和依赖包
yum install -y cmake make gcc gcc-c++
yum install -y ncurses-devel openssl-devel bison-devel libaio libaio-devel
# boost库安装
# 该步骤可以省略,在cmake阶段添加参数-DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost即可
wget http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
tar -zxvf boost_1_59_0.tar.gz -C /usr/local
mv /usr/local/boost_1_59_0 /usr/local/boost
cd /usr/local/boost
./bootstrap.sh
./b2 stage threading=multi link=shared
./b2 install threading=multi link=shared
#安装编译mysql
tar -zxvf mysql-5.7.17.tar.gz
cd mysql-5.7.17
- #使用cmake工具设置参数,新版的php都从configure改用cmake
- cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADTR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DMYSQL_USER=mysql \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DENABLE_DOWNLOADS=1 \
-DWITH_PARTRTION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_DEBUG=0 \
-DMYSQL_MAINTAINER_MODE=0 \
-DMITH_SSL:STRING=bundled \
-DWITH_ZLIB:STRING=bundled \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/boost
- make && make install
- #将mysql目录权限给mysql用户
- chown -Rf mysql:mysql /usr/local/mysql
- #初始化数据库,默认会将库存入默认目录,即/usr/local/mysql/data
- /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
- #设置mysql的配置文件
- cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
- #使用service管理,并设置自启
- cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod 755 /etc/rc.d/init.d/mysqld
chkconfig mysqld on
service mysqld start
- echo "export PATH=$PATH:/usr/local/mysql/bin" >>/etc/profile
source /etc/profile
#以下命令可参考《Mariadb基本管理》 Mariadb兼容mysql命令
#初始化mysql数据库服务 会提示输入mysql的root密码
mysql_secure_installation
#使用root登录mysql
mysql -u root -p
- #以下创建会在使用workpress搭建网站使用
#展示当前数据库
show databases;
#创建msun数据库
create database msun;
#创建msun用户
create user 'msun'@'localhost' identified by '123456';
#赋予msun用户关于msun数据库所有权限
grant all on msun.* to msun@localhost;
- #退出
exit
- #OK!!下面就是搭建网站博客
workpress搭建网站
#下载workpress文件并解压
wget https://cn.wordpress.org/wordpress-4.7.2-zh_CN.tar.gz
tar -zxvf wordpress-4.7.2-zh_CN.tar.gz
#删除html原来文件并将workpress文件移入nginx网站目录
rm /usr/html/*
mv wordpress/* /usr/html/
#登录网站IP开始安装
http://192.168.1.166
#此处设置数据库就是mysql刚刚创建的
#此处按要求 vim /usr/html/wp-config.php 把下面内容复制进去
http://192.168.1.166 访问博客