使用http用户服务:(例如 nginx , http, caddy, apache 之类)
user : nginx
group : nginx
普通用户根据项目来定: (举例用户 userName
)
user : userName
group : nginx,users
安装配置
CentOs 7.0 开始启用 stystemd 服务管理, 使用 systemctl 来替代 service 命令,之前的区别为
service 服务名 start|stop|restart|status
systectl start|stop|restart|status 服务名
关于源
Mysql
centos 7 后 安装
mariadb
安装:
yum install mariadb
yum install mariadb-server
检查:
mysql --version
开启启动:
systemctl enable mariadb
设定初始密码:
# systemctl start mariadb
# mysqladmin -u root password '123456'
重新设定密码:
开启安全模式:
# systemctl stop mariadb
# mysqld_safe --skip-grant-tables&
# mysql --user=root mysql
> update user set Password=PASSWORD('new-password');
> flush privileges;
> exit;
# killall mysqld_safe&
# systemctl start mariadb
- 停止服务
- root权限开启mysql安全模式
- 进入mysql数据库
- 更新表,刷新,退出
- 杀死mysqld 安全进程
- 开启mysql服务
配置:
文件:
/etc/my.cnf
PHP
# 安装EPEL yum存储库
yum install epel-release -y
# 安装Remi存储库
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
# 安装 PHP 7.3
yum --enablerepo=remi-php73 install php
# 安装 PHP 7.2
yum --enablerepo=remi-php72 install php
# 安装 PHP 7.1
yum --enablerepo=remi-php71 install php
安装:
yum install php php-fpm php-gd php-mcrypt php-pear php-mysql php-mysqlite
##或者
yum install php php-*
检查版本:
$ php -v
服务:
# service php-fpm start|restart|stop
开启启动:
chkconfig php-fpm on
配置:
文件
/etc/php.ini
/etc/php.d/
/etc/php-fpm.conf
/etc/php-fpm.d/
/etc/php.ini
配置要点
; 时间区域
date.timezone = "Asia/Shanghai"
必要的库,有的在对应的 /etc/php.d/
文件夹中
;extension=iconv.so
;extension=mcrypt.so
;extension=sockets.so
;extension=soap.so
/etc/php-fpm.conf
/etc/php-fpm.d/www.conf
fpm的配置文件修改要点
端口
listen = 127.0.0.1:9000
; listen = /var/run/php-fpm/php-fpm.sock
用户写入文件的 user:group 和权限
listen.owner = nginx
listen.group = nginx
listen.mode = 0666
user = nginx
group = nginx
执行时限**
request_terminate_timeout = 180s
权限:
对session.savepath 的组用户写权限
# chown root:nginx -R /var/lib/php/
nginx
服务器部署可替代 Apache,Caddy。
添加内容到 /etc/yum.repos.d/CentOS-Base.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
安装:
yum install nginx
开启启动:
chkconfig nginxd on
查看:
nginx -v
配置:
/etc/nginx/conf.d/
以 fb.geely.com 为模板
server {
listen 80;
server_name fb.geely.com;
charset utf-8;
root /home/nginx/fb.geely.com;
access_log /home/nginx/logs/fb.geely.com.log main;
error_log /home/nginx/logs/fb.geely.com_error.log;
location /{
index index.php index.html index.htm;
# 隐藏index.php入口文件
if (!-e $request_filename){
rewrite ^/(.*)$ /index.php/$1 last;
}
}
location ~ ^.+\.php{
fastcgi_buffer_size 128k;
fastcgi_buffers 32 32k;
#fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi_params;
}
# 禁止访问 控制器等
location ^~ /libs { deny all; }
location ^~ /site { deny all; }
# 迁移 bocadmin/index.php 后可禁止访问bocadmin
#location ^~ /bocadmin { deny all; }
location ^~ /static {access_log off;}
location ^~ /upload/ {
#root /path/upload; # 修改路径
access_log off;
}
#error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
SSL HTTPS 配置模板
server {
listen 443 ssl;
server_name fb.geely.com;
# ssl on;
ssl_certificate /home/nginx/fb.geely.com/ssl/fb.geely.com.crt;
ssl_certificate_key /home/nginx/fb.geely.com/ssl/fb.geely.com.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
root /home/nginx/fb.geely.com;
access_log /home/nginx/logs/fb.geely.com.log main;
error_log /home/nginx/logs/fb.geely.com_error.log;
# 同上服务配置
}
参看 SSL CA证书
安全
自动检测服务并重启脚本:
#!/bin/bash
# file path /home/jibun/shell/checkservice.sh
service_log=/home/jibun/logs/server.log
ng=`service nginx status|awk '{print $5}'`
php=`service php-fpm status|awk '{print $5}'`
mysql=`service mysqld status|awk '{print $5}'`
if [[ $ng != *"running"* ]]; then
echo "---------------------------------" >> $service_log
date '+%Y-%m-%d %H:%M' >> $service_log
service nginx start >> $service_log
fi
if [[ $php != *"running"* ]]; then
echo "---------------------------------" >> $service_log
date '+%Y-%m-%d %H:%M' >> $service_log
service php-fpm start >> $service_log
fi
if [[ $mysql != *"running"* ]]; then
echo "---------------------------------" >> $service_log
date '+%Y-%m-%d %H:%M' >> $service_log
service mysqld start >> $service_log
fi
注意 mysql的服务默认为 mysqld ,有部分为mysql,自行斟酌
创建普通用户
创建用户jibun
并创建密码
useradd -G nginx -g users jibun
passwd jibun
服务器路径
创建服务器文件路径。
/home/nginx # nginx服务器所在文件夹
/home/nginx/logs # 存放日志
/home/nginx/domain # 对应的项目
执行过程
# cd home
# mkdir nginx
# chown nginx:nginx -R nginx
# chmod g+w nginx
# cd nginx
# mkdir logs
# su jibun
$ mkdir www.domain.com
上传对应的 www.domain.com
文件夹即可。
用户jibun
文件夹:
/home/jibun # home文件夹
/home/jibun/shell # 定时执行脚本
/home/jibun/backdir # 备份位置
/home/jibun/gitsource # git源库(防篡改之用)