首页
关于
Search
1
给你10个市场数据调研报告的免费下载网站!以后竞品数据就从这里找!
182 阅读
2
php接口优化 使用curl_multi_init批量请求
144 阅读
3
《从菜鸟到大师之路 ElasticSearch 篇》
107 阅读
4
2024年备考系统架构设计师
104 阅读
5
PHP 文件I/O
92 阅读
php
thinkphp
laravel
工具
开源
mysql
数据结构
总结
思维逻辑
令人感动的创富故事
读书笔记
前端
vue
js
css
书籍
开源之旅
架构
消息队列
docker
教程
代码片段
redis
服务器
nginx
linux
科普
java
c
ElasticSearch
测试
php进阶
php基础
登录
Search
标签搜索
php函数
php语法
性能优化
安全
错误和异常处理
问题
vue
Composer
Session
缓存
框架
Swoole
api
并发
异步
正则表达式
php-fpm
mysql 索引
开发规范
协程
dafenqi
累计撰写
786
篇文章
累计收到
28
条评论
首页
栏目
php
thinkphp
laravel
工具
开源
mysql
数据结构
总结
思维逻辑
令人感动的创富故事
读书笔记
前端
vue
js
css
书籍
开源之旅
架构
消息队列
docker
教程
代码片段
副业
redis
服务器
nginx
linux
科普
java
c
ElasticSearch
测试
php进阶
php基础
页面
关于
搜索到
26
篇与
的结果
2023-12-31
让你网站安全运行的CentOS小技巧
让你网站安全运行的CentOS小技巧CentOS是一种广泛使用的Linux发行版,它以其稳定性和安全性而闻名。对于建立一个安全的PHP网站来说,CentOS可以提供一系列的保护措施和安装命令来确保网站的安全。以下是一些关于如何通过CentOS来保证PHP网站的绝对安全的指南。一 升级系统:首先,确保你的CentOS系统是最新版本,并且已经安装了所有的安全补丁。可以使用以下命令进行系统升级:sudo yum update二 安装防火墙:CentOS自带了一个强大而易用的防火墙软件,被称为Firewalld。Firewalld可以帮助你限制对服务器的访问,防止未经授权的访问。可以使用以下命令安装和启动Firewalld:sudo yum install firewalld sudo systemctl start firewalld sudo systemctl enable firewalld三 配置Firewalld规则:要保护PHP网站,你需要确保仅允许来自特定端口的流量。例如,通常情况下,HTTP流量使用的是80端口,HTTPS流量使用的是443端口。可以使用以下命令配置Firewalld规则:sudo firewall-cmd --zone=public --add-port=80/tcp --permanent sudo firewall-cmd --zone=public --add-port=443/tcp --permanent sudo firewall-cmd --reload这将允许来自80端口和443端口的流量通过防火墙。四 安装PHP:为了运行PHP网站,你需要安装PHP的运行环境。可以使用以下命令来安装PHP:sudo yum install php五 配置PHP安全设置:为了增加PHP网站的安全性,你还需要进行一些配置。打开php.ini文件并进行以下设置:sudo vi /etc/php.ini确保display_errors设置为Off,这将阻止PHP错误消息被显示给外部用户。启用open_basedir设置,以限制PHP脚本只能访问指定的目录。设置upload_max_filesize和post_max_size的合理值,以限制上传文件的大小。注:以上只是一些基本的设置,具体的设置根据网站的需求可能会有所不同。六 安装PHP安全扩展:除了配置PHP的安全设置之外,还可以安装一些PHP的安全扩展来增加额外的保护层。例如,以下是一些常用的PHP安全扩展的安装命令:sudo yum install php-mcrypt sudo yum install php-gd sudo yum install php-mbstring sudo yum install php-bcmath这些扩展提供了加密、图像处理和字符串处理等功能。七 使用HTTPS:为了保护用户的敏感信息,如密码和个人资料,建议为网站启用HTTPS协议。可以使用以下命令安装和配置SSL证书:sudo yum install mod_ssl sudo systemctl restart httpd然后,将SSL证书文件拷贝到/etc/httpd/conf.d/ssl.conf文件中。八 定期备份数据:最后但同样重要的是,定期备份你的PHP网站的数据。这可以确保即使发生数据丢失或其他不可预测的情况,你仍然有一个可靠的数据备份来恢复网站。要备份一个PHP网站,可以使用以下步骤和命令:创建备份目录(例如,/backup):sudo mkdir /backup进入备份目录: cd /backup使用rsync命令将网站文件复制到备份目录:sudo rsync -avz --delete /var/www/html/ ./website_backup/这将复制/var/www/html/目录中的所有文件和文件夹到当前目录下的website_backup文件夹中,并保持文件夹结构保持一致。备份MySQL数据库(假设使用了MySQL数据库): sudo mysqldump -u [数据库用户名] -p[数据库密码] [数据库名] > website_backup.sql请确保将[数据库用户名]、[数据库密码]和[数据库名]替换为实际的值。压缩备份文件: sudo gzip website_backup.sql这将生成一个名为website_backup.sql.gz的压缩文件。备份完成后,您可以将备份文件复制到其他位置(例如,外部存储设备)以进行更安全的储存。总结通过CentOS的安全特性和一些必要的PHP安全设置,可以确保你的PHP网站的绝对安全性。这些措施包括升级系统、配置防火墙、安装和配置PHP、使用HTTPS协议和定期备份数据。通过遵循这些步骤,你可以大大提高你的PHP网站的安全性,并保护用户的敏感数据。
2023年12月31日
11 阅读
0 评论
0 点赞
2023-12-31
CentOS定时备份网站的方法
CentOS定时备份网站的方法CentOS 是一种流行的 Linux 操作系统,被广泛用于搭建服务器。PHP 是一种常用的服务器端脚本语言,很多网站都使用 PHP 来开发和运行。对于运行在 CentOS 上的 PHP 网站,定时备份是非常重要的,可以保护网站数据不会因为意外情况丢失。在 CentOS 上定时备份 PHP 网站有多种方法,下面我们将介绍几种常用的方式。1. 使用 crontab 定时任务Crontab 是 Linux 系统中用来执行定时任务的工具。通过编辑 crontab 文件,我们可以设置定时执行备份脚本的时间。下面是一种简单的方法:首先,打开终端,并使用 root 用户登录服务器。然后,输入以下命令来编辑 crontab 文件:crontab -e接下来,添加以下行到 crontab 文件中:0 0 * * * /path/to/backup-script.sh上面的命令表示在每天的午夜 00:00 执行 /path/to/backup-script.sh 脚本。你可以根据自己的需要来修改脚本的执行时间。最后,保存并退出 crontab 文件。crontab 会自动启动定时任务,每到指定的时间就会执行备份脚本。2. 使用 rsync 命令备份网站文件rsync 是一个强大的文件同步工具,可以实现文件的增量备份。使用 rsync 命令可以将网站文件从服务器复制到另一个位置,实现备份的目的。下面是一种使用 rsync 命令备份 PHP 网站的方法:首先,在终端中输入以下命令安装 rsync:yum install rsync然后,创建一个备份目录用于存放备份文件:mkdir /path/to/backup接下来,创建一个备份脚本,并将以下内容保存到一个名为 backup-script.sh 的文件中:#!/bin/bash rsync -av --delete /path/to/website /path/to/backup/$(date +%Y-%m-%d)上面的脚本会将 /path/to/website 目录中的文件复制到 /path/to/backup/YYYY-MM-DD 目录下,并自动根据备份的日期创建子目录。最后,将脚本文件设置为可执行并运行:chmod +x /path/to/backup-script.sh /path/to/backup-script.sh3. 使用数据库备份工具备份数据库对于使用数据库的 PHP 网站,定时备份数据库也是相当重要的。MySQL 是一个常用的关系型数据库管理系统,在 CentOS 上可以使用 mysqldump 工具备份数据库。下面是一种使用 mysqldump 命令备份 MySQL 数据库的方法:首先,在终端中输入以下命令安装 MySQL 和 mysqldump:yum install mysql-server yum install mysql-devel yum install mysql-utilities然后,创建一个备份目录用于存放备份文件:mkdir /path/to/mysql_backup接下来,创建一个备份脚本,并将以下内容保存到一个名为 mysql-backup-script.sh 的文件中:#!/bin/bash mysqldump -u username -p password database_name > /path/to/mysql_backup/$(date +%Y-%m-%d).sql将上面的脚本中的 username、password 和 database_name 替换为实际的数据库用户名、密码和数据库名。最后,将脚本文件设置为可执行并运行:chmod +x /path/to/mysql-backup-script.sh /path/to/mysql-backup-script.sh以上是几种常用的方法来定时备份运行在 CentOS 上的 PHP 网站。根据实际情况,你可以选择适合自己的备份方式,并设置合适的备份时间。备份能够帮助你保护网站数据,防止意外数据丢失,所以一定要定期备份!
2023年12月31日
15 阅读
0 评论
0 点赞
2023-12-29
linux不可不知的几个常用命令
linux不可不知的几个常用命令cd:进入目录,并切换当前工作目录示例:cd /var/www/html进入/var/www/html目录ls:列出当前目录下的文件和目录示例:ls /var/www/html列出/var/www/html目录下的文件和目录touch:创建空文件示例:touch test.php创建一个名为test.php的空文件mkdir:创建一个新目录示例:mkdir images创建一个名为images的新目录cp:复制文件或目录示例:cp index.php /var/www/html将index.php文件复制到/var/www/html目录下mv:移动文件或目录示例:mv index.php /var/www/html将index.php文件移动到/var/www/html目录下rm:删除一个文件或目录示例:rm index.php删除名为index.php的文件chmod:更改文件或目录的权限示例:chmod 755 index.php将index.php文件的权限更改为755chown:更改文件或目录的所有者示例:chown www-data:www-data index.php将index.php文件的所有者更改为www-data用户和www-data组ps:查看当前正在运行的进程示例:ps aux列出当前所有进程的详细信息top:实时查看系统的进程状态和资源占用情况示例:top实时查看系统进程和资源占用情况tar:打包和压缩文件或目录示例:tar -czvf backup.tar.gz /var/www/html将/var/www/html目录打包并压缩为backup.tar.gz文件grep:搜索文件中匹配的字符串示例:grep "hello" test.txt在test.txt文件中搜索包含"hello"的字符串sed:编辑文本文件并执行替换、删除和插入等操作示例:sed 's/hello/world/g' test.txt将test.txt文件中所有出现的"hello"替换为"world"find:查找文件或目录示例:find /var/www/html -name "*.php"在/var/www/html目录下查找所有以.php结尾的文件ssh:连接远程服务器示例:ssh user@10.0.0.1使用用户名user连接到IP地址为10.0.0.1的远程服务器scp:从本地主机复制文件到远程主机或从远程主机复制文件到本地主机示例:scp local_file remote_user@remote_host:/remote/dir将本地文件复制到远程主机的/remote/dir目录ping:测试服务器的连通性示例:ping google.com测试连接到google.com的响应时间和连通性netstat:显示当前网络连接、开放端口和正在进行的进程示例:netstat -an列出所有网络连接和开放端口ifconfig:显示网络接口的配置信息示例:ifconfig eth0列出名为eth0的网络接口的配置信息
2023年12月29日
16 阅读
0 评论
0 点赞
2023-11-21
strace:跟踪进程的系统调用 、ltrace:跟踪进程调用库函数
strace:跟踪进程的系统调用 、ltrace:跟踪进程调用库函数strace:跟踪进程的系统调用是 Linux 环境下的一款 程序调试工具 , 用于检查一个应用程序所使用的系统调用以及它所接收的系统信息 。strace会追踪程序运行时的整个生命周期,输出每一个系统调用的名字、参数、返回值和执行所消耗的时间等,是高级运维和开发人员排查问题的杀手铜。 strace命令的参数选项及说明-c 统计每一个系统调用所执行的时间、次数和出错的次数等 -d 输出strace关于标准错误的调试信息 -f 跟踪目标进程,以及目标进程创建的所有子进程 -ff 如果提供-o filename,则将所有进程的跟踪结果输出到相应的filename.pid中,pid是各进程的进程号 -i 输出系统调用的入口指针 -q 禁止输出关于脱离的消息 -r 输出每一个系统调用的相对时间 -t 在输出中的每一行前加上时间信息。例如16:45:28 -tt 在输出中的每一行前加上时间信息,精确到微秒。例如11:18:59.759546端 -ttt 在输出中的每一行前加上时间信息,精确到微秒,而且时间表示为UNIX时间戳。例如1486111461.650434 -T 显示每次系统调用所花费的时间 -v 对于某些相关调用,把完整的环境变量、文件stat结构等打印出来 -x 以十六进制形式输出非标准字符率 -xx 所有字符串以十六进制形式输出 -e expr 输出过滤器,通过表达式,可以过滤掉你不想要的输出 expr是一个表达式,用于控制如何跟踪:[qualifier=][!][valuel[,value2].. 说明: ①qualifier 只能是trace、abbrev、verbose、raw、signal、read、write其中之一 ②value是用来限定的符号或数字 ③默认的qualifier是trace ④感叹号是否定符号 例如: -e open等价于-e trace=open,表示只跟踪open调用 而-e trace!=open表示跟踪除了open以外的其他调用 常见选项: -e trace=[set] 只跟踪指定的系统调用 -e trace=file 只跟踪与文件操作有关的系统调用 -e trace=process 只跟踪与进程控制有关的系统调用 -e trace-network 只跟踪与网络有关的系统调用 -e trace=signal 只跟踪与系统信号有关的系统调用 -e trace=desc 只跟踪与文件描述符有关的系统调用 -e trace=ipc 只跟踪与进程通信有关的系统调用 -e abbrev=[set] 设定strace输出的系统调用的结果集 -e raw=[set] 将指定的系统调用的参数以十六进制显示 -e signal=[set] 指定跟踪的系统信号 -e read=[set] 输出从指定文件中读出的数据 -e write=[set] 输出写入到指定文件中的数据 -o filename 将strace的输出写入文件filename -p pid 指定要跟踪的进程pid,要同时跟踪多个pid,重复多次p选项即可* -s strsize 指定输出的字符串的最大长度,默认为32。并没有将文件名视为字符串,默认全部输出 -u username 以usemame的UID和GID执行所跟踪的命令 排查Nginx403 forbidden错误strace -tt -f /applicatton/nginx/sbin/nginx只跟踪与文件操作有关的系统调用 strace -tt -f -e trace=file /application/nginx/sbin/nginx #只跟综与文件操作有关的系统调用。通过pid 跟踪进程pgrep nginx[root@bzhl ~]# pgrep nginx 1884 7785 7786 7787pstree -p 1884(端口号)[root@bzhl ~]# pstree -p 1884 nginx(1884)─┬─nginx(7785) ├─nginx(7786) └─nginx(7787)strace -tt -f -e trace=file -p 7785(端口号)[root@bzhl ~]# strace -tt -f -e trace=file -p 7785 strace: Process 7785 attached 跟踪系统调用统计 strace不仅能够追踪系统调用,使用选项-c还能对进程所有的系统调用做一个统计分析。 [root@bzhl ~]# which nginx /usr/bin/nginx [root@bzhl ~]# strace -c /usr/bin/nginx % time seconds usecs/call calls errors syscall \-\-\-\-\-\- \-\-\-\-\-\-\-\-\-\-\- \-\-\-\-\-\-\-\-\-\-\- \-\-\-\-\-\-\-\-\- \-\-\-\-\-\-\-\-\- \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- 22.33 0.001129 7 153 52 open 15.55 0.000786 6 123 close 10.80 0.000546 6 95 mmap 8.53 0.000431 13 32 write 7.66 0.000387 10 39 read 6.47 0.000327 7 48 mprotect 5.38 0.000272 12 22 munmap 4.35 0.000220 3 87 fstat 3.20 0.000162 32 5 nanosleep 2.87 0.000145 8 19 socket 2.67 0.000135 4 38 pread64 2.29 0.000116 29 4 4 connect 1.19 0.000060 4 15 15 bind 1.03 0.000052 3 16 5 stat 1.03 0.000052 9 6 getdents 0.99 0.000050 3 15 setsockopt 0.65 0.000033 11 3 openat 0.63 0.000032 2 15 ioctl 0.63 0.000032 5 6 6 mkdir 0.47 0.000024 2 12 fcntl 0.16 0.000008 8 1 statfs 0.14 0.000007 7 1 1 readlink 0.10 0.000005 5 1 epoll_create 0.08 0.000004 2 2 rt_sigaction 0.08 0.000004 2 2 uname 0.08 0.000004 2 2 gettimeofday 0.08 0.000004 4 1 futex 0.06 0.000003 3 1 poll 0.06 0.000003 3 1 lseek 0.06 0.000003 2 2 getrlimit 0.06 0.000003 3 1 getppid 0.06 0.000003 3 1 sched_getaffinity 0.04 0.000002 1 2 brk 0.04 0.000002 2 1 rt_sigprocmask 0.04 0.000002 2 1 getuid 0.04 0.000002 2 1 arch_prctl 0.04 0.000002 2 1 set\_tid\_address 0.04 0.000002 2 1 set\_robust\_list 0.02 0.000001 1 1 geteuid 0.00 0.000000 0 1 1 access 0.00 0.000000 0 1 execve \-\-\-\-\-\- \-\-\-\-\-\-\-\-\-\-\- \-\-\-\-\-\-\-\-\-\-\- \-\-\-\-\-\-\-\-\- \-\-\-\-\-\-\-\-\- \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- 100.00 0.005055 779 84 total 上面的结果将清楚地告诉我们调用了哪些系统函数,调用的次数是多少,消耗了多少时间等信息,这对我们分析程序来说是非常有用的。 重定向输出 strace -c -o tongji.log /application/nginx/sbin/nginx #用 -o 选项将strace的结果输出到文件中 对系统调用进行计时 strace -T /application/nginx/sbin/ngirnx #<=使用选项-T将每个系统调用所花费的时间打印出来,每个调用的时间花费在调用行最右边的尖括导里面。 小结:strace命令很适合处埋程序僵尸、命令执行报错等问题,如果从程序日志和系统日志中看不出问题出现的原因,则可以strace一下,也许会有答案,不过也需要使用者有足够的耐心去查看输出! ltrace:跟踪进程调用库函数ltrace 能够跟踪进程的库函数调用 ,它会显现出调用了哪个库函数,而 strace则是跟踪进程的每个系统调用 。 ltrace命令的参数选项及说明-c 统计库函数每次调用的时间,最后程序退出时打印摘要 -C 解码低级别名称(内核级)为用户级名称 -d 打印调试信息 -e expr 输出过滤器,通过表达式,可以过滤掉你不想要的输出 -e printf 表示只查看printf函数调用 -e !printf 表示查看除printf函数以外的所有函数调用 -f 跟踪子进程 -o filename 将ltrace的输出写入文件filename -p pid 指定要跟踪的进程pid -r 输出每一个调用的相对时间 -S 显示系统调用 -t 在输出中的每一行前加上时间信息。例如16:45:28 -tt 在输出中的每一行前加上时间信息,精确到微秒。例如11:18:59.759546 -ttt 在输出中的每一行前加上时间信息,精确到微秒,而且时间表示为UNIX时间截。例如1486111461.650434 -T 显示每次调用所花费的时间 -u username 以username的UID和GID执行所跟踪的命令 Itrace使用ltrace的用法与strace非常相似,选项功能也是类似[root@bzhl ~]# ltrace /usr/bin/nginx # 提示: -bash: ltrace: command not found # 则:yum -y install ltrace #通过pid 跟踪进程调用库函数。 [root@bzhl ~]# pgrep nginx 1884 7785 7786 7787 [root@bzhl ~]# ltrace -p 1884
2023年11月21日
17 阅读
0 评论
0 点赞
2023-11-18
虚拟机安装Linux系统
需要下载Linux镜像 Linux镜像下载地址(国内) 网易开源镜像站:http://mirrors.163.com/阿里云官方镜像站:http://mirrors.aliyun.comLinux网站 https://www.linux.org/1.CentOSCentOS官网: https://www.centos.org/.CentOS各个版本下载:https://www.centos.org/.CentOS 版本选择:DVD版:这个是常用版本,就是普通安装版了,推荐大家安装。里面包含大量的常用软件,大部分情况下安装时无需再在线下载,体积为4G左右。Everything版:顾名思义,包含了所有软件组件,当然体积也庞大,高达DVD版的2倍。LiveCD版:就是一个光盘CentOS系统,可通过光盘启动电脑,启动出CentOS系统,也有图形界面,也有终端。也可以安装到计算机,但是有些内容可能还需要再次到网站下载(自动)。Minimal版:精简版本,包含核心组件,体积才600多MB。NetInstall版:顾名思义,网络安装版本,一般不用这个版本。2.UbuntuUbuntu官网:https://ubuntu.com/downloadUbuntu桌面版:https://ubuntu.com/download/desktopUbuntu服务器版:https://ubuntu.com/download/server3.FedoraFedora官网:https://getfedora.org/Fedora Workstation:https://getfedora.org/en/workstation/download/Fedora Server:https://getfedora.org/en/server/download/4.KaliKali Linux官网:https://www.kali.org/Kali Linux Downloads:https://www.kali.org/downloads/5.GentooGentoo Linux下载1:https://www.gentoo.org/Gentoo Linux下载2:https://www.gentoo.org/downloads/6.DebianDebian官网:https://www.debian.org/Debian下载:https://www.debian.org/distrib/7.ArchArch Linux官网:https://www.archlinux.org/Arch Linux下载:https://www.archlinux.org/download/8.OpenSuseOpenSuse官网:https://www.opensuse.org/OpenSuse下载:https://software.opensuse.org/distributions/leap
2023年11月18日
13 阅读
0 评论
0 点赞
1
...
3
4
5
6