-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathphpver.sh
More file actions
117 lines (100 loc) · 2.91 KB
/
phpver.sh
File metadata and controls
117 lines (100 loc) · 2.91 KB
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
#!/bin/bash
# Config
PWD=$(pwd)
TXT_ERROR="[\e[0;31mERROR\e[0;0m]"
TXT_OK="[\e[0;32mOK\e[0;0m]"
TXT_INFO="[\e[0;33mINFO\e[0;0m]"
# Demande de la version de PHP
echo -e $TXT_INFO "Sélectionnez la version de PHP en format suivant (Pour les versions 5.2 jusqu'à la 8.2 | EXEMPLE : 74 pour PHP 7.4) : "
read -r PHP_VERSION
# Check si la version est ok
if [[ ! $PHP_VERSION =~ ^(52|53|54|55|56|70|71|72|73|74|75|76|77|78|79|80|81|82|83)$ ]]; then
echo -e "$TXT_ERROR La version de PHP saisie '$PHP_VERSION' n'est pas correct. Veuillez entrer une version entre 52 et 83."
exit 1
fi
# Rename old htaccess for bkp
HTACCESS_FILE=".htaccess"
NEW_HTACCESS_FILE="${HTACCESS_FILE}_"
COUNTER=1
while [[ -f "$NEW_HTACCESS_FILE" ]]; do
NEW_HTACCESS_FILE="${HTACCESS_FILE}_$COUNTER"
COUNTER=$((COUNTER + 1))
done
if [[ -f "$HTACCESS_FILE" ]]; then
mv "$HTACCESS_FILE" "$NEW_HTACCESS_FILE"
echo -e "$TXT_OK Ancien fichier rename en $NEW_HTACCESS_FILE."
else
echo -e "$TXT_OK Aucun fichier $HTACCESS_FILE à renommer."
fi
# Créer le nouveau .htaccess
BLOCK_TEMPLATE=$(cat <<EOL
<FilesMatch \\.php$>
SetHandler application/x-httpd-php$PHP_VERSION
</FilesMatch>
AddHandler application/x-httpd-php$PHP_VERSION .php
suPHP_ConfigPath $PWD/php.ini
EOL
)
# Créer le htaccess avec les règles
echo "$BLOCK_TEMPLATE" > "$HTACCESS_FILE"
echo -e "$TXT_OK Nouveau fichier $HTACCESS_FILE créé."
# Ajout des Rewrite de Wordpress
if [[ -f "wp-config.php" ]]; then
echo -e "$TXT_INFO Site Wordpress trouvé. Ajout des règles dans le .htaccess."
# Ajouter les règles
cat <<EOL >> "$HTACCESS_FILE"
# BEGIN WordPress
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
EOL
echo -e "$TXT_OK Règles ajoutées dans le $HTACCESS_FILE."
else
echo -e "$TXT_INFO Pas de Wordpress trouvé. Uniquement les règles PHP seront ajoutées."
fi
# Créer php.ini
PHP_INI_FILE="php.ini"
# Création du fichier php.ini avec les infos natives.
cat <<EOL > "$PHP_INI_FILE"
date.timezone=Europe/Paris
extension=mysqlnd.so
extension=nd_mysqli.so
extension=nd_pdo_mysql.so
extension=json.so
extension=intl.so
extension=mcrypt.so
extension=gd.so
extension=xml.so
extension=xmlreader.so
extension=xmlrpc.so
extension=xmlwriter.so
extension=soap.so
extension=tidy.so
extension=bcmath.so
extension=dom.so
extension=fileinfo.so
extension=imap.so
extension=zip.so
extension=mcrypt.so
extension=intl.so
extension=pdo.so
extension=fileinfo.so
extension=mbstring.so
extension=imagick.so
display_errors=off
memory_limit=2038M
max_input_vars=250000
max_execution_time=360
output_buffering=4096
upload_max_filesize=512M
post_max_size=512M
EOL
echo -e "$TXT_OK Le $PHP_INI_FILE est bien créé avec les options."
# Fin
echo -e "\n$TXT_OK Script terminé avec succès !"
rm -rf phpver.sh