forked from littlebizzy/slickstack
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathss-purge-opcache.txt
118 lines (90 loc) · 6.65 KB
/
ss-purge-opcache.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#!/bin/bash
####################################################################################################
#### author: SlickStack ############################################################################
#### link: https://slickstack.io ###################################################################
#### mirror: https://mirrors.slickstack.io/bash/ss-purge-opcache.txt ###############################
#### path: /var/www/ss-purge-opcache ###############################################################
#### destination: n/a (not a boilerplate) ##########################################################
#### purpose: Clears the PHP-FPM OPcache by deleting files under /var/www/cache/opcache/ ###########
#### module version: PHP-FPM 8.1.x #################################################################
#### sourced by: ss-purge, ss core bash scripts ####################################################
#### bash aliases: ss purge [clear] opcache, ss purge [clear] caches opcache #######################
####################################################################################################
## RUNNING SS-PURGE DURING TRAFFIC SPIKES MIGHT CAUSE SUDDEN STRESS TO SERVER RESOURCES ##
## KEEP IN MIND THAT PAGE CACHING IS DISABLED ALREADY ON DEV/STAGING WEBSITES ##
## source ss-config ##
source /var/www/ss-config
## source ss-functions ##
source /var/www/ss-functions
## BELOW THIS RELIES ON SS-CONFIG AND SS-FUNCTIONS
####################################################################################################
#### TABLE OF CONTENTS (SS-Purge-OPcache) ##########################################################
####################################################################################################
## this is a brief summary of the different code snippets you will find in this script ##
## each section should be commented so you understand what is being accomplished ##
## A. Touch Timestamp File
## B. Message (Begin Script)
####################################################################################################
#### A. SS-Purge-OPcache: Touch Timestamp File #####################################################
####################################################################################################
## this is a dummy timestamp file that will remember the last time this script was run ##
## it can be useful for developer reference and is sometimes used by SlickStack ##
## script timestamp ##
ss_touch "${TIMESTAMP_SS_PURGE_OPCACHE}"
####################################################################################################
#### B. SS-Purge-OPcache: Message (Begin Script) ###################################################
####################################################################################################
## this is a simple message that announces to the shell the purpose of this bash script ##
## it will only be noticed by sudo users who manually call ss core bash scripts ##
## echo message ##
ss_echo "${COLOR_INFO}Running ss-purge-opcache... ${COLOR_RESET}"
####################################################################################################
#### SS-Purge-OPcache: Clear Cache (PHP-FPM OPcache) ###############################################
####################################################################################################
## by default OPcache only caches PHP files for a few seconds but we clear it to be sure ##
## this snippet will also clear physical OPcache files if the feature is enabled ##
if [[ "${SS_APP}" != "mysql" ]]; then
## manually delete OPcache file cache (after opcache file cache works better) ##
# rm /var/www/cache/opcache/*
## creative way to reset OPcache using temporary PHP script ##
RANDOM_RESET_OPCACHE=$(openssl rand -hex 12)
echo "<?php opcache_reset(); ?>" > /var/www/html/purge-${RANDOM_RESET_OPCACHE}.php
/usr/bin/php /var/www/html/purge-${RANDOM_RESET_OPCACHE}.php
rm /var/www/html/purge-*.php
## manually delete OPcache file cache (again) ##
# rm /var/www/cache/opcache/*
# rm "$PATH_CACHE_OPCACHE"*
fi
####################################################################################################
#### PLACEHOLDER: Reset Permissions (SlickStack Scripts) ###########################################
####################################################################################################
## we include this permissions reset in all cron jobs and bash scripts for redundancy ##
## chmod 0700 means only the root/sudo users can execute any SlickStack scripts ##
## THIS SNIPPET DOES NOT RELY ON SS-CONFIG OR SS-FUNCTIONS
## SNIPPET: ss bash scripts, ss cron jobs
## UPDATED: 02JUL2022
chown root:root /var/www/ss* ## must be root:root
chown root:root /var/www/crons/*cron* ## must be root:root
chown root:root /var/www/crons/custom/*cron* ## must be root:root
chmod 0700 /var/www/ss* ## 0700 means only root/sudo can execute
chmod 0700 /var/www/crons/*cron* ## 0700 means only root/sudo can execute
chmod 0700 /var/www/crons/custom/*cron* ## 0700 means only root/sudo can execute
####################################################################################################
#### SlickStack: External References Used To Improve This Script (Thanks, Interwebz) ###############
####################################################################################################
## Ref: https://www.php.net/manual/en/function.opcache-reset.php#121513
## Ref: https://stackoverflow.com/questions/5506913/bash-script-to-run-php-script
## Ref: https://coderwall.com/p/yrqrkw/delete-all-existing-wordpress-transients-in-mysql-database
## Ref: https://stackoverflow.com/questions/10422574/can-i-remove-transients-in-the-wp-options-table-of-my-wordpress-install
## Ref: https://wordpress.stackexchange.com/questions/73477/is-there-any-danger-in-deleting-all-transients
## Ref: https://stackoverflow.com/questions/20033648/how-to-run-mysql-command-on-bash
## Ref: https://serverfault.com/questions/337818/how-to-force-mysql-to-connect-by-tcp-instead-of-a-unix-socket
## Ref: https://stackoverflow.com/questions/33067909/bash-variable-under-a-mysql-query
## Ref: https://dev.mysql.com/doc/refman/5.7/en/examples.html
## Ref: https://stackoverflow.com/questions/25044817/zend-opcache-opcache-enable-cli-1-or-0-what-does-it-do#comment91052089_35880017
## Ref: https://codex.wordpress.org/Class_Reference/WP_Object_Cache
## Ref: https://pressidium.com/blog/2017/wordpress-object-caching-redis-memcached-and-native-apis/
## Ref: https://pressjitsu.com/blog/transient-cache-alternatives/
## Ref: https://unix.stackexchange.com/questions/87258/delete-all-files-except-in-a-certain-subdirectory-with-find
## Ref: https://github.com/littlebizzy/slickstack/issues/57
## SS_EOF