Wordpress
Content
Installation
Given an Ubuntu 22.04 Machine
1
2
3
4
5
| sudo apt update
sudo apt-get upgrade -y
sudo apt install -f php-fpm nfs-kernel-server nginx php-mysql
sudo apt install -f php8.1-mysql php8.1-mbstring php8.1-xml php8.1-curl
sudo apt install -f memcached libmemcached-tools -y
|
Check the nginx config:
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
| client_max_body_size 50M;
server {
listen 80;
listen [::]:80;
root /var/www/acme.com/html;
server_name _;
index index.php;
charset utf-8;
access_log /var/log/nginx/wordpress_access.log;
error_log /var/log/nginx/wordpress_error.log;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php8.1-fpm-wordpress-site.sock;
fastcgi_index index.php;
include fastcgi.conf;
proxy_connect_timeout 3600;
proxy_send_timeout 180;
proxy_read_timeout 180;
}
location ~ /\.ht {
deny all;
}
location ~ \.(eot|ttf|otf|woff)$ {
add_header Access-Control-Allow-Origin *;
}
}
|
Create php fpm profile:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| vim /etc/php/8.1/fpm/pool.d/wordpress.conf
[wordpress_site]
user = www-data
group = www-data
listen = /var/run/php8.1-fpm-wordpress-site.sock
listen.owner = www-data
listen.group = www-data
php_admin_value[disable_functions] = exec,passthru,shell_exec,system
php_admin_flag[allow_url_fopen] = off
; Choose how the process manager will control the number of child processes.
pm = dynamic
pm.max_children = 75
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.process_idle_timeout = 10s
;upload_max_filesize = 50M
;post_max_size = 50M
|
Modify fpm:
1
2
| sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 64M/g' /etc/php/8.1/fpm/php.ini
sudo sed -i 's/post_max_size = 8M/post_max_size = 128M/g' /etc/php/8.1/fpm/php.ini
|
Restart services:
1
2
3
4
5
6
| sudo nginx -t
sudo systemctl enable nginx.service
sudo systemctl enable php8.1-fpm.service
sudo systemctl restart nginx.service
sudo systemctl restart php8.1-fpm.service
|
Install wordpress
1
2
| wget https://wordpress.org/latest.tar.gz
tar -xzvf latest.tar.gz
|
Post configurations
1
2
| # On wp-config.php allow web upload of zip files
define('FS_METHOD', 'direct');
|