linux 服务器环境搭建
一、jdk安装
1.1 下载
https://www.oracle.com/technetwork/cn/java/javase/downloads/jdk8-downloads-2133151-zhs.html
## 链接已失效
curl https://download.oracle.com/otn/java/jdk/8u231-b11/5b13a193868b4bf28bcb45c792fce896/jdk-8u231-linux-x64.tar.gz?AuthParam=1572938302_57562200ecddf3c95c81ea3ba4cd6764 > jdk-8u231-linux-x64.tar.gz
下载前会要求强制注册,校验md5啥的略,一般不会有问题
1.2 安装
## 创建安装目录
mkdir /usr/local/java/
## 解压
tar -zxvf jdk-8u231-linux-x64.tar.gz -C /usr/local/java/
1.3 配置环境变量
# 全局环境变量
# profile:全用户
# ~/.bash_profile:当前用户,启动执行
# ~/.bashrc 每个新shell窗口执行一次
vim /etc/profile
设置环境变量
export JAVA_HOME=/usr/local/java/jdk1.8.0_171
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
添加软链
ln -s /usr/local/java/jdk1.8.0_171/bin/java /usr/bin/java
检查
java -version
二、nginx 安装
2.1 安装依赖库
-
gcc 安装
源码编译依赖gcc
# 安装gcc
yum install gcc-c++
- PCRE pcre-devel安装
PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。
yum install -y pcre pcre-devel
- zlib 安装
zlib库提供很多中压缩和解压缩方式,nginx使用zlib对http包内容进行gzip
yum install -y zlib zlib-devel
- OpenSSL安装
OpenSSL是套接字层密码库,包括主要密码算法,常用的秘钥和证书封装管理功能及SSL协议,nginx https协议需要用到
yum install -y openssl openssl-devel
2.2 下载安装包 官网
curl https://nginx.org/download/nginx-1.14.2.tar.gz > nginx-1.14.2.tar.gz
2.3 安装
解压
tar -zxvf nginx-1.14.2.tar.gz
默认配置
./configure --with-http_ssl_module --with-http_stub_status_module
自定义配置(不推荐)
./configure \
--prefix=/usr/local/nginx \
--conf-path=/usr/local/nginx/conf/nginx.conf \
--pid-path=/usr/local/nginx/conf/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--with-http_ssl_module \
--with-http_stub_status_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi
建软链
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
运行
# 启动
nginx
# 强制停止
nginx -s stop
# nginx进程处理完任务停止
nginx -s quit
# 重启 重新加载配置文件
nginx -s reload
三、Mysql安装
3.1 下载rpm源文件
https://dev.mysql.com/downloads/repo/yum/ 选择合适源
3.2 安装mysql源
yum localinstall mysql80-community-release-el7-3.noarch.rpm
# 检查是否安装成功
yum repolist enabled | grep mysql
3.3 安装
yum install mysql-community-server
3.4 相关命令
# 启动mysql
systemctl start mysqld
# 查看状态
systemctl status mysqld
# 设置开机启动
systemctl enable mysql
systemctl daemon-reload
3.5 配置
没找到密码或密码忘记了 mysql 8.0 以上
# 修改 /etc/my.cnf 添加 skip-grant-table
# 重启mysql
systemctl stop mysqld.service
systemctl start mysqld.service
# root 登录
mysql -u root
#切换数据库
use mysql;
# 密码需要包含大小写特殊字符
alter user'root'@'localhost' IDENTIFIED BY '新密码';
# 创建远端登录用户
create user 'yourname';
alter user 'yourname'@'%' IDENTIFIED BY '新密码';
# 授权
GRANT ALL PRIVILEGES ON *.* TO 'yourname'@'%'
# 配置生效
FLUSH PRIVILEGES;
# 退出
EXIT
常用mysql 语法
# 查看数据库
show databases;
# 使用数据库
use dbname;
# 查看数据库表
show tables;
# 查看表结构
desc tablename;
# 查看数据库编码格式
show variables like'character%';
四、PHP安装
4.1 自动安装php 和php-fpm
# 安装依赖
yum -y install epel-release
# 安装php php-fpm
yum -y install php php-fpm
# php-mysql
yum install php-mysql
# php-fpm开机启动
systemctl enable php-fpm
# 启动php-fpm
system start php-fpm
4.2 手动安装
# 安装依赖 xml版本过低
yum -y install libxml2 libxml2-devel
# sqlite版本过低
yum -y install libsqlite3x-devel
#./configure --enable-fpm --with-mysql
# 7.x版本不支持mysql通过扩展支持
./configure --with-curl --with-mysqli --with-openssl --with-pdo-mysql --with-pear --with-zip --enable-sockets --enable-fpm --enable-mbstring
# 遇到异常 libtool: link: `ext/opcache/ZendAccelerator.lo' is not a valid libtool object
make distclean
# 1. 创建配置文件
cp php.ini-development /usr/local/php/php.ini
cp /usr/local/etc/php-fpm.d/www.conf.default /usr/local/etc/php-fpm.d/www.conf
cp sapi/fpm/php-fpm /usr/local/bin
# 2. 防止恶意脚本攻击
## 打开 php.ini
vim /usr/local/php/php.ini
# 设置cgi.fix_pathinfo=0
cgi.fix_pathinfo=0
# 3. 修改php-fpm.conf 配置文件
vim /usr/local/etc/php-fpm.d/www.conf
## 修改一下内容
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
user = www-data
group = www-data
## 配置 Nginx 支持php
vim /usr/local/nginx/conf/nginx.conf
常用指令
mysql systemctl start mysqld # 启动 systemctl stop mysqld # 停止 systemctl restart mysqld # 重启
php-fpm systemctl start php-fpm # 启动 systemctl stop php-fpm # 停止 systemctl restart php-fpm # 重启
nginx sudo fuser -k 80/tcp # 杀死80端口 nginx # 开启 nginx -s stop # 停止 nginx -s quit # 任务完成后停止 nginx -s reopen # 重启 nginx -s reload # 重新载入配置文件
php
# 启动
php-fpm
# 关闭
ps aux | grep php-fpm
# php-fpm 需要信号控制
# INT,TERM 立即终止
# QUIT 平滑终止
# USR1 重新打开日志文件
# USR2 平滑重载所有worker进程,并重新载入配置和二进制模块
root 20986 0.0 0.1 151932 4944 ? Ss 17:27 0:00 php-fpm: master process (/usr/local/etc/php-fpm.conf)
nginx 20987 0.0 0.1 154016 6092 ? S 17:27 0:00 php-fpm: pool www
nginx 20988 0.0 0.1 154016 4872 ? S 17:27 0:00 php-fpm: pool www
root 21433 0.0 0.0 112724 988 pts/0 S+ 17:30 0:00 grep --color=auto php-fpm
kill -INT 20986 # 关闭
kill -USR2 20986 # 重启