第一章、LNMP Web服务搭建
1.1、JAVA Web环境(企业更多)
1) [tomcat(jvm)]、resin、jboss、Weblogic
配合nginx proxy_pass代理功能
2)Python Web环境
配合nginx uwsgi_pass代理功能
3)PHP Web环境
配合nginx fastcgi_pass代理功能
4)Go 语言环境
第二章、企业级LNMP环境应用实践
2.1、LNMP介绍
LNMP(即Linux、Nginx、Mysql、PHP),已经逐渐成为国内大中型互联网公司网站的主流组合环境
2.2、LNMP基本访问流程
image.pngimage.png
第三章、LNMP中Mysql数据库
3.1、Mysql数据库介绍
image.png3.2、Mysql数据库产品
Mysql(mariadb)、 Oracle、SQL、SERVER、PGSQL
3.3、为什么选择Mysql数据库?
1)性能卓越,服务稳定,很少出现异常宕机
2)开放源代码且无版权之约,自主性强,使用成本低
3)历史悠久,社区及用户非常活,遇到问题可以很快获取到帮助
4)软件体积小、安装使用简单,并且易于维护、安装及维护成本低
5)支持多种操作系统,提供多种API接口,支持多种开发语言,特别对流行的PHP语言无缝支持
6)品牌口碑效应,使得企业直接使用
3.4、安装Mysql数据库
3.41、安装方式
image.png3.42、第一步、创建用户
useradd mysql -s /sbin/nologin -M
id mysql
image.png
3.43、第二步、切换到指定目录
cd /server/tools/
image.png
3.44、第三步、上传压缩包,解压
rz
ls -sh mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
tar xf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.26-linux-glibc2.12-x86_64 /application/mysql-5.7.26
ln -s /application/mysql-5.7.26/ /application/mysql
ls /application/mysql
3.45、第四步、配置配置文件/etc/my.cnf
rpm -e --nodeps mariadb-libs(卸载忽略依赖)
vim /etc/my.cnf
[mysqld]
basedir = /application/mysql/
datadir = /application/mysql/data
socket = /tmp/mysql.sock
server_id = 1
port = 3306
log_error = /application/mysql/data/oldboy_mysql.err
[mysql]
socket = /tmp/mysql.sock
prompt = oldboy [\\d]>
image.png
image.png
image.png
3.46、第五步、初始化数据库
rpm -qa mariadb-libs
yum install libaio-devel -y
mkdir -p /application/mysql/data
chown -R mysql.mysql /application/mysql/
/application/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/application/mysql/ --datadir=/application/mysql/data
image.png
image.png
3.47、配置启动服务
vim /etc/systemd/system/mysqld.service
[Unit]
Description=MySQL Server by oldboy
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/application/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
systemctl start mysqld
systemctl enable mysqld
systemctl status mysqld
netstat -lntup |grep mysql
ps -ef |grep mysql|grep -v grep
echo 'export PATH=/application/mysql/bin:$PATH' >>/etc/profile
tail -1 /etc/profile
. /etc/profile
echo $PATH
mysql
image.png
image.png
image.png
3.48、修改密码
mysqladmin -u root password 'oldboy123'
交互式登录
mysql -uroot -p
非交互式登录
mysql -uroot -poldboy123
image.png
image.png
第四章、FastCGI
4.1、什么是CGI?
CGI的全称"通用网关接口",为HTTP服务器与其他机器上的程序服务通信交流的一种工具,CGI程序运行在网络服务器上。
传统CGI方式在处理高并发访问时几乎是不可用的并且CGI接口方式安全性很差,因此诞生了FastCGI。
4.2、什么是FastCGI
FastCGI是一个可伸缩地、高速地在HTTP服务器和动态脚本语言间通信的接口(在Linux下,FastCGI接口即为socker,这个socker可以是文件socker,也可以是IP socker)
主要优点是:把动态语言和HTTP服务器分离开,多数流行的HTTP服务器都支持FastCGI,包括Apache、Nginx、Lighttpd等。
4.3、FastCGI特点
1)HTTP服务器和动态脚本语言间通信的接口
2)可把动态语言解析和HTTP服务器分离开来
3)Apache、Nginx、Lighttpd以及多数动态语言都支持FastCGI
4) FastCGI接口方式采用C/S结构,分为客户端(HTTP服务器)和服务端(动态语言解析服务器)
5)PHP动态语言服务端可以启动多个FastCGI的守护进程(例如:php-fpm(fcgiprocess mangement))
6) http服务器通过(例如:Nginx fastcgi_pass)FastCGI客户端和动态语言FastCGI服务端通信(例如pho-fpm)
4.4、FastCGI运行原理
image.png4.5、安装PHP
1、安装PHP调用的库
useradd -u 1111 nginx
netstat -lntup |grep nginx
netstat -lntup |grep mysql
yum install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel -y
yum install freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel libxslt-devel -y
rpm -qa install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel
rpm -qa freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel
cd /server/tools/
rz
tar xf libiconv-1.16.tar.gz
cd libiconv-1.16/
./configure --prefix=/application/libiconv
make
make install
cd ../
yum install libmcrypt-devel -y
yum install mhash -y
yum install mcrypt -y
2、安装PHP
cd /srver/tools
rz
tar xf php-7.3.5.tar.gz
cd php-7.3.5/
./configure --prefix=/application/php-7.3.5 --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir=/application/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-gd --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-soap --enable-short-tags --enable-static --with-xsl --with-fpm-user=nginx --with-fpm-group=nginx --enable-ftp --enable-opcache=no
echo $?
make && make install
ln -s /application/php-7.3.5/ /application/php
ls /application/php
3、配置pho.ini(PHP解析器配置文件)
cd /server/tools/php-7.3.5/
ls php.ini-*
cp php.ini-development /application/php/lib/php.ini
ls -l /application/php/lib/php.ini
4、配置PHP FPM
cd /application/php/etc/
cp php-fpm.conf.default php-fpm.conf
cd php-fpm.d/
ls
cp www.conf.default www.conf
5、启动PHP服务
/application/php/sbin/php-fpm
netstat -lntup |grep php-fpm
6、开机自启动
vim /etc/rc.local
/application/nginx/sbin/nginx
/application/php/sbin/php-fpm
7、配置nginx转发PHP请求
vim 03_blog.conf
location ~ .*\.(php|php5)?$ {
root html/blog;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
nginx -t
nginx -s reload
8、测试NGINX连接PHP
编写测试文件
echo "<?php phpinfo(); ?>" > ../html/blog/test_info.php
cat ../html/blog/test_info.php
/application/php/bin/php /application/nginx/html/blog/test_info.php
9、测试PHP连接mysql
vim /application/nginx/html/blog/test_mysql.php
<?php
//$link_id=mysqli_connect('主机名','用户','密码');
$link_id=mysqli_connect('localhost','root','oldboy123') or mysql_error();
if($link_id){
echo "mysql successful by oldboy.\n";
}else{
echo mysql_error();
}
?>
/application/php/bin/php /application/nginx/html/blog/test_mysql.php
LNMP环境搭建成功。
image.png
image.png image.png
image.png
网友评论