我的云文档怎么没有了(我的云文档怎么找)
717
2022-05-29
服务器部署lnmp环境(源码编译安装)
软件版本:CentOS 7,Nginx 1.16,MySQL 5.5.22,php 5.3.28,cmake 2.8.6
部署nginx
首先安装nginx所需的依赖库:yum -y install pcre-devel zlib-devel openssl-devel
同时配置编译环境需要依赖gcc、gcc-c++、make软件包:yum -y install gcc gcc-c++
创建nginx用户:useradd -M -s /sbin/nologin nginx
查看nginx用户是否创建成功:tail -1 /etc/passwd;tail -1 /etc/group
将nginx的包解包到/usr/src下: tar xf tool/nginx-1.16.0.tar.gz -C /usr/src/
进入解好的包:cd /usr/src/nginx-1.16
配置安装nginx,指定安装路径为/usr/local/nginx,安装用户为nginx,用户组为nginx,同时安装几个需要的模块:./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-file-aio --with-http_mp4_module --with-http_ssl_module && make && make install
键入echo $?查看返回值是否为0,验证是否安装成功。
为16目录创建软连接,这样可以更好的管理它的版本ln -s /usr/local/nginx1.16/ /usr/local/nginx
为nginx启动文件创建软连接,链接到usr/local/sbin下,这样直接执行nginx命令就可以实现nginx的启动、停止、重启:
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
键入nginx命令启动nginx服务:nginx,检测语法:nginx -t
测试响应头和响应码:curl -I
http://192.168.1.40
Nginx部署成功,nginx文件的路径。
部署MySQL数据库
首先安装ncurses-devel,其是字符终端下屏幕控制的基本库:yum -y install ncurses-devel
将cmake(MySQL5.5版本以后需要借助cmake编译安装)的包解压到/usr/src目录下:
tar xf tool/cmake-2.8.6.tar.gz -C /usr/src
进入解包好的cmake,配置编译安装:cd /usr/src/cmake-2.8.6/
执行:./configure && gmake &&gmake install 开始编译安装(该软件编译安装时间较长,请耐心等待)
键入echo $?查看返回值是否为0,判断是否安装成功。
将MySQL安装包解包到/usr/src/下:tar xf mysql-5.5.22.tar.gz -C /usr/src/
进入/usr/src/mysql-5.5.22/目录
用cmake编译安装(此项编译过程较长,请耐心等待):
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DSYSCONFDIR=/etc && make && make install
键入echo $?查看返回值是否为0,判断是否安装成功。
定义MySQL中命令的环境变量,即可直接调用MySQL里的命令
echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
复制MySQL的配置文件my.cnf到etc下:cp -p /usr/src/mysql-5.5.22/support-files/my-medium.cnf /etc/my.cnf
将设置开机的文件放到d下:
cp -p /usr/src/mysql-5.5.22/support-files/mysql.server /etc/init.d/mysqld
为其增加一个执行权限: chmod +x /etc/init.d/mysqld
将mysqld这个服务添加到chkconfig(centos6中的命令,7里也能用)中管理(相当于systemctl):chkconfig --add mysqld,并设置开机自启动:chkconfig mysqld on。
创建mysql用户:useradd -M -s /sbin/nologin mysql
更改属组: chown -R mysql:mysql /usr/local/mysql/
源码安装与二进制安装需要初始化,yum安装则不需要:/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --user=mysql
启动MySQL: /etc/init.d/mysqld start(此处注意,之前yum安装过mysql或mariadb的话,要用yum -y remove卸载干净,否则源码编译安装的mysql则无法启动)
查看一下mysqld服务的端口号:netstat -anptu | grep mysqld
给数据库创建一个用户名密码:mysqladmin -uroot password "123123"
运用此命令登录mysql数据库:mysql -uroot -p123123
部署php
首先安装一些依赖包: yum -y install gd libxml2-devel libjpeg-devel libpng-devel
将php软件包解包到/usr/src下:tar xf tool/php-5.3.28.tar.gz -C /usr/src/
进入解包好的文件中: cd /usr/src/php-5.3.28/
配置安装php-5.3.28(指定安装路径;使用gd库,使用缩略图;使用压缩;指定链接mysql的位置;指定配置文件路径;php加密;让php以php-fpm运行;支持图片的库在哪):
./configure --prefix=/usr/local/php5 --with-gd --with-zlib --with-mysql=/usr/local/mysql/ --with-config-file-path=/usr/local/php5 --enable-mbstring --enable-fpm --with-jpeg-dir=/usr/lib && make && make install
键入echo $?查看返回值是否为0,验证是否安装成功。
复制php的模板文件:
cp -p /usr/src/php-5.3.28/php.ini-development /usr/local/php5/php.ini
创建php命令的软连接:ln -s /usr/local/php5/bin/* /usr/local/bin/ ;ln -s /usr/local/php5/sbin/* /usr/local/sbin/
进入php5目录下的etc文件:cd /usr/local/php5/etc
复制php-fpm.conf.default文件为php-fpm.conf
vim编辑php-fpm.conf文件:vim php-fpm.conf,配置如下:
启动php服务:php-fpm
查看进程号:netstat -anptu|grep php
查看产生进程:ps -aux | grep php-fpm
整合LNMP
配置nginx配置文件:vim /usr/local/nginx/conf/nginx.conf
配置内容如上图
检测nginx语法:nginx -t
重启nginx服务:nginx -s reload
访问网页:168.1.40/index.php
创建php文件,测试能否链接数据库:vim /usr/local/nginx/html/test.php
将以下内容写入文件
$link=mysql_connect('localhost','root','123123');
if($link) echo "
mysql_close();
?>
重启nginx服务:nginx -s reload
访问168.1.40/test.php,返回successful则链接后端数据库成功。
lnmp优化
简化配置,配置版本号的隐藏,网页压缩,nginx服务的最大连接数
编辑nginx配置文件,将下面的模板复制进去:vim /usr/local/nginx/conf/nginx.conf
user nginx nginx;
worker_processes 2;
error_log logs/error.log;
pid logs/nginx.pid;
events {
use epoll;
worker_connections 10240;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain text/javascript application/x-javascript text/css text/xml application/xml application/xml+rss;
keepalive_timeout 65;
server_tokens off;
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 localhost;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
使用curl -I验证一下是否实现了nginx隐藏版本号:curl -I http://192.168.1.40
版本号实现了隐藏
Nginx的版本号隐藏还可以使用修改源码包,重新编译的方式,方法如下,看图说话,不详细说明了。
附件: 服务器部署lnmp环境.docx 147.25KB 下载次数:2次
LNMP MySQL Nginx
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。