企业最常用的两种web架构就是LAMP和LNMP,今天就用编译的方式介绍一下LNMP的安装步骤,使用wordpress的CMS做网站的内容管理器
LAMP=Linux+Apache+Mysql+PHP
LNMP=Linux+Nginx+Mysql+PHP
分为4个步骤,分别是:安装nginx、安装mysql、安装php、安装Wordpress
系统环境:CentOS7.9,我使用的是华为云服务器,根据自己的实际情况即可,虚拟机也是可以的
建议大家使用我的安装路径,因为内容比较多,任何小插曲都有可能造成平台部署失败
安装包放在文章末尾了,自取
先试用这个脚本做个预测试,必须全部达标才能往下进行
vim cs.sh
粘贴脚本,然后sh cs.sh运行
#!/bin/bash#function:用户、网络、安全测试#author:墨染-2022-10-7if [ $USER != root ];thenecho "当前不是root用户,请切换至root用户再次运行脚本"exitfiping -c3 -i0.1 -W1 www.baidu.com &> /dev/nullif [ $? != 0 ];thenecho "当前无网络,请保证网络畅通再次运行脚本"exitelseecho "当前网络畅通,即将开始运行脚本"fisleep 2systemctl stop firewalld.service && systemctl disable firewalld.service sed -i 's/SELINUX=.*/SELINUX=disabled/' /etc/sysconfig/selinux sed -i 's/SELINUX=.*/SELINUX=disabled/' /etc/selinux/configsetenforce 0echo "防火墙和selinux高级权限管理已关闭"
效果如下图即可
1、编译安装nginx服务
安装依赖包yum -y install gcc-c++ && yum install -y pcre pcre-devel && yum install -y zlib zlib-devel && yum install -y openssl openssl-devel 切换路径 cd /usr/local/src下载安装包wget https://nginx.org/download/nginx-1.20.2.tar.gz
解压tar xvfz nginx-1.20.2.tar.gz进入解压目录cd nginx-1.20.2编译./configure --prefix=/usr/local/nginx安装make && make install
编译成功界面,然后执行make && make install安装
安装成功界面,在任何情况下都可使用echo $?判断上条命令是否执行成功,如果输入结果不等于0,则说明命令执行失败;如果输入结果等于0,那就说明命令执行成功!
为了后期可以使用service或systemclt来管理nginx服务,建议将它注册为系统服务
如果你的安装路径不在/.usr/local/nginx下,相应的路径也要更改,根据自己的环境而定
注册为系统服务,直接复制粘贴在命令行即可cat>>/lib/systemd/system/nginx.service<< EOF[Unit]Description=nginxAfter=network.target[Service]Type=forkingExecStart=/usr/local/nginx/sbin/nginxExecReload=/usr/local/nginx/sbin/nginx -s reloadExecStop=/usr/local/nginx/sbin/nginx -s quitPrivateTmp=true[Install]WantedBy=multi-user.targetEOF
效果如下图则说明nginx服务启动成功,也可以使用service来管理,后期维护就方便多了
在web界面测试一下,在浏览器输入查询出来的IP地址,因为我的云服务器在平台上做了DNS解析,所以直接输入域名即可;能看到Nginx就说明服务已经在正常运行了
ifconfig | grep inet |cut -d " " -f 10 | head -1
2、编译安装Mysql数据库,我使用的是mysql-5.5.62这个版本
安装依赖包yum install -y openssl* ncurses-devel* libtirpc* rpcgen* gcc* make gcc-c++ bison-devel ncurses-devel perl openssl-devel autoconf cmake* lrzsz创建mysql用户useradd -s /sbin/nologin -M mysql切换路径上传安装包cd /usr/local/src rz #使用该命令上传安装包
解压tar xvfz mysql-5.5.62.tar.gz
切换路径[root@web-server src]# cd mysql-5.5.62编译cmake . \-DCMAKE\_INSTALL\_PREFIX=/usr/local/mysql \-DMYSQL\_DATADIR=/usr/local/mysql/data/ \-DMYSQL\_UNIX\_ADDR=/usr/local/mysql/mysql.sock \-DWITH\_INNOBASE\_STORAGE\_ENGINE=1 \-DWITH\_MYISAM\_STORAGE\_ENGINE=1 \-DENABLED\_LOCAL\_INFILE=1 \-DEXTRA\_CHARSETS=all \-DDEFAULT\_CHARSET=utf8 \-DDEFAULT\_COLLATION=utf8\_general\_ci \-DMYSQL\_USER=mysql \-DWITH\_DEBUG=0 \-DWITH\_EMBEDDED\_SERVER=1 \-DMYSQL\_USER=mysql
效果如下图
安装make && make install
等这个过程100%就OK了 ,mysql-5.5.62这个版本安装还是很快的七八分钟左右就能搞定,5.7就要四五十分钟了
效果如下图即为安装完成
创建目录存放日志mkdir /usr/local/mysql/logs递归修改属主和属组chown mysql:mysql -R /usr/local/mysql拷贝系统文件cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql 修改权限chmod 755 /etc/init.d/mysql修改mysql配置文件cat > /etc/my.cnf << EOF[mysqld]datadir=/usr/local/mysql/data socket=/usr/local/mysql/mysql.sock server-id=1log-bin=/usr/local/mysql/logs/mysql-binEOF
更改环境变量sed -i 's/PATH=\$PATH:\$HOME\/bin/PATH=\$PATH:\$HOME\/bin:\/usr\/local\/mysql\/bin:\/usr\/local\/mysql\/lib/g' /root/.bash_profile加载环境变量source /root/.bash_profile && source /root/.bash_profile创建软链接ln -s /usr/local/mysql/bin/mysql* /usr/bin
切换路径cd /usr/local/mysql/scripts初始化数据库./mysql_install_db \--defaults-file=/etc/my.cnf \--datadir=/usr/local/mysql/data/ \--user=mysql \--basedir=/usr/local/mysql
如下图即为成功
查看mysql状态service mysql status启动mysql服务service mysql start进入mysql数据库mysql -u root -p 没有密码直接回车
能够看到3306端口并正常进入数据库就OK了
编译部署PHP
安装依赖包yum install -y gcc gcc-c++ libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel* libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel readline readline-devel libxslt libxslt-devel gd net-snmp-devel* libtool sqlite-devel* make expat-devel autoconf automake libxml* sqlite* bzip2-devel bzip2 bzip2-libs libcurl* net*yum install -y https://rpms.remirepo.net/enterprise/7/remi/x86_64/oniguruma5php-6.9.7.1-1.el7.remi.x86_64.rpmyum install -y https://rpms.remirepo.net/enterprise/7/remi/x86_64/oniguruma5php-devel-6.9.7.1-1.el7.remi.x86_64.rpm
切换路径cd /usr/local/srcrz #上传PHP安装包
解压tar xvfz php-7.4.30.tar.gz进入目录cd php-7.4.30编译./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysqli=mysqlnd --enable-pdo \--with-pdo-mysql=mysqlnd --with-iconv-dir=/usr/local/ --enable-fpm --with-fpm-user=web --with-fpm-group=web --with-pcre-regex \--with-zlib --with-bz2 --enable-calendar --disable-phar --with-curl --enable-dba --with-libxml-dir --enable-ftp --with-gd --with-jpeg-dir \--with-png-dir --with-zlib-dir --with-freetype-dir --enable-gd-jis-conv --with-mhash --enable-mbstring --enable-opcache=yes --enable-pcntl \--enable-xml --disable-rpath --enable-shmop --enable-sockets --enable-zip --enable-bcmath --with-snmp --disable-ipv6 --with-gettext \--disable-rpath --disable-debug --enable-embedded-mysqli --with-mysql-sock=/usr/local/mysql/
如下图即为编译成功
安装make && make install
这个过程可能要十几分钟,耐心等待
出现这个界面说明PHP编译安装成功
将PHP注册为系统服务
cp /usr/local/src/php-7.4.30/php.ini-production /usr/local/php/etc/php.inicp /usr/local/src/php-7.4.30/sapi/fpm/php-fpm.service /etc/systemd/system/systemctl daemon-reload service php-fpm status
可以用service管理即可,不用开启php服务
4、配置;所有的服务都安装完成后,最麻烦最棘手的就是配置,要保证服务之间能够互相转发访问请求
创建运行LNMP平台的用户useradd web无论是nginx、php还是mysql,所有的user和group都是同一个用户
1)先配置nginx服务
创建目录,存放子配置文件mkdir /usr/local/nginx/conf/conf.d
主配置文件:nginx.conf
user web web; # nginx的用户
include conf.d/*.conf; #子配置文件的路径
覆盖nginx配置文件cat > /usr/local/nginx/conf/nginx.conf << EOFuser web web;worker_processes 2;error_log logs/error.log notice;pid logs/nginx.pid;worker_rlimit_nofile 65535;events { use epoll; worker_connections 10240;}http { include mime.types; default_type application/octet-stream; server_names_hash_bucket_size 128; client_header_buffer_size 32k; large_client_header_buffers 8 64k; client_max_body_size 100m; limit_conn_zone \$binary_remote_addr zone=one:32k; server_tokens off; sendfile on; tcp_nopush on; keepalive_timeout 60; tcp_nodelay on; gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.0; gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css application/xml; gzip_vary on; log_format main '\$remote_addr - \$remote_user [\$time_local] "\$request" ' '\$status \$body_bytes_sent "\$http_referer" ' '"\$http_user_agent" "\$http_x_forwarded_for"'; #include default.conf; include conf.d/*.conf;}EOF
子配置文件的站点文件配置:www.conf
listen 80 #Nginx监听端口
root /usr/local/nginx/html/wordpress; #CMS的路径
fastcgi_pass 127.0.0.1:9000; #和PHP的保持一样,9000端口为PHP的监听端口
创建nginx站点文件cat > /usr/local/nginx/conf/conf.d/www.conf << EOFserver { listen 80; root /usr/local/nginx/html/wordpress; server_name localhost; index index.html index.php index.htm; error_page 400 /errpage/400.html; error_page 403 /errpage/403.html; error_page 404 /errpage/404.html; error_page 503 /errpage/503.html; location ~ \.php(.*)$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME \$DOCUMENT_ROOT$fastcgi_script_name; fastcgi_param PATH_INFO \$2; include fastcgi.conf; } location ~ /\.ht { deny all; } location / { try_files \$uri \$uri/ /?\$args; }}EOF
检查配置文件/usr/local/nginx/sbin/nginx -t
如下图配置文件没有问题
2)配置PHP
递归修改php目录的属组和属主chown web:web /usr/local/php -R创建php的日志目录mkdir /var/log/php创建php的错误日志文件(不创建也可以,配置文件指定了,服务启动后会自动创建)touch /var/log/php/php-fpm.log
主配置文件:php-fpm.conf
error_log = /var/log/php/php-fpm.log #错误日志路径
include = /usr/local/php/etc/php-fpm.d/*.conf #子配置文件路径
cat > /usr/local/php/etc/php-fpm.conf <
子配置文件:www.conf
listen = 127.0.0.1:9000 #php监听端口要和前面nginx子配置文件配置对应
cat > /usr/local/php/etc/php-fpm.d/www.conf <
检查配置文件/usr/local/php/sbin/php-fpm -t
3)配置Mysql数据库
创建数据库,名称为LNMPDB/usr/local/mysql/bin/mysql -uroot -e "create database LNMPDB;"创建用户shu,密码为gdpl168.cn,当用户从web-server主机登录时LNMPDB数据库赋予该用户所有权/usr/local/mysql/bin/mysql -uroot -e "grant all on LNMPDB.* TO 'shu'@'web-server' IDENTIFIED BY 'gdpl168.cn';"授权可以从localhost主机登录/usr/local/mysql/bin/mysql -uroot -e "grant all on LNMPDB.* TO 'shu'@'localhost' IDENTIFIED BY 'gdpl168.cn';"刷新权限/usr/local/mysql/bin/mysql -uroot -e "FLUSH PRIVILEGES;"
需使用刚才创建的用户和密码登录数据库,并查看是否有LNMPDB数据库
如下图,说明创建成功
4)配置Wordpress内容管理器
切换目录cd /usr/local/nginx/htmlrm -rf ./* #删除默认的网站文件rz 上传wordpress安装包
解压tar xvfz wordpress-5.9.1-zh_CN.tar.gz递归修改属组和属主为rootchown root:root -R wordpress
更改属组和属主chown web:web wp-admin/ -Rchown web:web wp-content/ -Rchown web:web wp-includes/ -R mv wp-config-sample.php wp-config.php
编辑配置文件vim /usr/local/nginx/html/wordpress/wp-config.php
如下图,填写数据库的名称,用户和密码,主机名信息
然后重启服务
最后在网页测试访问,输入测试nginx时的IP地址
弹出安装wordpress的界面为正常
这些信息自己填,用户名什么的都可以自定义,然后点击安装wordpress
安装完成界面
登录界面,用户名和密码为自己刚定义的;单击登录即可
这个便是后台的管理地址
只输入IP看一下默认的界面是什么样子的
这个是默认的主题,可以在后台更换主题
这些主题都可以更换
其他更多的功能自己去研究吧
希望本篇文章可以帮助到你
有任何问题欢迎大家冒泡反馈!
安装包永久有效
链接:https://pan.baidu.com/s/1pwlUv5vdaiKQbY3E4h9Uhg
提取码:AK47
一键部署脚本永久有效
https://download.csdn.net/download/m0_64423407/86739287
更多好货
来源地址:https://blog.csdn.net/m0_64423407/article/details/127192268