Linux服务器搭建网站环境(PHP网站环境、JAVA网站环境)

  • A+
所属分类:Nginx Java PHP Linux LNMP

大多数时间我们用shell脚本来减少运维成本,多年前关注到OneinStack的Linux搭建网站环境shell脚本,当时就尝试用了一下感觉还不错,可自定义组件PHP环境、JAVA环境等。目前这里沙海已经详细做了OneinStack脚本交互安装搭建生产环境的测试,也算做了脚本的检测和生产环境使用的验证,推荐大家使用。因为安装过程很简单这里就不做教程了,详细安装方法请直接参考:OneinStack如果完全看不懂,或者懒得自己折腾,可以联系本人,有偿代搭服务器环境,价格500-1000元,根据需求不同议价)。

1、重要提示

网站根目录权限遵循:

文件644 文件夹755  权限用户和用户组www,其余文档777权限是不正常的
如出现文件权限问题时,请执行下面3条命令:
chown -R www.www /data/wwwroot/
find /data/wwwroot/ -type d -exec chmod 755 {} \;
find /data/wwwroot/ -type f -exec chmod 644 {} \;

对网站目录进行权限设置的命令:
chown www:www -R /path/to/dir          //其中/path/to/dir替换为网站目录
chown -R www:www /home/wwwroot   //使wwwroot所属组为www

这样能有效解决不能上传图片到媒体库,不能在线安装更新网站和主题插件一直提示需要输入FTP的问题。

2、数据本地和远程备份设置

~/oneinstack/backup_setup.sh         #备份参数设置
~/oneinstack/backup.sh                   #立即执行备份
可添加到计划任务,如每天凌晨2点自动备份:
/bin/systemctl restart crond.service #启动服务
/bin/systemctl reload crond.service #重新载入配置
/bin/systemctl status crond.service  #查看crontab服务状态
crontab -e   #编辑定时任务
crontab -l    #查看定时任务
然后在定时文件中添加脚本起到定时执行备份:
0 2 * * * ~/oneinstack/backup.sh > /dev/null 2>&1 &     #2>&1表示屏蔽错误
0 2 * * * cd ~/oneinstack;./backup.sh > /dev/null 2>&1 &        #绝对路径方式
保存退出后,就可以自动执行,也可以设置一周备份一次或者具体的时间,可以参考crontab的时间戳写法。

定时备份功能备份的数据库导入方式:
优先使用phpMyAdmin导入,利用其中导入时的upload和导出时的save文件夹,可以全程在服务器上进行备份恢复,提高操作效率。

下面是几种备选方式:
解压DB_example2015110911.tgz,得到DB_exmaple2015110911.sql , 登陆 mysql控制台(mysql -uroot -p)
source DB_exmaple2015110911.sql;
下面是一个具体例子:
首先要确保数据库存在,如果不存在则创建
# mysql -uroot -p
Enter password: 
......
mysql> use wenbo
Database changed
mysql> source ./wenbo_test.sql
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.04 sec)
如果sql中是整个数据库,那么source之后,整个数据库都变了。如果只是整个表的数据,那么整个表的数据都变了。
另外也可以使用shell命令方式:
mysql -uroot -p wenbo < ./wenbo_test.sql
效果跟source一样,只是没有执行过程,第一种mysql直接在命令行中执行即可,第二种source必须登录mysql terminal才能执行,原因就是第一个是shell命令,第二个是mysql命令。shell命令会做一个批处理(一次执行多条),处理效率高。 mysql命令会把文件中的sql每次执行一句并输出,效率较低。 如果是sql文件很大,建议使用shell命令方式,但是shell命令行方式可能引入utf8编码问题,使用的时候测试注意下。
tips:导出数据用mysqldump
mysqldump -uroot -p wenbo > ./wenbo_test.sql

远程备份不了报错,重要提示:
bash: rsync: command not found
备份服务器没有安装rsync命令,通过如下命令:
centos:
yum -y install rsync
ubuntu/Debian:
apt -y install rsync

定时备份数据库到本地失败,log显示【xxx】not exist,说数据库不存在。或者备份数据库成功后,然后修改了数据库密码,提示 ERROR 1045 (28000): Access denied for user‘root’@’localhost’(using password: YES) 备份的时候没有要求输入密码。这时候需要修改/root/oneinstack/options.conf 里面数据库的密码,因为备份时候依赖options.conf中dbrootpwd 即数据库密码写入这里。具体找到/root/oneinstack/options.conf文件,打开修改如下:
# [MySQL/MariaDB/Percona/AliSQL] automatically generated, You can't change
dbrootpwd='数据库密码'

如果只想安装备份功能可以修改/root/oneinstack/options.conf实现:
修改options.conf
如果备份网站:wwwroot_dir= 为你网站根目录父目录
备份数据库:   dbrootpwd= 写入mysql root密码

定时重启服务器命令: 
0 4 * * * /sbin/reboot    #0 1 * * *表示每天凌晨一点重启,以此类推.. 0 4表示凌晨4点重启

3、Nginx配置http强制跳转到https的方法

参考我另外一篇文章: Nginx配置http强制跳转到https的方法

  • 资源分享QQ群
  • weinxin
  • 官方微信公众号
  • weinxin
沙海
Java图书管理系统
C语言项目源码分享
C语言郝斌老师教程
TripodCloud:性价比最高的CN2 GIA服务器

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:1   其中:访客  1   博主  0

    • avatar 大圣 0

      很不错 :smile: