LNMP网站架构

一、安装nginx服务

1、关闭防火墙和核心防护

复制代码
systemctl stop firewalld
systemctl disable firewalld
setenforce 0

2、安装依赖包

复制代码
yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make

3、创建运行用户

复制代码
useradd -M -s /sbin/nologin nginx

4、编译安装

复制代码
cd /opt
tar zxvf nginx-1.12.0.tar.gz -C /opt/

cd nginx-1.12.0/


./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module

make && make install

5、优化路径

复制代码
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

6、添加 Nginx 系统服务

复制代码
vim /lib/systemd/system/nginx.service

[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target

chmod 754 /lib/systemd/system/nginx.service
systemctl start nginx.service
systemctl enable nginx.service

二、安装 MYSQL 服务

1、安装Mysql环境依赖包

复制代码
yum -y install ncurses ncurses-devel bison cmake openssl-devel gcc gcc-c++ make

2、创建运行用户

复制代码
useradd -M -s /sbin/nologin  mysql

3、编译安装

复制代码
cd /opt
tar zxvf mysql-boost-5.7.20.tar.gz

cd /opt/mysql-5.7.20/

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8  \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1

make && make install

4、修改mysql 配置文件

复制代码
vim /etc/my.cnf


[client]
port = 3306
socket=/usr/local/mysql/mysql.sock

[mysqld]
user = mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

5、更改mysql安装目录和配置文件的属主属组

复制代码
chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf

6、设置路径环境变量

复制代码
echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile    
source /etc/profile

7、初始化数据库

复制代码
cd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

8、添加mysqld系统服务

复制代码
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl daemon-reload
systemctl start mysqld.service
systemctl enable mysqld

9、修改mysql 的登录密码

复制代码
mysqladmin -u root -p password "abc123"

10、授权远程登录

复制代码
mysql -u root -p

三、安装配置 PHP 解析环境

1、安装环境依赖包

yum -y install gd \

libjpeg libjpeg-devel \

libpng libpng-devel \

freetype freetype-devel \

libxml2 libxml2-devel \

zlib zlib-devel \

curl curl-devel \

openssl openssl-devel pcre-devel

2、编译安装

cd /opt

tar jxvf php-7.1.10.tar.bz2

cd php-7.1.10

./configure \

--prefix=/usr/local/php \

--with-mysql-sock=/usr/local/mysql/mysql.sock \

--with-mysqli \

--with-zlib \

--with-curl \

--with-gd \

--with-jpeg-dir \

--with-png-dir \

--with-freetype-dir \

--with-openssl \

--enable-fpm \

--enable-mbstring \

--enable-xml \

--enable-session \

--enable-ftp \

--enable-pdo \

--enable-tokenizer \

--enable-zip

make && make install

3、路径优化

ln -s /usr/local/php/bin/* /usr/local/bin/

ln -s /usr/local/php/sbin/* /usr/local/sbin/

4、调整PHP配置文件

php有三个配置文件:

php.ini 主配置文件

php-fpm.conf 进程服务配置文件

www.conf 扩展配置文件

#调整主配置文件:

cp /opt/php-7.1.10/php.ini-development /usr/local/php/lib/php.ini

vim /usr/local/php/lib/php.ini

--1170行--修改

mysqli.default_socket = /usr/local/mysql/mysql.sock

--939行--取消注释,修改

date.timezone = Asia/Shanghai

php -m #验证安装的模块

#调整进程服务配置文件:

cd /usr/local/php/etc/

cp php-fpm.conf.default php-fpm.conf

vim php-fpm.conf

--17行--去掉";"注释

pid = run/php-fpm.pid

#调整扩展配置文件:

cd /usr/local/php/etc/php-fpm.d/

cp www.conf.default www.conf

5、启动php-fpm

/usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini

netstat -anpt | grep 9000

#PHP-FPM(FastCGI Process Manager:FastCGI 进程管理器)是一个 PHPFastCGI 管理器, 由于Nginx服务器不能处理动态页面,需要由 Nginx 把动态请求交给 php-fpm 进程进行解析。

cd /opt/php-7.1.10/sapi/fpm

cp php-fpm.service /usr/lib/systemd/system/php-fpm.service

systemctl restart php-fpm.service

6、配置 Nginx 支持 PHP 解析

vim /usr/local/nginx/conf/nginx.conf

--65行--取消注释,修改

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; #将 /scripts 修改为nginx的工作目录

#fastcgi_param SCRIPT_FILENAME document_rootfastcgi_script_name; #$document_root 代表当前请求在root指令中指定的值

include fastcgi_params;

}

systemctl restart nginx.service

7、验证PHP 测试页

vim /usr/local/nginx/html/index.php

<?php

phpinfo();

?>

浏览器访问

http://IP/index.php

8、验证数据库工作是否正常

mysql -u root -p

CREATE DATABASE bbs;

GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';

GRANT all ON bbs.* TO 'bbsuser'@'localhost' IDENTIFIED BY 'admin123';

flush privileges;

vim /usr/local/nginx/html/index.php #替换原来的测试页内容

<?php

$link=mysqli_connect('192.168.80.10','bbsuser','admin123');

if($link) echo "<h1>Success!!</h1>";

else echo "Fail!!";

?>

浏览器访问

http://IP/index.php

相关推荐
AlfredZhao4 小时前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户97183563346610 小时前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪12 小时前
linux 拷贝文件或目录到指定的位置
linux
大树881 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠1 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush41 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5201 天前
Linux 11 动态监控指令top
linux
小宇宙Zz1 天前
Maven依赖冲突
java·服务器·maven
不会C语言的男孩1 天前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
古城小栈1 天前
Unix 与 Linux 异同小叙
linux·服务器·unix