一. 安装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 userG; <---查看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 ! ";
}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;