不止LNMP的后端开发环境搭建
来源:SegmentFault
时间:2023-01-25 20:47:09 170浏览 收藏
编程并不是一个机械性的工作,而是需要有思考,有创新的工作,语法是固定的,但解决问题的思路则是依靠人的思维,这就需要我们坚持学习和更新自己的知识。今天golang学习网就整理分享《不止LNMP的后端开发环境搭建》,文章讲解的知识点主要包括MySQL、Redis、nginx、PHP、centos,如果你对数据库方面的知识点感兴趣,就不要错过golang学习网,在这可以对大家的知识积累有所帮助,助力开发能力的提升。
- Nginx(1.16)
- MySQL(8.0,开机启动)
- PHP(7.3)
- Redis(1.5)
- memcached(1.4)
- Composer(1.8)
- phpMyAdmin(4.8)
- nodejs(10.15)
- yarn(1.15)
重要提示:如果觉得一个个安装和配置太麻烦那推荐使用宝塔可视化管理工具进行操作,基本实现一键操作极大提高效率,简言之一个字,爽!(当然也不是完美的,如当版本该工具不支持在ubuntu安装MySQL8.0)
约定
虚拟机ip是
192.168.8.15,
管理员用户名
sorgo,
服务程序执行用户名
www,
网站根除目录
/data/wwwroot,
安装和配置时除特别说明则
root用户操作,
执行编辑文件命令后,下一行开始向右缩进4个空格为本次编辑的内容
CentOS
vmware虚拟机安装不到20分钟可以完成(基础网页服务器1810版本,选中文环境,yum源默认是163.com)
用户设置
useradd www -s /usr/sbin/nologin useradd -G www sorgo passwd sorgo #赋予sorgo用户root权限,且切换root时不用输密码, `-l`查看已有权限 visudo #编辑内容: #添加一条,表示sorgo可使用`sudo`执行root权限 sorgo ALL=(ALL) NOPASSWD: ALL
全局命令别名设置
vim /etc/bashrc # 添加内容: alias s-start='systemctl start' alias s-stop='systemctl stop' alias s-restart='systemctl restart' alias s-enable='systemctl enable' alias s-disable='systemctl disablep' alias s-status='systemctl status' alias vi='vim' alias ll='ls -laph' alias ..='cd ..' alias nrd='npm run dev' alias nrh='npm run hot' alias nrp='npm run production' alias nrw='npm run watch' alias nrww='npm run watch-poll' alias yrd='yarn run dev' alias yrh='yarn run hot' alias yrp='yarn run production' alias yrw='yarn run watch' alias yrwp='yarn run watch-poll' alias pa='php artisan' alias phpspec='vendor/bin/phpspec' alias phpunit='vendor/bin/phpunit' #使修改立即生效 source /etc/bashrc
网站目录及权限
#项目目录 mkdir -p /data/wwwroot/ #日志目录 mkdir -p /data/wwwlogs/nginx/ #网站基础应用的安装目录 mkdir /data/server/ #赋权 chown -R sorgo:www /data/ chmod -Rf g+s /data/
网卡配置
#查看网卡名,左侧一栏那个就是 ifconfig #编辑网卡配置,使nat模式的ip固定下来 vi /etc/sysconfig/network-scripts/ifcfg-ens33 #编辑内容: #配置文件关键内容,仅供参考 NAME=ens33 DEVICE=ens33 DEFROUTE=yes ONBOOT=yes #设置为static时要带`IPADDR` BOOTPROTO=static IPADDR=192.168.8.15 NETMASK=255.255.255.0 #重启生效 systemctl restart network
yum源配置
阿里源
cd /etc/yum.repos.d mv CentOS-Base.repo CentOS-Base.repo.bak wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo yum clean all yum makecache
163源
官方使用帮助
cd /etc/yum.repos.d/ mv CentOS-Base.repo CentOS-Base.repo.backup wget -O CentOS-Base.repo https://mirrors.163.com/.help/CentOS7-Base-163.repo yum clean all yum makecache #更新系统所有yum安装的程序,选做 yum update -y
yum的一些命令
yum list all #列出所有安转包 yum list installed #列出已经安装的 yum list available #列出没有安装的 yum remove software #卸载软件 yum install software #安装软件 yum search 关键字 #搜索与关键字相关的软件 yum whatprovides 文件 #搜索包含此文件的包 yum reinstall software #从新安装软件 yum localinstall 第三方软件 #安装该软件并解决依赖关系 yum info software #查询软件信息 yum groups list #列出软件组 yum groups install #安装组 yum groups remove #卸载组 yum groups info #查看组信息 yum repolist #查看已安装的源
关闭防火墙
在centos7.5中,防火墙是默认开机启动的,在开发环境中为了方便起见这里直接把防火墙关闭
#查看状态 systemctl status firewalld #取消开机启动 systemctl disable firewalld #关闭防火墙 systemctl stop firewalld #关闭selinux,否则影响samba的使用 vi /etc/selinux/config #编辑内容: SELINUX=disabled
pstree
yum install psmisc -y #查看目前在运行的进程 pstree
编译安装程序用到的工具
#centos1810已默认安装 yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
好用的命令
#按进程名查看pid pidof nginx #按进程名终止 pkill redis-server killall redis-server
ssh
ssh连接工具推荐使用MobaXterm,其自带ftp文件传输功能
Nginx(1.16+)
本次安装的是
stable版(当前是
1.16.*)
官方安装指导文档
增加nginx源文件
#创建源文件 vi /etc/yum.repos.d/nginx.repo #添加以下内容 [nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/7/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key [nginx-mainline] name=nginx mainline repo baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/ gpgcheck=1 enabled=0 gpgkey=https://nginx.org/keys/nginx_signing.key
如果要将主线版本设为默认安装的版本,可执行
yum-config-manager --enable nginx-mainline
安装
yum install yum-utils #下面命令会安装前面源文件设置的stable版本 yum install -y nginx #查看安装好的版本 nginx -v
网站目录配置
全局配置
#配置执行用户名 vi /etc/nginx/nginx.conf #编辑内容: user www;
为新项目添加一个nginx站点配置,这是一个php网站的配置模板,今后其它网点的配置都会以这个模板为基础进行修改匹配.
#vi /etc/nginx/conf.d/your_project_name.conf #编辑内容: #添加 server { listen 1700; #listen 443 ssl http2; #listen [::]:443 ssl http2; #listen [::]:80; #server_name domain.com; #字符集设置只能在server块内 charset utf-8; index index.php index.html index.htm default.php default.htm default.html; root /data/wwwroot/your_project_name/public; #access_log /data/wwwlogs/nginx/your_project_name.log; #error_log /data/wwwlogs/nginx/your_project_name.error.log; #laravel、thinkPHP路由配置 location / { try_files $uri $uri/ /index.php?$query_string; } #运行php文件 location ~ \.php$ { try_files $uri =404; fastcgi_index index.php; fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } #禁止访问的文件或目录 location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md) { return 404; } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; error_log off; access_log /dev/null; } location ~ .*\.(js|css)?$ { expires 12h; error_log off; access_log /dev/null; } }
运行
#测试配置信息是否有语法问题,通过后才能启动 nginx -t #启动 nginx
全部指令
nginx -t #测试配置信息
nginx #默认启动方式 start
nginx -v #显示版本信息,-V(大V)显示编译时的参数
nginx -s stop #快速停止服务
nginx -s quit #正常停止服务
nginx -s reload #重启
PHP(7.3)
PHP7.3
安装
#安装源 yum install -y epel-release yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm #搜索符合条件的包 yum search php73 #安装php7.3及其扩展 #包含redis、memcached、msgpack和yaf框架等php扩展 yum install -y php73-php php73-php-fpm php73-php-pear php73-php-bcmath php73-php-mbstring php73-php-cli php73-php-pdo php73-php-pecl-mysql php73-php-mysqlnd php73-php-pecl-redis4 php73-php-pecl-memcached php73-php-pecl-msgpack php73-php-pecl-yaf php73-php-pecl-jsond-devel php73-php-gd php73-php-common php73-php-intl php73-php-xml php73-php-opcache php73-php-pecl-apcu php73-php-gmp php73-php-process php73-php-pecl-imagick php73-php-devel php73-php-zip php73-php-ldap php73-php-imap php73-php-pecl-mcrypt #程序的安装路径:`/opt/remi/php73/`; #配置文件路径:`/etc/opt/remi/php73/php.ini`;
配置
cp /etc/opt/remi/php73/php.ini /etc/opt/remi/php73/php.ini.bak #修改php时区和扩展文件目录路径 vi /etc/opt/remi/php73/php.ini #编辑内容: date.timezone = PRC extension_dir = "/opt/remi/php73/root/usr/lib64/php/modules/" #修改php-fpm执行用户 vi /etc/opt/remi/php73/php-fpm.d/www.conf #编辑内容: user=www group=www #赋权 chown -R root:www /var/opt/remi/ #软链到一般目录 ln -s /etc/opt/remi/php73/php.ini /etc/php.ini ln -s /opt/remi/php73/root/usr/bin/php /usr/bin/php ln -s /opt/remi/php73/root/usr/sbin/php-fpm /usr/bin/php-fpm ln -s /opt/remi/php73/root/usr/bin/php-cgi /usr/bin/php-cgi ln -s /opt/remi/php73/root/usr/bin/pear /usr/bin/php-pear ln -s /opt/remi/php73/root/usr/bin/phar.phar /usr/bin/php-phar #查看安装的php版本 php -v #查看已经安装的php扩展模块 php -m
运行php-fpm
#启动 php-fpm #终止 kill -QUIT `cat /var/opt/remi/php73/run/php-fpm/php-fpm.pid` #重启 kill -USR2 `cat /var/opt/remi/php73/run/php-fpm/php-fpm.pid`
MySQL(8.0)
yum安装
安装
#下载源 wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm #安装源 yum localinstall -y mysql80-community-release-el7-1.noarch.rpm #列出可用的mysql包 #yum repolist enabled | grep mysql #如果打算安装5.7,那执行下面两句,切换默认版本 #yum-config-manager --disable mysql80-community #yum-config-manager --enable mysql57-community #安装 yum install -y mysql-community-server #更新版本 #yum update mysql-server # 查看版本 mysql -V
配置
vi /etc/my.cnf #编辑内容 [mysqld] # 设置3301端口 port=3301 # 允许最大连接数 max_connections=200 # 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统 max_connect_errors=10 # 服务端使用的字符集默认为UTF8 #character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB # 默认使用“mysql_native_password”插件认证,以mysql5.7的密码处理方式保存,以兼容较旧的连接程序,8.0默认是caching_sha2_password方式 default_authentication_plugin=mysql_native_password #设置默认时区 default-time_zone = '+8:00'
运行
# 启动 systemctl start mysqld # 开机启动 systemctl enable mysqld # 状态 systemctl status mysqld # 查看root初始密码 grep 'temporary password' /var/log/mysqld.log # 登录 mysql -uroot -p # 必须修改初始密码,新密码须包含大小字字母、数字和特殊字符至少8个字符 # 采用mysql_native_password方式处理密码,以mysql5.7的密码处理方式保存,以兼容较旧的连接程序,8.0默认是caching_sha2_password方式 mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Sorgo123.'; # 进入MySQL数据库 mysql> use mysql; # 设置root用户可在任意主机登录 mysql> update user set host='%' where user='root' and host='localhost'; mysql> FLUSH PRIVILEGES; # 查询user表信息 mysql> select user,host,plugin from user;
Redis(5.0)
安装
cd /data/server/ wget http://download.redis.io/releases/redis-5.0.4.tar.gz tar -zvxf redis-5.0.4.tar.gz && cd redis-5.0.4 make #软链成统一的目录,方便多版本管理 ln -s /data/server/redis-5.0.4 /data/server/redis ln -s /data/server/redis/redis.conf /etc/redis.conf #软链到命令目录 ln -s /data/server/redis/src/redis-cli /usr/local/bin/redis-cli ln -s /data/server/redis/src/redis-server /usr/local/bin/redis-server ln -s /data/server/redis/src/redis-sentinel /usr/local/bin/redis-sentinel #查看版本 redis-server -v
配置
# vi /etc/redis.conf #任意主机可访问 bind 0.0.0.0 #密码登录 requirepass Sorgo123. #后台进程的方式运行 daemonize yes
运行
#按配置文件开启 redis-server /etc/redis.conf #进入交互操作工具 redis-cli -h 127.0.0.1 -p 6379 -a Sorgo123. #查看redis进程信息 info server #关闭服务 shutdown
memcached(1.4)
yum安装1.4
yum install -y memcached #查看帮助信息及版本 memcached -h #开启,可按不同端口开启多个进程 memcached -d -p 11211 -m 150 -u www #关闭,会把进程名包含`memcached`的都关闭 pkill memcached
启动选项:
-d 是启动一个守护进程;
-m 是分配给Memcache使用的内存数量,单位是MB;
-u 是运行Memcache的用户;
-l 是监听的服务器IP地址,可以有多个地址;
-p 是设置Memcache监听的端口,,最好是1024以上的端口;
-c 是最大运行的并发连接数,默认是1024;
-P 是设置保存Memcache的pid文件。
编译安装,1.5
cd /data/server/ #先安装依赖,否则无法编译 yum install -y libevent-devel #下载源码 wget http://www.memcached.org/files/memcached-1.5.13.tar.gz #解压和进入目录 tar -zvxf memcached-1.5.13.tar.gz && cd memcached-1.5.13 #执行配置,这里只设置安装目录 ./configure --prefix=/data/server/memcached-1.5.13/ #编译和安装 make && make install ln -s /data/server/memcached-1.5.13 /data/server/memcached ln -s /data/server/memcached/bin/memcached /usr/local/bin/memcached #查看安装的版本 memcached -h
samba(4.8)
#安装 yum install -y samba samba-client samba-common #添加samba用户,用户已存在的用户名,专门给samba登录的密码:sorgo smbpasswd -a sorgo #查看已添加的用户 pdbedit -L #修改配置 cp /etc/samba/smb.conf /etc/samba/smb.conf.bak vim /etc/samba/smb.conf #添加可通过samba访问的目录路径 [wwwroot] comment = website root path = /data/wwwroot valid users = sorgo writable = yes create mask = 0750 directory mask = 0750 #检测配置文件语法 testparm #启动 systemctl enable smb && systemctl enable nmb systemctl restart smb && systemctl restart nmb #查看状态 smbstatus # linux端使用 ##测试连接 smbclient -L //192.168.8.15 -U smb_user_naem ##挂载到应用端 mount -t cifs //192.168.8.15/wwwroot/ /smb/ -o username=smb_user_naem,password=1234 df -h /smb ##卸载 umount /smb # windows端使用 \\${ip} # 注意事项 * 绝对不要在配置文件里写中文,即使是中文注释,否则windows无法进入该目录!!! * 如果服务器在windows里ping不通(不是因为服务器禁止ping,而是未知原因),那也是连不上的. * phpstrom在打开samba项目文件时变得异常卡顿
Composer(1.8)
安装
#生成composer.phar php73 -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');" php73 composer-setup.php php73 -r "unlink('composer-setup.php');" #移至命令目录 mv composer.phar /usr/local/bin/composer #版本等信息 composer
设置
#设置源为国内镜像,下面二选一 composer config -g repo.packagist composer https://packagist.phpcomposer.com composer config -g repo.packagist composer https://packagist.laravel-china.org #解除上面的设置 composer config -g --unset repos.packagist #查看全局配置 composer config -gl
phpMyAdmin
phpMyAdmin其实就是一个php写的网站, 到官网把php文件包下载到服务器, 设置好nginx指向根目录即可.
cd /data/server/ #获取方式1: 使用composer下载(有时速度不理想) #composer create-project phpmyadmin/phpmyadmin #获取方式2: wget直接从官网下载(这是本次演示的方式) wget https://files.phpmyadmin.net/phpMyAdmin/4.8.5/phpMyAdmin-4.8.5-all-languages.zip #获取方式3: 在其它地方下载好,然后通过ftp上传到本服务器,原则上哪个便利采用哪种 #解压到当前目录 unzip phpMyAdmin-4.8.5-all-languages.zip #软链方便版本控制 ln -s phpMyAdmin-4.8.5-all-languages phpmyadmin #编辑配置文件 cp phpmyadmin/config.sample.inc.php phpmyadmin/config.inc.php vi phpmyadmin/config.inc.php #下面是编辑内容: #设置任意32位以上长度的密钥 $cfg['blowfish_secret'] = 'dNE9GVnon3LWSVGvhGPuZdBhb7c7RtQ3'; #赋权 chmod -R 770 phpmyadmin/ #nginx网站配置,利用sed命令来替换一个模板配置中的关键值 #主要改变了监听的端口`8888`和日志文件名`phpmyadmin` cat /etc/nginx/conf.d/your_project_name.conf | sed 's/1700/8888/g' | sed 's/your_project_name\./phpmyadmin\./g' | sed 's/wwwroot\/your_project_name\/public/server\/phpmyadmin\//g' > /etc/nginx/conf.d/phpmyadmin.conf #检查配置文件无误方可启动 nginx -t #重启nginx nginx -s reload #访问 http://192.168.8.15:8888/
node.js(10.15lts)
中文API文档
node.js的安装方式有:
- epel源yum安装(目前是6.16版);
- 二进制文件安装;
- 源码编译安装;
现在介绍后两种方法,也是版本选择较为丰富的方法
二进制文件安装(10.15.3)(推荐)
这个是下载下来就能用的
cd /data/server/ #下载二进制文件包,大概12M wget https://nodejs.org/dist/v10.15.3/node-v10.15.3-linux-x64.tar.xz #解压,注意这个解压命令与解压`.gz`结尾的文件不同 tar -xJvf node-v10.15.3-linux-x64.tar.xz #软链 ln -s node-v10.15.3-linux-x64 node ln -s /data/server/node/bin/node /usr/local/bin/node ln -s /data/server/node/bin/npm /usr/local/bin/npm ln -s /data/server/node/bin/npx /usr/local/bin/npx #查看版本 node -v npm -v
编译安装(10.15.3)
编译的过程很慢,亲测一个小时左右
cd /data/server/ #下载源码,大概35M wget https://nodejs.org/dist/v10.15.3/node-v10.15.3.tar.gz tar -zvxf node-v10.15.3.tar.gz && cd node-v10.15.3 #执行配置脚本 ./configure #编译和安装 make && make install #查看版本 node -v npm -v
yarn(1.15)
#添加yarn的yum源 curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo #安装,须确保nodejs已经安装好 yum install -y yarn #查看版本 yarn -v
理论要掌握,实操不能落!以上关于《不止LNMP的后端开发环境搭建》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!
-
499 收藏
-
286 收藏
-
244 收藏
-
235 收藏
-
157 收藏
-
208 收藏
-
174 收藏
-
317 收藏
-
371 收藏
-
244 收藏
-
288 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 507次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 484次学习